From 27a4c81c6d70e70abb3892c3ea58d4719988808a Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 27 Jun 2023 09:29:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../certd-client/src/api/modules/api.user.ts | 14 +++++ packages/ui/certd-client/src/api/service.ts | 2 +- packages/ui/certd-client/src/api/tools.ts | 4 +- .../src/router/source/framework.ts | 2 +- .../src/router/source/modules/certd.ts | 6 +- .../certd-client/src/router/source/outside.ts | 8 +++ .../ui/certd-client/src/store/modules/page.ts | 2 +- .../ui/certd-client/src/store/modules/user.ts | 11 +++- .../src/views/framework/login/index.vue | 2 +- .../src/views/framework/register/index.vue | 28 ++++------ .../db/migration/v10003__role_user.sql | 1 + packages/ui/certd-server/package.json | 1 + .../ui/certd-server/src/basic/base-service.ts | 26 +++++---- .../ui/certd-server/src/basic/constants.ts | 21 ++++++- .../certd-server/src/config/config.default.ts | 2 +- .../certd-server/src/middleware/authority.ts | 55 +++++++++++++------ .../controller/permission-controller.ts | 10 ++-- .../authority/controller/role-controller.ts | 20 +++---- .../authority/controller/user-controller.ts | 15 ++--- .../src/modules/authority/entity/user-role.ts | 4 ++ .../src/modules/authority/entity/user.ts | 3 + .../authority/service/permission-service.ts | 3 +- .../service/role-permission-service.ts | 3 +- .../modules/authority/service/role-service.ts | 35 +++++++++++- .../authority/service/user-role-service.ts | 3 +- .../modules/authority/service/user-service.ts | 46 +++++++++++++--- .../basic/controller/code-controller.ts | 5 +- .../basic/controller/email-controller.ts | 3 +- .../login/controller/login-controller.ts | 6 +- .../login/controller/register-controller.ts | 29 ++++++++++ .../modules/login/service/login-service.ts | 11 +++- .../pipeline/controller/access-controller.ts | 17 +++--- .../controller/dns-provider-controller.ts | 5 +- .../pipeline/controller/history-controller.ts | 19 ++++--- .../controller/pipeline-controller.ts | 15 ++--- .../pipeline/controller/plugin-controller.ts | 3 +- .../system/controller/settings-controller.ts | 19 +++---- 37 files changed, 325 insertions(+), 134 deletions(-) create mode 100644 packages/ui/certd-server/db/migration/v10003__role_user.sql create mode 100644 packages/ui/certd-server/src/modules/login/controller/register-controller.ts diff --git a/packages/ui/certd-client/src/api/modules/api.user.ts b/packages/ui/certd-client/src/api/modules/api.user.ts index ea711596..0befb92d 100644 --- a/packages/ui/certd-client/src/api/modules/api.user.ts +++ b/packages/ui/certd-client/src/api/modules/api.user.ts @@ -1,5 +1,11 @@ import { request, requestForMock } from "../service"; import { env } from "/@/utils/util.env"; + +export interface RegisterReq { + username: string; + password: string; + confirmPassword: string; +} /** * @description: Login interface parameters */ @@ -19,6 +25,14 @@ export interface LoginRes { expire: number; } +export async function register(user: RegisterReq): Promise { + return await request({ + url: "/register", + method: "post", + data: user + }); +} + export async function login(data: LoginReq): Promise { if (env.PM_ENABLED === "false") { //没有开启权限模块,模拟登录 diff --git a/packages/ui/certd-client/src/api/service.ts b/packages/ui/certd-client/src/api/service.ts index c5601d8b..27960bd9 100644 --- a/packages/ui/certd-client/src/api/service.ts +++ b/packages/ui/certd-client/src/api/service.ts @@ -31,7 +31,7 @@ function createService() { const { code } = dataAxios; // 根据 code 进行判断 if (code === undefined) { - // 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本 + // 如果没有 code 代表这不是项目后端开发的接口 errorCreate(`非标准返回:${dataAxios}, ${response.config.url}`); return dataAxios; } else { diff --git a/packages/ui/certd-client/src/api/tools.ts b/packages/ui/certd-client/src/api/tools.ts index 905c1bb1..0400bec9 100644 --- a/packages/ui/certd-client/src/api/tools.ts +++ b/packages/ui/certd-client/src/api/tools.ts @@ -63,5 +63,7 @@ export function errorLog(error: any) { * @param {String} msg 错误信息 */ export function errorCreate(msg: string) { - throw new Error(msg); + const err = new Error(msg); + uiContext.get().notification.error({ message: err.message }); + throw err; } diff --git a/packages/ui/certd-client/src/router/source/framework.ts b/packages/ui/certd-client/src/router/source/framework.ts index 800fcf99..d0ed0649 100644 --- a/packages/ui/certd-client/src/router/source/framework.ts +++ b/packages/ui/certd-client/src/router/source/framework.ts @@ -12,7 +12,7 @@ export const frameworkResource = [ component: LayoutFramework, meta: { icon: "ion:accessibility", - auth: true + authOnly: true }, children: [ { 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 8dcf6210..a64cedaa 100644 --- a/packages/ui/certd-client/src/router/source/modules/certd.ts +++ b/packages/ui/certd-client/src/router/source/modules/certd.ts @@ -6,7 +6,7 @@ export const certdResources = [ redirect: "/certd/pipeline", meta: { icon: "ion:key-outline", - auth: true + authOnly: true }, children: [ { @@ -43,7 +43,7 @@ export const certdResources = [ redirect: "/certd/settings/email", meta: { icon: "ion:settings-outline", - auth: true + authOnly: true }, children: [ { @@ -53,7 +53,7 @@ export const certdResources = [ component: "/certd/settings/email-setting.vue", meta: { icon: "ion:mail-outline", - auth: true + authOnly: true } } ] diff --git a/packages/ui/certd-client/src/router/source/outside.ts b/packages/ui/certd-client/src/router/source/outside.ts index 177172c3..2f521ab0 100644 --- a/packages/ui/certd-client/src/router/source/outside.ts +++ b/packages/ui/certd-client/src/router/source/outside.ts @@ -15,6 +15,14 @@ export const outsideResource = [ name: "login", path: "/login", component: "/framework/login/index.vue" + }, + { + meta: { + title: "注册" + }, + name: "register", + path: "/register", + component: "/framework/register/index.vue" } ] }, diff --git a/packages/ui/certd-client/src/store/modules/page.ts b/packages/ui/certd-client/src/store/modules/page.ts index 8429c086..9fcb5d84 100644 --- a/packages/ui/certd-client/src/store/modules/page.ts +++ b/packages/ui/certd-client/src/store/modules/page.ts @@ -35,7 +35,7 @@ export const usePageStore = defineStore({ fullPath: "/index", meta: { title: "首页", - auth: false + authOnly: false } } ], diff --git a/packages/ui/certd-client/src/store/modules/user.ts b/packages/ui/certd-client/src/store/modules/user.ts index 45ed7b29..42af3379 100644 --- a/packages/ui/certd-client/src/store/modules/user.ts +++ b/packages/ui/certd-client/src/store/modules/user.ts @@ -7,10 +7,11 @@ import { LocalStorage } from "/src/utils/util.storage"; import * as UserApi from "/src/api/modules/api.user"; // @ts-ignore import { LoginReq, UserInfoRes } from "/@/api/modules/api.user"; -import { Modal } from "ant-design-vue"; +import { Modal, notification } from "ant-design-vue"; import { useI18n } from "vue-i18n"; import { mitter } from "/src/utils/util.mitt"; +import { RegisterReq } from "/src/api/modules/api.user"; interface UserState { userInfo: Nullable; @@ -50,6 +51,14 @@ export const useUserStore = defineStore({ LocalStorage.remove(TOKEN_KEY); LocalStorage.remove(USER_INFO_KEY); }, + + async register(user: RegisterReq) { + await UserApi.register(user); + notification.success({ + message: "注册成功,请登录" + }); + await router.replace("/login"); + }, /** * @description: login */ diff --git a/packages/ui/certd-client/src/views/framework/login/index.vue b/packages/ui/certd-client/src/views/framework/login/index.vue index eeef81e6..18034fce 100644 --- a/packages/ui/certd-client/src/views/framework/login/index.vue +++ b/packages/ui/certd-client/src/views/framework/login/index.vue @@ -66,7 +66,7 @@ diff --git a/packages/ui/certd-client/src/views/framework/register/index.vue b/packages/ui/certd-client/src/views/framework/register/index.vue index d63e8e10..e0c16604 100644 --- a/packages/ui/certd-client/src/views/framework/register/index.vue +++ b/packages/ui/certd-client/src/views/framework/register/index.vue @@ -1,15 +1,8 @@