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

35 lines (34 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CheckPermissions = exports.PERMISSIONS_KEY = void 0; const common_1 = require("@nestjs/common"); exports.PERMISSIONS_KEY = 'rbac_permissions'; /** * NestJS decorator that marks a route or class for RBAC permission checking. * Can auto-infer permissions from the route path or use explicitly provided options. * * @param options - Optional feature and permission specification * @returns Method decorator * * @example * ```typescript * // Auto-inferred permissions from route path * @Get('billing/invoices') * @CheckPermissions() * getInvoices() { ... } * * // Explicit permissions * @Post('admin/reset') * @CheckPermissions({ feature: 'admin', permission: 'sudo' }) * resetSystem() { ... } * * // Class-level permissions (applied to all methods) * @Controller('billing') * @CheckPermissions({ feature: 'billing' }) * export class BillingController { ... } * ``` */ const CheckPermissions = (options = {}) => { return (0, common_1.SetMetadata)(exports.PERMISSIONS_KEY, options); }; exports.CheckPermissions = CheckPermissions;