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 # you can see the followers only posts of people you follow
if self.privacy == "followers" and ( if self.privacy == "followers" and (
self.user.followers.filter(id=viewer.id).first() self.user.followers.filter(id=viewer.id).first()
or (
hasattr(self, "mention_users")
and self.mention_users.filter(id=viewer.id)
)
): ):
return return
# you can see dms you are tagged in # you can see dms you are tagged in
if hasattr(self, "mention_users"): if hasattr(self, "mention_users"):
if ( if (
self.privacy == "direct" self.privacy in ["direct", "followers"]
and self.mention_users.filter(id=viewer.id).first() and self.mention_users.filter(id=viewer.id).first()
): ):
return return

View file

@ -220,6 +220,16 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
~Q(Q(user=viewer) | Q(mention_users=viewer)), privacy="direct" ~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): class GeneratedNote(Status):
"""these are app-generated messages about user activity""" """these are app-generated messages about user activity"""