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
19 changes: 13 additions & 6 deletions apps/system_manage/serializers/user_group_resource_permission.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from models_provider.models import Model
from system_manage.models import WorkspaceUserGroupResourcePermission
from tools.models import Tool
from users.models.user_group import SystemUserGroupRelation
from users.models.user_group import SystemUserGroup, SystemUserGroupRelation


class PermissionSerializer(serializers.Serializer):
Expand Down Expand Up @@ -170,8 +170,6 @@ def list(self, instance, user, with_valid=True):
if with_valid:
self.is_valid(raise_exception=True)
UserResourcePermissionUserListRequest(data=instance).is_valid(raise_exception=True)
workspace_id = self.data.get("workspace_id")
user_group_id = self.data.get("user_group_id")
# 用户权限列表
user_resource_permission_list = native_search(
self.get_queryset(instance),
Expand All @@ -188,8 +186,6 @@ def page(self, instance, current_page: int, page_size: int, user, with_valid=Tru
if with_valid:
self.is_valid(raise_exception=True)
UserResourcePermissionUserListRequest(data=instance).is_valid(raise_exception=True)
workspace_id = self.data.get("workspace_id")
user_group_id = self.data.get("user_group_id")
# 用户组对应的资源权限分页列表
user_resource_permission_page_list = native_page_search(
current_page,
Expand Down Expand Up @@ -308,18 +304,22 @@ def get_queryset(self, instance):
"name": models.CharField(),
"permission": models.CharField(),
"u.id": models.UUIDField(),
"u.workspace_id": models.CharField(),
}
)
)
name = instance.get("name")
permission = instance.get("permission")
workspace_id = self.data.get("workspace_id")
query_p_list = [None if p == "NOT_AUTH" else p for p in permission]

workspace_user_group_resource_permission_query_set = QuerySet(WorkspaceUserGroupResourcePermission).filter(
workspace_id=self.data.get("workspace_id"),
workspace_id=workspace_id,
auth_target_type=self.data.get("auth_target_type"),
target=self.data.get("target"),
)
if workspace_id:
user_query_set = user_query_set.filter(**{"u.workspace_id": workspace_id})
if name:
user_query_set = user_query_set.filter(name__contains=name)
if permission:
Expand Down Expand Up @@ -413,6 +413,13 @@ def edit(self, instance, with_valid=True, current_user_id=None):
users_permission = instance

user_group_ids = [item["user_group_id"] for item in users_permission]
valid_user_group_ids = set(
QuerySet(SystemUserGroup)
.filter(workspace_id=workspace_id, id__in=user_group_ids)
.values_list("id", flat=True)
)
if len(valid_user_group_ids) != len(set(user_group_ids)):
raise AppApiException(500, _("User group does not exist"))
include_children = users_permission[0].get("include_children")
folder_ids = users_permission[0].get("folder_ids")
# 删除已存在的对应的用户在该资源下的权限
Expand Down
2 changes: 1 addition & 1 deletion apps/system_manage/views/user_group_resource_permission.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ class WorkspaceResourceUserGroupPermissionView(APIView):
)
def get(self, request: Request, workspace_id: str, target: str, resource: str):
return result.success(
UserGroupResourcePermissionSerializer(
ResourceUserGroupPermissionSerializer(
data={
"workspace_id": workspace_id,
"target": target,
Expand Down
Loading