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 @@
{{ $t('common.delete') }}
@@ -156,6 +134,24 @@ import ParamSettingDialog from './ParamSettingDialog.vue'
import { t } from '@/locales'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission'
+import { useRoute } from 'vue-router'
+import permissionMap from '@/permission'
+
+
+const route = useRoute()
+
+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 props = defineProps<{
model: Model
diff --git a/ui/src/views/model/index.vue b/ui/src/views/model/index.vue
index a97267fcc8f..7a3f33d2dac 100644
--- a/ui/src/views/model/index.vue
+++ b/ui/src/views/model/index.vue
@@ -7,7 +7,7 @@
@click="clickListHandle"
:loading="loading"
shareTitle="views.system.share_tool"
- isShared
+ :showShared="permissionPrecise['is_share']()"
:active="active_provider"
/>
@@ -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()