removed some methods

helpers.getBaseUser
exposeUid, exposeGroupName
v1.18.x
barisusakli 9 years ago
parent 001eb3454c
commit aefba6e2b1

@ -27,7 +27,7 @@ function getFollow(tpl, name, req, res, callback) {
async.waterfall([ async.waterfall([
function(next) { function(next) {
accountHelpers.getBaseUser(req.params.userslug, req.uid, next); accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, next);
}, },
function(data, next) { function(data, next) {
userData = data; userData = data;

@ -1,11 +1,11 @@
'use strict'; 'use strict';
var async = require('async'), var async = require('async');
groups = require('../../groups'), var groups = require('../../groups');
helpers = require('../helpers'), var helpers = require('../helpers');
accountHelpers = require('./helpers'); var accountHelpers = require('./helpers');
var groupsController = {}; var groupsController = {};
@ -15,7 +15,7 @@ groupsController.get = function(req, res, callback) {
var groupsData; var groupsData;
async.waterfall([ async.waterfall([
function (next) { function (next) {
accountHelpers.getBaseUser(req.params.userslug, req.uid, next); accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, next);
}, },
function (_userData, next) { function (_userData, next) {
userData = _userData; userData = _userData;

@ -3,6 +3,7 @@
var async = require('async'); var async = require('async');
var validator = require('validator'); var validator = require('validator');
var winston = require('winston');
var user = require('../../user'); var user = require('../../user');
var groups = require('../../groups'); var groups = require('../../groups');
@ -35,6 +36,9 @@ helpers.getUserDataByUserSlug = function(userslug, callerUID, callback) {
isGlobalModerator: function(next) { isGlobalModerator: function(next) {
user.isGlobalModerator(callerUID, next); user.isGlobalModerator(callerUID, next);
}, },
isFollowing: function(next) {
user.isFollowing(callerUID, uid, next);
},
ips: function(next) { ips: function(next) {
user.getIPs(uid, 4, next); user.getIPs(uid, 4, next);
}, },
@ -88,6 +92,7 @@ helpers.getUserDataByUserSlug = function(userslug, callerUID, callback) {
userData.canBan = isAdmin || isGlobalModerator; userData.canBan = isAdmin || isGlobalModerator;
userData.canChangePassword = isAdmin || (isSelf && parseInt(meta.config['password:disableEdit'], 10) !== 1); userData.canChangePassword = isAdmin || (isSelf && parseInt(meta.config['password:disableEdit'], 10) !== 1);
userData.isSelf = isSelf; userData.isSelf = isSelf;
userData.isFollowing = results.isFollowing;
userData.showHidden = isSelf || isAdmin || isGlobalModerator; userData.showHidden = isSelf || isAdmin || isGlobalModerator;
userData.groups = Array.isArray(results.groups) && results.groups.length ? results.groups[0] : []; userData.groups = Array.isArray(results.groups) && results.groups.length ? results.groups[0] : [];
userData.disableSignatures = meta.config.disableSignatures !== undefined && parseInt(meta.config.disableSignatures, 10) === 1; userData.disableSignatures = meta.config.disableSignatures !== undefined && parseInt(meta.config.disableSignatures, 10) === 1;
@ -122,66 +127,8 @@ helpers.getUserDataByUserSlug = function(userslug, callerUID, callback) {
helpers.getBaseUser = function(userslug, callerUID, callback) { helpers.getBaseUser = function(userslug, callerUID, callback) {
async.waterfall([ winston.warn('helpers.getBaseUser deprecated please use helpers.getUserDataByUserSlug');
function (next) { helpers.getUserDataByUserSlug(userslug, callerUID, callback);
user.getUidByUserslug(userslug, next);
},
function (uid, next) {
if (!uid) {
return callback(null, null);
}
async.parallel({
user: function(next) {
user.getUserFields(uid, [
'uid',
'username',
'userslug',
'picture',
'cover:url',
'cover:position',
'status',
'lastonline',
'groupTitle',
'followingCount',
'followerCount'
], next);
},
isAdmin: function(next) {
user.isAdministrator(callerUID, next);
},
isGlobalModerator: function(next) {
user.isGlobalModerator(callerUID, next);
},
isFollowing: function(next) {
user.isFollowing(callerUID, uid, next);
},
profile_links: function(next) {
plugins.fireHook('filter:user.profileLinks', [], next);
}
}, next);
},
function (results, next) {
if (!results.user) {
return callback();
}
results.user.yourid = callerUID;
results.user.theirid = results.user.uid;
results.user.status = user.getStatus(results.user);
results.user.isSelf = parseInt(callerUID, 10) === parseInt(results.user.uid, 10);
results.user.isFollowing = results.isFollowing;
results.user.showHidden = results.user.isSelf || results.isAdmin || results.isGlobalModerator;
results.user.profile_links = filterLinks(results.profile_links, results.user.isSelf);
results.user['reputation:disabled'] = parseInt(meta.config['reputation:disabled'], 10) === 1;
results.user['downvote:disabled'] = parseInt(meta.config['downvote:disabled'], 10) === 1;
results.user['cover:url'] = results.user['cover:url'] || require('../../coverPhoto').getDefaultProfileCover(results.user.uid);
results.user['cover:position'] = results.user['cover:position'] || '50% 50%';
next(null, results.user);
}
], callback);
}; };
function filterLinks(links, self) { function filterLinks(links, self) {

@ -1,7 +1,6 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore');
var user = require('../../user'); var user = require('../../user');
var helpers = require('../helpers'); var helpers = require('../helpers');
@ -9,34 +8,34 @@ var accountHelpers = require('./helpers');
var infoController = {}; var infoController = {};
infoController.get = function(req, res, next) { infoController.get = function(req, res, callback) {
accountHelpers.getBaseUser(req.params.userslug, req.uid, function(err, userData) { var userData;
if (err) { async.waterfall([
return next(err); function(next) {
accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, next);
},
function(_userData, next) {
userData = _userData;
if (!userData) {
return callback();
} }
async.parallel({ async.parallel({
ips: async.apply(user.getIPs, res.locals.uid, 4), history: async.apply(user.getModerationHistory, userData.uid),
history: async.apply(user.getModerationHistory, res.locals.uid),
fields: async.apply(user.getUserFields, res.locals.uid, ['banned']),
sessions: async.apply(user.auth.getSessions, userData.uid, req.sessionID) sessions: async.apply(user.auth.getSessions, userData.uid, req.sessionID)
}, function(err, data) { }, next);
}
], function(err, data) {
if (err) { if (err) {
return next(err); return callback(err);
} }
userData = _.extend(userData, { userData.history = data.history;
ips: data.ips,
history: data.history
}, data.fields);
userData.sessions = data.sessions; userData.sessions = data.sessions;
userData.title = '[[pages:account/info]]'; userData.title = '[[pages:account/info]]';
userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:account_info]]'}]); userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:account_info]]'}]);
res.render('account/info', userData); res.render('account/info', userData);
}); });
});
}; };
module.exports = infoController; module.exports = infoController;

@ -1,15 +1,15 @@
'use strict'; 'use strict';
var async = require('async'), var async = require('async');
db = require('../../database'), var db = require('../../database');
user = require('../../user'), var user = require('../../user');
posts = require('../../posts'), var posts = require('../../posts');
topics = require('../../topics'), var topics = require('../../topics');
pagination = require('../../pagination'), var pagination = require('../../pagination');
helpers = require('../helpers'), var helpers = require('../helpers');
accountHelpers = require('./helpers'); var accountHelpers = require('./helpers');
var postsController = {}; var postsController = {};
@ -103,7 +103,7 @@ function getFromUserSet(data, req, res, next) {
user.getSettings(req.uid, next); user.getSettings(req.uid, next);
}, },
userData: function(next) { userData: function(next) {
accountHelpers.getBaseUser(req.params.userslug, req.uid, next); accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, next);
} }
}, function(err, results) { }, function(err, results) {
if (err || !results.userData) { if (err || !results.userData) {

@ -13,10 +13,17 @@ sessionController.revoke = function(req, res, next) {
} }
var _id; var _id;
var uid;
async.waterfall([ async.waterfall([
function (next) { function (next) {
db.getSortedSetRange('uid:' + res.locals.uid + ':sessions', 0, -1, next); user.getUidByUserslug(req.params.userslug, next);
},
function (_uid, next) {
uid = _uid;
if (!uid) {
return next(new Error('[[error:no-session-found]]'));
}
db.getSortedSetRange('uid:' + uid + ':sessions', 0, -1, next);
}, },
function (sids, done) { function (sids, done) {
async.eachSeries(sids, function(sid, next) { async.eachSeries(sids, function(sid, next) {
@ -38,7 +45,7 @@ sessionController.revoke = function(req, res, next) {
return next(new Error('[[error:no-session-found]]')); return next(new Error('[[error:no-session-found]]'));
} }
user.auth.revokeSession(_id, res.locals.uid, next); user.auth.revokeSession(_id, uid, next);
} }
], function(err) { ], function(err) {
if (err) { if (err) {

@ -20,7 +20,7 @@ settingsController.get = function(req, res, callback) {
var userData; var userData;
async.waterfall([ async.waterfall([
function(next) { function(next) {
accountHelpers.getBaseUser(req.params.userslug, req.uid, next); accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, next);
}, },
function(_userData, next) { function(_userData, next) {
userData = _userData; userData = _userData;

@ -46,23 +46,30 @@ groupsController.getGroupsFromSet = function(uid, sort, start, stop, callback) {
}; };
groupsController.details = function(req, res, callback) { groupsController.details = function(req, res, callback) {
var groupName;
async.waterfall([ async.waterfall([
async.apply(groups.exists, res.locals.groupName), function(next) {
function (exists, next) { groups.getGroupNameByGroupSlug(req.params.slug, next);
if (!exists) { },
function(groupName, next) {
if (!groupName) {
return callback(); return callback();
} }
async.parallel({
groups.isHidden(res.locals.groupName, next); exists: async.apply(groups.exists, groupName),
hidden: async.apply(groups.isHidden, groupName)
}, next);
}, },
function (hidden, next) { function (results, next) {
if (!hidden) { if (!results.exists) {
return callback();
}
if (!results.hidden) {
return next(); return next();
} }
async.parallel({ async.parallel({
isMember: async.apply(groups.isMember, req.uid, res.locals.groupName), isMember: async.apply(groups.isMember, req.uid, groupName),
isInvited: async.apply(groups.isInvited, req.uid, res.locals.groupName) isInvited: async.apply(groups.isInvited, req.uid, groupName)
}, function(err, checks) { }, function(err, checks) {
if (err || checks.isMember || checks.isInvited) { if (err || checks.isMember || checks.isInvited) {
return next(err); return next(err);
@ -73,14 +80,14 @@ groupsController.details = function(req, res, callback) {
function (next) { function (next) {
async.parallel({ async.parallel({
group: function(next) { group: function(next) {
groups.get(res.locals.groupName, { groups.get(groupName, {
uid: req.uid, uid: req.uid,
truncateUserList: true, truncateUserList: true,
userListCount: 20 userListCount: 20
}, next); }, next);
}, },
posts: function(next) { posts: function(next) {
groups.getLatestMemberPosts(res.locals.groupName, 10, req.uid, next); groups.getLatestMemberPosts(groupName, 10, req.uid, next);
}, },
isAdmin:function(next) { isAdmin:function(next) {
user.isAdministrator(req.uid, next); user.isAdministrator(req.uid, next);

@ -112,28 +112,6 @@ middleware.privateTagListing = function(req, res, next) {
} }
}; };
middleware.exposeGroupName = function(req, res, next) {
expose('groupName', groups.getGroupNameByGroupSlug, 'slug', req, res, next);
};
middleware.exposeUid = function(req, res, next) {
expose('uid', user.getUidByUserslug, 'userslug', req, res, next);
};
function expose(exposedField, method, field, req, res, next) {
if (!req.params.hasOwnProperty(field)) {
return next();
}
method(req.params[field], function(err, id) {
if (err) {
return next(err);
}
res.locals[exposedField] = id;
next();
});
}
middleware.privateUploads = function(req, res, next) { middleware.privateUploads = function(req, res, next) {
if (req.user || parseInt(meta.config.privateUploads, 10) !== 1) { if (req.user || parseInt(meta.config.privateUploads, 10) !== 1) {
return next(); return next();

@ -5,7 +5,7 @@ var setupPageRoute = helpers.setupPageRoute;
module.exports = function (app, middleware, controllers) { module.exports = function (app, middleware, controllers) {
var middlewares = [middleware.checkGlobalPrivacySettings]; var middlewares = [middleware.checkGlobalPrivacySettings];
var accountMiddlewares = [middleware.checkGlobalPrivacySettings, middleware.checkAccountPermissions, middleware.exposeUid]; var accountMiddlewares = [middleware.checkGlobalPrivacySettings, middleware.checkAccountPermissions];
setupPageRoute(app, '/uid/:uid/:section?', middleware, [], middleware.redirectUidToUserslug); setupPageRoute(app, '/uid/:uid/:section?', middleware, [], middleware.redirectUidToUserslug);
@ -28,7 +28,7 @@ module.exports = function (app, middleware, controllers) {
setupPageRoute(app, '/user/:userslug/info', middleware, accountMiddlewares, controllers.accounts.info.get); setupPageRoute(app, '/user/:userslug/info', middleware, accountMiddlewares, controllers.accounts.info.get);
setupPageRoute(app, '/user/:userslug/settings', middleware, accountMiddlewares, controllers.accounts.settings.get); setupPageRoute(app, '/user/:userslug/settings', middleware, accountMiddlewares, controllers.accounts.settings.get);
app.delete('/api/user/:userslug/session/:uuid', [middleware.requireUser, middleware.exposeUid], controllers.accounts.session.revoke); app.delete('/api/user/:userslug/session/:uuid', [middleware.requireUser], controllers.accounts.session.revoke);
setupPageRoute(app, '/notifications', middleware, [middleware.authenticate], controllers.accounts.notifications.get); setupPageRoute(app, '/notifications', middleware, [middleware.authenticate], controllers.accounts.notifications.get);
setupPageRoute(app, '/chats/:roomid?', middleware, [middleware.authenticate], controllers.accounts.chats.get); setupPageRoute(app, '/chats/:roomid?', middleware, [middleware.authenticate], controllers.accounts.chats.get);

@ -77,7 +77,7 @@ function userRoutes(app, middleware, controllers) {
} }
function groupRoutes(app, middleware, controllers) { function groupRoutes(app, middleware, controllers) {
var middlewares = [middleware.checkGlobalPrivacySettings, middleware.exposeGroupName]; var middlewares = [middleware.checkGlobalPrivacySettings];
setupPageRoute(app, '/groups', middleware, middlewares, controllers.groups.list); setupPageRoute(app, '/groups', middleware, middlewares, controllers.groups.list);
setupPageRoute(app, '/groups/:slug', middleware, middlewares, controllers.groups.details); setupPageRoute(app, '/groups/:slug', middleware, middlewares, controllers.groups.details);

Loading…
Cancel
Save