accounts/apps/gooyal_oauth2/views/apis.py
Sayyid Hamid Mahdavi 2fe322241a hash otp
2025-11-20 13:57:23 +03:30

39 lines
1.3 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()
# @action(detail=True, permission_classes=[AllowAny])
# def tokens(self, request, pk=None):
# app: Application = self.get_object()