v1.18.x
barisusakli 9 years ago
parent 0e8bf17ff0
commit ef87a2b7d7

@ -5,6 +5,7 @@ var fs = require('fs');
var async = require('async'); var async = require('async');
var semver = require('semver'); var semver = require('semver');
var winston = require('winston'); var winston = require('winston');
var colors = require('colors');
var pkg = require('../../package.json'); var pkg = require('../../package.json');

@ -28,18 +28,14 @@ module.exports = function (SocketUser) {
if (!socket.uid) { if (!socket.uid) {
return callback(new Error('[[error:no-privileges]]')); return callback(new Error('[[error:no-privileges]]'));
} }
async.waterfall([
user.isAdministrator(socket.uid, function (err, isAdmin) { function (next) {
if (err) { user.isAdminOrSelf(socket.uid, data.uid, next);
return callback(err); },
} function (next) {
user.updateCoverPicture(data, next);
if (!isAdmin && data.uid !== socket.uid) {
return callback(new Error('[[error:no-privileges]]'));
} }
], callback);
user.updateCoverPicture(data, callback);
});
}; };
SocketUser.removeCover = function (socket, data, callback) { SocketUser.removeCover = function (socket, data, callback) {
@ -47,12 +43,14 @@ module.exports = function (SocketUser) {
return callback(new Error('[[error:no-privileges]]')); return callback(new Error('[[error:no-privileges]]'));
} }
user.isAdminOrSelf(socket.uid, data.uid, function (err) { async.waterfall([
if (err) { function (next) {
return callback(err); user.isAdminOrSelf(socket.uid, data.uid, next);
},
function (next) {
user.removeCoverPicture(data, next);
} }
user.removeCoverPicture(data, callback); ], callback);
});
}; };
function isAdminOrSelfAndPasswordMatch(uid, data, callback) { function isAdminOrSelfAndPasswordMatch(uid, data, callback) {
@ -70,13 +68,13 @@ module.exports = function (SocketUser) {
if (err) { if (err) {
return callback(err); return callback(err);
} }
var self = parseInt(uid, 10) === parseInt(data.uid, 10); var isSelf = parseInt(uid, 10) === parseInt(data.uid, 10);
if (!results.isAdmin && !self) { if (!results.isAdmin && !isSelf) {
return callback(new Error('[[error:no-privileges]]')); return callback(new Error('[[error:no-privileges]]'));
} }
if (self && results.hasPassword && !results.passwordMatch) { if (isSelf && results.hasPassword && !results.passwordMatch) {
return callback(new Error('[[error:invalid-password]]')); return callback(new Error('[[error:invalid-password]]'));
} }

Loading…
Cancel
Save