@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
33 lines (32 loc) • 1.02 kB
TypeScript
import { CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
/**
* NestJS guard that checks RBAC permissions for protected routes.
* Uses the @CheckPermissions decorator to determine required permissions.
* Can auto-infer permissions from route paths or use explicit configuration.
*
* @example
* ```typescript
* // Apply globally
* app.useGlobalGuards(new PermissionsGuard(reflector));
*
* // Apply to specific controllers
* @Controller('billing')
* @UseGuards(PermissionsGuard)
* export class BillingController { ... }
*
* // Apply to specific routes
* @Get('invoices')
* @UseGuards(PermissionsGuard)
* @CheckPermissions()
* getInvoices() { ... }
* ```
*/
export declare class PermissionsGuard implements CanActivate {
private reflector;
constructor(reflector: Reflector);
canActivate(context: ExecutionContext): Promise<boolean>;
private getUserIdentity;
private getFeatureAndPermission;
private inferFeatureAndPermission;
}