@mamoorali295/rbac
Version:
Complete RBAC (Role-Based Access Control) system for Node.js with Express middleware, NestJS integration, GraphQL support, MongoDB & PostgreSQL support, modern admin dashboard, TypeScript support, and dynamic permission management
34 lines (33 loc) • 1.52 kB
TypeScript
import { IFeaturePermission } from "../models/UserRole";
/**
* User role controller providing comprehensive CRUD operations for RBAC roles and permissions.
* Manages the complex relationships between roles, features, and permissions.
*
* @namespace userRoleController
*
* @example
* ```typescript
* import { RBAC } from '@sheikh295/rbac';
* const { userRoleController } = RBAC.controllers;
*
* // Get all roles
* const { userRoles } = await userRoleController.getAllRoles();
*
* // Get all permissions
* const { permissions } = await userRoleController.getPermissions();
*
* // Create a new role with features and permissions
* const roleFeatures = [{ feature: featureId, permissions: [permissionId1, permissionId2] }];
* await userRoleController.createRole('manager', 'Department manager', roleFeatures);
* ```
*/
export declare const userRoleController: {
getAllRoles: () => Promise<any>;
createRole: (name: string, description: string, features: IFeaturePermission[]) => Promise<any>;
deleteRole: (roleId: string) => Promise<any>;
addFeatureToUserRole: (roleId: string, featureIds: string[]) => Promise<any>;
removeFeatureFromUserRole: (roleId: string, featureIds: string[]) => Promise<any>;
addPermissionToFeatureInUserRole: (roleId: string, featureIds: string[], permissionIds: string[]) => Promise<any>;
removePermissionToFeatureInUserRole: (roleId: string, featureIds: string[], permissionIds: string[]) => Promise<any>;
getPermissions: () => Promise<any>;
};