1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-03-23 11:04:49 +00:00

fixed bugs in rest api (sign in, sign up)

This commit is contained in:
Dmitriy Kalinin 2018-10-22 22:52:42 +03:00
parent 6c2925a35d
commit e7584eb47f
3 changed files with 50 additions and 4 deletions

View file

@ -1,10 +1,48 @@
from rest_framework import serializers
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User
from rest_framework import status
from rest_framework.response import Response
from rest_framework import serializers
from rest_auth.registration.views import RegisterView
from rest_auth.views import LoginView
from allauth.account import app_settings as allauth_settings
class UserSerializer(serializers.ModelSerializer):
class Meta:
fields = ('id', 'email', 'username', 'first_name', 'last_name', 'date_joined', 'last_login', 'is_active')
model = User
class SignUpView(RegisterView):
def get_response_data(self, user):
if allauth_settings.EMAIL_VERIFICATION == \
allauth_settings.EmailVerificationMethod.MANDATORY:
return {"detail": _("Verification e-mail sent.")}
serializer = UserSerializer(user)
data = {
'user': serializer.data,
'session': self.request.session.session_key,
'token': self.token
}
return data
class SignInView(LoginView):
def get_response(self):
serializer_class = self.get_response_serializer()
serializer = UserSerializer(self.user)
data = {
'user': serializer.data,
'session': self.request.session.session_key,
'token': self.token
}
serializer = serializer_class(instance=data,
context={'request': self.request})
return Response(serializer.data, status=status.HTTP_200_OK)

View file

@ -58,6 +58,16 @@ AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
REST_SESSION_LOGIN = True
REST_AUTH_REGISTER_SERIALIZERS = {
'REGISTER_SERIALIZER': 'user.serializers.SignUpView',
}
REST_AUTH_SERIALIZERS = {
'LOGIN_SERIALIZER': 'user.serializers.SignInView',
}
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',

View file

@ -39,8 +39,6 @@ CORS_ORIGIN_WHITELIST = (
# Swagger settings
SWAGGER_SETTINGS = {
'LOGIN_URL': 'login',
'LOGOUT_URL': 'logout',
'VALIDATOR_URL': None,
'JSON_EDITOR': True,
'USE_SESSION_AUTH': True,