added any permissions check and added ALL Group permission

This commit is contained in:
Patrick 2025-08-20 21:17:17 +02:00
parent 243612ebbc
commit 67255f3773
1 changed files with 7 additions and 1 deletions

View File

@ -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,
}