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
return data
-class MailAccountSerializer(serializers.ModelSerializer):
+class MailAccountSerializer(OwnedObjectSerializer):
password = ObfuscatedPasswordField()
class Meta:
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,
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
+from documents.views import PassUserMixin
from paperless.views import StandardPagination
from paperless_mail.models import MailAccount
from paperless_mail.models import MailRule
from rest_framework.viewsets import ModelViewSet
-class MailAccountViewSet(ModelViewSet):
+class MailAccountViewSet(ModelViewSet, PassUserMixin):
model = MailAccount
queryset = MailAccount.objects.all().order_by("pk")
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)