]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Merge pull request #3359 from paperless-ngx/feature-fix-autocomplete-respect-perms
authorshamoon <4887959+shamoon@users.noreply.github.com>
Fri, 12 May 2023 20:35:45 +0000 (13:35 -0700)
committerGitHub <noreply@github.com>
Fri, 12 May 2023 20:35:45 +0000 (13:35 -0700)
Fix: respect permissions for autocomplete suggestions

1  2 
src/documents/index.py
src/documents/tests/test_api.py
src/documents/views.py

index 087329f9afce0b403d42a74b76be3f7fe8dff526,0c2bd1bfe0a74ab93cf9cbfefa469978e2c94b46..054a931e099d1b8c254f9a2930401345a24e88f0
@@@ -238,29 -241,11 +243,23 @@@ class DelayedQuery
                  for storage_path_id in v.split(","):
                      criterias.append(query.Not(query.Term("path_id", storage_path_id)))
              elif k == "storage_path__isnull":
 -                criterias.append(query.Term("has_path", v == "false"))
 +                criterias.append(query.Term("has_path", self.evalBoolean(v) is False))
 +            elif k == "owner__isnull":
 +                criterias.append(query.Term("has_owner", self.evalBoolean(v) is False))
 +            elif k == "owner__id":
 +                criterias.append(query.Term("owner_id", v))
 +            elif k == "owner__id__in":
 +                owners_in = []
 +                for owner_id in v.split(","):
 +                    owners_in.append(query.Term("owner_id", owner_id))
 +                criterias.append(query.Or(owners_in))
 +            elif k == "owner__id__none":
 +                for owner_id in v.split(","):
 +                    criterias.append(query.Not(query.Term("owner_id", owner_id)))
  
-         user_criterias = [query.Term("has_owner", False)]
-         if "user" in self.query_params:
-             if self.query_params["is_superuser"]:  # superusers see all docs
-                 user_criterias = []
-             else:
-                 user_criterias.append(query.Term("owner_id", self.query_params["user"]))
-                 user_criterias.append(
-                     query.Term("viewer_id", str(self.query_params["user"])),
-                 )
+         user_criterias = get_permissions_criterias(
+             user=self.user,
+         )
          if len(criterias) > 0:
              if len(user_criterias) > 0:
                  criterias.append(query.Or(user_criterias))
Simple merge
Simple merge