Dont remove permissions from SerializerWithPerms
This commit is contained in:
parent
1ff624a137
commit
e01401c494
@ -166,24 +166,27 @@ class SetPermissionsMixin:
|
|||||||
class SerializerWithPerms(serializers.Serializer):
|
class SerializerWithPerms(serializers.Serializer):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.user = kwargs.pop("user", None)
|
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)
|
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(
|
class OwnedObjectSerializer(
|
||||||
SerializerWithPerms,
|
SerializerWithPerms,
|
||||||
serializers.ModelSerializer,
|
serializers.ModelSerializer,
|
||||||
SetPermissionsMixin,
|
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):
|
def get_permissions(self, obj):
|
||||||
view_codename = f"view_{obj.__class__.__name__.lower()}"
|
view_codename = f"view_{obj.__class__.__name__.lower()}"
|
||||||
change_codename = f"change_{obj.__class__.__name__.lower()}"
|
change_codename = f"change_{obj.__class__.__name__.lower()}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user