feat: wip casl policies (#334)
* feat: wip casl policies * feat: add ability guard on pipeline resolvers * fix: test
This commit is contained in:
6
server/src/decorators/check-abilities.decorator.ts
Normal file
6
server/src/decorators/check-abilities.decorator.ts
Normal file
@ -0,0 +1,6 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { AbilityHandler } from 'src/ability/interfaces/ability-handler.interface';
|
||||
|
||||
export const CHECK_ABILITIES_KEY = 'check_abilities';
|
||||
export const CheckAbilities = (...handlers: AbilityHandler[]) =>
|
||||
SetMetadata(CHECK_ABILITIES_KEY, handlers);
|
||||
10
server/src/decorators/user-ability.decorator.ts
Normal file
10
server/src/decorators/user-ability.decorator.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
|
||||
import { getRequest } from 'src/utils/extract-request';
|
||||
|
||||
export const UserAbility = createParamDecorator(
|
||||
(_: unknown, context: ExecutionContext) => {
|
||||
const request = getRequest(context);
|
||||
|
||||
return request.ability;
|
||||
},
|
||||
);
|
||||
Reference in New Issue
Block a user