From c93eabbdc2096e7f0fa0a446fe6d3e25df40e498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 24 Mar 2022 01:02:07 +0200 Subject: [PATCH] Permissions --- .../admin-side-nav.component.html | 1 + .../admin-side-nav.component.ts | 5 ++ .../src/app/modules/admin/admin.module.ts | 4 +- .../base-entity-screen.component.html | 2 +- .../base-entity-screen.component.ts | 9 ++- .../add-entity-dialog.component.html} | 32 ++++----- .../add-entity-dialog.component.scss} | 0 .../add-entity-dialog.component.ts} | 18 ++--- .../entities-listing-screen.component.html | 17 ++--- .../entities-listing-screen.component.ts | 14 ++-- .../entities/screens/info/info.component.html | 23 +++--- .../entities/screens/info/info.component.scss | 6 ++ .../entities/screens/info/info.component.ts | 71 ++++++++++++++----- .../watermark-screen.component.html | 2 +- .../admin/services/admin-dialog.service.ts | 10 +-- .../edit-dossier-dictionary.component.html | 2 +- .../edit-dossier-dialog.component.html | 2 +- .../edit-dossier-dialog.component.scss | 8 +-- .../services/file-data.service.ts | 6 +- .../services/pdf-viewer.service.ts | 2 +- .../entity-services/dictionary.service.ts | 6 +- .../src/app/services/permissions.service.ts | 4 ++ apps/red-ui/src/assets/i18n/de.json | 6 +- apps/red-ui/src/assets/i18n/en.json | 16 ++--- libs/common-ui | 2 +- 25 files changed, 161 insertions(+), 107 deletions(-) rename apps/red-ui/src/app/modules/admin/dialogs/{add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html => add-entity-dialog/add-entity-dialog.component.html} (71%) rename apps/red-ui/src/app/modules/admin/dialogs/{add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.scss => add-entity-dialog/add-entity-dialog.component.scss} (100%) rename apps/red-ui/src/app/modules/admin/dialogs/{add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts => add-entity-dialog/add-entity-dialog.component.ts} (88%) diff --git a/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html b/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html index 4338e7eea..b23f4cb39 100644 --- a/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html +++ b/apps/red-ui/src/app/modules/admin/admin-side-nav/admin-side-nav.component.html @@ -2,6 +2,7 @@
- + diff --git a/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts b/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts index a72148bad..7f1796ce7 100644 --- a/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts @@ -1,12 +1,14 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { DOSSIER_TEMPLATE_ID, ENTITY_TYPE } from '@utils/constants'; import { ActivatedRoute, Router } from '@angular/router'; -import { firstValueFrom } from 'rxjs'; +import { firstValueFrom, Observable } from 'rxjs'; import { AdminDialogService } from '../services/admin-dialog.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; import { UserService } from '@services/user.service'; import { LoadingService } from '@iqser/common-ui'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; +import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; +import { map } from 'rxjs/operators'; @Component({ templateUrl: './base-entity-screen.component.html', @@ -14,6 +16,7 @@ import { DossierTemplatesService } from '@services/entity-services/dossier-templ }) export class BaseEntityScreenComponent { readonly currentUser = this._userService.currentUser; + readonly disabledItems$: Observable; readonly #dossierTemplateId: string; readonly #entityType: string; @@ -23,11 +26,15 @@ export class BaseEntityScreenComponent { private readonly _loadingService: LoadingService, private readonly _dialogService: AdminDialogService, private readonly _dictionaryService: DictionaryService, + private readonly _dictionaryMapService: DictionariesMapService, private readonly _dossierTemplatesService: DossierTemplatesService, private readonly _router: Router, ) { this.#dossierTemplateId = this._route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID); this.#entityType = this._route.snapshot.paramMap.get(ENTITY_TYPE); + this.disabledItems$ = this._dictionaryMapService + .watch$(this.#dossierTemplateId, this.#entityType) + .pipe(map(entity => (entity.hasDictionary ? [] : ['dictionary', 'false-positive', 'false-recommendations']))); } openDeleteDictionariesDialog() { diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/add-entity-dialog/add-entity-dialog.component.html similarity index 71% rename from apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html rename to apps/red-ui/src/app/modules/admin/dialogs/add-entity-dialog/add-entity-dialog.component.html index 7acf0cf23..e0f5d60a1 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-entity-dialog/add-entity-dialog.component.html @@ -6,31 +6,31 @@
- +
{{ dictionary?.type || (technicalName$ | async) || '-' }}
- + {{ dictionary.label }}
- + - +
- +
- +
- +