diff --git a/ui/src/api/types/system-authentication.ts b/ui/src/api/types/system-authentication.ts index 8b4a4c264a7..9b0b4d101d4 100644 --- a/ui/src/api/types/system-authentication.ts +++ b/ui/src/api/types/system-authentication.ts @@ -13,7 +13,7 @@ export interface AuthProviderSettingPayload { export interface LoginAuthSettingPayload { default_value: string failed_attempts: number - group_id?: string + group_ids?: string[] lock_time: number login_methods: string[] max_attempts: number diff --git a/ui/src/views/system/settings/authentication/components/LoginSetting.vue b/ui/src/views/system/settings/authentication/components/LoginSetting.vue index 1a0b95d80ce..e6924a02e0b 100644 --- a/ui/src/views/system/settings/authentication/components/LoginSetting.vue +++ b/ui/src/views/system/settings/authentication/components/LoginSetting.vue @@ -23,7 +23,7 @@ const loginSettingFields = [ 'lock_time', 'role_id', 'workspace_id', - 'group_id', + 'group_ids', ] as const const form = reactive>({ login_methods: [LOGIN_METHOD.LOCAL], @@ -33,7 +33,7 @@ const form = reactive>({ lock_time: 10, role_id: ROLE_TYPE.USER, workspace_id: 'default', - group_id: undefined, + group_ids: [], }) const rules: FormRules = { default_value: [{ required: true, message: '请选择默认登录方式', trigger: 'change' }], @@ -102,13 +102,13 @@ function loadRoleSettingOptions() { function handleRoleChange() { if (!showWorkspaceSelector.value) { form.workspace_id = undefined - form.group_id = undefined + form.group_ids = [] userGroups.value = [] } } function handleWorkspaceChange() { - form.group_id = undefined + form.group_ids = [] loadUserGroups() } @@ -119,7 +119,7 @@ const userGroups = ref([]) function loadUserGroups() { if (!form.workspace_id || !showWorkspaceSelector.value) { userGroups.value = [] - form.group_id = undefined + form.group_ids = [] return Promise.resolve() } @@ -127,8 +127,9 @@ function loadUserGroups() { return UserGroupsApi.getSystemUserGroups(form.workspace_id) .then((groups) => { userGroups.value = groups - if (!groups.some(({ id }) => id === form.group_id)) { - form.group_id = undefined + form.group_ids = (form.group_ids ?? []).filter((id) => groups.some(({ id: groupId }) => groupId === id)) + if (!form.group_ids.length) { + form.group_ids = [] } }) .finally(() => { @@ -254,7 +255,7 @@ onMounted(() => { - +