mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-09 07:25:46 +01:00
allow admins mods to watch/ignore categories for other users
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user