mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 17:16:14 +01:00
closes #1398
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
var topics = require('../topics'),
|
||||
categories = require('../categories'),
|
||||
threadTools = require('../threadTools'),
|
||||
categoryTools = require('../categoryTools'),
|
||||
index = require('./index'),
|
||||
user = require('../user'),
|
||||
db = require('./../database'),
|
||||
@@ -265,6 +266,39 @@ SocketTopics.move = function(socket, data, callback) {
|
||||
}, callback);
|
||||
};
|
||||
|
||||
SocketTopics.moveAll = function(socket, data, callback) {
|
||||
if(!data || !data.cid || !data.currentCid) {
|
||||
return callback(new Error('[[error:invalid-data]]'));
|
||||
}
|
||||
|
||||
async.parallel({
|
||||
from: function(next) {
|
||||
categoryTools.privileges(data.currentCid, socket.uid, next);
|
||||
},
|
||||
to: function(next) {
|
||||
categoryTools.privileges(data.cid, socket.uid, next);
|
||||
}
|
||||
}, function(err, results) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
if (!results.from.admin && (!results.from.moderator || !results.to.moderator)) {
|
||||
return callback(new Error('[[error:no-privileges]]'));
|
||||
}
|
||||
|
||||
categories.getTopicIds(data.currentCid, 0, -1, function(err, tids) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
async.each(tids, function(tid, next) {
|
||||
threadTools.move(tid, data.cid, next);
|
||||
}, callback);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
SocketTopics.followCheck = function(socket, tid, callback) {
|
||||
threadTools.isFollowing(tid, socket.uid, callback);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user