mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-07 13:57:24 +02:00
feat: allow modifying default category privileges
This commit is contained in:
@@ -45,17 +45,7 @@ module.exports = function (Categories) {
|
||||
category.backgroundImage = data.backgroundImage;
|
||||
}
|
||||
|
||||
const result = await plugins.hooks.fire('filter:category.create', { category: category, data: data });
|
||||
category = result.category;
|
||||
|
||||
|
||||
await db.setObject('category:' + category.cid, category);
|
||||
if (!category.descriptionParsed) {
|
||||
await Categories.parseDescription(category.cid, category.description);
|
||||
}
|
||||
await db.sortedSetsAdd(['categories:cid', 'cid:' + parentCid + ':children'], category.order, category.cid);
|
||||
|
||||
const defaultPrivileges = [
|
||||
let defaultPrivileges = [
|
||||
'groups:find',
|
||||
'groups:read',
|
||||
'groups:topics:read',
|
||||
@@ -73,9 +63,31 @@ module.exports = function (Categories) {
|
||||
'groups:posts:view_deleted',
|
||||
'groups:purge',
|
||||
]);
|
||||
await privileges.categories.give(defaultPrivileges, category.cid, 'registered-users');
|
||||
await privileges.categories.give(modPrivileges, category.cid, ['administrators', 'Global Moderators']);
|
||||
await privileges.categories.give(['groups:find', 'groups:read', 'groups:topics:read'], category.cid, ['guests', 'spiders']);
|
||||
let guestPrivileges = ['groups:find', 'groups:read', 'groups:topics:read'];
|
||||
|
||||
const result = await plugins.hooks.fire('filter:category.create', {
|
||||
category: category,
|
||||
data: data,
|
||||
defaultPrivileges: defaultPrivileges,
|
||||
modPrivileges: modPrivileges,
|
||||
guestPrivileges: guestPrivileges,
|
||||
});
|
||||
category = result.category;
|
||||
|
||||
await db.setObject(`category:${category.cid}`, category);
|
||||
if (!category.descriptionParsed) {
|
||||
await Categories.parseDescription(category.cid, category.description);
|
||||
}
|
||||
|
||||
await db.sortedSetAddBulk([
|
||||
['categories:cid', category.order, category.cid],
|
||||
[`cid:${parentCid}:children`, category.order, category.cid],
|
||||
['categories:name', 0, `${data.name.substr(0, 200).toLowerCase()}:${category.cid}`],
|
||||
]);
|
||||
|
||||
await privileges.categories.give(result.defaultPrivileges, category.cid, 'registered-users');
|
||||
await privileges.categories.give(result.modPrivileges, category.cid, ['administrators', 'Global Moderators']);
|
||||
await privileges.categories.give(result.guestPrivileges, category.cid, ['guests', 'spiders']);
|
||||
|
||||
cache.del(['categories:cid', 'cid:' + parentCid + ':children']);
|
||||
if (data.cloneFromCid && parseInt(data.cloneFromCid, 10)) {
|
||||
|
||||
Reference in New Issue
Block a user