Skip to content

Commit e39aa24

Browse files
committed
feat: Knowledge workflow back route permission
1 parent 60e9916 commit e39aa24

File tree

2 files changed

+62
-8
lines changed

2 files changed

+62
-8
lines changed

apps/common/constants/permission_constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1466,7 +1466,7 @@ class PermissionConstants(Enum):
14661466
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
14671467
)
14681468
RESOURCE_KNOWLEDGE_WORKFLOW_EDIT = Permission(
1469-
group=Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
1469+
group=Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
14701470
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
14711471
)
14721472
RESOURCE_KNOWLEDGE_DOCUMENT_READ = Permission(

ui/src/views/knowledge-workflow/index.vue

Lines changed: 61 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ import { KnowledgeWorkFlowInstance } from '@/workflow/common/validate'
153153
import { hasPermission } from '@/utils/permission'
154154
import DebugVue from './component/DebugDrawer.vue'
155155
import { t } from '@/locales'
156-
import { ComplexPermission } from '@/utils/permission/type'
156+
import { ComplexPermission, Permission } from '@/utils/permission/type'
157157
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
158158
import permissionMap from '@/permission'
159159
import { WorkflowMode } from '@/enums/application'
@@ -464,21 +464,75 @@ function saveknowledge(bool?: boolean, back?: boolean) {
464464
})
465465
}
466466
const 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
474492
const 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
480508
const 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

Comments
 (0)