Fixes privacy display

This commit is contained in:
Mouse Reeve 2021-10-15 13:26:02 -07:00
parent 66a2b4c7c7
commit c6caa5a3f4
2 changed files with 11 additions and 5 deletions

View file

@ -69,17 +69,13 @@ class BookWyrmModel(models.Model):
# you can see the followers only posts of people you follow
if self.privacy == "followers" and (
self.user.followers.filter(id=viewer.id).first()
or (
hasattr(self, "mention_users")
and self.mention_users.filter(id=viewer.id)
)
):
return
# you can see dms you are tagged in
if hasattr(self, "mention_users"):
if (
self.privacy == "direct"
self.privacy in ["direct", "followers"]
and self.mention_users.filter(id=viewer.id).first()
):
return

View file

@ -220,6 +220,16 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
~Q(Q(user=viewer) | Q(mention_users=viewer)), privacy="direct"
)
@classmethod
def followers_filter(cls, queryset, viewer):
"""Override-able filter for "followers" privacy level"""
return queryset.exclude(
~Q( # not yourself, a follower, or someone who is tagged
Q(user__followers=viewer) | Q(user=viewer) | Q(mention_users=viewer)
),
privacy="followers", # and the status is followers only
)
class GeneratedNote(Status):
"""these are app-generated messages about user activity"""