Skip to content

Commit 481b02b

Browse files
committed
feat: Tool permission
1 parent 92fd481 commit 481b02b

File tree

9 files changed

+188
-89
lines changed

9 files changed

+188
-89
lines changed

ui/src/permission/tool/workspace.ts

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,71 @@ const workspace = {
1818
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
1919
RoleConst.USER.getWorkspaceRole,
2020
PermissionConst.TOOL_DELETE.getWorkspacePermission,
21+
PermissionConst.TOOL_DELETE.getWorkspacePermissionWorkspaceManageRole
2122
],
2223
'OR',
2324
),
25+
create: () =>
26+
hasPermission(
27+
[
28+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
29+
RoleConst.USER.getWorkspaceRole,
30+
PermissionConst.TOOL_CREATE.getWorkspacePermission,
31+
PermissionConst.TOOL_CREATE.getWorkspacePermissionWorkspaceManageRole
32+
],
33+
'OR'
34+
),
35+
switch: () =>
36+
hasPermission(
37+
[
38+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
39+
RoleConst.USER.getWorkspaceRole,
40+
PermissionConst.TOOL_EDIT.getWorkspacePermission,
41+
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole
42+
],
43+
'OR'
44+
),
45+
edit: () =>
46+
hasPermission(
47+
[
48+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
49+
RoleConst.USER.getWorkspaceRole,
50+
PermissionConst.TOOL_EDIT.getWorkspacePermission,
51+
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole
52+
],
53+
'OR'
54+
),
55+
copy: () =>
56+
hasPermission(
57+
[
58+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
59+
RoleConst.USER.getWorkspaceRole,
60+
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
61+
PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole
62+
],
63+
'OR'
64+
),
65+
export: () =>
66+
hasPermission(
67+
[
68+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
69+
RoleConst.USER.getWorkspaceRole,
70+
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
71+
PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole
72+
],
73+
'OR'
74+
),
75+
debug: () =>
76+
hasPermission(
77+
[
78+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
79+
RoleConst.USER.getWorkspaceRole,
80+
PermissionConst.TOOL_DEBUG.getWorkspacePermission,
81+
PermissionConst.TOOL_DEBUG.getWorkspacePermissionWorkspaceManageRole
82+
],
83+
'OR'
84+
),
85+
2486
}
2587

2688
export default workspace

ui/src/router/modules/document.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import role from '@/api/system/role'
12
import { ChatUserResourceEnum } from '@/enums/workspaceChatUser'
23

34
import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data'
@@ -18,6 +19,12 @@ const DocumentRouter = {
1819
active: 'document',
1920
parentPath: '/knowledge/:id/:folderId',
2021
parentName: 'KnowledgeDetail',
22+
permission: [
23+
RoleConst.ADMIN,
24+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
25+
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermission,
26+
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole
27+
],
2128
},
2229
component: () => import('@/views/document/index.vue'),
2330
},
@@ -31,6 +38,12 @@ const DocumentRouter = {
3138
active: 'problem',
3239
parentPath: '/knowledge/:id/:folderId',
3340
parentName: 'KnowledgeDetail',
41+
permission: [
42+
RoleConst.ADMIN,
43+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
44+
PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermission,
45+
PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermissionWorkspaceManageRole
46+
],
3447
},
3548
component: () => import('@/views/problem/index.vue'),
3649
},
@@ -57,7 +70,12 @@ const DocumentRouter = {
5770
parentPath: '/knowledge/:id/:folderId',
5871
parentName: 'KnowledgeDetail',
5972
resourceType: ChatUserResourceEnum.KNOWLEDGE,
60-
permission: [EditionConst.IS_PE, EditionConst.IS_EE],
73+
permission: [
74+
RoleConst.ADMIN,
75+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
76+
PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermission,
77+
PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole
78+
],
6179
},
6280
component: () => import('@/views/chat-user/index.vue'),
6381
},
@@ -71,6 +89,13 @@ const DocumentRouter = {
7189
active: 'setting',
7290
parentPath: '/knowledge/:id/:folderId',
7391
parentName: 'KnowledgeDetail',
92+
permission: [
93+
RoleConst.ADMIN,
94+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
95+
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermission,
96+
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole
97+
]
98+
7499
},
75100
component: () => import('@/views/knowledge/KnowledgeSetting.vue'),
76101
},

ui/src/views/application/index.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@
4848
type="primary"
4949
class="ml-8"
5050
v-hasPermission="[
51+
RoleConst.ADMIN,
5152
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
52-
RoleConst.USER.getWorkspaceRole,
53+
PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole,
5354
PermissionConst.APPLICATION_EDIT.getWorkspacePermission,
5455
]"
5556
>

ui/src/views/document/index.vue

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"
1515
v-hasPermission="[
1616
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
17-
RoleConst.USER.getWorkspaceRole,
17+
RoleConst.ADMIN,
1818
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
1919
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
2020
]"
@@ -25,7 +25,7 @@
2525
type="primary"
2626
@click="importDoc"
2727
v-hasPermission="[
28-
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
28+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
2929
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
3030
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
3131
]"
@@ -38,37 +38,41 @@
3838
router.push({
3939
path: `/knowledge/import`,
4040
query: { id: id, folder_token: knowledgeDetail.meta.folder_token },
41-
})
42-
"
41+
})"
42+
v-hasPermission="[
43+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
44+
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
45+
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
46+
]"
4347
>{{ $t('views.document.importDocument') }}
4448
</el-button>
4549
<el-button
4650
@click="batchRefresh"
4751
:disabled="multipleSelection.length === 0"
4852
v-hasPermission="[
49-
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
53+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
5054
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole,
51-
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission,
55+
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getKnowledgeWorkspaceResourcePermission(id),
5256
]"
5357
>{{ $t('views.knowledge.setting.vectorization') }}
5458
</el-button>
5559
<el-button
5660
@click="openGenerateDialog()"
5761
:disabled="multipleSelection.length === 0"
5862
v-hasPermission="[
59-
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
63+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
6064
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermissionWorkspaceManageRole,
61-
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermission,
65+
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getKnowledgeWorkspaceResourcePermission(id),
6266
]"
6367
>{{ $t('views.document.generateQuestion.title') }}
6468
</el-button>
6569
<el-button
6670
@click="openknowledgeDialog()"
6771
:disabled="multipleSelection.length === 0"
6872
v-hasPermission="[
69-
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
73+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
7074
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermissionWorkspaceManageRole,
71-
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermission,
75+
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getKnowledgeWorkspaceResourcePermission(id),
7276
]"
7377
>{{ $t('views.document.setting.migration') }}
7478
</el-button>
@@ -84,9 +88,9 @@
8488
@click="openBatchEditDocument"
8589
:disabled="multipleSelection.length === 0"
8690
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
87-
RoleConst.USER.getWorkspaceRole,
91+
RoleConst.ADMIN,
8892
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermissionWorkspaceManageRole,
89-
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission],'OR')"
93+
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
9094
>
9195
{{ $t('common.setting') }}
9296
</el-dropdown-item>
@@ -96,22 +100,33 @@
96100
:disabled="multipleSelection.length === 0"
97101
v-if="knowledgeDetail.type === 1 &&
98102
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
99-
RoleConst.USER.getWorkspaceRole,
100-
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission],'OR')"
103+
RoleConst.ADMIN,
104+
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
105+
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
101106
>{{ $t('views.document.syncDocument') }}
102107
</el-dropdown-item>
103108
<el-dropdown-item
104109
divided
105110
@click="syncLarkMulDocument"
106111
:disabled="multipleSelection.length === 0"
107-
v-if="knowledgeDetail.type === 2"
112+
v-if="knowledgeDetail.type === 2 &&
113+
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
114+
RoleConst.ADMIN,
115+
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
116+
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
108117
>{{ $t('views.document.syncDocument') }}
109118
</el-dropdown-item>
110119

111120
<el-dropdown-item
112121
divided
113122
@click="deleteMulDocument"
114123
:disabled="multipleSelection.length === 0"
124+
v-if="
125+
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
126+
RoleConst.ADMIN,
127+
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getWorkspacePermission,
128+
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getKnowledgeWorkspaceResourcePermission(id)],'OR')
129+
"
115130
>{{ $t('common.delete') }}
116131
</el-dropdown-item>
117132
</el-dropdown-menu>

ui/src/views/knowledge/KnowledgeSetting.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,12 @@
140140
</el-form-item>
141141
</el-form>
142142
<div class="text-right">
143-
<el-button @click="submit" type="primary"> {{ $t('common.save') }}</el-button>
143+
<el-button @click="submit" type="primary"
144+
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
145+
RoleConst.ADMIN,
146+
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
147+
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(id)]"
148+
> {{ $t('common.save') }}</el-button>
144149
</div>
145150
</div>
146151
</el-scrollbar>
@@ -158,6 +163,8 @@ import { MsgSuccess, MsgConfirm } from '@/utils/message'
158163
import { isAppIcon } from '@/utils/common'
159164
import useStore from '@/stores'
160165
import { t } from '@/locales'
166+
import { PermissionConst, RoleConst } from '@/utils/permission/data'
167+
import { hasPermission } from '@/utils/permission/index'
161168
162169
const route = useRoute()
163170
const {

ui/src/views/knowledge/index.vue

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
class="ml-8"
5151
v-hasPermission="[
5252
RoleConst.ADMIN,
53+
RoleConst.USER.getWorkspaceRole,
54+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
5355
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole,
5456
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission,
5557
]"
@@ -196,6 +198,11 @@
196198
@click="
197199
router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` })
198200
"
201+
v-hasPermission="[
202+
RoleConst.ADMIN,
203+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
204+
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole,
205+
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getKnowledgeWorkspaceResourcePermission(item.id),]"
199206
>
200207
<template #icon>
201208
<KnowledgeIcon :type="item.type" />
@@ -242,8 +249,9 @@
242249
icon="Refresh"
243250
@click.stop="syncKnowledge(item)"
244251
v-if="item.type === 1 &&
245-
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
246-
RoleConst.USER.getWorkspaceRole,
252+
hasPermission([
253+
RoleConst.ADMIN,
254+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
247255
PermissionConst.KNOWLEDGE_SYNC.getWorkspacePermissionWorkspaceManageRole,
248256
PermissionConst.KNOWLEDGE_SYNC.getKnowledgeWorkspaceResourcePermission(item.id)],'OR')"
249257
>{{ $t('views.knowledge.setting.sync') }}
@@ -254,7 +262,7 @@
254262
hasPermission(
255263
[
256264
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
257-
RoleConst.USER.getWorkspaceRole,
265+
RoleConst.ADMIN,
258266
PermissionConst.KNOWLEDGE_VECTOR.getWorkspacePermissionWorkspaceManageRole,
259267
PermissionConst.KNOWLEDGE_VECTOR.getKnowledgeWorkspaceResourcePermission(item.id),
260268
],
@@ -273,7 +281,7 @@
273281
hasPermission(
274282
[
275283
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
276-
RoleConst.USER.getWorkspaceRole,
284+
RoleConst.ADMIN,
277285
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole,
278286
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(item.id),
279287
],
@@ -293,7 +301,7 @@
293301
hasPermission(
294302
[
295303
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
296-
RoleConst.USER.getWorkspaceRole,
304+
RoleConst.ADMIN,
297305
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
298306
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(item.id),
299307
],
@@ -309,7 +317,7 @@
309317
hasPermission(
310318
[
311319
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
312-
RoleConst.USER.getWorkspaceRole,
320+
RoleConst.ADMIN,
313321
PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole,
314322
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id),
315323
],
@@ -326,7 +334,7 @@
326334
hasPermission(
327335
[
328336
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
329-
RoleConst.USER.getWorkspaceRole,
337+
RoleConst.ADMIN,
330338
PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole,
331339
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id),
332340
],
@@ -345,7 +353,7 @@
345353
hasPermission(
346354
[
347355
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
348-
RoleConst.USER.getWorkspaceRole,
356+
RoleConst.ADMIN,
349357
PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermissionWorkspaceManageRole,
350358
PermissionConst.KNOWLEDGE_DELETE.getKnowledgeWorkspaceResourcePermission(item.id),
351359
],

0 commit comments

Comments
 (0)