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:
Barış Soner Uşaklı
2020-05-26 21:57:38 -04:00
committed by GitHub
parent a0e243eea1
commit ec5582b53c
30 changed files with 154 additions and 136 deletions

View File

@@ -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);
}
};