diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts index 2f7bc49bb..00fefd5c1 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component.ts @@ -94,10 +94,6 @@ export class AssignReviewerApproverDialogComponent { return user; } - isOwner(userId: string): boolean { - return userId === this.selectedUser; - } - async save() { this._loadingService.start(); try { diff --git a/apps/red-ui/src/app/services/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index ecd0da266..cde00d67a 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -12,19 +12,21 @@ export class PermissionsService { private readonly _featuresService: FeaturesService, ) {} - canEditEntities(user = this._userService.currentUser): boolean { - return user.isAdmin; + get #userId(): string { + return this._userService.currentUser.id; } - canDeleteEntities(entity: Dictionary | Dictionary[], user = this._userService.currentUser): boolean { + canEditEntities(): boolean { + return this.isAdmin(); + } + + canDeleteEntities(entity: Dictionary | Dictionary[]): boolean { const entities = entity instanceof Dictionary ? [entity] : entity; - return ( - entities.length && this.canEditEntities(user) && entities.reduce((acc, _entity) => this._canDeleteEntity(_entity) && acc, true) - ); + return entities.length && this.canEditEntities() && entities.reduce((acc, _entity) => this._canDeleteEntity(_entity) && acc, true); } - canPerformDossierStatesActions(user = this._userService.currentUser): boolean { - return user.isAdmin; + canPerformDossierStatesActions(): boolean { + return this.isAdmin(); } isReviewerOrApprover(file: File, dossier: Dossier): boolean { @@ -74,7 +76,7 @@ export class PermissionsService { } isFileAssignee(file: File): boolean { - return file.assignee === this._userService.currentUser.id; + return file.assignee === this.#userId; } canDeleteFile(file: File | File[], dossier: Dossier): boolean { @@ -130,16 +132,16 @@ export class PermissionsService { return files.reduce((acc, _file) => this._canSetUnderApproval(_file, dossier) && acc, true); } - isOwner(dossier: Dossier, user = this._userService.currentUser): boolean { - return dossier.ownerId === user.id; + isOwner(dossier: IDossier): boolean { + return dossier.ownerId === this.#userId; } - isApprover(dossier: Dossier, user = this._userService.currentUser): boolean { - return dossier.approverIds.indexOf(user.id) >= 0; + isApprover(dossier: Dossier): boolean { + return dossier.approverIds.indexOf(this.#userId) >= 0; } - isDossierMember(dossier: Dossier, user = this._userService.currentUser): boolean { - return dossier.memberIds.includes(user.id); + isDossierMember(dossier: Dossier): boolean { + return dossier.memberIds.includes(this.#userId); } canPerformAnnotationActions(file: File, dossier: Dossier): boolean { @@ -172,53 +174,51 @@ export class PermissionsService { } canDeleteDossier(dossier: IDossier): boolean { - return dossier.ownerId === this._userService.currentUser.id; + return this.isOwner(dossier); } canHardDeleteDossier(dossier: IDossier): boolean { - return this._userService.currentUser.isManager; + return this.isOwner(dossier); } canRestoreDossier(dossier: IDossier): boolean { - return this._userService.currentUser.isManager; + return this.isManager(); } canArchiveDossier(dossier: Dossier): boolean { - return ( - this._featuresService.isEnabled(DOSSIERS_ARCHIVE) && dossier.isActive && dossier.ownerId === this._userService.currentUser.id - ); + return this._featuresService.isEnabled(DOSSIERS_ARCHIVE) && dossier.isActive && this.isOwner(dossier); } - canEditDossier(dossier: Dossier, user = this._userService.currentUser): boolean { - return user.isManager && !!dossier?.ownerId; + canEditDossier(dossier: Dossier): boolean { + return this.isManager() && !!dossier?.ownerId; } - canEditDossierDictionary(dossier: Dossier, user = this._userService.currentUser): boolean { - return dossier.isActive && this.isDossierMember(dossier, user); + canEditDossierDictionary(dossier: Dossier): boolean { + return dossier.isActive && this.isDossierMember(dossier); } - canEditDossierDictionaryDisplayName(dossier: Dossier, user = this._userService.currentUser): boolean { - return dossier.isActive && this.isOwner(dossier, user); + canEditDossierDictionaryDisplayName(dossier: Dossier): boolean { + return dossier.isActive && this.isOwner(dossier); } - canEditDossierDictionaryAddAction(dossier: Dossier, user = this._userService.currentUser): boolean { - return dossier.isActive && this.isOwner(dossier, user); + canEditDossierDictionaryAddAction(dossier: Dossier): boolean { + return dossier.isActive && this.isOwner(dossier); } - canEditDossierAttributes(dossier: Dossier, user = this._userService.currentUser): boolean { - return dossier.isActive && this.isOwner(dossier, user); + canEditDossierAttributes(dossier: Dossier): boolean { + return dossier.isActive && this.isOwner(dossier); } canEditTeamMembers(): boolean { return this.isManager(); } - isAdmin(user = this._userService.currentUser): boolean { - return user.isAdmin; + isAdmin(): boolean { + return this._userService.currentUser.isAdmin; } - isManager(user = this._userService.currentUser): boolean { - return user.isManager; + isManager(): boolean { + return this._userService.currentUser.isManager; } canAddComment(file: File, dossier: Dossier): boolean { @@ -230,7 +230,7 @@ export class PermissionsService { } canDeleteComment(comment: IComment, file: File, dossier: Dossier) { - return (comment.user === this._userService.currentUser.id || this.isApprover(dossier)) && !file.isApproved; + return (comment.user === this.#userId || this.isApprover(dossier)) && !file.isApproved; } canImportRedactions(file: File, dossier: Dossier) { @@ -265,18 +265,11 @@ export class PermissionsService { } private _canEnableAutoAnalysis(file: File, dossier: Dossier): boolean { - return ( - dossier.isActive && file.excludedFromAutomaticAnalysis && file.assignee === this._userService.currentUser.id && !file.isApproved - ); + return dossier.isActive && file.excludedFromAutomaticAnalysis && this.isFileAssignee(file) && !file.isApproved; } private _canDisableAutoAnalysis(file: File, dossier: Dossier): boolean { - return ( - dossier.isActive && - !file.excludedFromAutomaticAnalysis && - file.assignee === this._userService.currentUser.id && - !file.isApproved - ); + return dossier.isActive && !file.excludedFromAutomaticAnalysis && this.isFileAssignee(file) && !file.isApproved; } private _canAssignToSelf(file: File, dossier: Dossier): boolean {