mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 12:05:57 +01:00
some cleanup in addUserInfoToPost
This commit is contained in:
56
src/posts.js
56
src/posts.js
@@ -1,8 +1,19 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var db = require('./database'),
|
var async = require('async'),
|
||||||
|
path = require('path'),
|
||||||
|
fs = require('fs'),
|
||||||
|
nconf = require('nconf'),
|
||||||
|
validator = require('validator'),
|
||||||
|
winston = require('winston'),
|
||||||
|
gravatar = require('gravatar'),
|
||||||
|
S = require('string'),
|
||||||
|
|
||||||
|
|
||||||
|
db = require('./database'),
|
||||||
utils = require('./../public/src/utils'),
|
utils = require('./../public/src/utils'),
|
||||||
user = require('./user'),
|
user = require('./user'),
|
||||||
|
groups = require('./groups'),
|
||||||
topics = require('./topics'),
|
topics = require('./topics'),
|
||||||
favourites = require('./favourites'),
|
favourites = require('./favourites'),
|
||||||
postTools = require('./postTools'),
|
postTools = require('./postTools'),
|
||||||
@@ -10,20 +21,9 @@ var db = require('./database'),
|
|||||||
categories = require('./categories'),
|
categories = require('./categories'),
|
||||||
plugins = require('./plugins'),
|
plugins = require('./plugins'),
|
||||||
meta = require('./meta'),
|
meta = require('./meta'),
|
||||||
emitter = require('./emitter'),
|
emitter = require('./emitter');
|
||||||
|
|
||||||
async = require('async'),
|
|
||||||
path = require('path'),
|
|
||||||
fs = require('fs'),
|
|
||||||
nconf = require('nconf'),
|
|
||||||
validator = require('validator'),
|
|
||||||
winston = require('winston'),
|
|
||||||
gravatar = require('gravatar'),
|
|
||||||
S = require('string');
|
|
||||||
|
|
||||||
(function(Posts) {
|
(function(Posts) {
|
||||||
var customUserInfo = {};
|
|
||||||
|
|
||||||
require('./posts/delete')(Posts);
|
require('./posts/delete')(Posts);
|
||||||
|
|
||||||
Posts.create = function(data, callback) {
|
Posts.create = function(data, callback) {
|
||||||
@@ -188,13 +188,13 @@ var db = require('./database'),
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Posts.addUserInfoToPost = function(post, callback) {
|
Posts.getUserInfoForPost = function(post, callback) {
|
||||||
user.getUserFields(post.uid, ['username', 'userslug', 'reputation', 'postcount', 'picture', 'signature', 'banned'], function(err, userData) {
|
user.getUserFields(post.uid, ['username', 'userslug', 'reputation', 'postcount', 'picture', 'signature', 'banned'], function(err, userData) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
post.user = {
|
var userInfo = {
|
||||||
username: userData.username || '[[global:guest]]',
|
username: userData.username || '[[global:guest]]',
|
||||||
userslug: userData.userslug || '',
|
userslug: userData.userslug || '',
|
||||||
reputation: userData.reputation || 0,
|
reputation: userData.reputation || 0,
|
||||||
@@ -203,24 +203,12 @@ var db = require('./database'),
|
|||||||
picture: userData.picture || user.createGravatarURLFromEmail('')
|
picture: userData.picture || user.createGravatarURLFromEmail('')
|
||||||
};
|
};
|
||||||
|
|
||||||
for (var info in customUserInfo) {
|
|
||||||
if (customUserInfo.hasOwnProperty(info)) {
|
|
||||||
post.user[info] = userData[info] || customUserInfo[info];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async.parallel({
|
async.parallel({
|
||||||
signature: function(next) {
|
signature: function(next) {
|
||||||
if (parseInt(meta.config.disableSignatures, 10) !== 1) {
|
if (parseInt(meta.config.disableSignatures, 10) === 1) {
|
||||||
return postTools.parseSignature(userData.signature, next);
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
},
|
|
||||||
editor: function(next) {
|
|
||||||
if (!post.editor) {
|
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
user.getUserFields(post.editor, ['username', 'userslug'], next);
|
postTools.parseSignature(userData.signature, next);
|
||||||
},
|
},
|
||||||
customProfileInfo: function(next) {
|
customProfileInfo: function(next) {
|
||||||
plugins.fireHook('filter:posts.custom_profile_info', {profile: [], uid: post.uid, pid: post.pid}, next);
|
plugins.fireHook('filter:posts.custom_profile_info', {profile: [], uid: post.uid, pid: post.pid}, next);
|
||||||
@@ -229,12 +217,10 @@ var db = require('./database'),
|
|||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
userInfo.signature = results.signature;
|
||||||
post.user.signature = results.signature;
|
userInfo.custom_profile_info = results.custom_profile_info;
|
||||||
post.editor = results.editor;
|
userInfo.groups = results.groups;
|
||||||
post.custom_profile_info = results.profile;
|
callback(null, userInfo);
|
||||||
|
|
||||||
callback(null, post);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -224,9 +224,10 @@ module.exports = function(Topics) {
|
|||||||
},
|
},
|
||||||
function(result, next) {
|
function(result, next) {
|
||||||
Topics.pushUnreadCount();
|
Topics.pushUnreadCount();
|
||||||
posts.addUserInfoToPost(postData, next);
|
posts.getUserInfoForPost(postData, next);
|
||||||
},
|
},
|
||||||
function(postData, next) {
|
function(userInfo, next) {
|
||||||
|
postData.user = userInfo;
|
||||||
Topics.getTopicFields(tid, ['tid', 'title', 'slug'], next);
|
Topics.getTopicFields(tid, ['tid', 'title', 'slug'], next);
|
||||||
},
|
},
|
||||||
function(topicData, next) {
|
function(topicData, next) {
|
||||||
|
|||||||
@@ -4,10 +4,11 @@
|
|||||||
|
|
||||||
var async = require('async'),
|
var async = require('async'),
|
||||||
|
|
||||||
db = require('./../database'),
|
db = require('../database'),
|
||||||
emitter = require('./../emitter'),
|
user = require('../user'),
|
||||||
favourites = require('./../favourites'),
|
emitter = require('../emitter'),
|
||||||
posts = require('./../posts'),
|
favourites = require('../favourites'),
|
||||||
|
posts = require('../posts'),
|
||||||
privileges = require('../privileges');
|
privileges = require('../privileges');
|
||||||
|
|
||||||
module.exports = function(Topics) {
|
module.exports = function(Topics) {
|
||||||
@@ -45,16 +46,36 @@ module.exports = function(Topics) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
async.parallel({
|
async.parallel({
|
||||||
favourites : function(next) {
|
favourites: function(next) {
|
||||||
favourites.getFavouritesByPostIDs(pids, uid, next);
|
favourites.getFavouritesByPostIDs(pids, uid, next);
|
||||||
},
|
},
|
||||||
voteData : function(next) {
|
voteData: function(next) {
|
||||||
favourites.getVoteStatusByPostIDs(pids, uid, next);
|
favourites.getVoteStatusByPostIDs(pids, uid, next);
|
||||||
},
|
},
|
||||||
userData : function(next) {
|
userData: function(next) {
|
||||||
async.each(postData, posts.addUserInfoToPost, next);
|
async.each(postData, function(post, next) {
|
||||||
|
async.parallel({
|
||||||
|
editor: function(next) {
|
||||||
|
if (!post.editor) {
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
user.getUserFields(post.editor, ['username', 'userslug'], next);
|
||||||
},
|
},
|
||||||
privileges : function(next) {
|
user: function(next) {
|
||||||
|
posts.getUserInfoForPost(post, next);
|
||||||
|
}
|
||||||
|
}, function(err, results) {
|
||||||
|
if (err) {
|
||||||
|
return next(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
post.user = results.user;
|
||||||
|
post.editor = results.editor;
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
}, next);
|
||||||
|
},
|
||||||
|
privileges: function(next) {
|
||||||
async.map(pids, function (pid, next) {
|
async.map(pids, function (pid, next) {
|
||||||
privileges.posts.get(pid, uid, next);
|
privileges.posts.get(pid, uid, next);
|
||||||
}, next);
|
}, next);
|
||||||
|
|||||||
Reference in New Issue
Block a user