]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
include owner on mailrule / account creation
authorMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Mon, 2 Jan 2023 05:12:35 +0000 (21:12 -0800)
committerMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Mon, 2 Jan 2023 05:13:08 +0000 (21:13 -0800)
src/paperless_mail/serialisers.py
src/paperless_mail/views.py

index 0d15f617cd64b6dc804dd4060f1b1059c881c9ad..49d61838ac64e24a9e0661895066d9c3f3e94d2f 100644 (file)
@@ -1,5 +1,6 @@
 from documents.serialisers import CorrespondentField
 from documents.serialisers import DocumentTypeField
+from documents.serialisers import OwnedObjectSerializer
 from documents.serialisers import TagsField
 from paperless_mail.models import MailAccount
 from paperless_mail.models import MailRule
@@ -18,7 +19,7 @@ class ObfuscatedPasswordField(serializers.Field):
         return data
 
 
-class MailAccountSerializer(serializers.ModelSerializer):
+class MailAccountSerializer(OwnedObjectSerializer):
     password = ObfuscatedPasswordField()
 
     class Meta:
@@ -42,17 +43,13 @@ class MailAccountSerializer(serializers.ModelSerializer):
         super().update(instance, validated_data)
         return instance
 
-    def create(self, validated_data):
-        mail_account = MailAccount.objects.create(**validated_data)
-        return mail_account
-
 
 class AccountField(serializers.PrimaryKeyRelatedField):
     def get_queryset(self):
         return MailAccount.objects.all().order_by("-id")
 
 
-class MailRuleSerializer(serializers.ModelSerializer):
+class MailRuleSerializer(OwnedObjectSerializer):
     account = AccountField(required=True)
     action_parameter = serializers.CharField(
         allow_null=True,
@@ -96,7 +93,7 @@ class MailRuleSerializer(serializers.ModelSerializer):
     def create(self, validated_data):
         if "assign_tags" in validated_data:
             assign_tags = validated_data.pop("assign_tags")
-        mail_rule = MailRule.objects.create(**validated_data)
+        mail_rule = super().create(validated_data)
         if assign_tags:
             mail_rule.assign_tags.set(assign_tags)
         return mail_rule
index d86240c7cd31afe7af5957a150beca22eba2e02d..edc58ac8962aa65184d51f6fdffa514286b0a7f6 100644 (file)
@@ -1,3 +1,4 @@
+from documents.views import PassUserMixin
 from paperless.views import StandardPagination
 from paperless_mail.models import MailAccount
 from paperless_mail.models import MailRule
@@ -7,7 +8,7 @@ from rest_framework.permissions import IsAuthenticated
 from rest_framework.viewsets import ModelViewSet
 
 
-class MailAccountViewSet(ModelViewSet):
+class MailAccountViewSet(ModelViewSet, PassUserMixin):
     model = MailAccount
 
     queryset = MailAccount.objects.all().order_by("pk")
@@ -15,27 +16,11 @@ class MailAccountViewSet(ModelViewSet):
     pagination_class = StandardPagination
     permission_classes = (IsAuthenticated,)
 
-    # TODO: user-scoped
-    # def get_queryset(self):
-    #     user = self.request.user
-    #     return MailAccount.objects.filter(user=user)
 
-    # def perform_create(self, serializer):
-    #     serializer.save(user=self.request.user)
-
-
-class MailRuleViewSet(ModelViewSet):
+class MailRuleViewSet(ModelViewSet, PassUserMixin):
     model = MailRule
 
     queryset = MailRule.objects.all().order_by("pk")
     serializer_class = MailRuleSerializer
     pagination_class = StandardPagination
     permission_classes = (IsAuthenticated,)
-
-    # TODO: user-scoped
-    # def get_queryset(self):
-    #     user = self.request.user
-    #     return MailRule.objects.filter(user=user)
-
-    # def perform_create(self, serializer):
-    #     serializer.save(user=self.request.user)