Skip to content

Commit 54f1846

Browse files
committed
[Fixes #13581] make the put and patch in single nested as are same
1 parent 1c9225f commit 54f1846

File tree

1 file changed

+1
-28
lines changed

1 file changed

+1
-28
lines changed

geonode/base/api/views.py

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ def resource_service_permissions(self, request, pk, *args, **kwargs):
616616
action="permissions",
617617
input_params={"uuid": request_params.get("uuid", resource.uuid)},
618618
)
619-
elif request.method == "PUT":
619+
elif request.method in ["PUT", "PATCH"]:
620620
user_perms = permissions_registry.get_perms(instance=resource, user=request.user)
621621
if request.data.get("groups"):
622622
excluded_ids = []
@@ -630,33 +630,6 @@ def resource_service_permissions(self, request, pk, *args, **kwargs):
630630
request.data["groups"] = [g for g in request.data["groups"] if g.get("id") not in excluded_ids]
631631
perms_spec_compact_resource = patch_perms(request.data, perms_spec.compact, resource)
632632

633-
if resource.dirty_state:
634-
raise Exception("Cannot update if the resource is in dirty state")
635-
resource.set_dirty_state()
636-
_exec_request = ExecutionRequest.objects.create(
637-
user=request.user,
638-
func_name="set_permissions",
639-
geonode_resource=resource,
640-
action="permissions",
641-
input_params={
642-
"uuid": request_params.get("uuid", resource.uuid),
643-
"permissions": perms_spec_compact_resource.extended,
644-
"created": request_params.get("created", False),
645-
},
646-
)
647-
elif request.method == "PATCH":
648-
user_perms = permissions_registry.get_perms(instance=resource, user=request.user)
649-
if request.data.get("groups"):
650-
excluded_ids = []
651-
if "can_manage_anonymous_permissions" not in user_perms:
652-
anonymous_group = Group.objects.get(name="anonymous")
653-
excluded_ids.append(anonymous_group.id)
654-
if "can_manage_registered_member_permissions" not in user_perms:
655-
registered_group = Group.objects.get(name=groups_settings.REGISTERED_MEMBERS_GROUP_NAME)
656-
excluded_ids.append(registered_group.id)
657-
if excluded_ids:
658-
request.data["groups"] = [g for g in request.data["groups"] if g.get("id") not in excluded_ids]
659-
perms_spec_compact_resource = patch_perms(request.data, perms_spec.compact, resource)
660633
if resource.dirty_state:
661634
raise Exception("Cannot update if the resource is in dirty state")
662635
resource.set_dirty_state()

0 commit comments

Comments
 (0)