Skip to content

Commit 712b43f

Browse files
committed
feat: Replace source file permission
1 parent 147eea4 commit 712b43f

File tree

11 files changed

+70
-5
lines changed

11 files changed

+70
-5
lines changed

apps/common/constants/permission_constants.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ class Operate(Enum):
177177
DOWNLOAD = "READ+DOWNLOAD" # 下载
178178
AUTH = "READ+AUTH" # 资源授权
179179
TAG = "READ+TAG" # 标签设置
180+
REPLACE = "READ+REPLACE" # 标签设置
180181

181182

182183
class RoleGroup(Enum):
@@ -340,7 +341,7 @@ def get_workspace_role(self):
340341
Operate.RELATE.value: _("Relate"),
341342
Operate.ANNOTATION.value: _("Annotation"),
342343
Operate.CLEAR_POLICY.value: _("Clear Policy"),
343-
Operate.DOWNLOAD.value: _('Download'),
344+
Operate.DOWNLOAD.value: _('Download Original Document'),
344345
Operate.EMBED.value: _('Embed third party'),
345346
Operate.ACCESS.value: _('Access restrictions'),
346347
Operate.DISPLAY.value: _('Display Settings'),
@@ -353,6 +354,8 @@ def get_workspace_role(self):
353354
Operate.ADD_KNOWLEDGE.value: _('Add to Knowledge Base'),
354355
Operate.AUTH.value: _('resource authorization'),
355356
Operate.TAG.value: _('Tag Setting'),
357+
Operate.REPLACE.value: _('Replace Original Document'),
358+
356359
Group.APPLICATION_OVERVIEW.value: _('Overview'),
357360
Group.APPLICATION_ACCESS.value: _('Application Access'),
358361
Group.APPLICATION_CHAT_USER.value: _('Dialogue users'),
@@ -675,6 +678,12 @@ class PermissionConstants(Enum):
675678
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
676679
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
677680
)
681+
KNOWLEDGE_DOCUMENT_REPLACE = Permission(
682+
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE,
683+
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
684+
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
685+
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
686+
)
678687
KNOWLEDGE_HIT_TEST = Permission(
679688
group=Group.KNOWLEDGE_HIT_TEST, operate=Operate.READ,
680689
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
@@ -1238,6 +1247,10 @@ class PermissionConstants(Enum):
12381247
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
12391248
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
12401249
)
1250+
SHARED_KNOWLEDGE_DOCUMENT_REPLACE = Permission(
1251+
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE, role_list=[RoleConstants.ADMIN],
1252+
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
1253+
)
12411254
SHARED_KNOWLEDGE_TAG_READ = Permission(
12421255
group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
12431256
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
@@ -1462,6 +1475,10 @@ class PermissionConstants(Enum):
14621475
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
14631476
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
14641477
)
1478+
RESOURCE_KNOWLEDGE_DOCUMENT_REPLACE = Permission(
1479+
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE, role_list=[RoleConstants.ADMIN],
1480+
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
1481+
)
14651482
RESOURCE_KNOWLEDGE_HIT_TEST = Permission(
14661483
group=Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
14671484
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"

apps/knowledge/views/document.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -698,8 +698,8 @@ class ReplaceSourceFile(APIView):
698698
tags=[_('Knowledge Base/Documentation')] # type: ignore
699699
)
700700
@has_permissions(
701-
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
702-
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission_workspace_manage_role(),
701+
PermissionConstants.KNOWLEDGE_DOCUMENT_REPLACE.get_workspace_knowledge_permission(),
702+
PermissionConstants.KNOWLEDGE_DOCUMENT_REPLACE.get_workspace_permission_workspace_manage_role(),
703703
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
704704
ViewPermission([RoleConstants.USER.get_workspace_role()],
705705
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),

apps/locales/en_US/LC_MESSAGES/django.po

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8736,4 +8736,10 @@ msgid "Tag"
87368736
msgstr ""
87378737

87388738
msgid "Tag Setting"
8739+
msgstr ""
8740+
8741+
msgid "Download Original Document"
8742+
msgstr ""
8743+
8744+
msgid "Replace Original Document"
87398745
msgstr ""

apps/locales/zh_CN/LC_MESSAGES/django.po

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8863,3 +8863,9 @@ msgstr "标签管理"
88638863

88648864
msgid "Tag Setting"
88658865
msgstr "标签设置"
8866+
8867+
msgid "Download Original Document"
8868+
msgstr "下载原文档"
8869+
8870+
msgid "Replace Original Document"
8871+
msgstr "替换原文档"

apps/locales/zh_Hant/LC_MESSAGES/django.po

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8863,3 +8863,9 @@ msgstr "標籤管理"
88638863

88648864
msgid "Tag Setting"
88658865
msgstr "標籤設定"
8866+
8867+
msgid "Download Original Document"
8868+
msgstr "下載原文件"
8869+
8870+
msgid "Replace Original Document"
8871+
msgstr "替換原文件"

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ const systemManage = {
115115
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_TAG
116116
],'OR'
117117
),
118+
doc_replace: () => hasPermission(
119+
[
120+
RoleConst.ADMIN,
121+
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_REPLACE
122+
],'OR'
123+
),
118124
knowledge_chat_user_read: () =>
119125
hasPermission([
120126
RoleConst.ADMIN,

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,14 @@ const share = {
141141
],
142142
'OR'
143143
),
144+
doc_replace: () =>
145+
hasPermission (
146+
[
147+
RoleConst.ADMIN,
148+
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_REPLACE
149+
],
150+
'OR'
151+
),
144152
problem_create: () =>
145153
hasPermission (
146154
[

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const workspaceShare = {
2323
doc_export: () => false,
2424
doc_download: () => false,
2525
doc_tag: () => false,
26+
doc_replace: () => false,
2627

2728
knowledge_chat_user_read: () => false,
2829
knowledge_chat_user_edit: () => false,

ui/src/permission/knowledge/workspace.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,16 @@ const workspace = {
242242
],
243243
'OR',
244244
),
245+
doc_replace: (source_id:string) =>
246+
hasPermission(
247+
[
248+
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(source_id)],[],'AND'),
249+
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
250+
PermissionConst.KNOWLEDGE_DOCUMENT_REPLACE.getKnowledgeWorkspaceResourcePermission(source_id),
251+
PermissionConst.KNOWLEDGE_DOCUMENT_REPLACE.getWorkspacePermissionWorkspaceManageRole,
252+
],
253+
'OR',
254+
),
245255
knowledge_chat_user_read: (source_id:string) => false,
246256
knowledge_chat_user_edit: (source_id:string) =>
247257
hasPermission(

ui/src/utils/permission/data.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ const PermissionConst = {
121121
KNOWLEDGE_DOCUMENT_EXPORT: new Permission('KNOWLEDGE_DOCUMENT:READ+EXPORT'),
122122
KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE: new Permission('KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'),
123123
KNOWLEDGE_DOCUMENT_TAG: new Permission('KNOWLEDGE_DOCUMENT:READ+TAG'),
124+
KNOWLEDGE_DOCUMENT_REPLACE: new Permission('KNOWLEDGE_DOCUMENT:READ+REPLACE'),
124125

125126
KNOWLEDGE_TAG_READ: new Permission('KNOWLEDGE_TAG:READ'),
126127
KNOWLEDGE_TAG_CREATE: new Permission('KNOWLEDGE_TAG:READ+CREATE'),
@@ -201,6 +202,7 @@ const PermissionConst = {
201202
SHARED_KNOWLEDGE_DOCUMENT_EXPORT: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+EXPORT'),
202203
SHARED_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'),
203204
SHARED_KNOWLEDGE_DOCUMENT_TAG: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+TAG'),
205+
SHARED_KNOWLEDGE_DOCUMENT_REPLACE: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+REPLACE'),
204206

205207
SHARED_KNOWLEDGE_TAG_READ: new Permission('SYSTEM_KNOWLEDGE_TAG:READ'),
206208
SHARED_KNOWLEDGE_TAG_EDIT: new Permission('SYSTEM_KNOWLEDGE_TAG:READ+EDIT'),
@@ -253,6 +255,7 @@ const PermissionConst = {
253255
RESOURCE_KNOWLEDGE_DOCUMENT_EXPORT: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+EXPORT'),
254256
RESOURCE_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'),
255257
RESOURCE_KNOWLEDGE_DOCUMENT_TAG: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+TAG'),
258+
RESOURCE_KNOWLEDGE_DOCUMENT_REPLACE: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+REPLACE'),
256259

257260
RESOURCE_KNOWLEDGE_TAG_READ: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_PROBLEM:READ'),
258261
RESOURCE_KNOWLEDGE_TAG_CREATE: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_PROBLEM:READ+CREATE'),

0 commit comments

Comments
 (0)