mirror of
https://github.com/certd/certd.git
synced 2026-04-24 04:17:25 +08:00
feat: 升级midway,支持esm
This commit is contained in:
@@ -6,9 +6,9 @@ import {
|
||||
Post,
|
||||
Provide,
|
||||
Query,
|
||||
} from '@midwayjs/decorator';
|
||||
import { CrudController } from '../../../basic/crud-controller';
|
||||
import { PermissionService } from '../service/permission-service';
|
||||
} from '@midwayjs/core';
|
||||
import { CrudController } from '../../../basic/crud-controller.js';
|
||||
import { PermissionService } from '../service/permission-service.js';
|
||||
|
||||
/**
|
||||
* 权限资源
|
||||
|
||||
@@ -6,9 +6,9 @@ import {
|
||||
Post,
|
||||
Provide,
|
||||
Query,
|
||||
} from '@midwayjs/decorator';
|
||||
import { CrudController } from '../../../basic/crud-controller';
|
||||
import { RoleService } from '../service/role-service';
|
||||
} from '@midwayjs/core';
|
||||
import { CrudController } from '../../../basic/crud-controller.js';
|
||||
import { RoleService } from '../service/role-service.js';
|
||||
|
||||
/**
|
||||
* 系统用户
|
||||
|
||||
@@ -6,12 +6,12 @@ import {
|
||||
Body,
|
||||
Query,
|
||||
ALL,
|
||||
} from '@midwayjs/decorator';
|
||||
import { UserService } from '../service/user-service';
|
||||
import { CrudController } from '../../../basic/crud-controller';
|
||||
import { RoleService } from '../service/role-service';
|
||||
import { PermissionService } from '../service/permission-service';
|
||||
import { Constants } from '../../../basic/constants';
|
||||
} from '@midwayjs/core';
|
||||
import { UserService } from '../service/user-service.js';
|
||||
import { CrudController } from '../../../basic/crud-controller.js';
|
||||
import { RoleService } from '../service/role-service.js';
|
||||
import { PermissionService } from '../service/permission-service.js';
|
||||
import { Constants } from '../../../basic/constants.js';
|
||||
|
||||
/**
|
||||
* 系统用户
|
||||
|
||||
@@ -14,6 +14,9 @@ export class UserEntity {
|
||||
@Column({ comment: '密码', length: 100 })
|
||||
password: string;
|
||||
|
||||
@Column({ name: 'password_version', comment: '密码版本' })
|
||||
passwordVersion: number;
|
||||
|
||||
@Column({ name: 'nick_name', comment: '昵称', length: 100, nullable: true })
|
||||
nickName: string;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { EnumItem } from '../../../basic/enum-item';
|
||||
import * as _ from 'lodash';
|
||||
import { EnumItem } from '../../../basic/enum-item.js';
|
||||
import * as _ from 'lodash-es';
|
||||
class ResourceTypes {
|
||||
MENU = new EnumItem('menu', '菜单', 'blue');
|
||||
BTN = new EnumItem('btn', '按钮', 'green');
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
|
||||
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
||||
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { BaseService } from '../../../basic/base-service';
|
||||
import { PermissionEntity } from '../entity/permission';
|
||||
import { BaseService } from '../../../basic/base-service.js';
|
||||
import { PermissionEntity } from '../entity/permission.js';
|
||||
|
||||
/**
|
||||
* 权限资源
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
|
||||
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
||||
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { BaseService } from '../../../basic/base-service';
|
||||
import { RolePermissionEntity } from '../entity/role-permission';
|
||||
import { BaseService } from '../../../basic/base-service.js';
|
||||
import { RolePermissionEntity } from '../entity/role-permission.js';
|
||||
|
||||
/**
|
||||
* 角色->权限
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
|
||||
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
||||
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||
import { In, Repository } from 'typeorm';
|
||||
import { BaseService } from '../../../basic/base-service';
|
||||
import { RoleEntity } from '../entity/role';
|
||||
import { UserRoleService } from './user-role-service';
|
||||
import { RolePermissionEntity } from '../entity/role-permission';
|
||||
import { PermissionService } from './permission-service';
|
||||
import * as _ from 'lodash';
|
||||
import { RolePermissionService } from './role-permission-service';
|
||||
import { BaseService } from '../../../basic/base-service.js';
|
||||
import { RoleEntity } from '../entity/role.js';
|
||||
import { UserRoleService } from './user-role-service.js';
|
||||
import { RolePermissionEntity } from '../entity/role-permission.js';
|
||||
import { PermissionService } from './permission-service.js';
|
||||
import * as _ from 'lodash-es';
|
||||
import { RolePermissionService } from './role-permission-service.js';
|
||||
import { LRUCache } from 'lru-cache';
|
||||
/**
|
||||
* 角色
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
|
||||
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
||||
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { BaseService } from '../../../basic/base-service';
|
||||
import { UserRoleEntity } from '../entity/user-role';
|
||||
import { BaseService } from '../../../basic/base-service.js';
|
||||
import { UserRoleEntity } from '../entity/user-role.js';
|
||||
|
||||
/**
|
||||
* 用户->角色
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
|
||||
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
||||
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { UserEntity } from '../entity/user';
|
||||
import * as _ from 'lodash';
|
||||
import { UserEntity } from '../entity/user.js';
|
||||
import * as _ from 'lodash-es';
|
||||
import md5 from 'md5';
|
||||
import { CommonException } from '../../../basic/exception/common-exception';
|
||||
import { BaseService } from '../../../basic/base-service';
|
||||
import { RoleService } from './role-service';
|
||||
import { PermissionService } from './permission-service';
|
||||
import { UserRoleService } from './user-role-service';
|
||||
import { Constants } from '../../../basic/constants';
|
||||
import { UserRoleEntity } from '../entity/user-role';
|
||||
import { CommonException } from '../../../basic/exception/common-exception.js';
|
||||
import { BaseService } from '../../../basic/base-service.js';
|
||||
import { RoleService } from './role-service.js';
|
||||
import { PermissionService } from './permission-service.js';
|
||||
import { UserRoleService } from './user-role-service.js';
|
||||
import { Constants } from '../../../basic/constants.js';
|
||||
import { UserRoleEntity } from '../entity/user-role.js';
|
||||
import { randomText } from 'svg-captcha';
|
||||
import bcrypt from 'bcryptjs';
|
||||
|
||||
/**
|
||||
* 系统用户
|
||||
@@ -58,8 +59,9 @@ export class UserService extends BaseService<UserEntity> {
|
||||
if (!_.isEmpty(exists)) {
|
||||
throw new CommonException('用户名已经存在');
|
||||
}
|
||||
const password = param.password ?? randomText(6);
|
||||
param.password = md5(password); // 默认密码 建议未改密码不能登陆
|
||||
const plainPassword = param.password ?? randomText(6);
|
||||
param.passwordVersion = 2;
|
||||
param.password = this.genPassword(plainPassword, param.passwordVersion); // 默认密码 建议未改密码不能登陆
|
||||
await super.add(param);
|
||||
//添加角色
|
||||
if (param.roles && param.roles.length > 0) {
|
||||
@@ -85,7 +87,8 @@ export class UserService extends BaseService<UserEntity> {
|
||||
|
||||
delete param.username;
|
||||
if (!_.isEmpty(param.password)) {
|
||||
param.password = md5(param.password);
|
||||
param.passwordVersion = 2;
|
||||
param.password = this.genPassword(param.password, param.passwordVersion);
|
||||
} else {
|
||||
delete param.password;
|
||||
}
|
||||
@@ -93,15 +96,30 @@ export class UserService extends BaseService<UserEntity> {
|
||||
await this.roleService.updateRoles(param.id, param.roles);
|
||||
}
|
||||
|
||||
private genPassword(plainPassword: any, passwordVersion: number) {
|
||||
if (passwordVersion == null || passwordVersion <= 1) {
|
||||
return md5(plainPassword);
|
||||
}
|
||||
const salt = bcrypt.genSaltSync(10);
|
||||
return bcrypt.hashSync(plainPassword, salt);
|
||||
}
|
||||
|
||||
async findOne(param) {
|
||||
return this.repository.findOne({
|
||||
where: param,
|
||||
});
|
||||
}
|
||||
|
||||
checkPassword(rawPassword: any, md5Password: any) {
|
||||
// logger.info('md5', md5('123456'));
|
||||
return md5(rawPassword) === md5Password;
|
||||
async checkPassword(
|
||||
rawPassword: any,
|
||||
hashPassword: any,
|
||||
passwordVersion: number
|
||||
) {
|
||||
if (passwordVersion == null || passwordVersion <= 1) {
|
||||
return this.genPassword(rawPassword, passwordVersion) === hashPassword;
|
||||
}
|
||||
|
||||
return bcrypt.compareSync(rawPassword, hashPassword); // true
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,8 +145,12 @@ export class UserService extends BaseService<UserEntity> {
|
||||
mobile: user.mobile || '',
|
||||
phoneCode: user.phoneCode || '',
|
||||
status: 1,
|
||||
passwordVersion: 2,
|
||||
});
|
||||
newUser.password = md5(newUser.password);
|
||||
newUser.password = this.genPassword(
|
||||
newUser.password,
|
||||
newUser.passwordVersion
|
||||
);
|
||||
|
||||
await this.transaction(async txManager => {
|
||||
newUser = await txManager.save(newUser);
|
||||
@@ -145,7 +167,12 @@ export class UserService extends BaseService<UserEntity> {
|
||||
|
||||
async changePassword(userId: any, form: any) {
|
||||
const user = await this.info(userId);
|
||||
if (!this.checkPassword(form.password, user.password)) {
|
||||
const passwordChecked = await this.checkPassword(
|
||||
form.password,
|
||||
user.password,
|
||||
user.passwordVersion
|
||||
);
|
||||
if (!passwordChecked) {
|
||||
throw new CommonException('原密码错误');
|
||||
}
|
||||
const param = {
|
||||
|
||||
Reference in New Issue
Block a user