From 651588c98dbaae2261a2e34044afdbae99d23b60 Mon Sep 17 00:00:00 2001 From: Kerwin <37063904+zhuangchong@users.noreply.github.com> Date: Fri, 21 Oct 2022 09:27:50 +0800 Subject: [PATCH] [BUG-12306][UI]Fix the password item always is disabled (#12437) * Fix the password item always is disabled --- .../src/layouts/content/components/user/use-dropdown.ts | 1 + dolphinscheduler-ui/src/layouts/content/use-dataList.ts | 4 +--- dolphinscheduler-ui/src/service/modules/login/types.ts | 5 +++-- dolphinscheduler-ui/src/service/modules/users/types.ts | 1 - dolphinscheduler-ui/src/service/service.ts | 1 + dolphinscheduler-ui/src/store/user/types.ts | 1 + dolphinscheduler-ui/src/store/user/user.ts | 7 +++++++ dolphinscheduler-ui/src/views/login/use-login.ts | 5 +++-- dolphinscheduler-ui/src/views/password/use-update.ts | 1 + 9 files changed, 18 insertions(+), 8 deletions(-) diff --git a/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts b/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts index 3a086ad817..6ad6ea0517 100644 --- a/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts +++ b/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts @@ -39,6 +39,7 @@ export function useDropDown() { const useLogout = () => { logout().then(() => { userStore.setSessionId('') + userStore.setSecurityConfigType('') userStore.setUserInfo({}) cookies.remove('sessionId') diff --git a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts index a2610e7a4f..c7f13aac20 100644 --- a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts +++ b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts @@ -349,9 +349,7 @@ export function useDataList() { label: t('user_dropdown.password'), key: 'password', icon: renderIcon(KeyOutlined), - disabled: - (userStore.getUserInfo as UserInfoRes).securityConfigType !== - 'PASSWORD' + disabled: userStore.getSecurityConfigType !== 'PASSWORD' }, { label: t('user_dropdown.logout'), diff --git a/dolphinscheduler-ui/src/service/modules/login/types.ts b/dolphinscheduler-ui/src/service/modules/login/types.ts index 05ce943f1f..d0471de8da 100644 --- a/dolphinscheduler-ui/src/service/modules/login/types.ts +++ b/dolphinscheduler-ui/src/service/modules/login/types.ts @@ -20,8 +20,9 @@ interface LoginReq { userPassword: string } -interface SessionIdRes { +interface LoginRes { + securityConfigType: string sessionId: string } -export { LoginReq, SessionIdRes } +export { LoginReq, LoginRes } diff --git a/dolphinscheduler-ui/src/service/modules/users/types.ts b/dolphinscheduler-ui/src/service/modules/users/types.ts index fe06d8be0f..33de77e215 100644 --- a/dolphinscheduler-ui/src/service/modules/users/types.ts +++ b/dolphinscheduler-ui/src/service/modules/users/types.ts @@ -100,7 +100,6 @@ interface UserInfoRes extends UserReq, IdReq { alertGroup?: any createTime: string updateTime: string - securityConfigType: 'PASSWORD' | 'LDAP' } interface UserListRes { diff --git a/dolphinscheduler-ui/src/service/service.ts b/dolphinscheduler-ui/src/service/service.ts index 8d33534788..95b0a35fd9 100644 --- a/dolphinscheduler-ui/src/service/service.ts +++ b/dolphinscheduler-ui/src/service/service.ts @@ -61,6 +61,7 @@ const service = axios.create(baseRequestConfig) const err = (err: AxiosError): Promise => { if (err.response?.status === 401 || err.response?.status === 504) { userStore.setSessionId('') + userStore.setSecurityConfigType('') userStore.setUserInfo({}) router.push({ path: '/login' }) } diff --git a/dolphinscheduler-ui/src/store/user/types.ts b/dolphinscheduler-ui/src/store/user/types.ts index 58657ea928..208d500f82 100644 --- a/dolphinscheduler-ui/src/store/user/types.ts +++ b/dolphinscheduler-ui/src/store/user/types.ts @@ -19,6 +19,7 @@ import type { UserInfoRes } from '@/service/modules/users/types' interface UserState { sessionId: string + securityConfigType: string userInfo: UserInfoRes | {} } diff --git a/dolphinscheduler-ui/src/store/user/user.ts b/dolphinscheduler-ui/src/store/user/user.ts index 92feec46f1..3f7e76644b 100644 --- a/dolphinscheduler-ui/src/store/user/user.ts +++ b/dolphinscheduler-ui/src/store/user/user.ts @@ -23,6 +23,7 @@ export const useUserStore = defineStore({ id: 'user', state: (): UserState => ({ sessionId: '', + securityConfigType: '', userInfo: {} }), persist: true, @@ -30,6 +31,9 @@ export const useUserStore = defineStore({ getSessionId(): string { return this.sessionId }, + getSecurityConfigType(): string { + return this.securityConfigType + }, getUserInfo(): UserInfoRes | {} { return this.userInfo } @@ -38,6 +42,9 @@ export const useUserStore = defineStore({ setSessionId(sessionId: string): void { this.sessionId = sessionId }, + setSecurityConfigType(securityConfigType: string): void { + this.securityConfigType = securityConfigType + }, setUserInfo(userInfo: UserInfoRes | {}): void { this.userInfo = userInfo } diff --git a/dolphinscheduler-ui/src/views/login/use-login.ts b/dolphinscheduler-ui/src/views/login/use-login.ts index 6fd2080e55..51f387e691 100644 --- a/dolphinscheduler-ui/src/views/login/use-login.ts +++ b/dolphinscheduler-ui/src/views/login/use-login.ts @@ -20,7 +20,7 @@ import { login } from '@/service/modules/login' import { getUserInfo } from '@/service/modules/users' import { useUserStore } from '@/store/user/user' import type { Router } from 'vue-router' -import type { SessionIdRes } from '@/service/modules/login/types' +import type { LoginRes } from '@/service/modules/login/types' import type { UserInfoRes } from '@/service/modules/users/types' import { useRouteStore } from '@/store/route/route' import { useTimezoneStore } from '@/store/timezone/timezone' @@ -34,8 +34,9 @@ export function useLogin(state: any) { const handleLogin = () => { state.loginFormRef.validate(async (valid: any) => { if (!valid) { - const loginRes: SessionIdRes = await login({ ...state.loginForm }) + const loginRes: LoginRes = await login({ ...state.loginForm }) await userStore.setSessionId(loginRes.sessionId) + await userStore.setSecurityConfigType(loginRes.securityConfigType) const userInfoRes: UserInfoRes = await getUserInfo() await userStore.setUserInfo(userInfoRes) diff --git a/dolphinscheduler-ui/src/views/password/use-update.ts b/dolphinscheduler-ui/src/views/password/use-update.ts index 3d70b2c9fa..b8987298c9 100644 --- a/dolphinscheduler-ui/src/views/password/use-update.ts +++ b/dolphinscheduler-ui/src/views/password/use-update.ts @@ -40,6 +40,7 @@ export function useUpdate(state: any) { }) await userStore.setSessionId('') + await userStore.setSecurityConfigType('') await userStore.setUserInfo({}) await router.push({ path: 'login' }) }