feat: Document download permission

This commit is contained in:
zhangzhanwei 2025-06-26 10:26:22 +08:00 committed by zhanweizhang7
parent b5bbf9d0bb
commit dd63b853d0
7 changed files with 24 additions and 4 deletions

View File

@ -28,6 +28,7 @@ const workspace = {
doc_sync: () => false,
doc_delete: () => false,
doc_export: () => false,
doc_download: () => false,
problem_create: () => false,
problem_relate: () => false,

View File

@ -124,7 +124,14 @@ const share = {
],
'OR'
),
doc_download: () =>
hasPermission (
[
RoleConst.ADMIN,
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE
],
'OR'
),
problem_create: () =>
hasPermission (
[

View File

@ -163,6 +163,16 @@ const workspace = {
],
'OR',
),
doc_download: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
problem_create: (source_id:string) =>
hasPermission(
[

View File

@ -1,7 +1,7 @@
import { ChatUserResourceEnum } from '@/enums/workspaceChatUser'
import { get_next_route } from '@/utils/permission'
import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
const ApplicationDetailRouter = {
path: '/application/:id/:type',

View File

@ -100,6 +100,7 @@ const PermissionConst = {
KNOWLEDGE_DOCUMENT_VECTOR:new Permission('KNOWLEDGE_DOCUMENT:READ+VECTOR'),
KNOWLEDGE_DOCUMENT_GENERATE:new Permission('KNOWLEDGE_DOCUMENT:READ+GENERATE'),
KNOWLEDGE_DOCUMENT_EXPORT:new Permission('KNOWLEDGE_DOCUMENT:READ+EXPORT'),
KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE:new Permission('KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'),
KNOWLEDGE_PROBLEM_READ:new Permission('KNOWLEDGE_PROBLEM:READ'),
KNOWLEDGE_PROBLEM_CREATE:new Permission('KNOWLEDGE_PROBLEM:READ+CREATE'),

View File

@ -444,7 +444,9 @@
<AppIcon iconName="app-export"></AppIcon>
{{ $t('views.document.setting.export') }} Zip
</el-dropdown-item>
<el-dropdown-item icon="Download" @click.stop="downloadDocument(row)">
<el-dropdown-item icon="Download" @click.stop="downloadDocument(row)"
v-if="permissionPrecise.doc_download(id)"
>
{{ $t('views.document.setting.download') }}
</el-dropdown-item>
<el-dropdown-item

View File

@ -124,7 +124,6 @@ import { modelTypeList, allObj } from '@/views/model/component/data'
import CreateModelDialog from '@/views/model/component/CreateModelDialog.vue'
import SelectProviderDialog from '@/views/model/component/SelectProviderDialog.vue'
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 permissionMap from '@/permission'