my application list

This commit is contained in:
mahdavi 2024-07-22 15:12:09 +03:30
parent 58ce90ff13
commit f01d6d3629
3 changed files with 39 additions and 2 deletions

View file

@ -0,0 +1,14 @@
from rest_framework import serializers
from .models import Application
class ApplicationSerializer(serializers.ModelSerializer):
class Meta:
model = Application
fields = ('uuid',
'client_id',
'user',
'allowed_scope',
)
read_only_fields = fields

View file

@ -1,8 +1,10 @@
from django.urls import re_path
from oauth2_provider import views
from .views.introspect import IntrospectTokenView, IntrospectApplicationView
from rest_framework import routers
from .views.introspect import IntrospectTokenView, IntrospectApplicationView
from .views import apis as api_views
app_name = "oauth2_provider"
@ -14,6 +16,8 @@ base_urlpatterns = [
re_path(r"^introspect_application/$", IntrospectApplicationView.as_view(), name="introspect-application"),
]
router = routers.SimpleRouter()
router.register(r'apis/applications', api_views.ApplicationViewSet, basename='application')
management_urlpatterns = [
# Application management views
@ -47,4 +51,4 @@ oidc_urlpatterns = [
]
urlpatterns = base_urlpatterns + management_urlpatterns + oidc_urlpatterns
urlpatterns = base_urlpatterns + management_urlpatterns + oidc_urlpatterns + router.urls

View file

@ -0,0 +1,19 @@
from oauth2_provider.contrib.rest_framework import TokenHasScope
from rest_framework import generics
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()