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:
parent
6c2925a35d
commit
e7584eb47f
3 changed files with 50 additions and 4 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue