11import { SourceTypeEnum } from '@/enums/common'
22import { get_next_route } from '@/utils/permission'
3- import { PermissionConst , RoleConst } from '@/utils/permission/data'
3+ import { EditionConst , PermissionConst , RoleConst } from '@/utils/permission/data'
4+ import { ComplexPermission } from '@/utils/permission/type'
45const DocumentRouter = {
56 path : '/knowledge/:id/:folderId' ,
67 name : 'KnowledgeDetail' ,
@@ -21,14 +22,30 @@ const DocumentRouter = {
2122 group : 'KnowledgeDetail' ,
2223 permission : [
2324 RoleConst . ADMIN ,
24- RoleConst . WORKSPACE_MANAGE . getWorkspaceRole ,
2525 ( ) => {
2626 const to : any = get_next_route ( )
27- return PermissionConst . KNOWLEDGE_DOCUMENT_READ . getKnowledgeWorkspaceResourcePermission (
27+ if ( to . params . folder_id == 'shared' ) {
28+ return RoleConst . ADMIN
29+ } else {
30+ return RoleConst . WORKSPACE_MANAGE . getWorkspaceRole
31+ }
32+ } ,
33+ ( ) => {
34+ const to : any = get_next_route ( )
35+
36+ if ( to . params . folderId == 'shared' ) {
37+
38+ return PermissionConst . SHARED_KNOWLEDGE_DOCUMENT_READ } else {
39+ return PermissionConst . KNOWLEDGE_DOCUMENT_READ . getKnowledgeWorkspaceResourcePermission (
2840 to ? to . params . id : '' ,
29- )
41+ ) }
3042 } ,
31- PermissionConst . KNOWLEDGE_READ . getWorkspacePermissionWorkspaceManageRole ,
43+ ( ) => {
44+ const to : any = get_next_route ( )
45+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else {
46+ return PermissionConst . KNOWLEDGE_DOCUMENT_READ . getWorkspacePermissionWorkspaceManageRole
47+ }
48+ }
3249 ] ,
3350 } ,
3451 component : ( ) => import ( '@/views/document/index.vue' ) ,
@@ -46,14 +63,20 @@ const DocumentRouter = {
4663 group : 'KnowledgeDetail' ,
4764 permission : [
4865 RoleConst . ADMIN ,
49- RoleConst . WORKSPACE_MANAGE . getWorkspaceRole ,
5066 ( ) => {
5167 const to : any = get_next_route ( )
52- return PermissionConst . KNOWLEDGE_PROBLEM_READ . getKnowledgeWorkspaceResourcePermission (
68+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return RoleConst . WORKSPACE_MANAGE . getWorkspaceRole }
69+ } ,
70+ ( ) => {
71+ const to : any = get_next_route ( )
72+ if ( to . params . folderId == 'shared' ) { return PermissionConst . SHARED_KNOWLEDGE_PROBLEM_READ } else { return PermissionConst . KNOWLEDGE_PROBLEM_READ . getKnowledgeWorkspaceResourcePermission (
5373 to ? to . params . id : '' ,
54- )
74+ ) }
75+ } ,
76+ ( ) => {
77+ const to : any = get_next_route ( )
78+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return PermissionConst . KNOWLEDGE_PROBLEM_READ . getWorkspacePermissionWorkspaceManageRole }
5579 } ,
56- PermissionConst . KNOWLEDGE_PROBLEM_READ . getWorkspacePermissionWorkspaceManageRole ,
5780 ] ,
5881 } ,
5982 component : ( ) => import ( '@/views/problem/index.vue' ) ,
@@ -68,6 +91,23 @@ const DocumentRouter = {
6891 parentPath : '/knowledge/:id/:folderId' ,
6992 parentName : 'KnowledgeDetail' ,
7093 group : 'KnowledgeDetail' ,
94+ permission : [
95+ RoleConst . ADMIN ,
96+ ( ) => {
97+ const to : any = get_next_route ( )
98+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return RoleConst . WORKSPACE_MANAGE . getWorkspaceRole }
99+ } ,
100+ ( ) => {
101+ const to : any = get_next_route ( )
102+ if ( to . params . folderId == 'shared' ) { return PermissionConst . SHARED_KNOWLEDGE_HIT_TEST_READ } else { return PermissionConst . KNOWLEDGE_HIT_TEST_READ . getKnowledgeWorkspaceResourcePermission (
103+ to ? to . params . id : '' ,
104+ ) }
105+ } ,
106+ ( ) => {
107+ const to : any = get_next_route ( )
108+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return PermissionConst . KNOWLEDGE_HIT_TEST_READ . getWorkspacePermissionWorkspaceManageRole }
109+ } ,
110+ ] ,
71111 } ,
72112 component : ( ) => import ( '@/views/hit-test/index.vue' ) ,
73113 } ,
@@ -83,16 +123,15 @@ const DocumentRouter = {
83123 parentName : 'KnowledgeDetail' ,
84124 resourceType : SourceTypeEnum . KNOWLEDGE ,
85125 group : 'KnowledgeDetail' ,
86- permission : [
87- RoleConst . ADMIN ,
126+ permission : new ComplexPermission ( [ RoleConst . ADMIN ,
88127 ( ) => {
89128 const to : any = get_next_route ( )
90129 if ( to . params . folderId == 'shared' ) {
91130 return RoleConst . ADMIN
92131 } else {
93- return RoleConst . WORKSPACE_MANAGE . getWorkspaceRole
132+ return RoleConst . WORKSPACE_MANAGE . getWorkspaceRole ( )
94133 }
95- } ,
134+ } , ] , [
96135 ( ) => {
97136 const to : any = get_next_route ( )
98137 if ( to . params . folderId == 'shared' ) {
@@ -104,10 +143,10 @@ const DocumentRouter = {
104143 ( ) => {
105144 const to : any = get_next_route ( )
106145 if ( to . params . folder_id == 'shared' ) {
107- return RoleConst . ADMIN
108- } else { return PermissionConst . KNOWLEDGE_CHAT_USER_READ . getWorkspacePermissionWorkspaceManageRole }
146+ return PermissionConst . SHARED_KNOWLEDGE_CHAT_USER_READ
147+ } else { return PermissionConst . KNOWLEDGE_CHAT_USER_READ . getWorkspacePermissionWorkspaceManageRole ( ) }
109148 } ,
110- ] ,
149+ ] , [ EditionConst . IS_EE , EditionConst . IS_PE ] , 'OR' ) ,
111150 } ,
112151 component : ( ) => import ( '@/views/chat-user/index.vue' ) ,
113152 } ,
@@ -124,14 +163,20 @@ const DocumentRouter = {
124163 group : 'KnowledgeDetail' ,
125164 permission : [
126165 RoleConst . ADMIN ,
127- RoleConst . WORKSPACE_MANAGE . getWorkspaceRole ,
128166 ( ) => {
129167 const to : any = get_next_route ( )
130- return PermissionConst . KNOWLEDGE_EDIT . getKnowledgeWorkspaceResourcePermission (
168+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return RoleConst . WORKSPACE_MANAGE . getWorkspaceRole }
169+ } ,
170+ ( ) => {
171+ const to : any = get_next_route ( )
172+ if ( to . params . folderId == 'shared' ) { return PermissionConst . SHARED_KNOWLEDGE_EDIT } else { return PermissionConst . KNOWLEDGE_EDIT . getKnowledgeWorkspaceResourcePermission (
131173 to ? to . params . id : '' ,
132- )
174+ ) }
175+ } ,
176+ ( ) => {
177+ const to : any = get_next_route ( )
178+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return PermissionConst . KNOWLEDGE_EDIT . getWorkspacePermissionWorkspaceManageRole }
133179 } ,
134- PermissionConst . KNOWLEDGE_EDIT . getWorkspacePermissionWorkspaceManageRole ,
135180 ] ,
136181 } ,
137182 component : ( ) => import ( '@/views/knowledge/KnowledgeSetting.vue' ) ,
0 commit comments