UNPKG

@opentiny/tiny-toolkit-pro

Version:

TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板

32 lines (30 loc) 898 B
import { CanActivate, ExecutionContext, HttpException, HttpStatus, Injectable, } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; import { I18nTranslations } from '../.generate/i18n.generated'; import { I18nContext } from 'nestjs-i18n'; @Injectable() export class RejectRequestGuard implements CanActivate { constructor(private readonly reflector: Reflector) {} async canActivate(ctx: ExecutionContext): Promise<boolean> { const i18n = I18nContext.current<I18nTranslations>(); const rejectRequest = this.reflector.getAllAndOverride('reject', [ ctx.getHandler(), ctx.getClass(), ]); if (!rejectRequest) { return true; } throw new HttpException( i18n.t('exception.preview.reject-this-request', { lang: I18nContext.current().lang, }), HttpStatus.BAD_REQUEST ); } }