@dbs-portal/module-identity
Version:
Identity management module for user and role management
82 lines • 2.14 kB
JavaScript
/**
* 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