You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampark.apache.org by kr...@apache.org on 2023/03/24 13:50:53 UTC

[incubator-streampark] branch dev updated: [Improve][Issue-2494] add login type column and hide reset password button when login type is ldap (#2505)

This is an automated email from the ASF dual-hosted git repository.

kriszu pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev by this push:
     new 961db6c7e [Improve][Issue-2494] add login type column and hide reset password button when login type is ldap (#2505)
961db6c7e is described below

commit 961db6c7ea28d8e46307476824ff4aa66abc6496
Author: totoro <zh...@foxmail.com>
AuthorDate: Fri Mar 24 21:50:44 2023 +0800

    [Improve][Issue-2494] add login type column and hide reset password button when login type is ldap (#2505)
---
 .../src/api/system/model/userModel.ts                       |  1 +
 .../streampark-console-webapp/src/api/system/user.ts        | 13 +++++++++++++
 .../src/locales/lang/en/system/user.ts                      |  1 +
 .../src/locales/lang/zh-CN/system/user.ts                   |  1 +
 .../src/views/base/login/LoginForm.vue                      | 10 +++++-----
 .../src/views/base/login/useLogin.ts                        |  2 +-
 .../src/views/system/user/User.vue                          |  4 +++-
 .../src/views/system/user/user.data.ts                      | 13 ++++++++++++-
 8 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/streampark-console/streampark-console-webapp/src/api/system/model/userModel.ts b/streampark-console/streampark-console-webapp/src/api/system/model/userModel.ts
index db4ade875..9c223a2ce 100644
--- a/streampark-console/streampark-console-webapp/src/api/system/model/userModel.ts
+++ b/streampark-console/streampark-console-webapp/src/api/system/model/userModel.ts
@@ -78,4 +78,5 @@ export interface UserListRecord {
   salt: string;
   nickName: string;
   teamId: string;
+  loginType: string;
 }
diff --git a/streampark-console/streampark-console-webapp/src/api/system/user.ts b/streampark-console/streampark-console-webapp/src/api/system/user.ts
index 032425c54..22086eaee 100644
--- a/streampark-console/streampark-console-webapp/src/api/system/user.ts
+++ b/streampark-console/streampark-console-webapp/src/api/system/user.ts
@@ -30,6 +30,7 @@ import { BasicTableParams } from '../model/baseModel';
 
 enum Api {
   Login = '/passport/signin',
+  LoginTypes = '/passport/types',
   LoginByLdap = '/passport/ldapSignin',
   Logout = '/passport/signout',
   GetUserInfo = '/getUserInfo',
@@ -139,6 +140,18 @@ export function fetchUserTypes() {
       return res.map((t: string) => ({ label: t, value: t }));
     });
 }
+
+export function fetchLoginTypes() {
+  return defHttp
+    .post({
+      url: Api.LoginTypes,
+      data: {},
+    })
+    .then((res) => {
+      return res.map((t: string) => ({ label: t, value: t }));
+    });
+}
+
 /**
  * User change password
  * @param data
diff --git a/streampark-console/streampark-console-webapp/src/locales/lang/en/system/user.ts b/streampark-console/streampark-console-webapp/src/locales/lang/en/system/user.ts
index 8d773fa50..0140553e5 100644
--- a/streampark-console/streampark-console-webapp/src/locales/lang/en/system/user.ts
+++ b/streampark-console/streampark-console-webapp/src/locales/lang/en/system/user.ts
@@ -34,6 +34,7 @@ export default {
     exist: 'Sorry the username already exists',
     nickName: 'Nick Name',
     userType: 'User Type',
+    loginType: 'Login Type',
     status: 'Status',
     gender: 'Gender',
     lastLoginTime: 'Recent Login',
diff --git a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/system/user.ts b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/system/user.ts
index e0162cab0..96d3342c5 100644
--- a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/system/user.ts
+++ b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/system/user.ts
@@ -34,6 +34,7 @@ export default {
     exist: '抱歉,用户名已存在',
     nickName: '昵称',
     userType: '用户类型',
+    loginType: '登录类型',
     status: '状态',
     gender: '性别',
     lastLoginTime: '最近登录时间',
diff --git a/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue b/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue
index 58b3f605b..e023fe3e6 100644
--- a/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue
+++ b/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue
@@ -112,7 +112,7 @@
   const loading = ref(false);
   const userId = ref('');
   const modelVisible = ref(false);
-  const loginType = ref(LoginTypeEnum.LOCAL);
+  const loginType = ref(LoginTypeEnum.PASSWORD);
   const formData = reactive<LoginForm>({
     account: '',
     password: '',
@@ -121,7 +121,7 @@
   const loginText = computed(() => {
     const localText = t('sys.login.loginButton');
     const ldapText = t('sys.login.ldapTip');
-    if (loginType.value === LoginTypeEnum.LOCAL) {
+    if (loginType.value === LoginTypeEnum.PASSWORD) {
       return { buttonText: localText, linkText: t('sys.login.ldapTip') };
     }
     return { buttonText: ldapText, linkText: t('sys.login.passwordTip') };
@@ -143,7 +143,7 @@
 
   async function handleLoginRequest(loginFormValue: LoginForm): Promise<Result<LoginResultModel>> {
     // local login
-    if (loginType.value == LoginTypeEnum.LOCAL) {
+    if (loginType.value == LoginTypeEnum.PASSWORD) {
       const { data } = await loginApi(
         { password: loginFormValue.password, username: loginFormValue.account },
         'none',
@@ -212,10 +212,10 @@
     handleLogin();
   }
   function changeLoginType() {
-    if (loginType.value === LoginTypeEnum.LOCAL) {
+    if (loginType.value === LoginTypeEnum.PASSWORD) {
       loginType.value = LoginTypeEnum.LDAP;
       return;
     }
-    loginType.value = LoginTypeEnum.LOCAL;
+    loginType.value = LoginTypeEnum.PASSWORD;
   }
 </script>
diff --git a/streampark-console/streampark-console-webapp/src/views/base/login/useLogin.ts b/streampark-console/streampark-console-webapp/src/views/base/login/useLogin.ts
index 115b73f49..0b6eb26c4 100644
--- a/streampark-console/streampark-console-webapp/src/views/base/login/useLogin.ts
+++ b/streampark-console/streampark-console-webapp/src/views/base/login/useLogin.ts
@@ -26,7 +26,7 @@ export enum LoginStateEnum {
   QR_CODE,
 }
 export enum LoginTypeEnum {
-  LOCAL,
+  PASSWORD,
   LDAP,
 }
 
diff --git a/streampark-console/streampark-console-webapp/src/views/system/user/User.vue b/streampark-console/streampark-console-webapp/src/views/system/user/User.vue
index 1961ede9d..091282ba3 100644
--- a/streampark-console/streampark-console-webapp/src/views/system/user/User.vue
+++ b/streampark-console/streampark-console-webapp/src/views/system/user/User.vue
@@ -49,6 +49,7 @@
   import { UserListRecord } from '/@/api/system/model/userModel';
   import { useI18n } from '/@/hooks/web/useI18n';
   import Icon from '/@/components/Icon';
+  import { LoginTypeEnum } from "/@/views/base/login/useLogin";
 
   export default defineComponent({
     name: 'User',
@@ -104,7 +105,8 @@
             icon: 'bx:reset',
             auth: 'user:reset',
             tooltip: t('system.user.table.reset'),
-            ifShow: () => record.username !== 'admin' || userName.value === 'admin',
+            ifShow: () => (record.username !== 'admin' || userName.value === 'admin')
+              && record.loginType == LoginTypeEnum[LoginTypeEnum.PASSWORD],
             popConfirm: {
               title: t('system.user.table.resetTip'),
               confirm: handleReset.bind(null, record),
diff --git a/streampark-console/streampark-console-webapp/src/views/system/user/user.data.ts b/streampark-console/streampark-console-webapp/src/views/system/user/user.data.ts
index 4c6391e74..27080176e 100644
--- a/streampark-console/streampark-console-webapp/src/views/system/user/user.data.ts
+++ b/streampark-console/streampark-console-webapp/src/views/system/user/user.data.ts
@@ -17,7 +17,7 @@
 import { BasicColumn, FormSchema } from '/@/components/Table';
 import { h } from 'vue';
 import { Tag } from 'ant-design-vue';
-import { checkUserName, fetchUserTypes } from '/@/api/system/user';
+import { checkUserName, fetchLoginTypes, fetchUserTypes } from '/@/api/system/user';
 import { FormTypeEnum } from '/@/enums/formEnum';
 import { useI18n } from '/@/hooks/web/useI18n';
 const { t } = useI18n();
@@ -38,6 +38,7 @@ export const columns: BasicColumn[] = [
   { title: t('system.user.form.userName'), dataIndex: 'username', sorter: true },
   { title: t('system.user.form.nickName'), dataIndex: 'nickName' },
   { title: t('system.user.form.userType'), dataIndex: 'userType' },
+  { title: t('system.user.form.loginType'), dataIndex: 'loginType' },
   {
     title: t('system.user.form.status'),
     dataIndex: 'status',
@@ -148,6 +149,16 @@ export const formSchema = (formType: string): FormSchema[] => {
       },
       rules: [{ required: true }],
     },
+    {
+      label: t('system.user.form.loginType'),
+      field: 'loginType',
+      component: 'ApiSelect',
+      componentProps: {
+        disabled: isView,
+        api: fetchLoginTypes,
+      },
+      rules: [{ required: true }],
+    },
     {
       field: 'status',
       label: t('system.user.form.status'),