mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	removed some methods
helpers.getBaseUser exposeUid, exposeGroupName
This commit is contained in:
		| @@ -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); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user