nestjs-roles
Version:
Create custom roles guard and decorator
25 lines • 1.09 kB
JavaScript
;
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