Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions apps/knowledge/views/document.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from common.auth import TokenAuth
from common.auth.authentication import has_permissions
from common.constants.permission_constants import CompareConstants, PermissionConstants, RoleConstants, ViewPermission
from common.auth.authentication import has_permissions, get_is_permissions
from common.constants.permission_constants import CompareConstants, PermissionConstants, RoleConstants, ViewPermission, \
Permission
from common.exception.app_exception import AppUnauthorizedFailed
from common.log.log import log
from common.result import result
from django.utils.translation import gettext_lazy as _
Expand Down Expand Up @@ -243,9 +245,9 @@ def post(self, request: Request, workspace_id: str, knowledge_id: str):
split_data = {"file": request.FILES.getlist("file")}
request_data = request.data
if (
"patterns" in request.data
and request.data.get("patterns") is not None
and len(request.data.get("patterns")) > 0
"patterns" in request.data
and request.data.get("patterns") is not None
and len(request.data.get("patterns")) > 0
):
split_data.__setitem__("patterns", request_data.getlist("patterns"))
if "limit" in request.data:
Expand Down Expand Up @@ -1175,6 +1177,17 @@ class Migrate(APIView):
),
)
def put(self, request: Request, workspace_id, knowledge_id: str, target_knowledge_id: str):
is_permissions = get_is_permissions(request, workspace_id=workspace_id, knowledge_id=target_knowledge_id)
if not is_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.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,
)):
raise AppUnauthorizedFailed(403, _('No permission to access'))

return result.success(
DocumentSerializers.Migrate(
data={
Expand Down
12 changes: 11 additions & 1 deletion apps/knowledge/views/paragraph.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
from rest_framework.views import Request

from common.auth import TokenAuth
from common.auth.authentication import has_permissions
from common.auth.authentication import has_permissions, get_is_permissions
from common.constants.permission_constants import PermissionConstants, RoleConstants, ViewPermission, CompareConstants
from common.exception.app_exception import AppUnauthorizedFailed
from common.log.log import log
from common.result import result
from common.utils.common import query_params_to_single_dict
Expand Down Expand Up @@ -125,6 +126,15 @@ class BatchMigrate(APIView):
)
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str,
target_knowledge_id: str, target_document_id):
is_permissions = get_is_permissions(request, workspace_id=workspace_id, knowledge_id=target_knowledge_id)
if not is_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.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),
):
raise AppUnauthorizedFailed(403, _('No permission to access'))
return result.success(
ParagraphSerializers.Migrate(data={
'workspace_id': workspace_id,
Expand Down
Loading