33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
from django.http import Http404
|
|
from django.shortcuts import redirect
|
|
from oauth2_provider.contrib.rest_framework import TokenHasScope
|
|
from rest_framework import generics
|
|
from rest_framework.decorators import action
|
|
from rest_framework.permissions import AllowAny
|
|
from rest_framework.viewsets import ReadOnlyModelViewSet
|
|
|
|
from ..models import Application
|
|
from ..rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
|
from ..serializers import ApplicationSerializer
|
|
|
|
|
|
class ApplicationViewSet(ReadOnlyModelViewSet):
|
|
serializer_class = ApplicationSerializer
|
|
# lookup_field = 'uuid'
|
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
|
required_alternate_scopes = {
|
|
"GET": [['accounts.applications:list_or_retrieve']],
|
|
}
|
|
def get_queryset(self):
|
|
# user = self.request.user
|
|
# return Application.objects.filter(user=user).all()
|
|
return Application.objects.filter().all()
|
|
|
|
@action(detail=True, permission_classes=[AllowAny])
|
|
def avatar(self, request, pk=None):
|
|
app: Application = self.get_object()
|
|
if app.avatar:
|
|
return redirect(app.avatar.url)
|
|
else:
|
|
raise Http404()
|
|
|