From 21e6201d1f43232ed8db6e3f1c736a3fcc932469 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 7 Jun 2021 13:48:22 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=9D=83=E9=99=90=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/main/resources/db/migration/V5__auth.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/resources/db/migration/V5__auth.sql b/backend/src/main/resources/db/migration/V5__auth.sql index d5b0435d2a..9011191782 100644 --- a/backend/src/main/resources/db/migration/V5__auth.sql +++ b/backend/src/main/resources/db/migration/V5__auth.sql @@ -401,7 +401,7 @@ SELECT sys_auth.auth_source having sum( sys_auth_detail.privilege_value )> 0) temp; - select GROUP_CONCAT(id) into oTempAllIds from v_auth_model where v_auth_model.model_type=modelType and FIND_IN_SET(v_auth_model.id,GET_V_AUTH_MODEL_WITH_PARENT ( oTempLeafIds ,modelType)); + select GROUP_CONCAT(id) into oTempAllIds from (select GET_V_AUTH_MODEL_WITH_PARENT ( oTempLeafIds ,modelType) cids) t, v_auth_model where v_auth_model.model_type=modelType and FIND_IN_SET(v_auth_model.id,cids); RETURN oTempAllIds; END From 704d86adf423f6cdb68485ae304b6db6522f7899 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 7 Jun 2021 14:47:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=9D=83=E9=99=90=20=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=88=B0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/utils/permission.js | 8 ++++++++ frontend/src/views/system/datasource/index.vue | 12 +++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) 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: {