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

34 lines (33 loc) 1.02 kB
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>; }