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))