allow admins mods to watch/ignore categories for other users

v1.18.x
Baris Usakli 6 years ago
parent 5f49a1d82c
commit 6dc84deca9

@ -18,7 +18,7 @@ define('forum/account/categories', ['forum/account/header'], function (header) {
var $this = $(this);
var command = $this.attr('component') === 'category/watching' ? 'watch' : 'ignore';
socket.emit('categories.' + command, cid, function (err, modified_cids) {
socket.emit('categories.' + command, { cid: cid, uid: ajaxify.data.uid }, function (err, modified_cids) {
if (err) {
return app.alertError(err.message);
}

@ -174,9 +174,17 @@ SocketCategories.ignore = function (socket, cid, callback) {
};
function ignoreOrWatch(fn, socket, cid, callback) {
var targetUid = socket.uid;
var cids = [parseInt(cid, 10)];
if (typeof cid === 'object') {
targetUid = cid.uid;
cids = [parseInt(cid.cid, 10)];
}
async.waterfall([
function (next) {
user.isAdminOrGlobalModOrSelf(socket.uid, targetUid, next);
},
function (next) {
db.getSortedSetRange('categories:cid', 0, -1, next);
},
@ -201,11 +209,11 @@ function ignoreOrWatch(fn, socket, cid, callback) {
} while (cat);
async.each(cids, function (cid, next) {
fn(socket.uid, cid, next);
fn(targetUid, cid, next);
}, next);
},
function (next) {
topics.pushUnreadCount(socket.uid, next);
topics.pushUnreadCount(targetUid, next);
},
function (next) {
next(null, cids);

Loading…
Cancel
Save