diff --git a/src/api/common.js b/src/api/common.js index 8cff6cc3c..d700fbe23 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -1,6 +1,13 @@ import request from '@/utils/request' export function createSourceIdCache(ids) { + ids = ids.map(item => { + if (typeof item === 'object' && item.id) { + return item.id + } else { + return item + } + }) return request({ url: '/api/v1/common/resources/cache/', method: 'post', diff --git a/src/components/AccountListTable/index.vue b/src/components/AccountListTable/index.vue index 0a70ffcd1..f330bb6b7 100644 --- a/src/components/AccountListTable/index.vue +++ b/src/components/AccountListTable/index.vue @@ -66,6 +66,14 @@ export default { columns: { type: Array, default: () => [] + }, + hasExport: { + type: Boolean, + default: true + }, + hasImport: { + type: Boolean, + default: true } }, data() { @@ -117,16 +125,10 @@ export default { }, privileged: { label: this.$t('assets.Privileged'), + width: '120px', formatterArgs: { - getText: ({ row }) => { - return row.privileged ? ' ' : '-' - }, - getIcon: ({ row }) => { - return row.privileged ? 'fa-check-circle text-primary' : '' - }, - classChoices: { - false: '' - } + showText: false, + showFalse: false } }, connectivity: connectivityMeta, @@ -199,7 +201,7 @@ export default { hasMoreActions: true, hasCreate: false, hasImport: true, - hasExport: this.$hasPerm('assets.view_account'), + hasExport: this.hasExport && this.$hasPerm('assets.view_accountsecret'), exportOptions: { url: this.exportUrl, mfaVerifyRequired: true @@ -217,7 +219,7 @@ export default { } ], searchConfig: { - exclude: ['systemuser', 'asset'] + exclude: ['asset'] }, hasSearch: true } diff --git a/src/components/RelationCard/index.vue b/src/components/RelationCard/index.vue index a461d1143..121163166 100644 --- a/src/components/RelationCard/index.vue +++ b/src/components/RelationCard/index.vue @@ -1,5 +1,5 @@ @@ -141,53 +140,6 @@ export default { this.$message.success(this.$t('common.deleteSuccessMsg')) this.$refs.ListTable.reloadTable() } - }, - systemUserRelationConfig: { - icon: 'fa-edit', - title: this.$t('perms.addSystemUserToThisPermission'), - objectsAjax: { - url: '/api/v1/assets/system-users/?protocol__in=rdp,ssh,vnc,telnet', - transformOption: (item) => { - const username = item.username || '*' - return { label: item.name + '(' + username + ')', value: item.id } - } - }, - hasObjectsId: this.object.system_users, - performAdd: (items) => { - const relationUrl = `/api/v1/perms/asset-permissions-system-users-relations/` - const objectId = this.object.id - const data = items.map(v => { - return { - assetpermission: objectId, - systemuser: v.value - } - }) - return this.$axios.post(relationUrl, data) - }, - onAddSuccess: (objects, that) => { - this.$log.debug('Select value', that.select2.value) - that.iHasObjects = [...that.iHasObjects, ...objects] - that.$refs.select2.clearSelected() - this.$message.success(this.$t('common.updateSuccessMsg')) - }, - performDelete: (item) => { - const itemId = item.value - const objectId = this.object.id - const relationUrl = `/api/v1/perms/asset-permissions-system-users-relations/?assetpermission=${objectId}&systemuser=${itemId}` - return this.$axios.delete(relationUrl) - }, - onDeleteSuccess: (obj, that) => { - // 从hasObjects中移除这个object - const theRemoveIndex = that.iHasObjects.findIndex((v) => v.value === obj.value) - that.iHasObjects.splice(theRemoveIndex, 1) - // 从disabled values中移除这个value - while (that.select2.disabledValues.indexOf(obj.value) !== -1) { - const i = that.select2.disabledValues.indexOf(obj.value) - this.$log.debug('disabled values remove index: ', i) - that.select2.disabledValues.splice(i, 1) - } - this.$message.success(this.$t('common.deleteSuccessMsg')) - } } } } diff --git a/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionDetail.vue b/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionDetail.vue index f7c38eca1..f72d07b86 100644 --- a/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionDetail.vue +++ b/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionDetail.vue @@ -79,8 +79,14 @@ export default { key: this.$t('perms.Actions'), value: this.object.actions, formatter(row, value) { - const actionMap = value.map(item => ACTIONS_FIELDS_MAP[item].action).join(',') - return {actionMap} + const actionMap = value.map(item => ACTIONS_FIELDS_MAP[item].action) + return ( +
+ {actionMap.map(item => ( + {item} + )) } +
+ ) } }, { @@ -109,6 +115,5 @@ export default { } - diff --git a/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionUser.vue b/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionUser.vue index bb4723825..d550bdb5a 100644 --- a/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionUser.vue +++ b/src/views/perms/AssetPermission/AssetPermissionDetail/AssetPermissionUser.vue @@ -120,7 +120,7 @@ export default { this.$log.debug('Select value', that.select2.value) that.iHasObjects = [...that.iHasObjects, ...objects] that.$refs.select2.clearSelected() - this.$message.success(this.$t('common.updateSuccessMsg')) + this.$message.success(this.$tc('common.updateSuccessMsg')) this.$refs.ListTable.reloadTable() }, onDeleteSuccess: (obj, that) => { diff --git a/src/views/perms/AssetPermission/AssetPermissionList.vue b/src/views/perms/AssetPermission/AssetPermissionList.vue index cd5d5541b..5ccb9116a 100644 --- a/src/views/perms/AssetPermission/AssetPermissionList.vue +++ b/src/views/perms/AssetPermission/AssetPermissionList.vue @@ -53,7 +53,6 @@ export default { name: { formatterArgs: { routeQuery: { - name: 'AssetPermissionDetail', activeTab: 'AssetPermissionDetail' } },