diff --git a/frontend/src/utils/permission.js b/frontend/src/utils/permission.js index 54be75573a..faffd0c727 100644 --- a/frontend/src/utils/permission.js +++ b/frontend/src/utils/permission.js @@ -7,3 +7,11 @@ export function checkPermission(pers) { }) return hasPermission } + +export function hasDataPermission(pTarget, pSource) { + debugger + if (pSource && pTarget) { + return pSource.indexOf(pTarget) > -1 + } + return false +} diff --git a/frontend/src/views/system/datasource/index.vue b/frontend/src/views/system/datasource/index.vue index a756d12b1a..f3c0b77c96 100644 --- a/frontend/src/views/system/datasource/index.vue +++ b/frontend/src/views/system/datasource/index.vue @@ -92,7 +92,7 @@ import LayoutContent from '@/components/business/LayoutContent' import ComplexTable from '@/components/business/complex-table' -import { checkPermission } from '@/utils/permission' +import { checkPermission, hasDataPermission } from '@/utils/permission' import { formatCondition } from '@/utils/index' import { dsGrid, addDs, editDs, delDs, validateDs } from '@/api/system/datasource' @@ -124,10 +124,16 @@ export default { buttons: [ { label: this.$t('commons.edit'), icon: 'el-icon-edit', type: 'primary', click: this.edit, - show: checkPermission(['datasource:edit']) + show: true, + disabled: (row) => { + return !hasDataPermission('manage', row.privileges) + } }, { label: this.$t('commons.delete'), icon: 'el-icon-delete', type: 'danger', click: this._handleDelete, - show: checkPermission(['datasource:del']) + show: true, + disabled: (row) => { + return !hasDataPermission('manage', row.privileges) + } } ], searchConfig: {