-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathserializers.py
More file actions
46 lines (35 loc) · 1.44 KB
/
serializers.py
File metadata and controls
46 lines (35 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
Classes to serialize the RESTful representation of Drycc API models.
"""
import logging
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from rest_framework import serializers
from oauth2_provider.oauth2_validators import OAuth2Validator
logger = logging.getLogger(__name__)
class RegisterForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = User
fields = ('username', 'email', 'password1', 'password2')
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'username', 'email', "first_name", "last_name",
"is_staff", "is_active", "is_superuser")
class UserEmailSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'email')
class CustomOAuth2Validator(OAuth2Validator):
def get_additional_claims(self, request):
claims = super().get_additional_claims(request)
claims["id"] = request.user.id
claims["name"] = request.user.username
claims["username"] = request.user.username
claims["email"] = request.user.email
claims["first_name"] = request.user.first_name
claims["last_name"] = request.user.last_name
claims["is_staff"] = request.user.is_staff
claims["is_active"] = request.user.is_active
claims["is_superuser"] = request.user.is_superuser
return claims