diff --git a/ui/src/permission/model/system-manage.ts b/ui/src/permission/model/system-manage.ts index adf904aa227..911cfebb6c8 100644 --- a/ui/src/permission/model/system-manage.ts +++ b/ui/src/permission/model/system-manage.ts @@ -6,21 +6,16 @@ const workspace = { hasPermission( new ComplexPermission( [RoleConst.ADMIN], - [PermissionConst.SHARED_TOOL_READ], + [PermissionConst.MODEL_READ], [EditionConst.IS_EE], 'OR', ), 'OR', ), - delete: () => - hasPermission( - [ - RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, - RoleConst.USER.getWorkspaceRole, - PermissionConst.TOOL_DELETE.getWorkspacePermission, - ], - 'OR', - ), + addModel: () => false, + modify: () => false, + paramSetting: () => false, + delete: () => false, } export default workspace diff --git a/ui/src/permission/model/system-share.ts b/ui/src/permission/model/system-share.ts index d70efd68eab..c67a9e13bf5 100644 --- a/ui/src/permission/model/system-share.ts +++ b/ui/src/permission/model/system-share.ts @@ -3,5 +3,10 @@ import { ComplexPermission } from '@/utils/permission/type' import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data' const share = { is_share: () => false, + addModel: () => false, + modify: () => false, + paramSetting: () => false, + delete: () => false, + } export default share diff --git a/ui/src/permission/model/workspace.ts b/ui/src/permission/model/workspace.ts index 00911d0e375..585a94be17b 100644 --- a/ui/src/permission/model/workspace.ts +++ b/ui/src/permission/model/workspace.ts @@ -6,12 +6,52 @@ const workspace = { hasPermission( new ComplexPermission( [RoleConst.ADMIN], - [PermissionConst.SHARED_TOOL_READ], + [PermissionConst.MODEL_READ], [EditionConst.IS_EE], 'OR', ), 'OR', ), + addModel: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.MODEL_CREATE.getWorkspacePermission, + PermissionConst.MODEL_CREATE.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + modify: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.MODEL_EDIT.getWorkspacePermission, + PermissionConst.MODEL_EDIT.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + paramSetting: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.MODEL_EDIT.getWorkspacePermission, + PermissionConst.MODEL_EDIT.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), + delete: () => + hasPermission( + [ + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + RoleConst.USER.getWorkspaceRole, + PermissionConst.MODEL_DELETE.getWorkspacePermission, + PermissionConst.MODEL_DELETE.getWorkspacePermissionWorkspaceManageRole + ], + 'OR' + ), } export default workspace diff --git a/ui/src/views/model/component/ModelCard.vue b/ui/src/views/model/component/ModelCard.vue index 6538710e6aa..dcbf1b437e3 100644 --- a/ui/src/views/model/component/ModelCard.vue +++ b/ui/src/views/model/component/ModelCard.vue @@ -77,16 +77,7 @@ @@ -55,15 +55,12 @@ {{ $t('views.model.addModel') }} @@ -128,6 +125,26 @@ import SelectProviderDialog from '@/views/model/component/SelectProviderDialog.v import { t } from '@/locales' import { PermissionConst, RoleConst } from '@/utils/permission/data' import { loadSharedApi } from '@/utils/dynamics-api/shared-api' +import { useRoute } from 'vue-router' +import useStore from '@/stores' +import permissionMap from '@/permission' + + +const route = useRoute() +const { folder, user } = useStore() + +const type = computed(() => { + if (route.path.includes('shared')) { + return 'systemShare' + } else if (route.path.includes('resource-management')) { + return 'systemManage' + } else { + return 'workspace' + } +}) +const permissionPrecise = computed(() => { + return permissionMap['model'][type.value] +}) const commonList1 = ref() const commonList2 = ref()