From 79a966111c22ad1415a086608ea446f653d1df42 Mon Sep 17 00:00:00 2001 From: Mihail Date: Mon, 23 Mar 2026 15:37:12 +0100 Subject: [PATCH 1/9] feat: add users and plugins frontend, add GetAllRoles backend endpoint --- .../users-and-permissions-plugin.service.ts | 39 +++++ .../src/app/settings/settings.component.html | 119 +++++++++++++ .../src/app/settings/settings.component.scss | 164 ++++++++++++++++++ .../src/app/settings/settings.component.ts | 151 +++++++++++++++- .../Api/UsersAndPermissionsController.cs | 15 ++ Dappi.HeadlessCms/AppExtensions.cs | 2 +- .../Controllers/PluginsController.cs | 9 +- 7 files changed, 491 insertions(+), 8 deletions(-) create mode 100644 CCUI.DAPPI/src/app/services/auth/users-and-permissions-plugin.service.ts diff --git a/CCUI.DAPPI/src/app/services/auth/users-and-permissions-plugin.service.ts b/CCUI.DAPPI/src/app/services/auth/users-and-permissions-plugin.service.ts new file mode 100644 index 0000000..03e1398 --- /dev/null +++ b/CCUI.DAPPI/src/app/services/auth/users-and-permissions-plugin.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { BASE_API_URL } from '../../../Constants'; + +export interface UsersAndPermissionsRoleItem { + Id: string; + Name: string; + IsDefaultForAuthenticatedUser: boolean; +} + +export interface UsersAndPermissionsPermissionItem { + PermissionName: string; + Description: string; + Selected: boolean; +} + +export type UsersAndPermissionsRolePermissionsResponse = Record< + string, + UsersAndPermissionsPermissionItem[] +>; + +@Injectable({ providedIn: 'root' }) +export class UsersAndPermissionsPluginService { + constructor(private http: HttpClient) {} + + getAllRoles(): Observable { + return this.http.get(`${BASE_API_URL}usersandpermissions/roles`); + } + + getRolePermissions(roleName: string): Observable { + const params = new HttpParams().set('roleName', roleName); + + return this.http.get( + `${BASE_API_URL}usersandpermissions`, + { params } + ); + } +} diff --git a/CCUI.DAPPI/src/app/settings/settings.component.html b/CCUI.DAPPI/src/app/settings/settings.component.html index 58d92dd..ae5d4ae 100644 --- a/CCUI.DAPPI/src/app/settings/settings.component.html +++ b/CCUI.DAPPI/src/app/settings/settings.component.html @@ -17,6 +17,22 @@
+
Plugins
+ + @if (usersAndPermissionsEnabled) { + + } + +
+
User Administration