Now the login api return more data about the custom user
parent
64eb9bb3b3
commit
b2cb2a065f
|
@ -2,13 +2,19 @@ from rest_framework import serializers
|
||||||
|
|
||||||
|
|
||||||
class UserLogged(object):
|
class UserLogged(object):
|
||||||
def __init__(self, token, username, first_name, last_name, email, last_login):
|
def __init__(self, session_token, username, first_name, last_name, email, last_login, color, description, default_language, default_timezone, token, colorize_tags):
|
||||||
self.token = token
|
self.session_token = session_token
|
||||||
self.username = username
|
self.username = username
|
||||||
self.first_name = first_name
|
self.first_name = first_name
|
||||||
self.last_name = last_name
|
self.last_name = last_name
|
||||||
self.email = email
|
self.email = email
|
||||||
self.last_login = last_login
|
self.last_login = last_login
|
||||||
|
self.color = color
|
||||||
|
self.description = description
|
||||||
|
self.default_language = default_language
|
||||||
|
self.default_timezone = default_timezone
|
||||||
|
self.token = token
|
||||||
|
self.colorize_tags = colorize_tags
|
||||||
|
|
||||||
|
|
||||||
class LoginSerializer(serializers.Serializer):
|
class LoginSerializer(serializers.Serializer):
|
||||||
|
@ -18,6 +24,12 @@ class LoginSerializer(serializers.Serializer):
|
||||||
last_name = serializers.CharField(max_length=30)
|
last_name = serializers.CharField(max_length=30)
|
||||||
email = serializers.EmailField()
|
email = serializers.EmailField()
|
||||||
last_login = serializers.DateTimeField()
|
last_login = serializers.DateTimeField()
|
||||||
|
color = serializers.CharField(max_length=9)
|
||||||
|
description = serializers.CharField()
|
||||||
|
default_language = serializers.CharField(max_length=20)
|
||||||
|
default_timezone = serializers.CharField(max_length=20)
|
||||||
|
token = serializers.CharField(max_length=200)
|
||||||
|
colorize_tags = serializers.BooleanField()
|
||||||
|
|
||||||
def restore_object(self, attrs, instance=None):
|
def restore_object(self, attrs, instance=None):
|
||||||
"""
|
"""
|
||||||
|
@ -31,5 +43,11 @@ class LoginSerializer(serializers.Serializer):
|
||||||
instance.last_name = attrs.get('last_name', instance.last_name)
|
instance.last_name = attrs.get('last_name', instance.last_name)
|
||||||
instance.email = attrs.get('email', instance.email)
|
instance.email = attrs.get('email', instance.email)
|
||||||
instance.last_login = attrs.get('last_login', instance.last_login)
|
instance.last_login = attrs.get('last_login', instance.last_login)
|
||||||
|
instance.color = attrs.get('color', instance.color)
|
||||||
|
instance.description = attrs.get('description', instance.description)
|
||||||
|
instance.default_language = attrs.get('default_language', instance.default_language)
|
||||||
|
instance.default_timezone = attrs.get('default_timezone', instance.default_timezone)
|
||||||
|
instance.token = attrs.get('token', instance.token)
|
||||||
|
instance.colorize_tags = attrs.get('colorize_tags', instance.colorize_tags)
|
||||||
return instance
|
return instance
|
||||||
return UserLogged(**attrs)
|
return UserLogged(**attrs)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from django.contrib.auth import logout, login, authenticate
|
from django.contrib.auth import logout, login, authenticate
|
||||||
from django.contrib.auth.models import User
|
|
||||||
from django.contrib.auth.views import login as auth_login, logout as auth_logout
|
from django.contrib.auth.views import login as auth_login, logout as auth_logout
|
||||||
from django import http
|
from django import http
|
||||||
|
|
||||||
|
@ -12,6 +11,7 @@ from rest_framework.views import APIView
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
from greenmine.base.serializers import LoginSerializer, UserLogged
|
from greenmine.base.serializers import LoginSerializer, UserLogged
|
||||||
|
from greenmine.base.models import User
|
||||||
|
|
||||||
|
|
||||||
class ApiRoot(APIView):
|
class ApiRoot(APIView):
|
||||||
|
@ -47,12 +47,18 @@ class Login(APIView):
|
||||||
login(request, user)
|
login(request, user)
|
||||||
|
|
||||||
return_data = LoginSerializer(UserLogged(**{
|
return_data = LoginSerializer(UserLogged(**{
|
||||||
'token': request.session.session_key,
|
'session_token': request.session.session_key,
|
||||||
'username': request.user.username,
|
'username': request.user.username,
|
||||||
'first_name': request.user.first_name,
|
'first_name': request.user.first_name,
|
||||||
'last_name': request.user.last_name,
|
'last_name': request.user.last_name,
|
||||||
'email': request.user.email,
|
'email': request.user.email,
|
||||||
'last_login': request.user.last_login,
|
'last_login': request.user.last_login,
|
||||||
|
'color': request.user.color,
|
||||||
|
'description': request.user.description,
|
||||||
|
'default_language': request.user.default_language,
|
||||||
|
'default_timezone': request.user.default_timezone,
|
||||||
|
'token': request.user.token,
|
||||||
|
'colorize_tags': request.user.colorize_tags,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
return http.HttpResponse(JSONRenderer().render(return_data.data),
|
return http.HttpResponse(JSONRenderer().render(return_data.data),
|
||||||
|
|
Loading…
Reference in New Issue