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' ) {
@@ -106,13 +145,10 @@ const DocumentRouter = {
106145 ( ) => {
107146 const to : any = get_next_route ( )
108147 if ( to . params . folder_id == 'shared' ) {
109- return RoleConst . ADMIN
110- } else {
111- return PermissionConst . KNOWLEDGE_CHAT_USER_READ
112- . getWorkspacePermissionWorkspaceManageRole
113- }
148+ return PermissionConst . SHARED_KNOWLEDGE_CHAT_USER_READ
149+ } else { return PermissionConst . KNOWLEDGE_CHAT_USER_READ . getWorkspacePermissionWorkspaceManageRole ( ) }
114150 } ,
115- ] ,
151+ ] , [ EditionConst . IS_EE , EditionConst . IS_PE ] , 'OR' ) ,
116152 } ,
117153 component : ( ) => import ( '@/views/chat-user/index.vue' ) ,
118154 } ,
@@ -129,14 +165,20 @@ const DocumentRouter = {
129165 group : 'KnowledgeDetail' ,
130166 permission : [
131167 RoleConst . ADMIN ,
132- RoleConst . WORKSPACE_MANAGE . getWorkspaceRole ,
133168 ( ) => {
134169 const to : any = get_next_route ( )
135- return PermissionConst . KNOWLEDGE_EDIT . getKnowledgeWorkspaceResourcePermission (
170+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return RoleConst . WORKSPACE_MANAGE . getWorkspaceRole }
171+ } ,
172+ ( ) => {
173+ const to : any = get_next_route ( )
174+ if ( to . params . folderId == 'shared' ) { return PermissionConst . SHARED_KNOWLEDGE_EDIT } else { return PermissionConst . KNOWLEDGE_EDIT . getKnowledgeWorkspaceResourcePermission (
136175 to ? to . params . id : '' ,
137- )
176+ ) }
177+ } ,
178+ ( ) => {
179+ const to : any = get_next_route ( )
180+ if ( to . params . folderId == 'shared' ) { return RoleConst . ADMIN } else { return PermissionConst . KNOWLEDGE_EDIT . getWorkspacePermissionWorkspaceManageRole }
138181 } ,
139- PermissionConst . KNOWLEDGE_EDIT . getWorkspacePermissionWorkspaceManageRole ,
140182 ] ,
141183 } ,
142184 component : ( ) => import ( '@/views/knowledge/KnowledgeSetting.vue' ) ,
0 commit comments