perf: 重置管理员密码同时启用管理员账户,避免之前禁用了,重置密码还是登录不进去

pull/229/head
xiaojunnuo 2024-10-28 10:26:14 +08:00
parent 13eb0231ac
commit f92d918a1e
4 changed files with 27 additions and 14 deletions

View File

@ -28,18 +28,14 @@ services:
# 设置环境变量即可自定义certd配置
# 配置项见: packages/ui/certd-server/src/config/config.default.ts
# 配置规则: certd_ + 配置项, 点号用_代替
# ↓↓↓↓ ------------------------------------ 这里可以设置http代理
#- HTTPS_PROXY=http://xxxxxx:xx
#- HTTP_PROXY=http://xxxxxx:xx
# ↓↓↓↓ ----------------------------- 如果忘记管理员密码可以设置为true重启之后管理员密码将改成123456然后请及时修改回false
- certd_system_resetAdminPasswd=false
# ↓↓↓↓ -------------------------- 如果设置为true启动后所有配置了cron的流水线任务都将被立即触发一次
- certd_cron_immediateTriggerOnce=false
# ↓↓↓↓ -------------------------------- 配置证书和key则表示https方式启动使用https协议访问https://your.domain:7001
#- certd_koa_key=./data/ssl/cert.key
#- certd_koa_cert=./data/ssl/cert.crt
# ↓↓↓↓ -------------------------------- 默认同时启动httpshttps访问地址https://your.domain:7002
#- certd_https_key=./data/ssl/cert.key
#- certd_https_cert=./data/ssl/cert.crt
#- certd_https_enabled=true
#- certd_https_port=7002
-
# ↓↓↓↓ ------------------------------- 使用postgresql数据库
# - certd_flyway_scriptDir=./db/migration-pg # 升级脚本目录
# - certd_typeorm_dataSource_default_type=postgres # 数据库类型

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -30,6 +30,7 @@ export class ResetPasswdMiddleware implements IWebMiddleware {
logger.info('开始重置1号管理员用户的密码');
const newPasswd = '123456';
await this.userService.resetPassword(1, newPasswd);
await this.userService.updateStatus(1, 1);
logger.info(`重置1号管理员用户的密码完成新密码为${newPasswd}`);
}
}

View File

@ -198,6 +198,9 @@ export class UserService extends BaseService<UserEntity> {
}
async resetPassword(userId: any, newPasswd: string) {
if (!userId) {
throw new CommonException('userId不能为空');
}
const param = {
id: userId,
password: newPasswd,
@ -210,15 +213,19 @@ export class UserService extends BaseService<UserEntity> {
ids = ids.split(',');
ids = ids.map(id => parseInt(id));
}
if (ids instanceof Array) {
if (ids.includes(1)) {
throw new CommonException('不能删除管理员');
}
if (ids.length === 0) {
return;
}
if (ids.includes(1)) {
throw new CommonException('不能删除管理员');
}
await super.delete(ids);
}
async isAdmin(userId: any) {
if (!userId) {
throw new CommonException('userId不能为空');
}
const userRoles = await this.userRoleService.find({
where: {
userId,
@ -229,4 +236,13 @@ export class UserService extends BaseService<UserEntity> {
return true;
}
}
async updateStatus(id: number, status: number) {
if (!id) {
throw new CommonException('userId不能为空');
}
await this.repository.update(id, {
status,
});
}
}