14 lines
623 B
TypeScript
14 lines
623 B
TypeScript
import { createParamDecorator, ExecutionContext, SetMetadata } from '@nestjs/common';
|
||
|
||
export const IS_PUBLIC_KEY = 'isPublic';
|
||
/** 标记接口为公开接口(跳过登录校验)。 */
|
||
export const Public = () => SetMetadata(IS_PUBLIC_KEY, true);
|
||
|
||
export const PERMISSIONS_KEY = 'permissions';
|
||
/** 要求当前用户具备给定权限标识(resource code)。 */
|
||
export const RequirePermissions = (...permissions: string[]) => SetMetadata(PERMISSIONS_KEY, permissions);
|
||
|
||
export const CurrentUser = createParamDecorator((_data: unknown, ctx: ExecutionContext) => {
|
||
return ctx.switchToHttp().getRequest().user;
|
||
});
|