Skip to content

Commit 8377fb9

Browse files
committed
basic oauth2 authentication workflow management
1 parent 3cc205e commit 8377fb9

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

elastic_framework/contrib/auth/serializers.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class ECUserSignupSerializer(serializers.ModelSerializer):
77

88
class Meta:
99
model = get_user_model()
10+
exclude = ('password',)
1011

1112
def to_native(self, obj):
1213
return super(ECUserSignupSerializer, self).to_native(obj)
@@ -30,6 +31,12 @@ def to_python(self):
3031
pass
3132

3233

34+
class ECUserSerializer(serializers.ModelSerializer):
35+
36+
class Meta:
37+
model = get_user_model()
38+
exclude = ('password',)
39+
3340
class ECUserResponseSerializerClass(serializers.ModelSerializer):
3441

3542
class Meta:

elastic_framework/contrib/auth/views.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@
77
from rest_framework.generics import (GenericAPIView, ListCreateAPIView,
88
RetrieveUpdateAPIView)
99
from rest_framework.response import Response
10-
from rest_framework.exceptions import ParseError
10+
from rest_framework.exceptions import ParseError, PermissionDenied
1111
from rest_framework import permissions
1212
from rest_framework import status
1313

1414
from provider.oauth2.models import AccessToken, Client
1515

1616
from elastic_framework.core.exceptions import APIError
1717

18-
from .serializers import ECUserSignupSerializer, ECUserResponseSerializerClass
18+
from .serializers import (ECUserSignupSerializer, ECUserResponseSerializerClass,
19+
ECUserSerializer)
1920
from .utils import create_token, get_token_from_request
2021

2122
logger = 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+
94115
class 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

Comments
 (0)