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