mirror of
https://github.com/jumpserver/lina.git
synced 2025-07-30 22:35:56 +00:00
perf: 批量添加账号 模版添加 样式修改
This commit is contained in:
parent
a1906fd925
commit
cc7dd80a8a
@ -37,11 +37,14 @@ export default {
|
||||
encryptPassword: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
addTemplate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selectedTemplate: false,
|
||||
loading: true,
|
||||
usernameChanged: false,
|
||||
defaultPrivilegedAccounts: ['root', 'administrator'],
|
||||
@ -82,6 +85,7 @@ export default {
|
||||
},
|
||||
template: {
|
||||
component: Select2,
|
||||
rules: [Required],
|
||||
el: {
|
||||
multiple: false,
|
||||
ajax: {
|
||||
@ -92,17 +96,12 @@ export default {
|
||||
}
|
||||
},
|
||||
hidden: () => {
|
||||
return this.platform || this.asset
|
||||
},
|
||||
on: {
|
||||
change: ([event]) => {
|
||||
this.selectedTemplate = !!event
|
||||
}
|
||||
return this.platform || this.asset || !this.addTemplate
|
||||
}
|
||||
},
|
||||
on_invalid: {
|
||||
rules: [Required],
|
||||
label: this.$t('ops.RunasPolicy'),
|
||||
label: this.$t('accounts.AccountPolicy'),
|
||||
helpText: this.$t('accounts.BulkCreateStrategy'),
|
||||
hidden: () => {
|
||||
return this.platform || this.asset
|
||||
@ -124,7 +123,7 @@ export default {
|
||||
}
|
||||
},
|
||||
hidden: () => {
|
||||
return this.selectedTemplate
|
||||
return this.addTemplate
|
||||
}
|
||||
},
|
||||
username: {
|
||||
@ -143,12 +142,12 @@ export default {
|
||||
}
|
||||
},
|
||||
hidden: () => {
|
||||
return this.selectedTemplate
|
||||
return this.addTemplate
|
||||
}
|
||||
},
|
||||
privileged: {
|
||||
hidden: () => {
|
||||
return this.selectedTemplate
|
||||
return this.addTemplate
|
||||
}
|
||||
},
|
||||
su_from: {
|
||||
@ -170,51 +169,46 @@ export default {
|
||||
secret: {
|
||||
label: this.$t('assets.Password'),
|
||||
component: UpdateToken,
|
||||
hidden: (formValue) => formValue.secret_type !== 'password' || this.selectedTemplate
|
||||
hidden: (formValue) => formValue.secret_type !== 'password' || this.addTemplate
|
||||
},
|
||||
ssh_key: {
|
||||
label: this.$t('assets.PrivateKey'),
|
||||
component: UploadSecret,
|
||||
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.selectedTemplate
|
||||
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.addTemplate
|
||||
},
|
||||
passphrase: {
|
||||
label: this.$t('assets.Passphrase'),
|
||||
component: UpdateToken,
|
||||
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.selectedTemplate
|
||||
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.addTemplate
|
||||
},
|
||||
token: {
|
||||
label: this.$t('assets.Token'),
|
||||
component: UploadSecret,
|
||||
hidden: (formValue) => formValue.secret_type !== 'token' || this.selectedTemplate
|
||||
hidden: (formValue) => formValue.secret_type !== 'token' || this.addTemplate
|
||||
},
|
||||
access_key: {
|
||||
id: 'access_key',
|
||||
label: this.$t('assets.AccessKey'),
|
||||
component: UploadSecret,
|
||||
hidden: (formValue) => formValue.secret_type !== 'access_key' || this.selectedTemplate
|
||||
hidden: (formValue) => formValue.secret_type !== 'access_key' || this.addTemplate
|
||||
},
|
||||
secret_type: {
|
||||
type: 'radio-group',
|
||||
options: [],
|
||||
hidden: () => {
|
||||
return this.selectedTemplate
|
||||
return this.addTemplate
|
||||
}
|
||||
},
|
||||
push_now: {
|
||||
helpText: this.$t('accounts.AccountPush.WindowsPushHelpText'),
|
||||
hidden: () => {
|
||||
const automation = this.iPlatform.automation || {}
|
||||
return !automation.push_account_enabled || !automation.ansible_enabled || !this.$hasPerm('accounts.push_account')
|
||||
}
|
||||
},
|
||||
is_active: {
|
||||
hidden: () => {
|
||||
return this.selectedTemplate
|
||||
return !automation.push_account_enabled || !automation.ansible_enabled || !this.$hasPerm('accounts.push_account') || this.addTemplate
|
||||
}
|
||||
},
|
||||
comment: {
|
||||
hidden: () => {
|
||||
return this.selectedTemplate
|
||||
return this.addTemplate
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -16,6 +16,7 @@
|
||||
ref="form"
|
||||
:account="account"
|
||||
:asset="asset"
|
||||
:add-template="addTemplate"
|
||||
@add="addAccount"
|
||||
@edit="editAccount"
|
||||
/>
|
||||
@ -37,6 +38,10 @@ export default {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
addTemplate: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
asset: {
|
||||
type: Object,
|
||||
default: null
|
||||
|
@ -22,6 +22,16 @@
|
||||
@add="addAccountSuccess"
|
||||
@bulk-create-done="showBulkCreateResult($event)"
|
||||
/>
|
||||
<AccountCreateUpdate
|
||||
v-if="showAddTemplateDialog"
|
||||
:account="account"
|
||||
:asset="iAsset"
|
||||
:add-template="true"
|
||||
:title="accountCreateUpdateTitle"
|
||||
:visible.sync="showAddTemplateDialog"
|
||||
@add="addAccountSuccess"
|
||||
@bulk-create-done="showBulkCreateResult($event)"
|
||||
/>
|
||||
<ResultDialog
|
||||
v-if="showResultDialog"
|
||||
:result="createAccountResults"
|
||||
@ -105,6 +115,7 @@ export default {
|
||||
showUpdateSecretDialog: false,
|
||||
showResultDialog: false,
|
||||
showAddDialog: false,
|
||||
showAddTemplateDialog: false,
|
||||
createAccountResults: [],
|
||||
accountCreateUpdateTitle: this.$t('assets.AddAccount'),
|
||||
iAsset: this.asset,
|
||||
@ -307,6 +318,24 @@ export default {
|
||||
})
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'add-template',
|
||||
title: this.$t('common.TemplateAdd'),
|
||||
type: 'primary',
|
||||
has: !(this.platform || this.asset),
|
||||
can: () => {
|
||||
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
|
||||
},
|
||||
callback: async() => {
|
||||
await this.getAssetDetail()
|
||||
setTimeout(() => {
|
||||
vm.iAsset = this.asset
|
||||
vm.account = {}
|
||||
vm.accountCreateUpdateTitle = this.$t('assets.AddAccount')
|
||||
vm.showAddTemplateDialog = true
|
||||
})
|
||||
}
|
||||
},
|
||||
...this.headerExtraActions
|
||||
],
|
||||
extraMoreActions: [
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"": "",
|
||||
"accounts": {
|
||||
"AccountPolicy": "Account policy",
|
||||
"BulkCreateStrategy": "When creating accounts that do not meet the requirements, such as key type non-compliance and unique key constraints, the above policies can be selected.",
|
||||
"HistoryDate": "History date",
|
||||
"SameTypeAccountTip": "An account with the same user name and key type already exists",
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"": "",
|
||||
"accounts": {
|
||||
"AccountPolicy": "アカウントポリシー",
|
||||
"BulkCreateStrategy": "作成時に要件を満たしていないアカウント(例:鍵タイプが規則に合わない、一意のキー制約がある、上記のポリシーを選択することができます)について。",
|
||||
"HistoryDate": "历史日期",
|
||||
"SameTypeAccountTip": "同じユーザー名、鍵タイプのアカウントはすでに存在します",
|
||||
|
@ -2,6 +2,7 @@
|
||||
"": "",
|
||||
"accounts": {
|
||||
"AddAccountResult": "账号批量添加结果",
|
||||
"AccountPolicy": "账号策略",
|
||||
"BulkCreateStrategy": "创建时对于不符合要求的账号,如:密钥类型不合规,唯一键约束,可选择以上策略。",
|
||||
"AccountTemplate": "账号模版",
|
||||
"HistoryDate": "日期",
|
||||
|
Loading…
Reference in New Issue
Block a user