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

42 lines (41 loc) 2.55 kB
import { Connection } from 'mongoose'; import { DatabaseAdapter, DatabaseUser, DatabaseRole, DatabaseFeature, DatabasePermission, FeaturePermissions, PaginatedResult } from './DatabaseAdapter'; export declare class MongoAdapter extends DatabaseAdapter { private connection; constructor(connection: Connection); init(): Promise<void>; createStandardPermissions(): Promise<void>; createUser(userData: DatabaseUser): Promise<DatabaseUser>; findUserByUserId(user_id: string): Promise<DatabaseUser | null>; findUserByUserIdWithRole(user_id: string): Promise<DatabaseUser | null>; updateUser(user_id: string, updates: Partial<DatabaseUser>): Promise<void>; deleteUser(user_id: string): Promise<void>; getAllUsers(limit?: number, offset?: number, search?: string): Promise<PaginatedResult<DatabaseUser>>; createRole(roleData: DatabaseRole): Promise<DatabaseRole>; findRoleByName(name: string): Promise<DatabaseRole | null>; findRoleById(id: string): Promise<DatabaseRole | null>; findRoleByIdWithFeatures(id: string): Promise<DatabaseRole | null>; updateRole(id: string, updates: Partial<DatabaseRole>): Promise<void>; deleteRole(id: string): Promise<void>; assignRoleFeaturePermissions(roleId: string, featurePermissions: FeaturePermissions[]): Promise<void>; getAllRoles(limit?: number, offset?: number): Promise<PaginatedResult<DatabaseRole>>; createFeature(featureData: DatabaseFeature): Promise<DatabaseFeature>; findFeatureByName(name: string): Promise<DatabaseFeature | null>; findFeatureById(id: string): Promise<DatabaseFeature | null>; updateFeature(id: string, updates: Partial<DatabaseFeature>): Promise<void>; deleteFeature(id: string): Promise<void>; getAllFeatures(limit?: number, offset?: number): Promise<PaginatedResult<DatabaseFeature>>; createPermission(permissionData: DatabasePermission): Promise<DatabasePermission>; findPermissionByName(name: string): Promise<DatabasePermission | null>; findPermissionById(id: string): Promise<DatabasePermission | null>; updatePermission(id: string, updates: Partial<DatabasePermission>): Promise<void>; deletePermission(id: string): Promise<void>; getAllPermissions(limit?: number, offset?: number): Promise<PaginatedResult<DatabasePermission>>; getUserFeaturePermissions(user_id: string, featureName: string): Promise<string[]>; getDashboardStats(): Promise<{ users: number; roles: number; features: number; permissions: number; }>; }