From 35198bd006338b496cc01190a4454c29e2ea2225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Fri, 19 Nov 2021 22:39:12 +0200 Subject: [PATCH] RED-2819: Disabled accounts redirect fix, updated common --- .../dossier-template-actions.component.ts | 5 +++-- .../add-edit-dictionary-dialog.component.ts | 7 ++++--- .../add-edit-dossier-template-dialog.component.ts | 7 +++++-- .../user-details/user-details.component.ts | 5 +++-- .../digital-signature-screen.component.ts | 5 +++-- .../dossier-templates-listing-screen.component.ts | 4 ++-- .../file-attributes-listing-screen.component.ts | 4 ++-- .../modules/dossier/services/manual-annotation.service.ts | 6 +++--- .../src/app/services/entity-services/dossiers.service.ts | 6 +++--- apps/red-ui/src/app/services/general-settings.service.ts | 6 ++++-- libs/common-ui | 2 +- 11 files changed, 33 insertions(+), 24 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/components/dossier-template-actions/dossier-template-actions.component.ts b/apps/red-ui/src/app/modules/admin/components/dossier-template-actions/dossier-template-actions.component.ts index 17f8bd24d..b435bca35 100644 --- a/apps/red-ui/src/app/modules/admin/components/dossier-template-actions/dossier-template-actions.component.ts +++ b/apps/red-ui/src/app/modules/admin/components/dossier-template-actions/dossier-template-actions.component.ts @@ -2,10 +2,11 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { AppStateService } from '@state/app-state.service'; import { Router } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { CircleButtonTypes, CONFLICT, LoadingService, Toaster } from '@iqser/common-ui'; +import { CircleButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { UserService } from '@services/user.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; +import { HttpStatusCode } from '@angular/common/http'; @Component({ selector: 'redaction-dossier-template-actions', @@ -57,7 +58,7 @@ export class DossierTemplateActionsComponent implements OnInit { await this._router.navigate(['main', 'admin']); }) .catch(error => { - if (error.status === CONFLICT) { + if (error.status === HttpStatusCode.Conflict) { this._toaster.error(_('dossier-templates-listing.error.conflict')); } else { this._toaster.error(_('dossier-templates-listing.error.generic')); diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts index cfb116a53..4c8d470b9 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dictionary-dialog/add-edit-dictionary-dialog.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Observable } from 'rxjs'; -import { BAD_REQUEST, BaseDialogComponent, CONFLICT, shareDistinctLast, Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, shareDistinctLast, Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { AppStateService } from '@state/app-state.service'; @@ -11,6 +11,7 @@ import { DictionaryService } from '@shared/services/dictionary.service'; import { Dictionary, IDictionary } from '@red/domain'; import { UserService } from '@services/user.service'; import { map } from 'rxjs/operators'; +import { HttpStatusCode } from '@angular/common/http'; @Component({ selector: 'redaction-add-edit-dictionary-dialog', @@ -105,9 +106,9 @@ export class AddEditDictionaryDialogComponent extends BaseDialogComponent { .toPromise() .then(() => this._dialogRef.close(true)) .catch(error => { - if (error.status === CONFLICT) { + if (error.status === HttpStatusCode.Conflict) { this._toaster.error(_('add-edit-dictionary.error.dictionary-already-exists')); - } else if (error.status === BAD_REQUEST) { + } else if (error.status === HttpStatusCode.BadRequest) { this._toaster.error(_('add-edit-dictionary.error.invalid-color-or-rank')); } else { this._toaster.error(_('add-edit-dictionary.error.generic')); diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts index 99cdcff77..507204c97 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-template-dialog/add-edit-dossier-template-dialog.component.ts @@ -7,9 +7,10 @@ import { Moment } from 'moment'; import { applyIntervalConstraints } from '@utils/date-inputs-utils'; import { downloadTypesTranslations } from '../../../../translations/download-types-translations'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; -import { BaseDialogComponent, CONFLICT, Toaster } from '@iqser/common-ui'; +import { BaseDialogComponent, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DownloadFileType, IDossierTemplate } from '@red/domain'; +import { HttpStatusCode } from '@angular/common/http'; @Component({ templateUrl: './add-edit-dossier-template-dialog.component.html', @@ -108,7 +109,9 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent { this.dialogRef.close(true); } catch (error: any) { const message = - error.status === CONFLICT ? _('add-edit-dossier-template.error.conflict') : _('add-edit-dossier-template.error.generic'); + error.status === HttpStatusCode.Conflict + ? _('add-edit-dossier-template.error.conflict') + : _('add-edit-dossier-template.error.generic'); this._toaster.error(message, { error }); } } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts index 93c5fc42f..a4941ee7d 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts @@ -1,11 +1,12 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AdminDialogService } from '../../../services/admin-dialog.service'; -import { CONFLICT, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; +import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { rolesTranslations } from '../../../../../translations/roles-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { User } from '@red/domain'; import { UserService } from '@services/user.service'; +import { HttpStatusCode } from '@angular/common/http'; @Component({ selector: 'redaction-user-details', @@ -119,7 +120,7 @@ export class UserDetailsComponent implements OnInit { this.closeDialog.emit(true); }) .catch(error => { - if (error.status === CONFLICT) { + if (error.status === HttpStatusCode.Conflict) { this._toaster.error(_('add-edit-user.error.email-already-used')); } else { this._toaster.error(_('add-edit-user.error.generic')); diff --git a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts index c7de0bedb..54dd0a374 100644 --- a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts @@ -1,12 +1,13 @@ import { Component, OnDestroy } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { lastIndexOfEnd } from '@utils/functions'; -import { AutoUnsubscribe, BAD_REQUEST, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; +import { AutoUnsubscribe, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { RouterHistoryService } from '@services/router-history.service'; import { DigitalSignatureService } from '../../services/digital-signature.service'; import { IDigitalSignature } from '@red/domain'; +import { HttpStatusCode } from '@angular/common/http'; @Component({ selector: 'redaction-digital-signature-screen', @@ -55,7 +56,7 @@ export class DigitalSignatureScreenComponent extends AutoUnsubscribe implements this._toaster.success(_('digital-signature-screen.action.save-success')); }, error => { - if (error.status === BAD_REQUEST) { + if (error.status === HttpStatusCode.BadRequest) { this._toaster.error(_('digital-signature-screen.action.certificate-not-valid-error')); } else { this._toaster.error(_('digital-signature-screen.action.save-error')); diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts index e74eaab38..94dbda669 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts @@ -5,7 +5,6 @@ import { AdminDialogService } from '../../services/admin-dialog.service'; import { DossierTemplate } from '@red/domain'; import { CircleButtonTypes, - CONFLICT, DefaultListingServicesTmp, EntitiesService, IconButtonTypes, @@ -18,6 +17,7 @@ import { UserService } from '@services/user.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { RouterHistoryService } from '@services/router-history.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; +import { HttpStatusCode } from '@angular/common/http'; @Component({ templateUrl: './dossier-templates-listing-screen.component.html', @@ -90,7 +90,7 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent { - if (error.status === CONFLICT) { + if (error.status === HttpStatusCode.Conflict) { this._toaster.error(_('dossier-templates-listing.error.conflict')); } else { this._toaster.error(_('dossier-templates-listing.error.generic')); diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts index b7dc65b46..63c984f73 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts @@ -3,7 +3,6 @@ import { AppStateService } from '@state/app-state.service'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { CircleButtonTypes, - CONFLICT, DefaultListingServices, IconButtonTypes, ListingComponent, @@ -17,6 +16,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { FileAttributeConfig, IFileAttributeConfig, IFileAttributesConfig } from '@red/domain'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; +import { HttpStatusCode } from '@angular/common/http'; @Component({ templateUrl: './file-attributes-listing-screen.component.html', @@ -119,7 +119,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent { console.log('error'); - if (error.status === CONFLICT) { + if (error.status === HttpStatusCode.Conflict) { this._toaster.error(_('file-attributes-listing.error.conflict')); } else { this._toaster.error(_('file-attributes-listing.error.generic')); diff --git a/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts b/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts index c0e18acf8..f1a81dc1f 100644 --- a/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/manual-annotation.service.ts @@ -11,13 +11,13 @@ import { IResizeRequest, } from '@red/domain'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; -import { CONFLICT, GenericService, RequiredParam, Toaster, Validate } from '@iqser/common-ui'; +import { GenericService, RequiredParam, Toaster, Validate } from '@iqser/common-ui'; import { map, tap } from 'rxjs/operators'; import { PermissionsService } from '@services/permissions.service'; import { AnnotationActionMode } from '../models/annotation-action-mode.model'; import { annotationActionsTranslations } from '../translations/annotation-actions-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { HttpErrorResponse } from '@angular/common/http'; +import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http'; @Injectable() export class ManualAnnotationService extends GenericService { @@ -60,7 +60,7 @@ export class ManualAnnotationService extends GenericService tap( () => this._toaster.success(this._getMessage(mode, modifyDictionary), { positionClass: 'toast-file-preview' }), (error: HttpErrorResponse) => { - const isConflict = error.status === CONFLICT; + const isConflict = error.status === HttpStatusCode.Conflict; this._toaster.error(this._getMessage(mode, modifyDictionary, true, isConflict), { error, params: { diff --git a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts index 9c7c10672..7f4bbdc68 100644 --- a/apps/red-ui/src/app/services/entity-services/dossiers.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossiers.service.ts @@ -1,10 +1,10 @@ import { Injectable, Injector } from '@angular/core'; -import { CONFLICT, EntitiesService, List, mapEach, QueryParam, RequiredParam, shareLast, Toaster, Validate } from '@iqser/common-ui'; +import { EntitiesService, List, mapEach, QueryParam, RequiredParam, shareLast, Toaster, Validate } from '@iqser/common-ui'; import { Dossier, IDossier, IDossierRequest } from '@red/domain'; import { catchError, filter, map, mapTo, switchMap, tap } from 'rxjs/operators'; import { combineLatest, iif, Observable, of, throwError } from 'rxjs'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { HttpErrorResponse } from '@angular/common/http'; +import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http'; import { DossierStatsService } from '@services/entity-services/dossier-stats.service'; export interface IDossiersStats { @@ -46,7 +46,7 @@ export class DossiersService extends EntitiesService { @Validate() createOrUpdate(@RequiredParam() dossier: IDossierRequest): Observable { const showToast = (error: HttpErrorResponse) => { - this._toaster.error(error.status === CONFLICT ? DOSSIER_EXISTS_MSG : GENERIC_MGS); + this._toaster.error(error.status === HttpStatusCode.Conflict ? DOSSIER_EXISTS_MSG : GENERIC_MGS); return throwError(error); }; diff --git a/apps/red-ui/src/app/services/general-settings.service.ts b/apps/red-ui/src/app/services/general-settings.service.ts index b817352c8..9eae86e67 100644 --- a/apps/red-ui/src/app/services/general-settings.service.ts +++ b/apps/red-ui/src/app/services/general-settings.service.ts @@ -1,17 +1,19 @@ import { Injectable, Injector } from '@angular/core'; import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; import { IGeneralConfiguration } from '@red/domain'; +import { UserService } from '@services/user.service'; +import { of } from 'rxjs'; @Injectable({ providedIn: 'root', }) export class GeneralSettingsService extends GenericService { - constructor(protected readonly _injector: Injector) { + constructor(protected readonly _injector: Injector, private readonly _userService: UserService) { super(_injector, 'configuration'); } getGeneralConfigurations() { - return this._getOne(['general']); + return this._userService.currentUser?.hasAnyREDRoles ? this._getOne(['general']) : of({ displayName: 'RedactManager' }); } @Validate() diff --git a/libs/common-ui b/libs/common-ui index 6d9d4f4b2..aebdfd0f2 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 6d9d4f4b2410956e80c44d19d817d077c81e35db +Subproject commit aebdfd0f2eaaf6b4551c5c822ca9533a7f37fda2