feat: Tool permission
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run

This commit is contained in:
zhangzhanwei 2025-06-23 17:44:46 +08:00 committed by zhanweizhang7
parent 92fd481aff
commit 0f8fe31e52
9 changed files with 188 additions and 89 deletions

View File

@ -18,9 +18,71 @@ const workspace = {
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_DELETE.getWorkspacePermission,
PermissionConst.TOOL_DELETE.getWorkspacePermissionWorkspaceManageRole
],
'OR',
),
create: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_CREATE.getWorkspacePermission,
PermissionConst.TOOL_CREATE.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
switch: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
edit: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
copy: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
export: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
debug: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_DEBUG.getWorkspacePermission,
PermissionConst.TOOL_DEBUG.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
}
export default workspace

View File

@ -1,3 +1,4 @@
import role from '@/api/system/role'
import { ChatUserResourceEnum } from '@/enums/workspaceChatUser'
import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data'
@ -18,6 +19,12 @@ const DocumentRouter = {
active: 'document',
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole
],
},
component: () => import('@/views/document/index.vue'),
},
@ -31,6 +38,12 @@ const DocumentRouter = {
active: 'problem',
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermission,
PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermissionWorkspaceManageRole
],
},
component: () => import('@/views/problem/index.vue'),
},
@ -57,7 +70,12 @@ const DocumentRouter = {
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
resourceType: ChatUserResourceEnum.KNOWLEDGE,
permission: [EditionConst.IS_PE, EditionConst.IS_EE],
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermission,
PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole
],
},
component: () => import('@/views/chat-user/index.vue'),
},
@ -71,6 +89,13 @@ const DocumentRouter = {
active: 'setting',
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermission,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole
]
},
component: () => import('@/views/knowledge/KnowledgeSetting.vue'),
},

View File

@ -48,8 +48,9 @@
type="primary"
class="ml-8"
v-hasPermission="[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.APPLICATION_EDIT.getWorkspacePermission,
]"
>

View File

@ -14,7 +14,7 @@
"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]"
@ -25,7 +25,7 @@
type="primary"
@click="importDoc"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]"
@ -38,17 +38,21 @@
router.push({
path: `/knowledge/import`,
query: { id: id, folder_token: knowledgeDetail.meta.folder_token },
})
"
})"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]"
>{{ $t('views.document.importDocument') }}
</el-button>
<el-button
@click="batchRefresh"
:disabled="multipleSelection.length === 0"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getKnowledgeWorkspaceResourcePermission(id),
]"
>{{ $t('views.knowledge.setting.vectorization') }}
</el-button>
@ -56,9 +60,9 @@
@click="openGenerateDialog()"
:disabled="multipleSelection.length === 0"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getKnowledgeWorkspaceResourcePermission(id),
]"
>{{ $t('views.document.generateQuestion.title') }}
</el-button>
@ -66,9 +70,9 @@
@click="openknowledgeDialog()"
:disabled="multipleSelection.length === 0"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getKnowledgeWorkspaceResourcePermission(id),
]"
>{{ $t('views.document.setting.migration') }}
</el-button>
@ -84,9 +88,9 @@
@click="openBatchEditDocument"
:disabled="multipleSelection.length === 0"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission],'OR')"
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
>
{{ $t('common.setting') }}
</el-dropdown-item>
@ -96,15 +100,20 @@
:disabled="multipleSelection.length === 0"
v-if="knowledgeDetail.type === 1 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission],'OR')"
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
>{{ $t('views.document.syncDocument') }}
</el-dropdown-item>
<el-dropdown-item
divided
@click="syncLarkMulDocument"
:disabled="multipleSelection.length === 0"
v-if="knowledgeDetail.type === 2"
v-if="knowledgeDetail.type === 2 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
>{{ $t('views.document.syncDocument') }}
</el-dropdown-item>
@ -112,6 +121,12 @@
divided
@click="deleteMulDocument"
:disabled="multipleSelection.length === 0"
v-if="
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getKnowledgeWorkspaceResourcePermission(id)],'OR')
"
>{{ $t('common.delete') }}
</el-dropdown-item>
</el-dropdown-menu>

View File

@ -140,7 +140,12 @@
</el-form-item>
</el-form>
<div class="text-right">
<el-button @click="submit" type="primary"> {{ $t('common.save') }}</el-button>
<el-button @click="submit" type="primary"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(id)]"
> {{ $t('common.save') }}</el-button>
</div>
</div>
</el-scrollbar>
@ -158,6 +163,8 @@ import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { isAppIcon } from '@/utils/common'
import useStore from '@/stores'
import { t } from '@/locales'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
const route = useRoute()
const {

View File

@ -50,6 +50,8 @@
class="ml-8"
v-hasPermission="[
RoleConst.ADMIN,
RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission,
]"
@ -196,6 +198,11 @@
@click="
router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` })
"
v-hasPermission="[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getKnowledgeWorkspaceResourcePermission(item.id),]"
>
<template #icon>
<KnowledgeIcon :type="item.type" />
@ -242,8 +249,9 @@
icon="Refresh"
@click.stop="syncKnowledge(item)"
v-if="item.type === 1 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
hasPermission([
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_SYNC.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_SYNC.getKnowledgeWorkspaceResourcePermission(item.id)],'OR')"
>{{ $t('views.knowledge.setting.sync') }}
@ -254,7 +262,7 @@
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_VECTOR.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_VECTOR.getKnowledgeWorkspaceResourcePermission(item.id),
],
@ -273,7 +281,7 @@
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(item.id),
],
@ -293,7 +301,7 @@
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(item.id),
],
@ -309,7 +317,7 @@
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id),
],
@ -326,7 +334,7 @@
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id),
],
@ -345,7 +353,7 @@
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DELETE.getKnowledgeWorkspaceResourcePermission(item.id),
],

View File

@ -8,20 +8,23 @@
<div>
<el-button type="primary" @click="createProblem"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermission]">
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(id),]">
{{ $t('views.problem.createProblem') }}
</el-button>
<el-button @click="relateProblem()" :disabled="multipleSelection.length === 0"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermission]">
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getKnowledgeWorkspaceResourcePermission(id)]">
{{ $t('views.problem.relateParagraph.title') }}
</el-button>
<el-button @click="deleteMulDocument" :disabled="multipleSelection.length === 0"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermission]">
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getKnowledgeWorkspaceResourcePermission(id)]">
{{ $t('views.problem.setting.batchDelete') }}
</el-button>
</div>
@ -110,8 +113,9 @@
>
<el-button type="primary" text @click.stop="relateProblem(row)"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermission]">
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getKnowledgeWorkspaceResourcePermission(id)]">
<el-icon><Connection /></el-icon>
</el-button>
</el-tooltip>
@ -120,8 +124,9 @@
<el-tooltip effect="dark" :content="$t('common.delete')" placement="top">
<el-button type="primary" text @click.stop="deleteProblem(row)"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermission]">
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getKnowledgeWorkspaceResourcePermission(id)]">
<el-icon><Delete /></el-icon>
</el-button>
</el-tooltip>

View File

@ -79,11 +79,7 @@
<h4 class="title-decoration-1 mb-16">
{{ $t('common.param.initParam') }}
</h4>
<el-button link type="primary" @click="openAddInitDialog()"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission]"
>
<el-button link type="danger" @click="openAddInitDialog()">
<el-icon class="mr-4">
<Plus/>
</el-icon>
@ -165,11 +161,7 @@
{{ $t('views.tool.form.param.paramInfo1') }}
</el-text>
</h4>
<el-button link type="primary" @click="openAddDialog()"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission]"
>
<el-button link type="primary" @click="openAddDialog()">
<el-icon class="mr-4">
<Plus/>
</el-icon>
@ -249,14 +241,9 @@
<div>
<el-button :loading="loading" @click="visible = false">{{ $t('common.cancel') }}</el-button>
<el-button :loading="loading" @click="openDebug"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_DEBUG.getWorkspacePermission]"
v-if="permissionPrecise.debug()"
>{{ $t('common.debug') }}</el-button>
<el-button type="primary" @click="submit(FormRef)" :loading="loading"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission]"
>
{{ isEdit ? $t('common.save') : $t('common.create') }}
</el-button
@ -272,7 +259,7 @@
</template>
<script setup lang="ts">
import {ref, reactive, watch, nextTick} from 'vue'
import {ref, reactive, watch, nextTick, computed} from 'vue'
import FieldFormDialog from '@/views/tool/component/FieldFormDialog.vue'
import ToolDebugDrawer from './ToolDebugDrawer.vue'
import UserFieldFormDialog from '@/views/tool/component/UserFieldFormDialog.vue'
@ -287,6 +274,26 @@ import {t} from '@/locales'
import {isAppIcon} from '@/utils/common'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
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['tool'][type.value]
})
const props = defineProps({
title: String,

View File

@ -49,11 +49,7 @@
<el-button
type="primary"
class="ml-8"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_CREATE.getWorkspacePermission,
]"
v-if="permissionPrecise.create()"
>
{{ $t('common.create') }}
<el-icon class="el-icon--right">
@ -213,11 +209,7 @@
:before-change="() => changeState(item)"
size="small"
class="mr-4"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
]"
v-if="permissionPrecise.switch()"
/>
<el-divider direction="vertical" />
<el-dropdown trigger="click">
@ -237,16 +229,7 @@
<el-dropdown-item
v-if="
!item.template_id &&
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
],
'OR',
)
permissionPrecise.edit()
"
@click.stop="openCreateDialog(item)"
>
@ -258,14 +241,7 @@
<el-dropdown-item
v-if="
!item.template_id &&
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
],
'OR',
)
permissionPrecise.copy()
"
@click.stop="copyTool(item)"
>
@ -282,14 +258,7 @@
<el-dropdown-item
v-if="
!item.template_id &&
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
],
'OR',
)
permissionPrecise.export()
"
@click.stop="exportTool(item)"
>