mirror of
https://github.com/jumpserver/lina.git
synced 2025-04-27 11:10:51 +00:00
perf: change domain to zone
This commit is contained in:
parent
deea38c704
commit
9a0158da3a
@ -16,9 +16,9 @@ export function getSystemUserList(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export function getDomainList(data) {
|
||||
export function getZoneList(data) {
|
||||
return request({
|
||||
url: '/api/v1/assets/domains/',
|
||||
url: '/api/v1/assets/zones/',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
|
@ -228,35 +228,35 @@ export default [
|
||||
component: empty,
|
||||
redirect: '',
|
||||
meta: {
|
||||
resource: 'domain',
|
||||
resource: 'zone',
|
||||
icon: 'zone',
|
||||
permissions: ['assets.view_domain']
|
||||
permissions: ['assets.view_zone']
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
name: 'ZoneList',
|
||||
component: () => import('@/views/assets/Domain/DomainList.vue'),
|
||||
component: () => import('@/views/assets/Zone/ZoneList.vue'),
|
||||
meta: { title: i18n.t('ZoneList') }
|
||||
},
|
||||
{
|
||||
path: 'create',
|
||||
name: 'ZoneCreate',
|
||||
component: () => import('@/views/assets/Domain/DomainCreateUpdate.vue'),
|
||||
component: () => import('@/views/assets/Zone/ZoneCreateUpdate.vue'),
|
||||
hidden: true,
|
||||
meta: { title: i18n.t('ZoneCreate') }
|
||||
},
|
||||
{
|
||||
path: ':id/update',
|
||||
name: 'ZoneUpdate',
|
||||
component: () => import('@/views/assets/Domain/DomainCreateUpdate.vue'),
|
||||
component: () => import('@/views/assets/Zone/ZoneCreateUpdate.vue'),
|
||||
hidden: true,
|
||||
meta: { title: i18n.t('ZoneUpdate') }
|
||||
},
|
||||
{
|
||||
path: ':id',
|
||||
name: 'ZoneDetail',
|
||||
component: () => import('@/views/assets/Domain/DomainDetail'),
|
||||
component: () => import('@/views/assets/Zone/ZoneDetail'),
|
||||
hidden: true,
|
||||
meta: { title: i18n.t('Zone') }
|
||||
}
|
||||
@ -274,7 +274,7 @@ export default [
|
||||
{
|
||||
path: 'create',
|
||||
name: 'GatewayCreate',
|
||||
component: () => import('@/views/assets/Domain/DomainDetail/GatewayCreateUpdate.vue'),
|
||||
component: () => import('@/views/assets/Zone/ZoneDetail/GatewayCreateUpdate.vue'),
|
||||
meta: {
|
||||
title: i18n.t('GatewayCreate'),
|
||||
permissions: ['assets.view_gateway']
|
||||
@ -283,7 +283,7 @@ export default [
|
||||
{
|
||||
path: ':id/update',
|
||||
name: 'GatewayUpdate',
|
||||
component: () => import('@/views/assets/Domain/DomainDetail/GatewayCreateUpdate.vue'),
|
||||
component: () => import('@/views/assets/Zone/ZoneDetail/GatewayCreateUpdate.vue'),
|
||||
meta: {
|
||||
title: i18n.t('GatewayUpdate'),
|
||||
permissions: ['assets.change_gateway']
|
||||
|
@ -64,7 +64,7 @@ export default {
|
||||
[this.$t('Basic'), ['name', 'address', 'platform', 'nodes']],
|
||||
[this.$t('Protocol'), ['protocols']],
|
||||
[this.$t('Account'), ['accounts']],
|
||||
[this.$t('Other'), ['directory_services', 'domain', 'labels', 'is_active', 'comment']]
|
||||
[this.$t('Other'), ['directory_services', 'zone', 'labels', 'is_active', 'comment']]
|
||||
],
|
||||
fieldsMeta: {},
|
||||
performSubmit(validValues) {
|
||||
|
@ -184,7 +184,7 @@ export default {
|
||||
object: this.object,
|
||||
fields: [
|
||||
'id', 'name', 'category', 'type',
|
||||
'address', 'platform', 'protocols', 'domain',
|
||||
'address', 'platform', 'protocols', 'zone',
|
||||
'is_active', 'date_created', 'date_updated',
|
||||
'created_by', 'comment'
|
||||
],
|
||||
|
@ -41,7 +41,7 @@ export default {
|
||||
formSetting: {
|
||||
url: '/api/v1/assets/assets/',
|
||||
hasSaveContinue: false,
|
||||
fields: ['platform', 'nodes', 'domain', 'labels', 'is_active', 'comment'],
|
||||
fields: ['platform', 'nodes', 'zone', 'labels', 'is_active', 'comment'],
|
||||
fieldsMeta: {
|
||||
platform: {
|
||||
el: {
|
||||
@ -63,8 +63,8 @@ export default {
|
||||
...meta.nodes,
|
||||
label: this.$t('Node')
|
||||
},
|
||||
domain: {
|
||||
...meta.domain,
|
||||
zone: {
|
||||
...meta.zone,
|
||||
label: this.$tc('Zone'),
|
||||
disabled: exclude.includes(this.category)
|
||||
},
|
||||
|
@ -73,8 +73,8 @@ export default {
|
||||
case 'node':
|
||||
url = '/api/v1/assets/nodes/'
|
||||
break
|
||||
case 'domain':
|
||||
url = '/api/v1/assets/domains/'
|
||||
case 'zone':
|
||||
url = '/api/v1/assets/zones/'
|
||||
break
|
||||
case 'account_template':
|
||||
url = '/api/v1/accounts/account-templates/'
|
||||
@ -209,7 +209,7 @@ export default {
|
||||
beforeSubmit(data) {
|
||||
let status = true
|
||||
const labelMap = {
|
||||
platform: this.$tc('Platform'), domain: this.$tc('Zone'),
|
||||
platform: this.$tc('Platform'), zone: this.$tc('Zone'),
|
||||
name_strategy: this.$tc('Strategy')
|
||||
}
|
||||
this.tableConfig.totalData.map(item => {
|
||||
|
@ -4,7 +4,7 @@ import { attrMatchOptions } from '@/components/const'
|
||||
export const resourceTypeOptions = [
|
||||
{ label: i18n.t('Platform'), value: 'platform' },
|
||||
{ label: i18n.t('Node'), value: 'node' },
|
||||
{ label: i18n.t('Zone'), value: 'domain' },
|
||||
{ label: i18n.t('Zone'), value: 'zone' },
|
||||
{ label: i18n.t('AccountTemplate'), value: 'account_template' },
|
||||
{ label: i18n.t('Tags'), value: 'label' },
|
||||
{ label: i18n.t('Strategy'), value: 'name_strategy' }
|
||||
@ -20,7 +20,9 @@ export const tableFormatter = (colName, getResourceLabel) => {
|
||||
return (row, col, cellValue) => {
|
||||
const globalResource = {}
|
||||
const value = cellValue
|
||||
if (value?.label) { return value.label }
|
||||
if (value?.label) {
|
||||
return value.label
|
||||
}
|
||||
switch (colName) {
|
||||
case 'attr':
|
||||
return instanceAttrOptions.find(attr => attr.value === value)?.label || value
|
||||
@ -36,7 +38,9 @@ export const tableFormatter = (colName, getResourceLabel) => {
|
||||
}
|
||||
return globalResource[value] || value
|
||||
case 'protocols':
|
||||
return Array.isArray(value) ? value.map(p => { return `${p.name}/${p.port}` }).join(', ') : ''
|
||||
return Array.isArray(value) ? value.map(p => {
|
||||
return `${p.name}/${p.port}`
|
||||
}).join(', ') : ''
|
||||
case 'count':
|
||||
return value?.length || 0
|
||||
default:
|
||||
|
@ -50,7 +50,7 @@ export default {
|
||||
]],
|
||||
[this.$t('Config'), [
|
||||
'protocols', 'su_enabled', 'su_method',
|
||||
'domain_enabled', 'ds_enabled',
|
||||
'gateway_enabled', 'ds_enabled',
|
||||
'charset'
|
||||
]],
|
||||
[this.$t('Automations'), ['automation']],
|
||||
@ -152,7 +152,7 @@ export default {
|
||||
})
|
||||
this.fieldsMeta.protocols.el.choices = protocols
|
||||
|
||||
const fieldsCheck = ['domain_enabled', 'su_enabled']
|
||||
const fieldsCheck = ['gateway_enabled', 'su_enabled']
|
||||
for (const field of fieldsCheck) {
|
||||
const disabled = constraints[field] === false
|
||||
this.initial[field] = !disabled
|
||||
|
@ -59,7 +59,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
fields: ['domain_enabled'],
|
||||
fields: ['gateway_enabled'],
|
||||
quickActions: [],
|
||||
url: `/api/v1/assets/platforms/${this.object.id}/`,
|
||||
detailFields: [
|
||||
@ -101,16 +101,16 @@ export default {
|
||||
const { object } = this
|
||||
const quickActions = [
|
||||
{
|
||||
title: this.$t('EnableDomain'),
|
||||
title: this.$t('EnableGateway'),
|
||||
type: 'switch',
|
||||
attrs: {
|
||||
label: this.$t('Update'),
|
||||
model: object['domain_enabled'],
|
||||
disabled: !this.canEdit || this.constraints['domain_enabled'] === false
|
||||
model: object['gateway_enabled'],
|
||||
disabled: !this.canEdit || this.constraints['gateway_enabled'] === false
|
||||
},
|
||||
callbacks: Object.freeze({
|
||||
change: (val) => {
|
||||
const data = { domain_enabled: val }
|
||||
const data = { gateway_enabled: val }
|
||||
this.$axios.patch(
|
||||
`/api/v1/assets/platforms/${object.id}/`, data).then(res => {
|
||||
this.$message.success(this.$tc('UpdateSuccessMsg'))
|
||||
|
@ -73,7 +73,7 @@ export default {
|
||||
category: {
|
||||
formatter: ChoicesFormatter
|
||||
},
|
||||
domain_enabled: {
|
||||
gateway_enabled: {
|
||||
formatterArgs: {
|
||||
showFalse: false
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ export const platformFieldsMeta = (vm) => {
|
||||
}
|
||||
},
|
||||
charset: {},
|
||||
domain_enabled: {
|
||||
gateway_enabled: {
|
||||
el: {
|
||||
disabled: false
|
||||
}
|
||||
|
@ -25,9 +25,9 @@ export default {
|
||||
component: AssetSelect,
|
||||
el: {
|
||||
value: [],
|
||||
baseUrl: '/api/v1/assets/assets/?domain_enabled=true',
|
||||
baseUrl: '/api/v1/assets/assets/?gateway_enabled=true',
|
||||
treeUrlQuery: {
|
||||
domain_enabled: true
|
||||
gateway_enabled: true
|
||||
},
|
||||
canSelect: (row) => {
|
||||
return !row.platform?.name.startsWith('Gateway')
|
||||
@ -42,7 +42,7 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
url: '/api/v1/assets/domains/'
|
||||
url: '/api/v1/assets/zones/'
|
||||
}
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
|
||||
<script>
|
||||
import BaseList from '@/views/assets/Asset/AssetList/components/BaseList'
|
||||
import AddAssetDialog from '@/views/assets/Domain/components/AddAssetDialog.vue'
|
||||
import AddAssetDialog from '@/views/assets/Zone/components/AddAssetDialog.vue'
|
||||
import TwoCol from '@/layout/components/Page/TwoColPage.vue'
|
||||
|
||||
export default {
|
||||
@ -34,7 +34,7 @@ export default {
|
||||
return {
|
||||
config: {
|
||||
category: 'all',
|
||||
url: `/api/v1/assets/assets/?domain=${this.object.id}&is_gateway=0`,
|
||||
url: `/api/v1/assets/assets/?zone=${this.object.id}&is_gateway=0`,
|
||||
tableConfig: {
|
||||
columns: ['name', 'address', 'platform', 'actions'],
|
||||
columnsMeta: {
|
||||
@ -114,14 +114,14 @@ export default {
|
||||
patch_data = rows.selectedRows.map(row => {
|
||||
return {
|
||||
id: row.id,
|
||||
domain: null
|
||||
zone: null
|
||||
}
|
||||
})
|
||||
msg = patch_data.length + ' ' + this.$t('Rows')
|
||||
} else {
|
||||
patch_data = [{
|
||||
id: rows.row.id,
|
||||
domain: null
|
||||
zone: null
|
||||
}]
|
||||
msg = rows.row.name
|
||||
}
|
@ -23,7 +23,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
url: `/api/v1/assets/domains/${this.object.id}/`,
|
||||
url: `/api/v1/assets/zones/${this.object.id}/`,
|
||||
detailFields: [
|
||||
'name', 'assets_amount',
|
||||
{
|
@ -17,11 +17,11 @@ export default {
|
||||
const url = `/api/v1/assets/platforms/?name__startswith=Gateway`
|
||||
const platform = await this.$axios.get(url)
|
||||
initial.platform = parseInt(platform[0].id)
|
||||
initial.domain = this.$route.query.domain
|
||||
initial.zone = this.$route.query.zone
|
||||
return initial
|
||||
},
|
||||
addFieldsMeta: {
|
||||
domain: {
|
||||
zone: {
|
||||
disabled: true
|
||||
},
|
||||
platform: {
|
||||
@ -40,7 +40,7 @@ export default {
|
||||
createSuccessNextRoute: {
|
||||
name: 'ZoneDetail',
|
||||
params: {
|
||||
id: this.$route.query.domain
|
||||
id: this.$route.query.zone
|
||||
},
|
||||
query: {
|
||||
tab: 'GatewayList'
|
||||
@ -49,7 +49,7 @@ export default {
|
||||
updateSuccessNextRoute: {
|
||||
name: 'ZoneDetail',
|
||||
params: {
|
||||
id: this.$route.query.domain
|
||||
id: this.$route.query.zone
|
||||
},
|
||||
query: {
|
||||
tab: 'GatewayList'
|
@ -27,7 +27,7 @@ import { GenericListTable } from '@/layout/components'
|
||||
import GatewayTestDialog from '@/components/Apps/GatewayTestDialog'
|
||||
import { connectivityMeta } from '@/components/Apps/AccountListTable/const'
|
||||
import { ArrayFormatter, ChoicesFormatter, DetailFormatter, TagsFormatter } from '@/components/Table/TableFormatters'
|
||||
import AddGatewayDialog from '@/views/assets/Domain/components/AddGatewayDialog'
|
||||
import AddGatewayDialog from '@/views/assets/Zone/components/AddGatewayDialog'
|
||||
import TwoCol from '@/layout/components/Page/TwoColPage.vue'
|
||||
|
||||
export default {
|
||||
@ -48,7 +48,7 @@ export default {
|
||||
const vm = this
|
||||
|
||||
return {
|
||||
createDrawer: () => import('@/views/assets/Domain/DomainDetail/GatewayCreateUpdate.vue'),
|
||||
createDrawer: () => import('@/views/assets/Zone/ZoneDetail/GatewayCreateUpdate.vue'),
|
||||
detailDrawer: () => import('@/views/assets/Asset/AssetDetail'),
|
||||
transObject: {},
|
||||
testConfig: {
|
||||
@ -57,7 +57,7 @@ export default {
|
||||
cell: ''
|
||||
},
|
||||
tableConfig: {
|
||||
url: `/api/v1/assets/gateways/?domain=${this.object.id}`,
|
||||
url: `/api/v1/assets/gateways/?zone=${this.object.id}`,
|
||||
columnsExclude: [
|
||||
'info', 'spec_info', 'auto_config'
|
||||
],
|
||||
@ -113,7 +113,7 @@ export default {
|
||||
formatterArgs: {
|
||||
updateRoute: {
|
||||
name: 'GatewayUpdate',
|
||||
query: { domain: this.object.id, platform_type: 'linux', 'category': 'host' }
|
||||
query: { zone: this.object.id, platform_type: 'linux', 'category': 'host' }
|
||||
},
|
||||
onClone: ({ row }) => {
|
||||
this.$refs.ListTable.onClone({ row: { ...row, payload: 'pam_asset_clone' }})
|
||||
@ -203,7 +203,7 @@ export default {
|
||||
}
|
||||
],
|
||||
onCreate: () => {
|
||||
vm.$refs.ListTable.onCreate({ query: { domain: vm.object.id, platform_type: 'linux', category: 'host' }})
|
||||
vm.$refs.ListTable.onCreate({ query: { zone: vm.object.id, platform_type: 'linux', category: 'host' }})
|
||||
}
|
||||
},
|
||||
addGatewaySetting: {
|
||||
@ -222,14 +222,14 @@ export default {
|
||||
patch_data = rows.selectedRows.map(row => {
|
||||
return {
|
||||
id: row.id,
|
||||
domain: null
|
||||
zone: null
|
||||
}
|
||||
})
|
||||
msg = patch_data.length + ' ' + this.$t('Rows')
|
||||
} else {
|
||||
patch_data = [{
|
||||
id: rows.row.id,
|
||||
domain: null
|
||||
zone: null
|
||||
}]
|
||||
msg = rows.row.name
|
||||
}
|
@ -25,7 +25,7 @@ export default {
|
||||
TaskDetail: {},
|
||||
config: {
|
||||
activeMenu: 'Detail',
|
||||
url: '/api/v1/assets/domains/',
|
||||
url: '/api/v1/assets/zones/',
|
||||
submenu: [
|
||||
{
|
||||
title: this.$t('Basic'),
|
@ -18,10 +18,10 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
createDrawer: () => import('./DomainCreateUpdate.vue'),
|
||||
detailDrawer: () => import('./DomainDetail/index.vue'),
|
||||
createDrawer: () => import('./ZoneCreateUpdate.vue'),
|
||||
detailDrawer: () => import('@/views/assets/Zone/ZoneDetail/index.vue'),
|
||||
tableConfig: {
|
||||
url: '/api/v1/assets/domains/',
|
||||
url: '/api/v1/assets/zones/',
|
||||
columnsExclude: ['gateway'],
|
||||
columnsExtra: ['gateways'],
|
||||
columns: ['name', 'assets_amount', 'gateways', 'labels', 'comment', 'actions'],
|
@ -5,7 +5,7 @@
|
||||
:modal="false"
|
||||
:show-cancel="false"
|
||||
:show-confirm="false"
|
||||
:title="$tc('AddAssetInDomain')"
|
||||
:title="$tc('AddAssetInZone')"
|
||||
:visible.sync="setting.addAssetDialogVisible"
|
||||
after
|
||||
custom-class="asset-select-dialog"
|
||||
@ -62,9 +62,9 @@ export default {
|
||||
type: 'select2',
|
||||
el: {
|
||||
value: [],
|
||||
url: '/api/v1/assets/assets/?domain_enabled=true',
|
||||
url: '/api/v1/assets/assets/?gateway_enabled=true',
|
||||
treeUrlQuery: {
|
||||
domain_enabled: true
|
||||
gateway_enabled: true
|
||||
},
|
||||
canSelect: (row) => {
|
||||
return !row.platform?.name.startsWith('Gateway') && this.object.assets.map(item => item.id).indexOf(row.id) === -1
|
||||
@ -75,7 +75,7 @@ export default {
|
||||
cleanFormValue(values) {
|
||||
const data = []
|
||||
values.assets.forEach(item => {
|
||||
const d = { id: item, domain: vm.object.id }
|
||||
const d = { id: item, zone: vm.object.id }
|
||||
data.push(d)
|
||||
})
|
||||
return data
|
@ -4,7 +4,7 @@
|
||||
:destroy-on-close="true"
|
||||
:show-cancel="false"
|
||||
:show-confirm="false"
|
||||
:title="$tc('AddGatewayInDomain')"
|
||||
:title="$tc('AddGatewayInZone')"
|
||||
:visible.sync="setting.addGatewayDialogVisible"
|
||||
after
|
||||
custom-class="asset-select-dialog"
|
||||
@ -65,7 +65,7 @@ export default {
|
||||
multiple: true,
|
||||
clearable: true,
|
||||
ajax: {
|
||||
url: '/api/v1/assets/assets/?domain_enabled=true&is_gateway=1'
|
||||
url: '/api/v1/assets/assets/?gateway_enabled=true&is_gateway=1'
|
||||
},
|
||||
disabledValues: this.object.gateways.map(item => item.id)
|
||||
}
|
||||
@ -74,7 +74,7 @@ export default {
|
||||
cleanFormValue(values) {
|
||||
const data = []
|
||||
values.gateways.forEach(item => {
|
||||
const d = { id: item.pk, domain: vm.object.id }
|
||||
const d = { id: item.pk, zone: vm.object.id }
|
||||
data.push(d)
|
||||
})
|
||||
return data
|
@ -112,18 +112,18 @@ export const assetFieldsMeta = (vm, category, type) => {
|
||||
}, 200)
|
||||
}
|
||||
},
|
||||
domain: {
|
||||
zone: {
|
||||
component: Select2,
|
||||
disabled: false,
|
||||
el: {
|
||||
multiple: false,
|
||||
clearable: true,
|
||||
ajax: {
|
||||
url: '/api/v1/assets/domains/'
|
||||
url: '/api/v1/assets/zones/'
|
||||
}
|
||||
},
|
||||
hidden: () => {
|
||||
return vm.platform.domain_enabled === false
|
||||
return vm.platform.gateway_enabled === false
|
||||
}
|
||||
},
|
||||
accounts: {
|
||||
|
@ -56,7 +56,7 @@ export default {
|
||||
platform: {
|
||||
hidden: () => true
|
||||
},
|
||||
domain: {
|
||||
zone: {
|
||||
hidden: () => {
|
||||
return !this.$store.getters.hasValidLicense
|
||||
},
|
||||
|
@ -110,9 +110,9 @@ export default {
|
||||
'assets.view_asset': ['assets.view_platform'],
|
||||
'assets.view_node': ['assets.view_asset', 'assets.view_platform'],
|
||||
'acls.commandgroup': ['acls.view_commandfilteracl'],
|
||||
'assets.gateway': ['assets.view_domain'],
|
||||
'assets.add_gateway': ['assets.view_domain', 'assets.view_platform', 'assets.view_node'],
|
||||
'assets.change_gateway': ['assets.view_domain', 'assets.view_platform', 'assets.view_node'],
|
||||
'assets.gateway': ['assets.view_zone'],
|
||||
'assets.add_gateway': ['assets.view_zone', 'assets.view_platform', 'assets.view_node'],
|
||||
'assets.change_gateway': ['assets.view_zone', 'assets.view_platform', 'assets.view_node'],
|
||||
'assets.add_asset': ['assets.view_platform'],
|
||||
'assets.change_asset': ['assets.view_platform'],
|
||||
'accounts.view_gatheredaccount': ['assets.view_asset', 'assets.view_node'],
|
||||
|
Loading…
Reference in New Issue
Block a user