import { Autoload, Config, Init, Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core'; import { IMidwayKoaContext, IWebMiddleware, NextFunction } from '@midwayjs/koa'; import { CommonException } from '@certd/lib-server'; import { UserService } from '../../modules/sys/authority/service/user-service.js'; import { logger } from '@certd/basic'; /** * 重置密码模式 */ @Provide() @Autoload() @Scope(ScopeEnum.Singleton) export class ResetPasswdMiddleware implements IWebMiddleware { @Inject() userService: UserService; @Config('system.resetAdminPasswd') private resetAdminPasswd: boolean; resolve() { return async (ctx: IMidwayKoaContext, next: NextFunction) => { if (this.resetAdminPasswd === true) { throw new CommonException('1号管理员密码已修改为123456,当前为重置密码模式,无法响应请求,请关闭重置密码模式恢复正常服务'); } await next(); }; } @Init() async init() { if (this.resetAdminPasswd === true) { logger.info('开始重置1号管理员用户的密码'); const newPasswd = '123456'; await this.userService.resetPassword(1, newPasswd); await this.userService.updateStatus(1, 1); logger.info(`重置1号管理员用户的密码完成,新密码为:${newPasswd}`); } } }