UNPKG

@dbs-portal/module-identity

Version:

Identity management module for user and role management

82 lines 2.14 kB
/** * Role management service */ import { HttpClient } from '@dbs-portal/core-api'; export class RoleService { httpClient; constructor() { this.httpClient = new HttpClient({ baseURL: '/api/identity/roles' }); } /** * Get paginated list of roles */ async getRoles(filters = {}) { const response = await this.httpClient.get('/', { params: filters }); return response.data; } /** * Get role by ID */ async getRole(id) { const response = await this.httpClient.get(`/${id}`); return response.data; } /** * Create new role */ async createRole(role) { const response = await this.httpClient.post('/', role); return response.data; } /** * Update existing role */ async updateRole(role) { const { id, ...updateData } = role; const response = await this.httpClient.put(`/${id}`, updateData); return response.data; } /** * Delete role */ async deleteRole(id) { await this.httpClient.delete(`/${id}`); } /** * Get role permissions */ async getRolePermissions(roleId) { const response = await this.httpClient.get(`/${roleId}/permissions`); return response.data; } /** * Grant permission to role */ async grantPermission(roleId, permissionName) { await this.httpClient.post(`/${roleId}/permissions/${permissionName}`); } /** * Revoke permission from role */ async revokePermission(roleId, permissionName) { await this.httpClient.delete(`/${roleId}/permissions/${permissionName}`); } /** * Set role permissions (replace all) */ async setPermissions(roleId, permissionNames) { await this.httpClient.put(`/${roleId}/permissions`, { permissionNames }); } /** * Get users in role */ async getRoleUsers(roleId) { const response = await this.httpClient.get(`/${roleId}/users`); return response.data; } } //# sourceMappingURL=role-service.js.map