Resolving role naming conflicts

This commit is contained in:
Thomas Georgios Giannos 2023-12-12 17:51:40 +02:00
parent 24bfd69e4d
commit 9f781853a7
9 changed files with 24 additions and 27 deletions

View File

@ -2,6 +2,6 @@ package eu.eudat.service.keycloak;
public enum KeycloakRole { public enum KeycloakRole {
Admin, DatasetTemplateEditor, DatasetProfileManager, Manager, User Admin, DescriptionTemplateEditor, Manager, User
} }

View File

@ -9,9 +9,6 @@ keycloak-resources:
Manager: Manager:
groupId: 1753f7a7-cedb-4ad4-ae5f-96fe9bdabe3e groupId: 1753f7a7-cedb-4ad4-ae5f-96fe9bdabe3e
groupTitle: role-manager groupTitle: role-manager
DatasetProfileManager: DescriptionTemplateEditor:
groupId: 969aa109-9c4d-4f12-ba9b-4a84b2e5a394 groupId: b0ea3cf3-21b0-4c6b-9c42-fb09f0e09dbb
groupTitle: role-dataset-template-editor groupTitle: role-description-template-editor
DatasetTemplateEditor:
groupId: 969aa109-9c4d-4f12-ba9b-4a84b2e5a394
groupTitle: role-dataset-template-editor

View File

@ -13,9 +13,9 @@ permissions:
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
allowAuthenticated: false allowAuthenticated: false
DatasetProfileManagerRole: DescriptionTemplateEditorRole:
roles: roles:
- DatasetProfileManager - DescriptionTemplateEditor
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
allowAuthenticated: false allowAuthenticated: false
@ -244,21 +244,21 @@ permissions:
BrowseDescriptionTemplate: BrowseDescriptionTemplate:
roles: roles:
- Admin - Admin
- DatasetProfileManager - DescriptionTemplateEditor
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
allowAuthenticated: false allowAuthenticated: false
EditDescriptionTemplate: EditDescriptionTemplate:
roles: roles:
- Admin - Admin
- DatasetProfileManager - DescriptionTemplateEditor
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
allowAuthenticated: false allowAuthenticated: false
DeleteDescriptionTemplate: DeleteDescriptionTemplate:
roles: roles:
- Admin - Admin
- DatasetProfileManager - DescriptionTemplateEditor
claims: [ ] claims: [ ]
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
@ -266,7 +266,7 @@ permissions:
CloneDescriptionTemplate: CloneDescriptionTemplate:
roles: roles:
- Admin - Admin
- DatasetProfileManager - DescriptionTemplateEditor
claims: [ ] claims: [ ]
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
@ -274,7 +274,7 @@ permissions:
CreateNewVersionDescriptionTemplate: CreateNewVersionDescriptionTemplate:
roles: roles:
- Admin - Admin
- DatasetProfileManager - DescriptionTemplateEditor
claims: [ ] claims: [ ]
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
@ -282,7 +282,7 @@ permissions:
ImportDescriptionTemplate: ImportDescriptionTemplate:
roles: roles:
- Admin - Admin
- DatasetProfileManager - DescriptionTemplateEditor
claims: [ ] claims: [ ]
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
@ -290,7 +290,7 @@ permissions:
ExportDescriptionTemplate: ExportDescriptionTemplate:
roles: roles:
- Admin - Admin
- DatasetProfileManager - DescriptionTemplateEditor
claims: [ ] claims: [ ]
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false

View File

@ -2,5 +2,5 @@ export enum AppRole {
Admin = "Admin", Admin = "Admin",
Manager = "Manager", Manager = "Manager",
User = "User", User = "User",
DatasetTemplateEditor = "DatasetProfileManager" DescriptionTemplateEditor = "DescriptionTemplateEditor"
} }

View File

@ -58,7 +58,7 @@ export class EnumUtils {
case AppRole.Admin: return this.language.instant('TYPES.APP-ROLE.ADMIN'); case AppRole.Admin: return this.language.instant('TYPES.APP-ROLE.ADMIN');
case AppRole.User: return this.language.instant('TYPES.APP-ROLE.USER'); case AppRole.User: return this.language.instant('TYPES.APP-ROLE.USER');
case AppRole.Manager: return this.language.instant('TYPES.APP-ROLE.MANAGER'); case AppRole.Manager: return this.language.instant('TYPES.APP-ROLE.MANAGER');
case AppRole.DatasetTemplateEditor: return this.language.instant('TYPES.APP-ROLE.DESCRIPTION-TEMPLATE-EDITOR'); case AppRole.DescriptionTemplateEditor: return this.language.instant('TYPES.APP-ROLE.DESCRIPTION-TEMPLATE-EDITOR');
} }
} }

View File

@ -14,7 +14,7 @@ const routes: Routes = [
data: { data: {
title: 'GENERAL.TITLES.DATASET-PROFILES-NEW', title: 'GENERAL.TITLES.DATASET-PROFILES-NEW',
authContext: { authContext: {
permissions: [AppRole.Admin, AppRole.DatasetTemplateEditor] permissions: [AppRole.Admin, AppRole.DescriptionTemplateEditor]
} }
}, },
canActivate: [SpecialAuthGuard], canActivate: [SpecialAuthGuard],
@ -26,7 +26,7 @@ const routes: Routes = [
data: { data: {
title: 'GENERAL.TITLES.DATASET-PROFILES-EDIT', title: 'GENERAL.TITLES.DATASET-PROFILES-EDIT',
authContext: { authContext: {
permissions: [AppRole.Admin, AppRole.DatasetTemplateEditor] permissions: [AppRole.Admin, AppRole.DescriptionTemplateEditor]
} }
}, },
canActivate: [SpecialAuthGuard], canActivate: [SpecialAuthGuard],
@ -38,7 +38,7 @@ const routes: Routes = [
data: { data: {
title: 'GENERAL.TITLES.DATASET-PROFILES-CLONE', title: 'GENERAL.TITLES.DATASET-PROFILES-CLONE',
authContext: { authContext: {
permissions: [AppRole.Admin, AppRole.DatasetTemplateEditor] permissions: [AppRole.Admin, AppRole.DescriptionTemplateEditor]
} }
}, },
canActivate: [SpecialAuthGuard], canActivate: [SpecialAuthGuard],
@ -50,7 +50,7 @@ const routes: Routes = [
data: { data: {
title: 'GENERAL.TITLES.DATASET-PROFILES-NEW-VERSION', title: 'GENERAL.TITLES.DATASET-PROFILES-NEW-VERSION',
authContext: { authContext: {
permissions: [AppRole.Admin, AppRole.DatasetTemplateEditor] permissions: [AppRole.Admin, AppRole.DescriptionTemplateEditor]
} }
}, },
canActivate: [SpecialAuthGuard], canActivate: [SpecialAuthGuard],
@ -61,7 +61,7 @@ const routes: Routes = [
component: DatasetProfileListingComponent, component: DatasetProfileListingComponent,
data: { data: {
authContext: { authContext: {
permissions: [AppRole.Admin, AppRole.DatasetTemplateEditor] permissions: [AppRole.Admin, AppRole.DescriptionTemplateEditor]
} }
}, },
canActivate: [SpecialAuthGuard] canActivate: [SpecialAuthGuard]
@ -71,7 +71,7 @@ const routes: Routes = [
component: DatasetProfileListingComponent, component: DatasetProfileListingComponent,
data: { data: {
authContext: { authContext: {
permissions: [AppRole.Admin, AppRole.DatasetTemplateEditor] permissions: [AppRole.Admin, AppRole.DescriptionTemplateEditor]
} }
}, },
canActivate: [SpecialAuthGuard] canActivate: [SpecialAuthGuard]

View File

@ -2,7 +2,7 @@
<div *ngIf="!this.nowEditing"class="roles col"> <div *ngIf="!this.nowEditing"class="roles col">
<ng-container *ngFor="let role of this.formGroup.get('roles').value"> <ng-container *ngFor="let role of this.formGroup.get('roles').value">
<div> <div>
<span class="user-role" [ngClass]="{'user': role == appRole.User, 'manager': role == appRole.Manager, 'admin': role == appRole.Admin, 'dataset-template-editor': role == appRole.DatasetTemplateEditor}"> <span class="user-role" [ngClass]="{'user': role == appRole.User, 'manager': role == appRole.Manager, 'admin': role == appRole.Admin, 'description-template-editor': role == appRole.DescriptionTemplateEditor}">
{{enumUtils.toAppRoleString(role)}} {{enumUtils.toAppRoleString(role)}}
</span> </span>
</div> </div>

View File

@ -85,7 +85,7 @@
padding-right: 10px; padding-right: 10px;
} }
.dataset-template-editor { .description-template-editor {
// display: flex; // display: flex;
// justify-content: center; // justify-content: center;
// align-items: center; // align-items: center;

View File

@ -159,7 +159,7 @@ export class SidebarComponent implements OnInit {
title: 'SIDE-BAR.ADMIN', title: 'SIDE-BAR.ADMIN',
routes: DATASET_TEMPLATE_ROUTES, routes: DATASET_TEMPLATE_ROUTES,
requiresAuthentication: true, requiresAuthentication: true,
requiresSpecialPermission: AppRole.DatasetTemplateEditor, requiresSpecialPermission: AppRole.DescriptionTemplateEditor,
requiresAdmin: false, requiresAdmin: false,
isGeneral: false isGeneral: false
} }