From 16750eff89fe1cf7cc0e040c32d6a6cfe2eabd38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 24 Nov 2021 20:42:09 +0200 Subject: [PATCH] RED-2800: Password policy error message --- .../reset-password.component.ts | 28 +++++++++++-------- apps/red-ui/src/assets/i18n/en.json | 9 +++--- libs/red-domain/src/lib/files/file.model.ts | 1 - 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts index c7ac97448..1839e3bfe 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts @@ -1,8 +1,9 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { UserService } from '@services/user.service'; -import { LoadingService } from '@iqser/common-ui'; +import { LoadingService, Toaster } from '@iqser/common-ui'; import { User } from '@red/domain'; +import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @Component({ selector: 'redaction-reset-password', @@ -18,21 +19,26 @@ export class ResetPasswordComponent { private readonly _formBuilder: FormBuilder, private readonly _userService: UserService, private readonly _loadingService: LoadingService, + private readonly _toaster: Toaster, ) {} async save() { this._loadingService.start(); - await this._userService - .resetPassword( - { - password: this.form.get('temporaryPassword').value, - temporary: true, - }, - this.user.id, - ) - .toPromise(); + try { + await this._userService + .resetPassword( + { + password: this.form.get('temporaryPassword').value, + temporary: true, + }, + this.user.id, + ) + .toPromise(); + this.toggleResetPassword.emit(); + } catch (error) { + this._toaster.error(_('reset-password-dialog.error.password-policy')); + } this._loadingService.stop(); - this.toggleResetPassword.emit(); } private _getForm(): FormGroup { diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index 4e38c9def..25a5d7ceb 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -733,8 +733,7 @@ "assigned-to-me": "Assigned to me", "assigned-to-others": "Assigned to others", "recent": "Recent ({hours} h)", - "unassigned": "Unassigned", - "new": "New" + "unassigned": "Unassigned" }, "reanalyse-dossier": { "error": "Failed to schedule files for reanalysis. Please try again.", @@ -1093,12 +1092,12 @@ "error": "Re-processing required", "full-reprocess": "Processing", "indexing": "Processing", + "new": "New", "ocr-processing": "OCR Processing", "processed": "Processed", "processing": "Processing...", "reprocess": "Processing", "unassigned": "Unassigned", - "new": "New", "under-approval": "Under Approval", "under-review": "Under Review", "unprocessed": "Unprocessed" @@ -1189,7 +1188,6 @@ }, "initials-avatar": { "unassigned": "Unassigned", - "new": "New", "you": "You" }, "justifications": "Justifications", @@ -1438,6 +1436,9 @@ "cancel": "Cancel", "save": "Save" }, + "error": { + "password-policy": "Failed to reset password. The new password doesn't match the password policy." + }, "form": { "password": "Temporary password" }, diff --git a/libs/red-domain/src/lib/files/file.model.ts b/libs/red-domain/src/lib/files/file.model.ts index 355d8aebe..2b38c7920 100644 --- a/libs/red-domain/src/lib/files/file.model.ts +++ b/libs/red-domain/src/lib/files/file.model.ts @@ -103,7 +103,6 @@ export class File extends Entity implements IFile { this.isProcessing = isProcessingStatuses.includes(this.processingStatus); this.isApproved = this.workflowStatus === WorkflowFileStatuses.APPROVED; this.isNew = this.workflowStatus === WorkflowFileStatuses.NEW; - // this.isUnassigned = !this.assignee; this.isUnderReview = this.workflowStatus === WorkflowFileStatuses.UNDER_REVIEW; this.isUnderApproval = this.workflowStatus === WorkflowFileStatuses.UNDER_APPROVAL; this.canBeApproved = !this.analysisRequired && !this.hasSuggestions;