feat(rbac): add PermissionGuard, @Public and @RequirePermission decorators

This commit is contained in:
2026-07-02 11:29:28 +08:00
parent cd62a6dbe2
commit c0b2ab9588
3 changed files with 49 additions and 0 deletions

View 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);

View File

@@ -0,0 +1,4 @@
import { SetMetadata } from '@nestjs/common';
export const IS_PUBLIC_KEY = 'isPublic';
export const Public = () => SetMetadata(IS_PUBLIC_KEY, true);