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'),