diff --git a/packages/core/pipeline/package.json b/packages/core/pipeline/package.json
index 4df76a255..9fb387d21 100644
--- a/packages/core/pipeline/package.json
+++ b/packages/core/pipeline/package.json
@@ -20,9 +20,7 @@
"axios": "^1.4.0",
"node-forge": "^1.3.1",
"nodemailer": "^6.9.3",
- "qs": "^6.11.2",
- "react-native-get-random-values": "^1.9.0",
- "uuid": "^8.3.2"
+ "qs": "^6.11.2"
},
"devDependencies": {
"@certd/acme-client": "^1.1.1",
diff --git a/packages/core/pipeline/src/plugin/api.ts b/packages/core/pipeline/src/plugin/api.ts
index cbc439a44..f16031744 100644
--- a/packages/core/pipeline/src/plugin/api.ts
+++ b/packages/core/pipeline/src/plugin/api.ts
@@ -7,10 +7,6 @@ import { IEmailService } from "../service";
import { IContext } from "../core";
import { AxiosInstance } from "axios";
-//解决 uuid random-values not support 问题
-// https://github.com/uuidjs/uuid#getrandomvalues-not-supported
-import "react-native-get-random-values";
-import { v4 as uuidv4 } from "uuid";
export enum ContextScope {
global,
pipeline,
@@ -82,16 +78,19 @@ export abstract class AbstractTaskPlugin implements ITaskPlugin {
this.ctx = ctx;
}
+ randomFileId() {
+ return Math.random().toString(36).substring(2, 9);
+ }
linkFile(file: FileItem) {
this._result.files!.push({
...file,
- id: uuidv4(),
+ id: this.randomFileId(),
});
}
saveFile(filename: string, file: Buffer) {
const filePath = this.ctx.fileStore.writeFile(filename, file);
this._result.files!.push({
- id: uuidv4(),
+ id: this.randomFileId(),
filename,
path: filePath,
});
diff --git a/packages/ui/certd-client/src/router/source/modules/certd.ts b/packages/ui/certd-client/src/router/source/modules/certd.ts
index 8dcf62106..e14b7ad5f 100644
--- a/packages/ui/certd-client/src/router/source/modules/certd.ts
+++ b/packages/ui/certd-client/src/router/source/modules/certd.ts
@@ -55,6 +55,16 @@ export const certdResources = [
icon: "ion:mail-outline",
auth: true
}
+ },
+ {
+ title: "账号信息",
+ name: "userProfile",
+ path: "/certd/mine/user-profile",
+ component: "/certd/mine/user-profile.vue",
+ meta: {
+ icon: "ion:person-outline",
+ auth: true
+ }
}
]
}
diff --git a/packages/ui/certd-client/src/views/certd/mine/api.ts b/packages/ui/certd-client/src/views/certd/mine/api.ts
new file mode 100644
index 000000000..fc8f492e4
--- /dev/null
+++ b/packages/ui/certd-client/src/views/certd/mine/api.ts
@@ -0,0 +1,16 @@
+import { request } from "/src/api/service";
+
+export async function getMineInfo() {
+ return request({
+ url: "/mine/info",
+ method: "POST"
+ });
+}
+
+export async function changePassword(form: any) {
+ return request({
+ url: "/mine/changePassword",
+ method: "POST",
+ data: form
+ });
+}
diff --git a/packages/ui/certd-client/src/views/certd/mine/user-profile.vue b/packages/ui/certd-client/src/views/certd/mine/user-profile.vue
new file mode 100644
index 000000000..bef547620
--- /dev/null
+++ b/packages/ui/certd-client/src/views/certd/mine/user-profile.vue
@@ -0,0 +1,98 @@
+
+
+
+
+ {{ userInfo.userInfoname }}
+ {{ userInfo.nickName }}
+ {{ userInfo.email }}
+ {{ userInfo.phoneCode }}{{ userInfo.mobile }}
+
+ 修改密码
+
+
+
+
+
+
+
diff --git a/packages/ui/certd-server/src/modules/authority/service/user-service.ts b/packages/ui/certd-server/src/modules/authority/service/user-service.ts
index afa7995ce..57c3c0163 100644
--- a/packages/ui/certd-server/src/modules/authority/service/user-service.ts
+++ b/packages/ui/certd-server/src/modules/authority/service/user-service.ts
@@ -142,4 +142,17 @@ export class UserService extends BaseService {
delete newUser.password;
return newUser;
}
+
+ async changePassword(userId: any, form: any) {
+ const user = await this.info(userId);
+ if (!this.checkPassword(form.password, user.password)) {
+ throw new CommonException('原密码错误');
+ }
+ const param = {
+ id: userId,
+ password: form.newPassword,
+ };
+
+ await this.update(param);
+ }
}
diff --git a/packages/ui/certd-server/src/modules/mine/controller/mine-controller.ts b/packages/ui/certd-server/src/modules/mine/controller/mine-controller.ts
new file mode 100644
index 000000000..9d5bd4a84
--- /dev/null
+++ b/packages/ui/certd-server/src/modules/mine/controller/mine-controller.ts
@@ -0,0 +1,34 @@
+import {
+ ALL,
+ Body,
+ Controller,
+ Inject,
+ Post,
+ Provide,
+} from '@midwayjs/decorator';
+import { BaseController } from '../../../basic/base-controller';
+import { Constants } from '../../../basic/constants';
+import { UserService } from '../../authority/service/user-service';
+
+/**
+ */
+@Provide()
+@Controller('/api/mine')
+export class MineController extends BaseController {
+ @Inject()
+ userService: UserService;
+ @Post('/info', { summary: Constants.per.authOnly })
+ public async info() {
+ const userId = this.getUserId();
+ const user = await this.userService.info(userId);
+ delete user.password;
+ return this.ok(user);
+ }
+
+ @Post('/changePassword', { summary: Constants.per.authOnly })
+ public async changePassword(@Body(ALL) body: any) {
+ const userId = this.getUserId();
+ await this.userService.changePassword(userId, body);
+ return this.ok({});
+ }
+}