From b3facdc7dbdb4285f3c4bf59352c2fc572c31870 Mon Sep 17 00:00:00 2001 From: FyloZ Date: Mon, 11 Jan 2021 14:05:03 -0500 Subject: [PATCH] Ajout des permissions pour le bouton ajouter dans l'interface Angular. --- .../company/pages/list/list.component.html | 3 ++- .../pages/list/list.component.html | 3 ++- .../material/pages/list/list.component.html | 3 ++- .../entity-list/entity-list.component.html | 2 +- .../entity-list/entity-list.component.ts | 7 +++++- .../src/app/modules/shared/model/employee.ts | 22 +++++++++++++++---- 6 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/main/frontend/src/app/modules/company/pages/list/list.component.html b/src/main/frontend/src/app/modules/company/pages/list/list.component.html index b528bb3..fe05358 100644 --- a/src/main/frontend/src/app/modules/company/pages/list/list.component.html +++ b/src/main/frontend/src/app/modules/company/pages/list/list.component.html @@ -2,5 +2,6 @@ [entities$]="companies$" [columns]="columns" [buttons]="buttons" - addLink="/catalog/company/add"> + addLink="/catalog/company/add" + addPermission="EDIT_COMPANY"> diff --git a/src/main/frontend/src/app/modules/material-type/pages/list/list.component.html b/src/main/frontend/src/app/modules/material-type/pages/list/list.component.html index 075efa2..661e7a5 100644 --- a/src/main/frontend/src/app/modules/material-type/pages/list/list.component.html +++ b/src/main/frontend/src/app/modules/material-type/pages/list/list.component.html @@ -2,5 +2,6 @@ [entities$]="materialTypes$" [columns]="columns" [buttons]="buttons" - addLink="/catalog/materialtype/add"> + addLink="/catalog/materialtype/add" + addPermission="EDIT_MATERIAL_TYPE"> diff --git a/src/main/frontend/src/app/modules/material/pages/list/list.component.html b/src/main/frontend/src/app/modules/material/pages/list/list.component.html index d46acc6..f14e70a 100644 --- a/src/main/frontend/src/app/modules/material/pages/list/list.component.html +++ b/src/main/frontend/src/app/modules/material/pages/list/list.component.html @@ -3,5 +3,6 @@ [columns]="columns" [icons]="icons" [buttons]="buttons" - addLink="/catalog/material/add"> + addLink="/catalog/material/add" + addPermission="EDIT_MATERIAL"> diff --git a/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.html b/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.html index 9c4338a..e0ac245 100644 --- a/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.html +++ b/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.html @@ -1,5 +1,5 @@
- +
diff --git a/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.ts b/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.ts index 0e3b513..3b5d102 100644 --- a/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.ts +++ b/src/main/frontend/src/app/modules/shared/components/entity-list/entity-list.component.ts @@ -15,6 +15,7 @@ export class EntityListComponent extends SubscribingComponent { @Input() icons: TableIcon[] @Input() buttons?: TableButton[] @Input() addLink: string + @Input() addPermission: EmployeePermission constructor( private accountService: AccountService @@ -23,7 +24,11 @@ export class EntityListComponent extends SubscribingComponent { } hasPermissionToUseButton(button: TableButton): boolean { - return !button.permission || this.accountService.hasPermission(button.permission) + return !button.permission || this.hasPermission(button.permission) + } + + hasPermission(permission: EmployeePermission): boolean { + return this.accountService.hasPermission(permission) } openExternalLink(button: TableButton, entity: T) { diff --git a/src/main/frontend/src/app/modules/shared/model/employee.ts b/src/main/frontend/src/app/modules/shared/model/employee.ts index 121ccd5..a4db062 100644 --- a/src/main/frontend/src/app/modules/shared/model/employee.ts +++ b/src/main/frontend/src/app/modules/shared/model/employee.ts @@ -24,6 +24,7 @@ export enum EmployeePermission { VIEW_MATERIAL = 'VIEW_MATERIAL', VIEW_MATERIAL_TYPE = 'VIEW_MATERIAL_TYPE', VIEW_COMPANY = 'VIEW_COMPANY', + VIEW_RECIPE = 'VIEW_RECIPE', VIEW = 'VIEW', VIEW_EMPLOYEE = 'VIEW_EMPLOYEE', VIEW_EMPLOYEE_GROUP = 'VIEW_EMPLOYEE_GROUP', @@ -31,6 +32,7 @@ export enum EmployeePermission { EDIT_MATERIAL = 'EDIT_MATERIAL', EDIT_MATERIAL_TYPE = 'EDIT_MATERIAL_TYPE', EDIT_COMPANY = 'EDIT_COMPANY', + EDIT_RECIPE = 'EDIT_RECIPE', EDIT = 'EDIT', EDIT_EMPLOYEE = 'EDIT_EMPLOYEE', EDIT_EMPLOYEE_PASSWORD = 'EDIT_EMPLOYEE_PASSWORD', @@ -39,6 +41,7 @@ export enum EmployeePermission { REMOVE_MATERIAL = 'REMOVE_MATERIAL', REMOVE_MATERIAL_TYPE = 'REMOVE_MATERIAL_TYPE', REMOVE_COMPANY = 'REMOVE_COMPANY', + REMOVE_RECIPE = 'REMOVE_RECIPE', REMOVE = 'REMOVE', REMOVE_EMPLOYEE = 'REMOVE_EMPLOYEE', REMOVE_EMPLOYEE_GROUP = 'REMOVE_EMPLOYEE_GROUP', @@ -56,10 +59,11 @@ export const mapped_permissions = { impliedPermissions: [] }, {permission: EmployeePermission.VIEW_COMPANY, description: 'Voir les bannières', impliedPermissions: []}, + {permission: EmployeePermission.VIEW_RECIPE, description: 'Voir les couleurs', impliedPermissions: []}, { permission: EmployeePermission.VIEW, description: 'Voir', - impliedPermissions: [EmployeePermission.VIEW_MATERIAL, EmployeePermission.VIEW_MATERIAL_TYPE, EmployeePermission.VIEW_COMPANY] + impliedPermissions: [EmployeePermission.VIEW_MATERIAL, EmployeePermission.VIEW_MATERIAL_TYPE, EmployeePermission.VIEW_COMPANY, EmployeePermission.VIEW_RECIPE] }, {permission: EmployeePermission.VIEW_EMPLOYEE, description: 'Voir les employés', impliedPermissions: []}, {permission: EmployeePermission.VIEW_EMPLOYEE_GROUP, description: 'Voir les groupes', impliedPermissions: []}, @@ -80,15 +84,20 @@ export const mapped_permissions = { description: 'Modifier les bannières', impliedPermissions: [EmployeePermission.VIEW_COMPANY] }, + { + permission: EmployeePermission.EDIT_RECIPE, + description: 'Modifier les couleurs', + impliedPermissions: [EmployeePermission.VIEW_RECIPE] + }, { permission: EmployeePermission.EDIT, description: 'Modifier', - impliedPermissions: [EmployeePermission.EDIT_MATERIAL, EmployeePermission.EDIT_MATERIAL_TYPE, EmployeePermission.EDIT_COMPANY, EmployeePermission.VIEW] + impliedPermissions: [EmployeePermission.EDIT_MATERIAL, EmployeePermission.EDIT_MATERIAL_TYPE, EmployeePermission.EDIT_COMPANY, EmployeePermission.EDIT_RECIPE, EmployeePermission.VIEW] }, { permission: EmployeePermission.EDIT_EMPLOYEE, description: 'Modifier les employés', - impliedPermissions: [EmployeePermission.EDIT_EMPLOYEE] + impliedPermissions: [EmployeePermission.VIEW_EMPLOYEE] }, { permission: EmployeePermission.EDIT_EMPLOYEE_PASSWORD, @@ -117,10 +126,15 @@ export const mapped_permissions = { description: 'Supprimer des bannières', impliedPermissions: [EmployeePermission.EDIT_COMPANY] }, + { + permission: EmployeePermission.REMOVE_RECIPE, + description: 'Supprimer des couleurs', + impliedPermissions: [EmployeePermission.EDIT_RECIPE] + }, { permission: EmployeePermission.REMOVE, description: 'Supprimer', - impliedPermissions: [EmployeePermission.REMOVE_MATERIAL, EmployeePermission.REMOVE_MATERIAL_TYPE, EmployeePermission.REMOVE_COMPANY, EmployeePermission.EDIT] + impliedPermissions: [EmployeePermission.REMOVE_MATERIAL, EmployeePermission.REMOVE_MATERIAL_TYPE, EmployeePermission.REMOVE_COMPANY, EmployeePermission.REMOVE_RECIPE, EmployeePermission.EDIT] }, { permission: EmployeePermission.REMOVE_EMPLOYEE,