UNPKG

@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
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>; };