This commit is contained in:
Markos Gogoulos 2025-10-25 15:37:16 +03:00
parent 030e3cbe68
commit 3c74badaec

View File

@ -174,15 +174,15 @@ class MediaList(APIView):
media = Media.objects.none() media = Media.objects.none()
else: else:
base_queryset = Media.objects.prefetch_related("user", "tags") base_queryset = Media.objects.prefetch_related("user", "tags")
user_media_filters = {'permissions__user': request.user}
media = base_queryset.filter(**user_media_filters) # Build OR conditions similar to _get_media_queryset
conditions = Q(permissions__user=request.user)
if getattr(settings, 'USE_RBAC', False): if getattr(settings, 'USE_RBAC', False):
rbac_categories = request.user.get_rbac_categories_as_member() rbac_categories = request.user.get_rbac_categories_as_member()
rbac_filters = {'category__in': rbac_categories} conditions |= Q(category__in=rbac_categories)
rbac_media = base_queryset.filter(**rbac_filters) media = base_queryset.filter(conditions).distinct()
media = media.union(rbac_media)
elif author_param: elif author_param:
user_queryset = User.objects.all() user_queryset = User.objects.all()
user = get_object_or_404(user_queryset, username=author_param) user = get_object_or_404(user_queryset, username=author_param)