v1.18.x
Baris Usakli 7 years ago
parent 4200cff47c
commit 79ffae608e

@ -205,24 +205,29 @@ module.exports = function (SocketUser) {
}; };
SocketUser.toggleBlock = function (socket, data, callback) { SocketUser.toggleBlock = function (socket, data, callback) {
let current; let isBlocked;
async.waterfall([ async.waterfall([
function (next) { function (next) {
user.blocks.can(socket.uid, data.blockerUid, data.blockeeUid, next); async.parallel({
can: function (next) {
user.blocks.can(socket.uid, data.blockerUid, data.blockeeUid, next);
},
is: function (next) {
user.blocks.is(data.blockeeUid, data.blockerUid, next);
}
}, next);
}, },
function (can, next) { function (results, next) {
if (!can) { isBlocked = results.is;
if (!results.can && !isBlocked) {
return next(new Error('[[error:cannot-block-privileged]]')); return next(new Error('[[error:cannot-block-privileged]]'));
} }
user.blocks.is(data.blockeeUid, data.blockerUid, next);
}, user.blocks[isBlocked ? 'remove' : 'add'](data.blockeeUid, data.blockerUid, next);
function (is, next) {
current = is;
user.blocks[is ? 'remove' : 'add'](data.blockeeUid, data.blockerUid, next);
}, },
], function (err) { ], function (err) {
callback(err, !current); callback(err, !isBlocked);
}); });
}; };
}; };

Loading…
Cancel
Save