@@ -153,7 +153,7 @@ import { KnowledgeWorkFlowInstance } from '@/workflow/common/validate'
153153import { hasPermission } from ' @/utils/permission'
154154import DebugVue from ' ./component/DebugDrawer.vue'
155155import { t } from ' @/locales'
156- import { ComplexPermission } from ' @/utils/permission/type'
156+ import { ComplexPermission , Permission } from ' @/utils/permission/type'
157157import { EditionConst , PermissionConst , RoleConst } from ' @/utils/permission/data'
158158import permissionMap from ' @/permission'
159159import { WorkflowMode } from ' @/enums/application'
@@ -464,21 +464,75 @@ function saveknowledge(bool?: boolean, back?: boolean) {
464464 })
465465}
466466const go = () => {
467- if (route .path .includes (' workspace' )) {
467+ if (route .path .includes (' resource-management' )) {
468+ return router .push ({ path: get_resource_management_route () })
469+ } else if (route .path .includes (' shared' )) {
470+ return router .push ({ path: get_shared_route () })
471+ } else {
468472 return router .push ({ path: get_route () })
473+ }
474+ }
475+
476+ const get_shared_route = () => {
477+ if (hasPermission ([RoleConst .ADMIN , PermissionConst .SHARED_KNOWLEDGE_DOCUMENT_READ ], ' OR' )) {
478+ return ` knowledge/${id }/shared/4/document `
479+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .SHARED_KNOWLEDGE_PROBLEM_READ ], ' OR' )) {
480+ return ` /knowledge/${id }/shared/4/problem `
481+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .SHARED_KNOWLEDGE_HIT_TEST_READ ], ' OR' )) {
482+ return ` /knowledge/${id }/shared/4/hit-test `
483+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .SHARED_KNOWLEDGE_CHAT_USER_READ ], ' OR' )) {
484+ return ` /knowledge/${id }/shared/4/chat-user `
485+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .SHARED_KNOWLEDGE_EDIT ], ' OR' )) {
486+ return ` /knowledge/${id }/shared/4/setting `
469487 } else {
470- return router . push ({ path: get_resource_management_route () })
488+ return ` /system/shared/knowledge `
471489 }
472490}
473491
474492const get_resource_management_route = () => {
475- return ` /knowledge/${id }/${folderId }/4/document `
476-
477- // return `/system/resource-management/knowledge` 没有权限的时候返回resource-management的列表
493+ if (hasPermission ([RoleConst .ADMIN , PermissionConst .RESOURCE_KNOWLEDGE_DOCUMENT_READ ],' OR' )) {
494+ return ` /knowledge/${id }/resource-management/4/document `
495+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .RESOURCE_KNOWLEDGE_PROBLEM_READ ], ' OR' )) {
496+ return ` /knowledge/${id }/resource-management/4/problem `
497+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .RESOURCE_KNOWLEDGE_HIT_TEST ], ' OR' )) {
498+ return ` /knowledge/${id }/resource-management/4/hit-test `
499+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .RESOURCE_KNOWLEDGE_CHAT_USER_READ ], ' OR' )) {
500+ return ` /knowledge/${id }/resource-management/4/chat-user `
501+ } else if (hasPermission ([RoleConst .ADMIN , PermissionConst .RESOURCE_KNOWLEDGE_EDIT ], ' OR' )) {
502+ return ` /knowledge/${id }/resource-management/4/setting `
503+ } else {
504+ return ` /system/resource-management/knowledge `
505+ }
478506}
479507
480508const get_route = () => {
481- return ` /knowledge/${id }/${folderId }/4/document `
509+ const checkPermission = (permissionConst : Permission ) => {
510+ return hasPermission ([
511+ new ComplexPermission (
512+ [RoleConst .USER ],
513+ [PermissionConst .KNOWLEDGE .getKnowledgeWorkspaceResourcePermission (id )],
514+ [],
515+ ' AND'
516+ ),
517+ RoleConst .WORKSPACE_MANAGE .getWorkspaceRole ,
518+ permissionConst .getWorkspacePermissionWorkspaceManageRole ,
519+ permissionConst .getKnowledgeWorkspaceResourcePermission (id ),
520+ ],' OR'
521+ )
522+ }
523+ if (checkPermission (PermissionConst .KNOWLEDGE_DOCUMENT_READ )) {
524+ return ` /knowledge/${id }/${folderId }/4/document `
525+ } else if (checkPermission (PermissionConst .KNOWLEDGE_PROBLEM_READ )) {
526+ return ` /knowledge/${id }/${folderId }/4/problem `
527+ } else if (checkPermission (PermissionConst .KNOWLEDGE_HIT_TEST_READ )) {
528+ return ` /knowledge/${id }/${folderId }/4/hit-test `
529+ } else if (checkPermission (PermissionConst .KNOWLEDGE_CHAT_USER_READ )) {
530+ return ` /knowledge/${id }/${folderId }/4/chat-user `
531+ } else if (checkPermission (PermissionConst .KNOWLEDGE_EDIT )) {
532+ return ` /knowledge/${id }/${folderId }/4/setting `
533+ } else {
534+ return ` /knowledge `
535+ }
482536}
483537
484538/**
0 commit comments