From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 24 Jan 2023 22:10:45 +0000 (-0800) Subject: Merge branch 'dev' into feature-permissions X-Git-Tag: v1.14.0-beta.rc1~109^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=44f860d9b05546acfc9d51f457441bc8026ca08a;p=thirdparty%2Fpaperless-ngx.git Merge branch 'dev' into feature-permissions --- 44f860d9b05546acfc9d51f457441bc8026ca08a diff --cc src/documents/consumer.py index ad5a8416aa,bc344abb9d..6c736b680e --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@@ -99,8 -100,8 +101,9 @@@ class Consumer(LoggingMixin) self.override_correspondent_id = None self.override_tag_ids = None self.override_document_type_id = None + self.override_asn = None self.task_id = None + self.owner_id = None self.channel_layer = get_channel_layer() @@@ -257,7 -279,7 +281,8 @@@ override_tag_ids=None, task_id=None, override_created=None, + override_asn=None, + override_owner_id=None, ) -> Document: """ Return the document object if it was successfully created. @@@ -271,7 -293,7 +296,8 @@@ self.override_tag_ids = override_tag_ids self.task_id = task_id or str(uuid.uuid4()) self.override_created = override_created + self.override_asn = override_asn + self.override_owner_id = override_owner_id self._send_progress(0, 100, "STARTING", MESSAGE_NEW_FILE) @@@ -530,11 -553,9 +557,14 @@@ for tag_id in self.override_tag_ids: document.tags.add(Tag.objects.get(pk=tag_id)) + if self.override_asn: + document.archive_serial_number = self.override_asn + + if self.override_owner_id: + document.owner = User.objects.get( + pk=self.override_owner_id, + ) + def _write(self, storage_type, source, target): with open(source, "rb") as read_file: with open(target, "wb") as write_file: diff --cc src/documents/tasks.py index d52d6e74a7,77b48e33df..080b9a9d11 --- a/src/documents/tasks.py +++ b/src/documents/tasks.py @@@ -187,7 -198,7 +200,8 @@@ def consume_file override_tag_ids=override_tag_ids, task_id=task_id, override_created=override_created, + override_asn=asn, + override_owner_id=override_owner_id, ) if document: diff --cc src/documents/views.py index 1bb5a50f08,87862fe072..b2873694d9 --- a/src/documents/views.py +++ b/src/documents/views.py @@@ -194,17 -173,13 +194,17 @@@ class TagViewSet(ModelViewSet) return TagSerializer pagination_class = StandardPagination - permission_classes = (IsAuthenticated,) - filter_backends = (DjangoFilterBackend, OrderingFilter) + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) + filter_backends = ( + DjangoFilterBackend, + OrderingFilter, + ObjectOwnedOrGrandtedPermissionsFilter, + ) filterset_class = TagFilterSet - ordering_fields = ("name", "matching_algorithm", "match", "document_count") + ordering_fields = ("color", "name", "matching_algorithm", "match", "document_count") -class DocumentTypeViewSet(ModelViewSet): +class DocumentTypeViewSet(ModelViewSet, PassUserMixin): model = DocumentType queryset = DocumentType.objects.annotate( diff --cc src/paperless_mail/views.py index edc58ac896,45fc4197e9..85aee8902f --- a/src/paperless_mail/views.py +++ b/src/paperless_mail/views.py @@@ -16,11 -15,19 +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") + queryset = MailRule.objects.all().order_by("order") serializer_class = MailRuleSerializer pagination_class = StandardPagination permission_classes = (IsAuthenticated,)