mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 20:16:04 +01:00
feat: add privilege give/rescind hooks (#8336)
* feat: add privilege give/rescind hooks action:privileges.categories.give/rescind action:privileges.global.give/rescind breaking change, privileges.categories.give/rescind and privileges.global.give/rescind use full privilege name for groups ie `groups:find` instead of `find` * fix: tests, privileges renamed
This commit is contained in:
committed by
GitHub
parent
a0e243eea1
commit
ec5582b53c
@@ -153,18 +153,18 @@ function moveToFront(groupNames, groupToMove) {
|
||||
}
|
||||
}
|
||||
|
||||
helpers.giveOrRescind = async function (method, privileges, cids, groupNames) {
|
||||
groupNames = Array.isArray(groupNames) ? groupNames : [groupNames];
|
||||
helpers.giveOrRescind = async function (method, privileges, cids, members) {
|
||||
members = Array.isArray(members) ? members : [members];
|
||||
cids = Array.isArray(cids) ? cids : [cids];
|
||||
for (const groupName of groupNames) {
|
||||
for (const member of members) {
|
||||
const groupKeys = [];
|
||||
cids.forEach((cid) => {
|
||||
privileges.forEach((privilege) => {
|
||||
groupKeys.push('cid:' + cid + ':privileges:groups:' + privilege);
|
||||
groupKeys.push('cid:' + cid + ':privileges:' + privilege);
|
||||
});
|
||||
});
|
||||
/* eslint-disable no-await-in-loop */
|
||||
await method(groupKeys, groupName);
|
||||
await method(groupKeys, member);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user