From e01401c4949eeaef6c9cf6e9b272fc7de82e81e1 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Apr 2024 09:06:24 -0700 Subject: [PATCH] Dont remove permissions from SerializerWithPerms --- src/documents/serialisers.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index 67da298b6..f8537726f 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -166,24 +166,27 @@ class SetPermissionsMixin: class SerializerWithPerms(serializers.Serializer): def __init__(self, *args, **kwargs): self.user = kwargs.pop("user", None) - full_perms = kwargs.pop("full_perms", False) + self.full_perms = kwargs.pop("full_perms", False) super().__init__(*args, **kwargs) - try: - if full_perms: - self.fields.pop("user_can_change") - self.fields.pop("is_shared_by_requester") - else: - self.fields.pop("permissions") - except KeyError: - pass - class OwnedObjectSerializer( SerializerWithPerms, serializers.ModelSerializer, SetPermissionsMixin, ): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + try: + if self.full_perms: + self.fields.pop("user_can_change") + self.fields.pop("is_shared_by_requester") + else: + self.fields.pop("permissions") + except KeyError: + pass + def get_permissions(self, obj): view_codename = f"view_{obj.__class__.__name__.lower()}" change_codename = f"change_{obj.__class__.__name__.lower()}"