From 40935ec5ceda80590da54a52f1acb3fbb91a1c32 Mon Sep 17 00:00:00 2001 From: petitminion Date: Thu, 4 Jul 2024 11:19:22 +0000 Subject: [PATCH] Resolve Radio playing fails when unauthenticated (#2319) --- api/funkwhale_api/radios/views.py | 6 +++++- changes/changelog.d/2319.bugfix | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changes/changelog.d/2319.bugfix diff --git a/api/funkwhale_api/radios/views.py b/api/funkwhale_api/radios/views.py index 07138ee35..5799121a0 100644 --- a/api/funkwhale_api/radios/views.py +++ b/api/funkwhale_api/radios/views.py @@ -1,5 +1,6 @@ import pickle +from django.contrib.auth.models import AnonymousUser from django.core.cache import cache from django.db.models import Q from drf_spectacular.utils import extend_schema @@ -136,9 +137,12 @@ class V1_RadioSessionTrackViewSet(mixins.CreateModelMixin, viewsets.GenericViewS session = serializer.validated_data["session"] if not request.user.is_authenticated and not request.session.session_key: self.request.session.create() - if not request.user == session.user or ( + if ( not request.session.session_key == session.session_key and not session.session_key + ) or not ( + (isinstance(request.user, AnonymousUser) and session.user is None) + or request.user == session.user ): return Response(status=status.HTTP_403_FORBIDDEN) diff --git a/changes/changelog.d/2319.bugfix b/changes/changelog.d/2319.bugfix new file mode 100644 index 000000000..05107a37c --- /dev/null +++ b/changes/changelog.d/2319.bugfix @@ -0,0 +1 @@ +Resolve Radio playing fails when unauthenticated (#2319)