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) 1.33 kB
import { Pool } from 'pg'; export interface IPostgresUserRole { id?: string; name: string; description: string; created_at?: Date; updated_at?: Date; } export interface IPostgresFeaturePermission { feature_id: string; permission_ids: string[]; } export interface IPostgresUserRoleWithFeatures extends IPostgresUserRole { features?: { feature: { id: string; name: string; description: string; }; permissions: { id: string; name: string; description: string; }[]; }[]; } export declare class PostgresUserRole { private pool; constructor(pool: Pool); create(roleData: IPostgresUserRole): Promise<IPostgresUserRole>; findByName(name: string): Promise<IPostgresUserRole | null>; findById(id: string): Promise<IPostgresUserRole | null>; findByIdWithFeatures(id: string): Promise<IPostgresUserRoleWithFeatures | null>; update(id: string, updates: Partial<IPostgresUserRole>): Promise<void>; delete(id: string): Promise<void>; assignFeaturePermissions(roleId: string, featurePermissions: IPostgresFeaturePermission[]): Promise<void>; getAll(limit?: number, offset?: number): Promise<{ roles: IPostgresUserRole[]; total: number; }>; }