@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
36 lines (35 loc) • 1.07 kB
TypeScript
export declare const REGISTER_USER_KEY = "rbac_register_user";
export interface RegisterUserOptions {
userExtractor?: (body: any, user?: any) => {
user_id: string;
name?: string;
email?: string;
};
}
/**
* NestJS decorator that marks a route for automatic user registration in the RBAC system.
* Automatically assigns default role if configured and calls registration hooks.
*
* @param options - Optional user data extractor function
* @returns Method decorator
*
* @example
* ```typescript
* // Default extraction from request body
* @Post('signup')
* @RegisterUser()
* createUser(@Body() userData: CreateUserDto) { ... }
*
* // Custom user data extraction
* @Post('signup')
* @RegisterUser({
* userExtractor: (body, user) => ({
* user_id: body.id,
* name: body.fullName,
* email: body.emailAddress
* })
* })
* createUser(@Body() userData: CreateUserDto) { ... }
* ```
*/
export declare const RegisterUser: (options?: RegisterUserOptions) => import("@nestjs/common").CustomDecorator<string>;