mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-02 18:47:10 -05:00 
			
		
		
		
	include owner on mailrule / account creation
This commit is contained in:
		
							parent
							
								
									d840308392
								
							
						
					
					
						commit
						1663450c1f
					
				@ -1,5 +1,6 @@
 | 
				
			|||||||
from documents.serialisers import CorrespondentField
 | 
					from documents.serialisers import CorrespondentField
 | 
				
			||||||
from documents.serialisers import DocumentTypeField
 | 
					from documents.serialisers import DocumentTypeField
 | 
				
			||||||
 | 
					from documents.serialisers import OwnedObjectSerializer
 | 
				
			||||||
from documents.serialisers import TagsField
 | 
					from documents.serialisers import TagsField
 | 
				
			||||||
from paperless_mail.models import MailAccount
 | 
					from paperless_mail.models import MailAccount
 | 
				
			||||||
from paperless_mail.models import MailRule
 | 
					from paperless_mail.models import MailRule
 | 
				
			||||||
@ -18,7 +19,7 @@ class ObfuscatedPasswordField(serializers.Field):
 | 
				
			|||||||
        return data
 | 
					        return data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MailAccountSerializer(serializers.ModelSerializer):
 | 
					class MailAccountSerializer(OwnedObjectSerializer):
 | 
				
			||||||
    password = ObfuscatedPasswordField()
 | 
					    password = ObfuscatedPasswordField()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
@ -42,17 +43,13 @@ class MailAccountSerializer(serializers.ModelSerializer):
 | 
				
			|||||||
        super().update(instance, validated_data)
 | 
					        super().update(instance, validated_data)
 | 
				
			||||||
        return instance
 | 
					        return instance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create(self, validated_data):
 | 
					 | 
				
			||||||
        mail_account = MailAccount.objects.create(**validated_data)
 | 
					 | 
				
			||||||
        return mail_account
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AccountField(serializers.PrimaryKeyRelatedField):
 | 
					class AccountField(serializers.PrimaryKeyRelatedField):
 | 
				
			||||||
    def get_queryset(self):
 | 
					    def get_queryset(self):
 | 
				
			||||||
        return MailAccount.objects.all().order_by("-id")
 | 
					        return MailAccount.objects.all().order_by("-id")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MailRuleSerializer(serializers.ModelSerializer):
 | 
					class MailRuleSerializer(OwnedObjectSerializer):
 | 
				
			||||||
    account = AccountField(required=True)
 | 
					    account = AccountField(required=True)
 | 
				
			||||||
    action_parameter = serializers.CharField(
 | 
					    action_parameter = serializers.CharField(
 | 
				
			||||||
        allow_null=True,
 | 
					        allow_null=True,
 | 
				
			||||||
@ -96,7 +93,7 @@ class MailRuleSerializer(serializers.ModelSerializer):
 | 
				
			|||||||
    def create(self, validated_data):
 | 
					    def create(self, validated_data):
 | 
				
			||||||
        if "assign_tags" in validated_data:
 | 
					        if "assign_tags" in validated_data:
 | 
				
			||||||
            assign_tags = validated_data.pop("assign_tags")
 | 
					            assign_tags = validated_data.pop("assign_tags")
 | 
				
			||||||
        mail_rule = MailRule.objects.create(**validated_data)
 | 
					        mail_rule = super().create(validated_data)
 | 
				
			||||||
        if assign_tags:
 | 
					        if assign_tags:
 | 
				
			||||||
            mail_rule.assign_tags.set(assign_tags)
 | 
					            mail_rule.assign_tags.set(assign_tags)
 | 
				
			||||||
        return mail_rule
 | 
					        return mail_rule
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					from documents.views import PassUserMixin
 | 
				
			||||||
from paperless.views import StandardPagination
 | 
					from paperless.views import StandardPagination
 | 
				
			||||||
from paperless_mail.models import MailAccount
 | 
					from paperless_mail.models import MailAccount
 | 
				
			||||||
from paperless_mail.models import MailRule
 | 
					from paperless_mail.models import MailRule
 | 
				
			||||||
@ -7,7 +8,7 @@ from rest_framework.permissions import IsAuthenticated
 | 
				
			|||||||
from rest_framework.viewsets import ModelViewSet
 | 
					from rest_framework.viewsets import ModelViewSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MailAccountViewSet(ModelViewSet):
 | 
					class MailAccountViewSet(ModelViewSet, PassUserMixin):
 | 
				
			||||||
    model = MailAccount
 | 
					    model = MailAccount
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    queryset = MailAccount.objects.all().order_by("pk")
 | 
					    queryset = MailAccount.objects.all().order_by("pk")
 | 
				
			||||||
@ -15,27 +16,11 @@ class MailAccountViewSet(ModelViewSet):
 | 
				
			|||||||
    pagination_class = StandardPagination
 | 
					    pagination_class = StandardPagination
 | 
				
			||||||
    permission_classes = (IsAuthenticated,)
 | 
					    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):
 | 
					class MailRuleViewSet(ModelViewSet, PassUserMixin):
 | 
				
			||||||
    #     serializer.save(user=self.request.user)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class MailRuleViewSet(ModelViewSet):
 | 
					 | 
				
			||||||
    model = MailRule
 | 
					    model = MailRule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    queryset = MailRule.objects.all().order_by("pk")
 | 
					    queryset = MailRule.objects.all().order_by("pk")
 | 
				
			||||||
    serializer_class = MailRuleSerializer
 | 
					    serializer_class = MailRuleSerializer
 | 
				
			||||||
    pagination_class = StandardPagination
 | 
					    pagination_class = StandardPagination
 | 
				
			||||||
    permission_classes = (IsAuthenticated,)
 | 
					    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)
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user