mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-09 00:52:55 +01:00
@@ -59,83 +59,53 @@ Categories.setPrivilege = function(socket, data, callback) {
|
||||
return callback(new Error('[[error:invalid-data]]'));
|
||||
}
|
||||
|
||||
groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.uid, callback);
|
||||
groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.member, callback);
|
||||
};
|
||||
|
||||
Categories.getPrivilegeSettings = function(socket, cid, callback) {
|
||||
var privileges = ['find', 'read', 'topics:create', 'topics:reply', 'mods'];
|
||||
|
||||
async.reduce(privileges, [], function(members, privilege, next) {
|
||||
groups.get('cid:' + cid + ':privileges:' + privilege, { expand: true }, function(err, groupObj) {
|
||||
if (err || !groupObj) {
|
||||
return next(null, members);
|
||||
}
|
||||
|
||||
members = members.concat(groupObj.members);
|
||||
|
||||
next(null, members);
|
||||
});
|
||||
}, function(err, members) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
// Remove duplicates
|
||||
var present = [],
|
||||
x = members.length,
|
||||
uid;
|
||||
while(x--) {
|
||||
uid = parseInt(members[x].uid, 10);
|
||||
if (present.indexOf(uid) !== -1) {
|
||||
members.splice(x, 1);
|
||||
} else {
|
||||
present.push(uid);
|
||||
}
|
||||
}
|
||||
|
||||
callback(err, members);
|
||||
});
|
||||
privileges.categories.list(cid, callback);
|
||||
};
|
||||
|
||||
Categories.setGroupPrivilege = function(socket, data, callback) {
|
||||
if(!data) {
|
||||
return callback(new Error('[[error:invalid-data]]'));
|
||||
}
|
||||
// Categories.setGroupPrivilege = function(socket, data, callback) {
|
||||
// if(!data) {
|
||||
// return callback(new Error('[[error:invalid-data]]'));
|
||||
// }
|
||||
|
||||
groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.name, function (err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
// groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.name, function (err) {
|
||||
// if (err) {
|
||||
// return callback(err);
|
||||
// }
|
||||
|
||||
groups.hide('cid:' + data.cid + ':privileges:' + data.privilege, callback);
|
||||
});
|
||||
};
|
||||
// groups.hide('cid:' + data.cid + ':privileges:' + data.privilege, callback);
|
||||
// });
|
||||
// };
|
||||
|
||||
Categories.groupsList = function(socket, cid, callback) {
|
||||
groups.list({
|
||||
expand: false,
|
||||
isAdmin: true,
|
||||
showSystemGroups: true
|
||||
}, function(err, data) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
// Categories.groupsList = function(socket, cid, callback) {
|
||||
// groups.list({
|
||||
// expand: false,
|
||||
// isAdmin: true,
|
||||
// showSystemGroups: true
|
||||
// }, function(err, data) {
|
||||
// if(err) {
|
||||
// return callback(err);
|
||||
// }
|
||||
|
||||
// Remove privilege groups
|
||||
data = data.filter(function(groupObj) {
|
||||
return groupObj.name.indexOf(':privileges:') === -1;
|
||||
});
|
||||
// // Remove privilege groups
|
||||
// data = data.filter(function(groupObj) {
|
||||
// return groupObj.name.indexOf(':privileges:') === -1;
|
||||
// });
|
||||
|
||||
async.map(data, function(groupObj, next) {
|
||||
privileges.categories.groupPrivileges(cid, groupObj.name, function(err, privileges) {
|
||||
if(err) {
|
||||
return next(err);
|
||||
}
|
||||
// async.map(data, function(groupObj, next) {
|
||||
// privileges.categories.groupPrivileges(cid, groupObj.name, function(err, privileges) {
|
||||
// if(err) {
|
||||
// return next(err);
|
||||
// }
|
||||
|
||||
groupObj.privileges = privileges;
|
||||
next(null, groupObj);
|
||||
});
|
||||
}, callback);
|
||||
});
|
||||
};
|
||||
// groupObj.privileges = privileges;
|
||||
// next(null, groupObj);
|
||||
// });
|
||||
// }, callback);
|
||||
// });
|
||||
// };
|
||||
|
||||
module.exports = Categories;
|
||||
Reference in New Issue
Block a user