77from rest_framework .generics import (GenericAPIView , ListCreateAPIView ,
88 RetrieveUpdateAPIView )
99from rest_framework .response import Response
10- from rest_framework .exceptions import ParseError
10+ from rest_framework .exceptions import ParseError , PermissionDenied
1111from rest_framework import permissions
1212from rest_framework import status
1313
1414from provider .oauth2 .models import AccessToken , Client
1515
1616from elastic_framework .core .exceptions import APIError
1717
18- from .serializers import ECUserSignupSerializer , ECUserResponseSerializerClass
18+ from .serializers import (ECUserSignupSerializer , ECUserResponseSerializerClass ,
19+ ECUserSerializer )
1920from .utils import create_token , get_token_from_request
2021
2122logger = logging .getLogger (__name__ )
@@ -30,6 +31,9 @@ class Oauth2ECUserListView(GenericAPIView):
3031 authentication_classes = ()
3132 token = {}
3233
34+ def get_queryset (self ):
35+ return get_user_model ().objects .all ()
36+
3337 def get_serializer_context (self ):
3438 ctx = super (Oauth2ECUserListView , self ).get_serializer_context ()
3539 ctx ['token' ] = self .token
@@ -91,9 +95,26 @@ def post(self, request, *args, **kwargs):
9195 return Response (response_data ,
9296 status = status .HTTP_201_CREATED )
9397
98+ class Oauth2ECUserView (GenericAPIView ):
99+
100+ serializer_class = ECUserSerializer
101+ permission_classes = (permissions .IsAuthenticated ,)
102+
103+ def get_queryset (self ):
104+ return get_user_model ().objects .all ()
105+
106+ def get (self , request , * args , ** kwargs ):
107+ user = self .get_object ()
108+ if not request .user == user :
109+ raise PermissionDenied ()
110+ user_serializer = self .get_serializer (instance = user )
111+ return Response (user_serializer .data ,
112+ status = 200 )
113+
114+
94115class Oauth2ECUserLoginView (GenericAPIView ):
95116
96- serializer_class = ECUserResponseSerializerClass
117+ serializer_class = ECUserSignupSerializer
97118 permission_classes = (permissions .AllowAny ,)
98119
99120 def get_serializer_context (self ):
0 commit comments