Skip to content

Commit 60a0c60

Browse files
committed
feat: Knowledge chat user permission
1 parent b266799 commit 60a0c60

File tree

8 files changed

+58
-9
lines changed

8 files changed

+58
-9
lines changed

apps/common/constants/permission_constants.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class Group(Enum):
4444
KNOWLEDGE_PROBLEM = "KNOWLEDGE_PROBLEM"
4545
SYSTEM_KNOWLEDGE_PROBLEM = "SYSTEM_KNOWLEDGE_PROBLEM"
4646
SYSTEM_RES_KNOWLEDGE_PROBLEM = "SYSTEM_RESOURCE_KNOWLEDGE_PROBLEM"
47+
SYSTEM_KNOWLEDGE_CHAT_USER = "SYSTEM_KNOWLEDGE_CHAT_USER"
4748

4849
MODEL = "MODEL"
4950
SYSTEM_MODEL = "SYSTEM_MODEL"
@@ -313,7 +314,7 @@ def get_workspace_role(self):
313314
Operate.EMBED.value: _('Embed third party'),
314315
Operate.ACCESS.value: _('Access restrictions'),
315316
Operate.DISPLAY.value: _('Display Settings'),
316-
Operate.API_KEY.value: _('API Key'),
317+
Operate.API_KEY.value: _('API_KEY'),
317318
Operate.PUBLIC_ACCESS.value: _('Public access link'),
318319
Operate.Q_WEIXIN.value: _('Enterprise WeiXin'),
319320
Operate.FEISHU.value: _('Feishu'),
@@ -339,6 +340,7 @@ def get_workspace_role(self):
339340
Group.SYSTEM_KNOWLEDGE.value: _("Knowledge"),
340341
Group.SYSTEM_KNOWLEDGE_DOCUMENT.value: _("Document"),
341342
Group.SYSTEM_KNOWLEDGE_PROBLEM.value: _("Problem"),
343+
Group.SYSTEM_KNOWLEDGE_CHAT_USER.value: _("Dialogue users"),
342344
Group.SYSTEM_RES_TOOL.value: _("Tool"),
343345
Group.SYSTEM_RES_MODEL.value: _("Model"),
344346
Group.SYSTEM_RES_KNOWLEDGE.value: _("Knowledge"),
@@ -1144,7 +1146,14 @@ class PermissionConstants(Enum):
11441146
group=Group.SYSTEM_KNOWLEDGE_PROBLEM, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
11451147
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
11461148
)
1147-
1149+
SHARED_KNOWLEDGE_CHAT_USER_READ = Permission(
1150+
group=Group.SYSTEM_KNOWLEDGE_CHAT_USER, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
1151+
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
1152+
)
1153+
SHARED_KNOWLEDGE_CHAT_USER_EDIT = Permission(
1154+
group=Group.SYSTEM_KNOWLEDGE_CHAT_USER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
1155+
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
1156+
)
11481157
SHARED_MODEL_CREATE = Permission(
11491158
group=Group.SYSTEM_MODEL, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
11501159
parent_group=[SystemGroup.SHARED_MODEL]

ui/src/permission/application/workspace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ const workspace = {
9595
],
9696
'OR'
9797
),
98-
chat_user_edit: (source_id:string) =>
98+
application_chat_user_edit: (source_id:string) =>
9999
hasPermission(
100100
[
101101
RoleConst.ADMIN,

ui/src/permission/knowledge/system-manage.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ const workspace = {
3030
doc_export: () => false,
3131
doc_download: () => false,
3232

33+
knowledge_chat_user_edit: () => false,
34+
3335
problem_create: () => false,
3436
problem_relate: () => false,
3537
problem_delete: () => false,

ui/src/permission/knowledge/system-share.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,15 @@ const share = {
140140
],
141141
'OR'
142142
),
143+
knowledge_chat_user_edit: () =>
144+
hasPermission(
145+
[
146+
RoleConst.ADMIN,
147+
PermissionConst.SHARED_KNOWLEDGE_CHAT_USER_EDIT
148+
],
149+
'OR'
150+
)
151+
,
143152
problem_relate: () =>
144153
hasPermission (
145154
[

ui/src/permission/knowledge/workspace.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,15 @@ const workspace = {
154154
PermissionConst.KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE.getWorkspacePermissionWorkspaceManageRole,
155155
],
156156
'OR',
157+
),
158+
knowledge_chat_user_edit: (source_id:string) =>
159+
hasPermission(
160+
[
161+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
162+
PermissionConst.KNOWLEDGE_CHAT_USER_EDIT.getKnowledgeWorkspaceResourcePermission(source_id),
163+
PermissionConst.KNOWLEDGE_CHAT_USER_EDIT.getWorkspacePermissionWorkspaceManageRole,
164+
]
165+
,'OR'
157166
),
158167
problem_create: (source_id:string) =>
159168
hasPermission(

ui/src/router/modules/document.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ const DocumentRouter = {
8888
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
8989
() => {
9090
const to: any = get_next_route()
91-
return PermissionConst.WORKSPACE_CHAT_USER_READ.getKnowledgeWorkspaceResourcePermission(
91+
return PermissionConst.KNOWLEDGE_CHAT_USER_READ.getKnowledgeWorkspaceResourcePermission(
9292
to ? to.params.id : '',
9393
)
9494
},
95-
PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole,
95+
PermissionConst.KNOWLEDGE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole,
9696
],
9797
},
9898
component: () => import('@/views/chat-user/index.vue'),

ui/src/utils/permission/data.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,11 @@ const PermissionConst = {
146146
APPLICATION_ACCESS_READ: new Permission('APPLICATION_ACCESS:READ'),
147147
APPLICATION_ACCESS_EDIT: new Permission('APPLICATION_ACCESS:READ+EDIT'),
148148

149-
APPLICATION_CHAT_USER_READ: new Permission('CHAT_USER:READ'),
150-
APPLICATION_CHAT_USER_EDIT: new Permission('CHAT_USER:READ+EDIT'),
149+
APPLICATION_CHAT_USER_READ: new Permission('APPLICATION_CHAT_USER:READ'),
150+
APPLICATION_CHAT_USER_EDIT: new Permission('APPLICATION_CHAT_USER:READ+EDIT'),
151+
152+
KNOWLEDGE_CHAT_USER_READ: new Permission('KNOWLEDGE_CHAT_USER:READ'),
153+
KNOWLEDGE_CHAT_USER_EDIT: new Permission('KNOWLEDGE_CHAT_USER:READ+EDIT'),
151154

152155
SHARED_TOOL_READ: new Permission('SYSTEM_TOOL:READ'),
153156
SHARED_TOOL_CREATE: new Permission('SYSTEM_TOOL:READ+CREATE'),
@@ -186,6 +189,9 @@ const PermissionConst = {
186189
SHARED_KNOWLEDGE_PROBLEM_CREATE: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+CREATE'),
187190
SHARED_KNOWLEDGE_PROBLEM_EDIT: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+EDIT'),
188191
SHARED_KNOWLEDGE_PROBLEM_DELETE: new Permission('SYSTEM_KNOWLEDGE_PROBLEM:READ+DELETE'),
192+
193+
SHARED_KNOWLEDGE_CHAT_USER_READ: new Permission('SYSTEM_KNOWLEDGE_CHAT_USER:READ'),
194+
SHARED_KNOWLEDGE_CHAT_USER_EDIT: new Permission('SYSTEM_KNOWLEDGE_CHAT_USER:READ+EDIT'),
189195

190196
TOOL_CREATE: new Permission('TOOL:READ+CREATE'),
191197
TOOL_EDIT: new Permission('TOOL:READ+EDIT'),

ui/src/views/chat-user/index.vue

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
</span>
4343
</div>
4444
<el-button type="primary" :disabled="current?.is_auth" @click="handleSave"
45-
v-if="permissionPrecise.chat_user_edit(id)"
45+
v-if="hasPermission(permissionObj[(route.meta?.resourceType as string)],'OR')"
4646
>
4747
{{ t('common.save') }}
4848
</el-button>
@@ -57,7 +57,7 @@
5757
:placeholder="$t('common.inputPlaceholder')" style="width: 220px" clearable />
5858
</div>
5959
<div class="flex align-center"
60-
v-if="permissionPrecise.chat_user_edit(id)"
60+
v-if="hasPermission(permissionObj[(route.meta?.resourceType as string)],'OR')"
6161
>
6262
<div class="color-secondary mr-8">{{ $t('views.chatUser.autoAuthorization') }}</div>
6363
<el-switch size="small" :model-value="current?.is_auth" @click="changeAuth"
@@ -114,6 +114,11 @@ import { useRoute } from 'vue-router'
114114
import { SourceTypeEnum } from '@/enums/common'
115115
import { MsgSuccess } from '@/utils/message'
116116
import permissionMap from '@/permission'
117+
import { ComplexPermission } from '@/utils/permission/type'
118+
import { EditionConst, RoleConst, PermissionConst } from '@/utils/permission/data'
119+
import { hasPermission } from '@/utils/permission/index'
120+
121+
117122
118123
const route = useRoute()
119124
@@ -128,6 +133,15 @@ const {
128133
params: { id },
129134
} = route as any
130135
136+
const permissionObj=ref<any>({
137+
"APPLICATION": new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
138+
[PermissionConst.APPLICATION_CHAT_USER_EDIT,
139+
PermissionConst.APPLICATION_CHAT_USER_EDIT.getApplicationWorkspaceResourcePermission(id)],[],'OR'),
140+
"KNOWLEDGE": new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
141+
[PermissionConst.KNOWLEDGE_CHAT_USER_EDIT,
142+
PermissionConst.KNOWLEDGE_CHAT_USER_EDIT.getKnowledgeWorkspaceResourcePermission(id)],[],'OR'),
143+
})
144+
131145
const resource = reactive({ resource_id: route.params.id as string, resource_type: route.meta.resourceType as string })
132146
133147
const filterText = ref('')

0 commit comments

Comments
 (0)