UNPKG

nestjs-roles

Version:

Create custom roles guard and decorator

25 lines 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRolesGuard = createRolesGuard; const common_1 = require("@nestjs/common"); const check_roles_1 = require("./check-roles"); const role_reflection_token_1 = require("./role-reflection-token"); function createRolesGuard(getRole) { return class RolesGuard { reflector; static Params = (...allowedRoles) => (0, common_1.SetMetadata)(role_reflection_token_1.roleReflectionToken, allowedRoles); constructor(reflector) { this.reflector = reflector; } async canActivate(context) { const requiredRoles = this.reflector.getAllAndOverride(role_reflection_token_1.roleReflectionToken, [context.getHandler(), context.getClass()]); // roles are not set - handler is allowed for all if (!requiredRoles) { return true; } const role = await getRole(context); return (0, check_roles_1.checkRoles)(requiredRoles, role); } }; } //# sourceMappingURL=index.js.map