From 7d72d6c755a0311eb6fa1c12828c55c158c1cfe5 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Fri, 5 Jan 2024 13:08:53 +0200 Subject: [PATCH] RED-8164: fixed UsersAdmin stuck in infinite loop. --- apps/red-ui/src/app/utils/main.guard.ts | 5 ++++- libs/common-ui | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/red-ui/src/app/utils/main.guard.ts b/apps/red-ui/src/app/utils/main.guard.ts index 030064729..824ece853 100644 --- a/apps/red-ui/src/app/utils/main.guard.ts +++ b/apps/red-ui/src/app/utils/main.guard.ts @@ -13,6 +13,7 @@ import { NGXLogger } from 'ngx-logger'; import { firstValueFrom } from 'rxjs'; import { tap } from 'rxjs/operators'; import { APP_BASE_HREF } from '@angular/common'; +import { getCurrentUser } from '@users/user.service'; async function redirectToLastDossierTemplate(router: Router, state: RouterStateSnapshot, baseHref: string, lastDossierTemplate: string) { const lastUrlSegment = window.location.pathname.split('/').filter(Boolean).pop(); @@ -43,6 +44,8 @@ export function mainGuard(): AsyncGuard { const generalConfig$ = inject(GeneralSettingsService).getGeneralConfigurations(); const updatedDisplayName$ = generalConfig$.pipe(tap(config => configService.updateDisplayName(config.displayName))); + const currentUser = getCurrentUser(); + const isUsersAdminOnly = currentUser.isUserAdmin && currentUser.roles.length === 1; await Promise.all([ systemPreferencesService.loadPreferencesIfNeeded(), @@ -52,7 +55,7 @@ export function mainGuard(): AsyncGuard { const lastDossierTemplate = userPreferenceService.getLastDossierTemplate(); - if (lastDossierTemplate) { + if (lastDossierTemplate && !isUsersAdminOnly) { await redirectToLastDossierTemplate(router, state, baseHref, lastDossierTemplate); } diff --git a/libs/common-ui b/libs/common-ui index da086cdaa..bd77067dc 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit da086cdaa648d1d35a9eb16ee23cb223e1de2316 +Subproject commit bd77067dc7a10bad1b21a3e0807f4ea6413da4ad