mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-07 05:16:14 +02:00
category whitelist for replying to posts, lots of refactoring, too
This commit is contained in:
32
src/categoryTools.js
Normal file
32
src/categoryTools.js
Normal file
@@ -0,0 +1,32 @@
|
||||
var Groups = require('./groups'),
|
||||
User = require('./user'),
|
||||
|
||||
async = require('async'),
|
||||
|
||||
CategoryTools = {};
|
||||
|
||||
CategoryTools.privileges = function(cid, uid, callback) {
|
||||
async.parallel({
|
||||
"+r": function(next) {
|
||||
Groups.isMemberByGroupName(uid, 'cid:' + cid + ':privileges:+r', next);
|
||||
},
|
||||
"+w": function(next) {
|
||||
Groups.isMemberByGroupName(uid, 'cid:' + cid + ':privileges:+w', next);
|
||||
},
|
||||
moderator: function(next) {
|
||||
User.isModerator(uid, cid, next);
|
||||
},
|
||||
admin: function(next) {
|
||||
User.isAdministrator(uid, next);
|
||||
}
|
||||
}, function(err, privileges) {
|
||||
callback(err, !privileges ? null : {
|
||||
read: privileges['+r'] || privileges.moderator || privileges.admin,
|
||||
write: privileges['+w'] || privileges.moderator || privileges.admin,
|
||||
editable: privileges.moderator || privileges.admin,
|
||||
view_deleted: privileges.moderator || privileges.admin
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = CategoryTools;
|
||||
Reference in New Issue
Block a user