Merge remote-tracking branch 'origin/master' into user-icons

Conflicts:
	public/src/client/account/edit.js
	src/middleware/middleware.js
	src/socket.io/meta.js
	src/socket.io/user/picture.js
	src/user.js
	src/views/admin/manage/group.tpl
This commit is contained in:
Julian Lam
2015-10-25 07:33:59 -04:00
112 changed files with 1769 additions and 1104 deletions

View File

@@ -3,14 +3,11 @@
var async = require('async'),
nconf = require('nconf'),
gravatar = require('gravatar'),
validator = require('validator'),
plugins = require('./plugins'),
db = require('./database'),
meta = require('./meta'),
topics = require('./topics'),
groups = require('./groups'),
Password = require('./password'),
privileges = require('./privileges'),
utils = require('../public/src/utils');
@@ -37,6 +34,7 @@ var async = require('async'),
require('./user/approval')(User);
require('./user/invite')(User);
require('./user/icon')(User);
require('./user/password')(User);
User.updateLastOnlineTime = function(uid, callback) {
callback = callback || function() {};
@@ -158,7 +156,7 @@ var async = require('async'),
User.getUidByUserslug(userslug, function(err, exists) {
callback(err, !! exists);
});
}
};
User.getUidByUsername = function(username, callback) {
if (!username) {
@@ -224,6 +222,18 @@ var async = require('async'),
privileges.users.isAdministrator(uid, callback);
};
User.isAdminOrSelf = function(callerUid, uid, callback) {
if (parseInt(callerUid, 10) === parseInt(uid, 10)) {
return callback();
}
User.isAdministrator(callerUid, function(err, isAdmin) {
if (err || !isAdmin) {
return callback(err || new Error('[[error:no-privileges]]'));
}
callback();
});
};
}(exports));