feat(rbac): add PermissionGuard, @Public and @RequirePermission decorators
This commit is contained in:
11
backend/src/auth/decorators/permission.decorator.ts
Normal file
11
backend/src/auth/decorators/permission.decorator.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
|
||||
export const PERMISSION_KEY = 'permissions';
|
||||
|
||||
/**
|
||||
* 声明接口所需权限。
|
||||
* 多次调用 = AND 逻辑(需要同时满足所有组);
|
||||
* 单次调用多个参数 = OR 逻辑(满足其中一个即可)。
|
||||
*/
|
||||
export const RequirePermission = (...permissions: string[]) =>
|
||||
SetMetadata(PERMISSION_KEY, permissions);
|
||||
4
backend/src/auth/decorators/public.decorator.ts
Normal file
4
backend/src/auth/decorators/public.decorator.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
|
||||
export const IS_PUBLIC_KEY = 'isPublic';
|
||||
export const Public = () => SetMetadata(IS_PUBLIC_KEY, true);
|
||||
Reference in New Issue
Block a user