Fix bulk edit serializers
This commit is contained in:
parent
e269973209
commit
1ff624a137
@ -163,7 +163,7 @@ class SetPermissionsMixin:
|
||||
set_permissions_for_object(permissions, object)
|
||||
|
||||
|
||||
class OwnedObjectSerializer(serializers.ModelSerializer, SetPermissionsMixin):
|
||||
class SerializerWithPerms(serializers.Serializer):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.user = kwargs.pop("user", None)
|
||||
full_perms = kwargs.pop("full_perms", False)
|
||||
@ -178,6 +178,12 @@ class OwnedObjectSerializer(serializers.ModelSerializer, SetPermissionsMixin):
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
|
||||
class OwnedObjectSerializer(
|
||||
SerializerWithPerms,
|
||||
serializers.ModelSerializer,
|
||||
SetPermissionsMixin,
|
||||
):
|
||||
def get_permissions(self, obj):
|
||||
view_codename = f"view_{obj.__class__.__name__.lower()}"
|
||||
change_codename = f"change_{obj.__class__.__name__.lower()}"
|
||||
@ -857,7 +863,11 @@ class DocumentListSerializer(serializers.Serializer):
|
||||
return documents
|
||||
|
||||
|
||||
class BulkEditSerializer(DocumentListSerializer, SetPermissionsMixin):
|
||||
class BulkEditSerializer(
|
||||
SerializerWithPerms,
|
||||
DocumentListSerializer,
|
||||
SetPermissionsMixin,
|
||||
):
|
||||
method = serializers.ChoiceField(
|
||||
choices=[
|
||||
"set_correspondent",
|
||||
@ -1356,7 +1366,7 @@ class ShareLinkSerializer(OwnedObjectSerializer):
|
||||
return super().create(validated_data)
|
||||
|
||||
|
||||
class BulkEditObjectsSerializer(serializers.Serializer, SetPermissionsMixin):
|
||||
class BulkEditObjectsSerializer(SerializerWithPerms, SetPermissionsMixin):
|
||||
objects = serializers.ListField(
|
||||
required=True,
|
||||
allow_empty=False,
|
||||
|
@ -55,7 +55,6 @@ from rest_framework.exceptions import NotFound
|
||||
from rest_framework.filters import OrderingFilter
|
||||
from rest_framework.filters import SearchFilter
|
||||
from rest_framework.generics import GenericAPIView
|
||||
from rest_framework.mixins import CreateModelMixin
|
||||
from rest_framework.mixins import DestroyModelMixin
|
||||
from rest_framework.mixins import ListModelMixin
|
||||
from rest_framework.mixins import RetrieveModelMixin
|
||||
@ -853,7 +852,7 @@ class LogViewSet(ViewSet):
|
||||
return Response(exist)
|
||||
|
||||
|
||||
class SavedViewViewSet(ModelViewSet, PassUserMixin, CreateModelMixin):
|
||||
class SavedViewViewSet(ModelViewSet, PassUserMixin):
|
||||
model = SavedView
|
||||
|
||||
queryset = SavedView.objects.all()
|
||||
@ -873,7 +872,7 @@ class SavedViewViewSet(ModelViewSet, PassUserMixin, CreateModelMixin):
|
||||
serializer.save(owner=self.request.user)
|
||||
|
||||
|
||||
class BulkEditView(PassUserMixin, CreateModelMixin):
|
||||
class BulkEditView(PassUserMixin):
|
||||
permission_classes = (IsAuthenticated,)
|
||||
serializer_class = BulkEditSerializer
|
||||
parser_classes = (parsers.JSONParser,)
|
||||
@ -1450,7 +1449,7 @@ def serve_file(doc: Document, use_archive: bool, disposition: str):
|
||||
return response
|
||||
|
||||
|
||||
class BulkEditObjectsView(PassUserMixin, CreateModelMixin):
|
||||
class BulkEditObjectsView(PassUserMixin):
|
||||
permission_classes = (IsAuthenticated,)
|
||||
serializer_class = BulkEditObjectsSerializer
|
||||
parser_classes = (parsers.JSONParser,)
|
||||
|
Loading…
x
Reference in New Issue
Block a user