From 7eabb43bd4257b4129d67eaeda2aa27e8268dc78 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Tue, 18 Jun 2024 05:09:22 -0400 Subject: [PATCH] fix: i forgot to test reloading --- packages/backend/src/services/auth/PermissionService.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/backend/src/services/auth/PermissionService.js b/packages/backend/src/services/auth/PermissionService.js index 16a11636..d7f55e14 100644 --- a/packages/backend/src/services/auth/PermissionService.js +++ b/packages/backend/src/services/auth/PermissionService.js @@ -716,18 +716,21 @@ class PermissionService extends BaseService { } async get_higher_permissions (permission) { - const higher_perms = []; + const higher_perms = new Set() + higher_perms.add(permission); + const parent_perms = this.get_parent_permissions(permission); for ( const parent_perm of parent_perms ) { + higher_perms.add(parent_perm); for ( const exploder of this._permission_exploders ) { if ( ! exploder.matches(parent_perm) ) continue; const perms = await exploder.explode({ permission: parent_perm, }); - higher_perms.push(...perms); + for ( const perm of perms ) higher_perms.add(perm); } } - return higher_perms; + return Array.from(higher_perms); } get_parent_permissions (permission) {