From 3658c6567292738eb474e2552222c59fdd8f685c Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Sat, 29 Oct 2022 18:50:18 +0300 Subject: [PATCH] update user service --- src/lib/permissions/types.ts | 4 ++++ src/lib/users/services/iqser-user.service.ts | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib/permissions/types.ts b/src/lib/permissions/types.ts index bd8a109..77aec2a 100644 --- a/src/lib/permissions/types.ts +++ b/src/lib/permissions/types.ts @@ -38,6 +38,10 @@ export type IqserRoute = Route & { data?: { permissions?: IqserPermissionsRouterData; }; + + children?: List; }; +export type IqserRoutes = IqserRoute[]; + export const DEFAULT_REDIRECT_KEY = 'default'; diff --git a/src/lib/users/services/iqser-user.service.ts b/src/lib/users/services/iqser-user.service.ts index 78048e3..a7a90d1 100644 --- a/src/lib/users/services/iqser-user.service.ts +++ b/src/lib/users/services/iqser-user.service.ts @@ -1,4 +1,4 @@ -import { inject, Injectable, InjectFlags } from '@angular/core'; +import { inject, Injectable } from '@angular/core'; import { KeycloakService } from 'keycloak-angular'; import { BehaviorSubject, firstValueFrom, Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; @@ -34,8 +34,8 @@ export abstract class IqserUserService< protected readonly _baseHref = inject(BASE_HREF); protected readonly _keycloakService = inject(KeycloakService); protected readonly _cacheApiService = inject(CacheApiService); - protected readonly _permissionsService = inject(IqserPermissionsService, InjectFlags.Optional); - protected readonly _rolesService = inject(IqserRolesService, InjectFlags.Optional); + protected readonly _permissionsService = inject(IqserPermissionsService, { optional: true }); + protected readonly _rolesService = inject(IqserRolesService, { optional: true }); constructor() { super(); @@ -86,7 +86,7 @@ export abstract class IqserUserService< const decoded: IToken = jwt_decode(token); const userId = decoded.sub; const realm = this._keycloakService.getKeycloakInstance().realm || ''; - this._permissionsService?.load(decoded.resource_access[realm].roles); + this._permissionsService?.load(decoded.resource_access[realm]?.roles ?? []); const roles = this._keycloakService.getUserRoles(true).filter(role => this._rolesFilter(role)); this._rolesService?.load(roles);