44import logging
55
66from django .contrib .auth .models import User
7+ from django .contrib .admin .models import LogEntry
78from django .contrib .auth .forms import UserCreationForm
89from rest_framework import serializers
910from oauth2_provider .oauth2_validators import OAuth2Validator
11+ from oauth2_provider .models import Grant , AccessToken
12+
13+ from api .utils import timestamp2datetime
1014
1115logger = logging .getLogger (__name__ )
1216
@@ -30,6 +34,51 @@ class Meta:
3034 fields = ('username' , 'email' )
3135
3236
37+ class ListSerializer (serializers .Serializer ):
38+ section = serializers .CharField (max_length = 500 , required = False )
39+
40+ @staticmethod
41+ def validate_section (section ):
42+ field = section .split (',' ) if section else None
43+ if field is None :
44+ return None
45+ return [timestamp2datetime (float (field [0 ])),
46+ timestamp2datetime (float (field [1 ]))]
47+
48+
49+ class UserGrantsSerializer (serializers .ModelSerializer ):
50+ """Serialize user status for a Grant model."""
51+
52+ class Meta :
53+ model = Grant
54+ fields = '__all__'
55+ read_only_fields = ['id' , 'user' , 'code' , 'application' , 'expires' ,
56+ 'redirect_uri' , 'scope' , 'created' , 'updated' ,
57+ 'code_challenge' , 'code_challenge_method' , 'nonce' ,
58+ 'claims' ]
59+
60+
61+ class UserTokensSerializer (serializers .ModelSerializer ):
62+ """Serialize user status for a AccessToken model."""
63+
64+ class Meta :
65+ model = AccessToken
66+ fields = '__all__'
67+ read_only_fields = ['id' , 'user' , 'source_refresh_token' , 'token' ,
68+ 'id_token' , 'application' , 'expires' , 'scope' ,
69+ 'created' , 'updated' ]
70+
71+
72+ class UserLogsSerializer (serializers .ModelSerializer ):
73+ """Serialize user status for a AccessToken model."""
74+
75+ class Meta :
76+ model = LogEntry
77+ fields = '__all__'
78+ read_only_fields = ['action_time' , 'user' , 'content_type' , 'object_id' ,
79+ 'object_repr' , 'action_flag' , 'change_message' ]
80+
81+
3382class CustomOAuth2Validator (OAuth2Validator ):
3483
3584 def get_additional_claims (self , request ):
0 commit comments