mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-06 05:09:56 +02:00
Merge branch '1151-list-librarie' into 'master'
Fix #1151: Updated the /api/v1/libraries endpoint to support listing public libraries of a pod See merge request funkwhale/funkwhale!1135
This commit is contained in:
commit
d43eed805b
6 changed files with 45 additions and 4 deletions
|
@ -218,3 +218,12 @@ class AlbumFilter(
|
|||
def filter_playable(self, queryset, name, value):
|
||||
actor = utils.get_actor_from_request(self.request)
|
||||
return queryset.playable_by(actor, value)
|
||||
|
||||
|
||||
class LibraryFilter(filters.FilterSet):
|
||||
q = fields.SearchFilter(search_fields=["name"],)
|
||||
scope = common_filters.ActorScopeFilter(actor_field="actor", distinct=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Library
|
||||
fields = ["privacy_level", "q", "scope"]
|
||||
|
|
|
@ -273,6 +273,7 @@ class LibraryViewSet(
|
|||
oauth_permissions.ScopePermission,
|
||||
common_permissions.OwnerPermission,
|
||||
]
|
||||
filterset_class = filters.LibraryFilter
|
||||
required_scope = "libraries"
|
||||
anonymous_policy = "setting"
|
||||
owner_field = "actor.user"
|
||||
|
@ -282,8 +283,12 @@ class LibraryViewSet(
|
|||
qs = super().get_queryset()
|
||||
# allow retrieving a single library by uuid if request.user isn't
|
||||
# the owner. Any other get should be from the owner only
|
||||
if self.action != "retrieve":
|
||||
if self.action not in ["retrieve", "list"]:
|
||||
qs = qs.filter(actor=self.request.user.actor)
|
||||
if self.action == "list":
|
||||
actor = utils.get_actor_from_request(self.request)
|
||||
qs = qs.viewable_by(actor)
|
||||
|
||||
return qs
|
||||
|
||||
def perform_create(self, serializer):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue