mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: Replace source file permission
This commit is contained in:
parent
c3fca96c98
commit
4487964d17
|
|
@ -177,6 +177,7 @@ class Operate(Enum):
|
|||
DOWNLOAD = "READ+DOWNLOAD" # 下载
|
||||
AUTH = "READ+AUTH" # 资源授权
|
||||
TAG = "READ+TAG" # 标签设置
|
||||
REPLACE = "READ+REPLACE" # 标签设置
|
||||
|
||||
|
||||
class RoleGroup(Enum):
|
||||
|
|
@ -340,7 +341,7 @@ Permission_Label = {
|
|||
Operate.RELATE.value: _("Relate"),
|
||||
Operate.ANNOTATION.value: _("Annotation"),
|
||||
Operate.CLEAR_POLICY.value: _("Clear Policy"),
|
||||
Operate.DOWNLOAD.value: _('Download'),
|
||||
Operate.DOWNLOAD.value: _('Download Original Document'),
|
||||
Operate.EMBED.value: _('Embed third party'),
|
||||
Operate.ACCESS.value: _('Access restrictions'),
|
||||
Operate.DISPLAY.value: _('Display Settings'),
|
||||
|
|
@ -353,6 +354,8 @@ Permission_Label = {
|
|||
Operate.ADD_KNOWLEDGE.value: _('Add to Knowledge Base'),
|
||||
Operate.AUTH.value: _('resource authorization'),
|
||||
Operate.TAG.value: _('Tag Setting'),
|
||||
Operate.REPLACE.value: _('Replace Original Document'),
|
||||
|
||||
Group.APPLICATION_OVERVIEW.value: _('Overview'),
|
||||
Group.APPLICATION_ACCESS.value: _('Application Access'),
|
||||
Group.APPLICATION_CHAT_USER.value: _('Dialogue users'),
|
||||
|
|
@ -675,6 +678,12 @@ class PermissionConstants(Enum):
|
|||
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
|
||||
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
|
||||
)
|
||||
KNOWLEDGE_DOCUMENT_REPLACE = Permission(
|
||||
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE,
|
||||
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
||||
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
|
||||
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
|
||||
)
|
||||
KNOWLEDGE_HIT_TEST = Permission(
|
||||
group=Group.KNOWLEDGE_HIT_TEST, operate=Operate.READ,
|
||||
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
||||
|
|
@ -1238,6 +1247,10 @@ class PermissionConstants(Enum):
|
|||
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
|
||||
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||
)
|
||||
SHARED_KNOWLEDGE_DOCUMENT_REPLACE = Permission(
|
||||
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE, role_list=[RoleConstants.ADMIN],
|
||||
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||
)
|
||||
SHARED_KNOWLEDGE_TAG_READ = Permission(
|
||||
group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
||||
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||
|
|
@ -1462,6 +1475,10 @@ class PermissionConstants(Enum):
|
|||
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
|
||||
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||
)
|
||||
RESOURCE_KNOWLEDGE_DOCUMENT_REPLACE = Permission(
|
||||
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE, role_list=[RoleConstants.ADMIN],
|
||||
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||
)
|
||||
RESOURCE_KNOWLEDGE_HIT_TEST = Permission(
|
||||
group=Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
||||
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||
|
|
|
|||
|
|
@ -698,8 +698,8 @@ class DocumentView(APIView):
|
|||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||
)
|
||||
@has_permissions(
|
||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission_workspace_manage_role(),
|
||||
PermissionConstants.KNOWLEDGE_DOCUMENT_REPLACE.get_workspace_knowledge_permission(),
|
||||
PermissionConstants.KNOWLEDGE_DOCUMENT_REPLACE.get_workspace_permission_workspace_manage_role(),
|
||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||
|
|
|
|||
|
|
@ -8736,4 +8736,10 @@ msgid "Tag"
|
|||
msgstr ""
|
||||
|
||||
msgid "Tag Setting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download Original Document"
|
||||
msgstr ""
|
||||
|
||||
msgid "Replace Original Document"
|
||||
msgstr ""
|
||||
|
|
@ -8863,3 +8863,9 @@ msgstr "标签管理"
|
|||
|
||||
msgid "Tag Setting"
|
||||
msgstr "标签设置"
|
||||
|
||||
msgid "Download Original Document"
|
||||
msgstr "下载原文档"
|
||||
|
||||
msgid "Replace Original Document"
|
||||
msgstr "替换原文档"
|
||||
|
|
|
|||
|
|
@ -8863,3 +8863,9 @@ msgstr "標籤管理"
|
|||
|
||||
msgid "Tag Setting"
|
||||
msgstr "標籤設定"
|
||||
|
||||
msgid "Download Original Document"
|
||||
msgstr "下載原文件"
|
||||
|
||||
msgid "Replace Original Document"
|
||||
msgstr "替換原文件"
|
||||
|
|
|
|||
|
|
@ -115,6 +115,12 @@ const systemManage = {
|
|||
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_TAG
|
||||
],'OR'
|
||||
),
|
||||
doc_replace: () => hasPermission(
|
||||
[
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_REPLACE
|
||||
],'OR'
|
||||
),
|
||||
knowledge_chat_user_read: () =>
|
||||
hasPermission([
|
||||
RoleConst.ADMIN,
|
||||
|
|
|
|||
|
|
@ -141,6 +141,14 @@ const share = {
|
|||
],
|
||||
'OR'
|
||||
),
|
||||
doc_replace: () =>
|
||||
hasPermission (
|
||||
[
|
||||
RoleConst.ADMIN,
|
||||
PermissionConst.SHARED_KNOWLEDGE_DOCUMENT_REPLACE
|
||||
],
|
||||
'OR'
|
||||
),
|
||||
problem_create: () =>
|
||||
hasPermission (
|
||||
[
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ const workspaceShare = {
|
|||
doc_export: () => false,
|
||||
doc_download: () => false,
|
||||
doc_tag: () => false,
|
||||
doc_replace: () => false,
|
||||
|
||||
knowledge_chat_user_read: () => false,
|
||||
knowledge_chat_user_edit: () => false,
|
||||
|
|
|
|||
|
|
@ -242,6 +242,16 @@ const workspace = {
|
|||
],
|
||||
'OR',
|
||||
),
|
||||
doc_replace: (source_id:string) =>
|
||||
hasPermission(
|
||||
[
|
||||
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(source_id)],[],'AND'),
|
||||
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
|
||||
PermissionConst.KNOWLEDGE_DOCUMENT_REPLACE.getKnowledgeWorkspaceResourcePermission(source_id),
|
||||
PermissionConst.KNOWLEDGE_DOCUMENT_REPLACE.getWorkspacePermissionWorkspaceManageRole,
|
||||
],
|
||||
'OR',
|
||||
),
|
||||
knowledge_chat_user_read: (source_id:string) => false,
|
||||
knowledge_chat_user_edit: (source_id:string) =>
|
||||
hasPermission(
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ const PermissionConst = {
|
|||
KNOWLEDGE_DOCUMENT_EXPORT: new Permission('KNOWLEDGE_DOCUMENT:READ+EXPORT'),
|
||||
KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE: new Permission('KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'),
|
||||
KNOWLEDGE_DOCUMENT_TAG: new Permission('KNOWLEDGE_DOCUMENT:READ+TAG'),
|
||||
KNOWLEDGE_DOCUMENT_REPLACE: new Permission('KNOWLEDGE_DOCUMENT:READ+REPLACE'),
|
||||
|
||||
KNOWLEDGE_TAG_READ: new Permission('KNOWLEDGE_TAG:READ'),
|
||||
KNOWLEDGE_TAG_CREATE: new Permission('KNOWLEDGE_TAG:READ+CREATE'),
|
||||
|
|
@ -201,6 +202,7 @@ const PermissionConst = {
|
|||
SHARED_KNOWLEDGE_DOCUMENT_EXPORT: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+EXPORT'),
|
||||
SHARED_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'),
|
||||
SHARED_KNOWLEDGE_DOCUMENT_TAG: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+TAG'),
|
||||
SHARED_KNOWLEDGE_DOCUMENT_REPLACE: new Permission('SYSTEM_KNOWLEDGE_DOCUMENT:READ+REPLACE'),
|
||||
|
||||
SHARED_KNOWLEDGE_TAG_READ: new Permission('SYSTEM_KNOWLEDGE_TAG:READ'),
|
||||
SHARED_KNOWLEDGE_TAG_EDIT: new Permission('SYSTEM_KNOWLEDGE_TAG:READ+EDIT'),
|
||||
|
|
@ -253,6 +255,7 @@ const PermissionConst = {
|
|||
RESOURCE_KNOWLEDGE_DOCUMENT_EXPORT: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+EXPORT'),
|
||||
RESOURCE_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+DOWNLOAD'),
|
||||
RESOURCE_KNOWLEDGE_DOCUMENT_TAG: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+TAG'),
|
||||
RESOURCE_KNOWLEDGE_DOCUMENT_REPLACE: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT:READ+REPLACE'),
|
||||
|
||||
RESOURCE_KNOWLEDGE_TAG_READ: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_PROBLEM:READ'),
|
||||
RESOURCE_KNOWLEDGE_TAG_CREATE: new Permission('SYSTEM_RESOURCE_KNOWLEDGE_PROBLEM:READ+CREATE'),
|
||||
|
|
|
|||
|
|
@ -519,6 +519,7 @@
|
|||
{{ $t('views.document.setting.download') }}
|
||||
</el-dropdown-item>
|
||||
<el-upload
|
||||
v-if="permissionPrecise.doc_replace(id)"
|
||||
ref="elUploadRef"
|
||||
:file-list="[]"
|
||||
action="#"
|
||||
|
|
@ -526,7 +527,7 @@
|
|||
:show-file-list="false"
|
||||
:on-change="(file: any, fileList: any) => replaceDocument(file, row)"
|
||||
>
|
||||
<el-dropdown-item v-if="permissionPrecise.doc_edit(id)">
|
||||
<el-dropdown-item>
|
||||
<el-icon class="color-secondary">
|
||||
<Upload />
|
||||
</el-icon>
|
||||
|
|
@ -786,7 +787,8 @@ const MoreFilledPermission1 = (id: string) => {
|
|||
permissionPrecise.value.doc_export(id) ||
|
||||
permissionPrecise.value.doc_download(id) ||
|
||||
permissionPrecise.value.doc_delete(id) ||
|
||||
permissionPrecise.value.doc_tag(id)
|
||||
permissionPrecise.value.doc_tag(id) ||
|
||||
permissionPrecise.value.doc_replace(id)
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue