added any permissions check and added ALL Group permission
This commit is contained in:
parent
243612ebbc
commit
67255f3773
|
|
@ -67,8 +67,13 @@ function toPermissionObj(config: PermissionDef): Record<PermissionGroups, Record
|
|||
|
||||
for (const [name, definition] of Object.entries(config)) {
|
||||
obj[name] = {}
|
||||
obj[name]["ALL"] = 0;
|
||||
for (const [permission, value] of Object.entries(definition.permissions)) {
|
||||
if (permission == "ALL") {
|
||||
throw new Error(`permission must not be called ALL in group ${name}`)
|
||||
}
|
||||
obj[name][permission] = 1 << (curr_pos + value)
|
||||
obj[name]["ALL"] |= obj[name][permission]
|
||||
}
|
||||
for (const [meta, permissions] of Object.entries(definition?.meta_permissions ?? {})) {
|
||||
let mask = 0;
|
||||
|
|
@ -90,5 +95,6 @@ __validate_config(config)
|
|||
export default {
|
||||
...toPermissionObj(config),
|
||||
|
||||
has: (user_permissions: number, permission: number): boolean => (user_permissions & permission) > 0
|
||||
has: (user_permissions: number, permissions: number): boolean => (user_permissions & permissions) == permissions,
|
||||
any: (user_permissions: number, permissions: number): boolean => (user_permissions & permissions) > 0,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue