@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.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RegisterUser = exports.REGISTER_USER_KEY = void 0;
const common_1 = require("@nestjs/common");
exports.REGISTER_USER_KEY = 'rbac_register_user';
/**
* 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) { ... }
* ```
*/
const RegisterUser = (options = {}) => {
return (0, common_1.SetMetadata)(exports.REGISTER_USER_KEY, options);
};
exports.RegisterUser = RegisterUser;