RED-2819: Disabled accounts redirect fix, updated common

This commit is contained in:
Adina Țeudan 2021-11-19 22:39:12 +02:00
parent 9d07bc3c1a
commit 35198bd006
11 changed files with 33 additions and 24 deletions

View File

@ -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'));

View File

@ -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'));

View File

@ -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 });
}
}

View File

@ -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'));

View File

@ -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'));

View File

@ -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<Dos
.delete(templateIds)
.toPromise()
.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'));

View File

@ -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<FileA
.toPromise()
.catch(error => {
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'));

View File

@ -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<IManualAddResponse> {
@ -60,7 +60,7 @@ export class ManualAnnotationService extends GenericService<IManualAddResponse>
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: {

View File

@ -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<Dossier, IDossier> {
@Validate()
createOrUpdate(@RequiredParam() dossier: IDossierRequest): Observable<Dossier | undefined> {
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);
};

View File

@ -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<IGeneralConfiguration> {
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()

@ -1 +1 @@
Subproject commit 6d9d4f4b2410956e80c44d19d817d077c81e35db
Subproject commit aebdfd0f2eaaf6b4551c5c822ca9533a7f37fda2