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