@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.02 kB
TypeScript
import { CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
/**
* NestJS guard that automatically registers users in the RBAC system.
* Uses the @RegisterUser decorator to determine user extraction logic.
* Automatically assigns default role if configured and calls registration hooks.
*
* @example
* ```typescript
* // Apply to specific routes
* @Post('signup')
* @UseGuards(RegisterUserGuard)
* @RegisterUser()
* createUser(@Body() userData: CreateUserDto) { ... }
*
* // With custom user extraction
* @Post('signup')
* @UseGuards(RegisterUserGuard)
* @RegisterUser({
* userExtractor: (body) => ({
* user_id: body.id,
* name: body.fullName,
* email: body.emailAddress
* })
* })
* createUser(@Body() userData: CreateUserDto) { ... }
* ```
*/
export declare class RegisterUserGuard implements CanActivate {
private reflector;
constructor(reflector: Reflector);
canActivate(context: ExecutionContext): Promise<boolean>;
}