mirror of
https://github.com/jumpserver/lina.git
synced 2026-01-13 19:35:24 +00:00
perf: cas用户属性映射不能为空,至少设置username
This commit is contained in:
committed by
Jiangjie.Bai
parent
e0fd33f376
commit
e0f6fb305d
@@ -45,3 +45,20 @@ export const JsonRequired = {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const JsonRequiredUserNameMapped = {
|
||||
required: true,
|
||||
trigger: 'change',
|
||||
validator: (rule, value, callback) => {
|
||||
try {
|
||||
JSON.parse(value)
|
||||
const hasUserName = _.map(JSON.parse(value), (value) => value)
|
||||
if (!hasUserName.includes('username')) {
|
||||
callback(new Error(i18n.t('common.requiredHasUserNameMapped')))
|
||||
}
|
||||
callback()
|
||||
} catch (e) {
|
||||
callback(new Error(i18n.t('common.InvalidJson')))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,6 +414,7 @@
|
||||
"disableSelected": "Disable selected",
|
||||
"disableSuccessMsg": "Disable success",
|
||||
"fieldRequiredError": "This field is required",
|
||||
"requiredHasUserNameMapped": "The mapping of the username field must be included, such as {'uid': 'username'}",
|
||||
"getErrorMsg": "Get failed",
|
||||
"fileType": "File type",
|
||||
"Status": "Status",
|
||||
|
||||
@@ -423,6 +423,7 @@
|
||||
"disableSelected": "選択した無効",
|
||||
"disableSuccessMsg": "成功を無効にする",
|
||||
"fieldRequiredError": "このフィールドは必須項目です",
|
||||
"requiredHasUserNameMapped": "usernameフィールドのマッピングを含める必要があります, {'uid':'username'}など",
|
||||
"getErrorMsg": "の取得に失敗しました",
|
||||
"MFAErrorMsg": "MFAエラーです。チェックしてください",
|
||||
"Total": "合計",
|
||||
|
||||
@@ -423,6 +423,7 @@
|
||||
"disableSelected": "禁用所选",
|
||||
"disableSuccessMsg": "禁用成功",
|
||||
"fieldRequiredError": "这个字段是必填项",
|
||||
"requiredHasUserNameMapped": "必须包含 username 字段的映射,如 { 'uid': 'username' }",
|
||||
"getErrorMsg": "获取失败",
|
||||
"MFAErrorMsg": "MFA错误,请检查",
|
||||
"Total": "总共",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<script>
|
||||
import BaseAuth from './Base'
|
||||
import { JsonRequired } from '@/components/DataForm/rules'
|
||||
import { JsonRequiredUserNameMapped } from '@/components/DataForm/rules'
|
||||
import { JsonEditor } from '@/components/FormFields'
|
||||
|
||||
export default {
|
||||
@@ -25,16 +25,14 @@ export default {
|
||||
'AUTH_CAS', 'CAS_SERVER_URL', 'CAS_ROOT_PROXIED_AS', 'CAS_VERSION'
|
||||
]],
|
||||
[this.$t('common.Other'), [
|
||||
'CAS_LOGOUT_COMPLETELY', 'CAS_USERNAME_ATTRIBUTE',
|
||||
'CAS_APPLY_ATTRIBUTES_TO_USER', 'CAS_RENAME_ATTRIBUTES',
|
||||
'CAS_CREATE_USER'
|
||||
'CAS_LOGOUT_COMPLETELY', 'CAS_RENAME_ATTRIBUTES', 'CAS_CREATE_USER'
|
||||
]]
|
||||
],
|
||||
fieldsMeta: {
|
||||
CAS_RENAME_ATTRIBUTES: {
|
||||
component: JsonEditor,
|
||||
label: this.$t('setting.authUserAttrMap'),
|
||||
rules: [JsonRequired]
|
||||
rules: [JsonRequiredUserNameMapped]
|
||||
}
|
||||
},
|
||||
submitMethod: () => 'patch',
|
||||
@@ -43,9 +41,18 @@ export default {
|
||||
return obj
|
||||
},
|
||||
cleanFormValue(data) {
|
||||
if (data['CAS_RENAME_ATTRIBUTES']) {
|
||||
data['CAS_RENAME_ATTRIBUTES'] = JSON.parse(data['CAS_RENAME_ATTRIBUTES'])
|
||||
let userNameAttribute = ''
|
||||
const renameAttributes = JSON.parse(data['CAS_RENAME_ATTRIBUTES'])
|
||||
if (renameAttributes) {
|
||||
data['CAS_RENAME_ATTRIBUTES'] = renameAttributes
|
||||
}
|
||||
for (const key in renameAttributes) {
|
||||
if (renameAttributes[key] === 'username') {
|
||||
userNameAttribute = key
|
||||
}
|
||||
}
|
||||
data['CAS_USERNAME_ATTRIBUTE'] = userNameAttribute
|
||||
data['CAS_APPLY_ATTRIBUTES_TO_USER'] = true
|
||||
return data
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user