diff --git a/src-ui/src/app/services/permissions.service.ts b/src-ui/src/app/services/permissions.service.ts index 0627dca63..3ca744fc5 100644 --- a/src-ui/src/app/services/permissions.service.ts +++ b/src-ui/src/app/services/permissions.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core' +import { Injectable, signal } from '@angular/core' import { ObjectWithPermissions } from '../data/object-with-permissions' import { User } from '../data/user' @@ -39,16 +39,19 @@ export enum PermissionType { export class PermissionsService { private permissions: string[] private currentUser: User + private permissionsVersion = signal(0) public initialize(permissions: string[], currentUser: User) { this.permissions = permissions this.currentUser = currentUser + this.permissionsVersion.update((version) => version + 1) } public currentUserCan( action: PermissionAction, type: PermissionType ): boolean { + this.permissionsVersion() return ( this.currentUser?.is_superuser || this.permissions?.includes(this.getPermissionCode(action, type))