diff --git a/bookwyrm/templates/user.html b/bookwyrm/templates/user.html
index a41623a8..69b762b0 100644
--- a/bookwyrm/templates/user.html
+++ b/bookwyrm/templates/user.html
@@ -17,7 +17,7 @@
{% include 'snippets/user_header.html' with user=user %}
-
+{% if user.bookwyrm_user %}
+{% endif %}
{% if goal %}
diff --git a/bookwyrm/tests/views/test_helpers.py b/bookwyrm/tests/views/test_helpers.py
index 5e42b378..50c3cfc5 100644
--- a/bookwyrm/tests/views/test_helpers.py
+++ b/bookwyrm/tests/views/test_helpers.py
@@ -154,6 +154,34 @@ class ViewsHelpers(TestCase):
self.assertEqual(statuses[0], rat_mention)
+ def test_get_activity_feed_blocks(self):
+ ''' feed generation with blocked users '''
+ rat = models.User.objects.create_user(
+ 'rat', 'rat@rat.rat', 'password', local=True)
+
+ public_status = models.Comment.objects.create(
+ content='public status', book=self.book, user=self.local_user)
+ rat_public = models.Status.objects.create(
+ content='blah blah', user=rat)
+
+ statuses = views.helpers.get_activity_feed(
+ self.local_user, ['public'])
+ self.assertEqual(len(statuses), 2)
+
+ # block relationship
+ rat.blocks.add(self.local_user)
+ statuses = views.helpers.get_activity_feed(
+ self.local_user, ['public'])
+ self.assertEqual(len(statuses), 1)
+ self.assertEqual(statuses[0], public_status)
+
+ statuses = views.helpers.get_activity_feed(
+ rat, ['public'])
+ self.assertEqual(len(statuses), 1)
+ self.assertEqual(statuses[0], rat_public)
+
+
+
def test_is_bookwyrm_request(self):
''' checks if a request came from a bookwyrm instance '''
request = self.factory.get('', {'q': 'Test Book'})
diff --git a/bookwyrm/views/helpers.py b/bookwyrm/views/helpers.py
index f899680f..b0f867b7 100644
--- a/bookwyrm/views/helpers.py
+++ b/bookwyrm/views/helpers.py
@@ -71,6 +71,11 @@ def get_activity_feed(
# exclude deleted
queryset = queryset.exclude(deleted=True).order_by('-published_date')
+ # exclude blocks from both directions
+ blocked = models.User.objects.filter(id__in=user.blocks.all()).all()
+ queryset = queryset.exclude(
+ Q(user__in=blocked) | Q(user__blocks=user))
+
# you can't see followers only or direct messages if you're not logged in
if user.is_anonymous:
privacy = [p for p in privacy if not p in ['followers', 'direct']]