mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 19:15:58 +01:00 
			
		
		
		
	closes #5542
This commit is contained in:
		| @@ -2,14 +2,19 @@ | ||||
|  | ||||
| var async = require('async'); | ||||
|  | ||||
| var db = require('../../database'); | ||||
| var user = require('../../user'); | ||||
| var helpers = require('../helpers'); | ||||
| var accountHelpers = require('./helpers'); | ||||
| var pagination = require('../../pagination'); | ||||
|  | ||||
| var infoController = {}; | ||||
| var infoController = module.exports; | ||||
|  | ||||
| infoController.get = function (req, res, callback) { | ||||
| 	var userData; | ||||
| 	var page = Math.max(1, req.query.page || 1); | ||||
| 	var itemsPerPage = 10; | ||||
|  | ||||
| 	async.waterfall([ | ||||
| 		function (next) { | ||||
| 			accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, next); | ||||
| @@ -19,11 +24,27 @@ infoController.get = function (req, res, callback) { | ||||
| 			if (!userData) { | ||||
| 				return callback(); | ||||
| 			} | ||||
|  | ||||
| 			var start = (page - 1) * itemsPerPage; | ||||
| 			var stop = start + itemsPerPage - 1; | ||||
| 			async.parallel({ | ||||
| 				history: async.apply(user.getModerationHistory, userData.uid), | ||||
| 				sessions: async.apply(user.auth.getSessions, userData.uid, req.sessionID), | ||||
| 				usernames: async.apply(user.getHistory, 'user:' + userData.uid + ':usernames'), | ||||
| 				emails: async.apply(user.getHistory, 'user:' + userData.uid + ':emails'), | ||||
| 				notes: function (next) { | ||||
| 					if (!userData.isAdminOrGlobalModeratorOrModerator) { | ||||
| 						return setImmediate(next); | ||||
| 					} | ||||
| 					async.parallel({ | ||||
| 						notes: function (next) { | ||||
| 							user.getModerationNotes(userData.uid, start, stop, next); | ||||
| 						}, | ||||
| 						count: function (next) { | ||||
| 							db.sortedSetCard('uid:' + userData.uid + ':moderation:notes', next); | ||||
| 						}, | ||||
| 					}, next); | ||||
| 				}, | ||||
| 			}, next); | ||||
| 		}, | ||||
| 	], function (err, data) { | ||||
| @@ -35,11 +56,15 @@ infoController.get = function (req, res, callback) { | ||||
| 		userData.sessions = data.sessions; | ||||
| 		userData.usernames = data.usernames; | ||||
| 		userData.emails = data.emails; | ||||
|  | ||||
| 		if (userData.isAdminOrGlobalModeratorOrModerator) { | ||||
| 			userData.moderationNotes = data.notes.notes; | ||||
| 			var pageCount = Math.ceil(data.notes.count / itemsPerPage); | ||||
| 			userData.pagination = pagination.create(page, pageCount, req.query); | ||||
| 		} | ||||
| 		userData.title = '[[pages:account/info]]'; | ||||
| 		userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: '[[user:account_info]]' }]); | ||||
|  | ||||
| 		res.render('account/info', userData); | ||||
| 	}); | ||||
| }; | ||||
|  | ||||
| module.exports = infoController; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user