Fix #302: Include user's current private playlists on playlist list

This commit is contained in:
Eliot Berriot 2018-06-24 14:33:58 +02:00
parent e068f4c102
commit 697ea24b79
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
4 changed files with 9 additions and 5 deletions

View File

@ -17,13 +17,13 @@ def get_privacy_field():
)
def privacy_level_query(user, lookup_field="privacy_level"):
def privacy_level_query(user, lookup_field="privacy_level", user_field="user"):
if user.is_anonymous:
return models.Q(**{lookup_field: "everyone"})
return models.Q(
**{"{}__in".format(lookup_field): ["followers", "instance", "everyone"]}
)
**{"{}__in".format(lookup_field): ["instance", "everyone"]}
) | models.Q(**{lookup_field: "me", user_field: user})
class SearchFilter(django_filters.CharFilter):

View File

@ -110,7 +110,9 @@ class PlaylistTrackViewSet(
def get_queryset(self):
return self.queryset.filter(
fields.privacy_level_query(
self.request.user, lookup_field="playlist__privacy_level"
self.request.user,
lookup_field="playlist__privacy_level",
user_field="playlist__user",
)
)

View File

@ -12,7 +12,8 @@ from funkwhale_api.users.factories import UserFactory
(AnonymousUser(), Q(privacy_level="everyone")),
(
UserFactory.build(pk=1),
Q(privacy_level__in=["followers", "instance", "everyone"]),
Q(privacy_level__in=["instance", "everyone"])
| Q(privacy_level="me", user=UserFactory.build(pk=1)),
),
],
)

View File

@ -0,0 +1 @@
Include user's current private playlists on playlist list (#302)