From 666ff573ef0ba230b7622ca00e96507b4a121ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Mon, 14 Feb 2022 12:01:22 +0200 Subject: [PATCH] Dossier templates guard --- apps/red-ui/src/app/app-routing.module.ts | 3 +- .../src/app/guards/dossier-templates.guard.ts | 18 +++ apps/red-ui/src/app/guards/dossiers.guard.ts | 9 +- .../app/modules/admin/admin-routing.module.ts | 4 +- ...ossier-template-breadcrumbs.component.html | 18 +-- .../dossier-template-breadcrumbs.component.ts | 12 +- .../add-edit-dictionary-dialog.component.ts | 18 +-- ...edit-dossier-attribute-dialog.component.ts | 6 +- ...-edit-dossier-template-dialog.component.ts | 10 +- ...ributes-configurations-dialog.component.ts | 15 +- .../default-colors-screen.component.ts | 17 +- .../dictionary-listing-screen.component.ts | 53 ++----- .../dictionary-overview-screen.component.ts | 28 +--- ...ier-attributes-listing-screen.component.ts | 14 +- ...sier-templates-listing-screen.component.ts | 12 +- ...ile-attributes-listing-screen.component.ts | 31 ++-- .../dossier-template-info-screen.component.ts | 2 +- ...d-edit-justification-dialog.component.html | 8 +- ...add-edit-justification-dialog.component.ts | 13 +- .../justifications-dialog.service.ts | 3 +- .../justifications-screen.component.ts | 12 +- .../table-item/table-item.component.ts | 14 +- .../reports-screen.component.ts | 25 +-- .../rules-screen/rules-screen.component.ts | 15 +- .../watermark-screen.component.ts | 78 ++++----- .../admin/services/admin-dialog.service.ts | 6 - .../dossier-template-actions.component.ts | 32 +--- .../document-info-dialog.component.ts | 2 +- .../dossier-attributes.service.ts | 9 +- .../shared/services/dictionary.service.ts | 150 +++++++++--------- .../dossier-templates.service.ts | 82 +++++----- .../entity-services/dossiers.service.ts | 4 +- .../file-attributes.service.ts | 2 +- apps/red-ui/src/app/state/app-state.guard.ts | 2 - libs/common-ui | 2 +- 35 files changed, 337 insertions(+), 392 deletions(-) create mode 100644 apps/red-ui/src/app/guards/dossier-templates.guard.ts diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts index b13a5055e..d2f0a48ee 100644 --- a/apps/red-ui/src/app/app-routing.module.ts +++ b/apps/red-ui/src/app/app-routing.module.ts @@ -8,6 +8,7 @@ import { NgModule } from '@angular/core'; import { DownloadsListScreenComponent } from '@components/downloads-list-screen/downloads-list-screen.component'; import { AppStateGuard } from '@state/app-state.guard'; import { DossiersGuard } from '@guards/dossiers.guard'; +import { DossierTemplatesGuard } from '@guards/dossier-templates.guard'; const routes: Routes = [ { @@ -36,7 +37,7 @@ const routes: Routes = [ loadChildren: () => import('./modules/dossier/dossiers.module').then(m => m.DossiersModule), canActivate: [CompositeRouteGuard], data: { - routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard, DossiersGuard], + routeGuards: [AuthGuard, RedRoleGuard, DossierTemplatesGuard, AppStateGuard, DossiersGuard], requiredRoles: ['RED_USER', 'RED_MANAGER'], }, }, diff --git a/apps/red-ui/src/app/guards/dossier-templates.guard.ts b/apps/red-ui/src/app/guards/dossier-templates.guard.ts new file mode 100644 index 000000000..4d0995f44 --- /dev/null +++ b/apps/red-ui/src/app/guards/dossier-templates.guard.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; +import { firstValueFrom } from 'rxjs'; +import { DictionaryService } from '@shared/services/dictionary.service'; + +@Injectable({ providedIn: 'root' }) +export class DossierTemplatesGuard implements CanActivate { + constructor( + private readonly _dossierTemplatesService: DossierTemplatesService, + private readonly _dictionaryService: DictionaryService, + ) {} + + async canActivate(): Promise { + await firstValueFrom(this._dossierTemplatesService.loadAll()); + return true; + } +} diff --git a/apps/red-ui/src/app/guards/dossiers.guard.ts b/apps/red-ui/src/app/guards/dossiers.guard.ts index 66a37f509..7f056bf71 100644 --- a/apps/red-ui/src/app/guards/dossiers.guard.ts +++ b/apps/red-ui/src/app/guards/dossiers.guard.ts @@ -1,16 +1,11 @@ import { Injectable } from '@angular/core'; -import { CanActivate, Router } from '@angular/router'; +import { CanActivate } from '@angular/router'; import { DossiersService } from '@services/entity-services/dossiers.service'; -import { TranslateService } from '@ngx-translate/core'; import { firstValueFrom } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class DossiersGuard implements CanActivate { - constructor( - private readonly _dossiersService: DossiersService, - private readonly _translateService: TranslateService, - private readonly _router: Router, - ) {} + constructor(private readonly _dossiersService: DossiersService) {} async canActivate(): Promise { await firstValueFrom(this._dossiersService.loadAll()); diff --git a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts index 33215e35e..c4bdb3cf3 100644 --- a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts @@ -18,6 +18,7 @@ import { TrashScreenComponent } from './screens/trash/trash-screen.component'; import { GeneralConfigScreenComponent } from './screens/general-config/general-config-screen.component'; import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component'; import { BaseDossierTemplateScreenComponent } from './base-dossier-templates-screen/base-dossier-template-screen.component'; +import { DossierTemplatesGuard } from '../../guards/dossier-templates.guard'; const routes: Routes = [ { path: '', redirectTo: 'dossier-templates', pathMatch: 'full' }, @@ -129,8 +130,9 @@ const routes: Routes = [ ], }, ], + canActivate: [CompositeRouteGuard], data: { - routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard], + routeGuards: [AuthGuard, RedRoleGuard, DossierTemplatesGuard, AppStateGuard], requiredRoles: ['RED_MANAGER', 'RED_ADMIN'], }, }, diff --git a/apps/red-ui/src/app/modules/admin/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component.html b/apps/red-ui/src/app/modules/admin/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component.html index 0edc6758e..b7c2079b4 100644 --- a/apps/red-ui/src/app/modules/admin/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component.html +++ b/apps/red-ui/src/app/modules/admin/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component.html @@ -1,14 +1,14 @@