mirror of
https://github.com/ansible/awx.git
synced 2026-01-14 11:20:39 -03:30
fix refresh token & refactor
This commit is contained in:
parent
5d220e8222
commit
be9598af53
@ -991,6 +991,18 @@ class BaseOAuth2TokenSerializer(BaseSerializer):
|
||||
token = serializers.SerializerMethodField()
|
||||
ALLOWED_SCOPES = ['read', 'write']
|
||||
|
||||
class Meta:
|
||||
model = OAuth2AccessToken
|
||||
fields = (
|
||||
'*', '-name', 'description', 'user', 'token', 'refresh_token',
|
||||
'application', 'expires', 'scope',
|
||||
)
|
||||
read_only_fields = ('user', 'token', 'expires', 'refresh_token')
|
||||
extra_kwargs = {
|
||||
'scope': {'allow_null': False, 'required': True},
|
||||
'user': {'allow_null': False, 'required': True}
|
||||
}
|
||||
|
||||
def get_token(self, obj):
|
||||
request = self.context.get('request', None)
|
||||
try:
|
||||
@ -1000,6 +1012,11 @@ class BaseOAuth2TokenSerializer(BaseSerializer):
|
||||
return TOKEN_CENSOR
|
||||
except ObjectDoesNotExist:
|
||||
return ''
|
||||
|
||||
def get_modified(self, obj):
|
||||
if obj is None:
|
||||
return None
|
||||
return obj.updated
|
||||
|
||||
def _is_valid_scope(self, value):
|
||||
if not value or (not isinstance(value, six.string_types)):
|
||||
@ -1020,15 +1037,7 @@ class BaseOAuth2TokenSerializer(BaseSerializer):
|
||||
return value
|
||||
|
||||
|
||||
class UserAuthorizedTokenSerializer(BaseOAuth2TokenSerializer):
|
||||
|
||||
class Meta:
|
||||
model = OAuth2AccessToken
|
||||
fields = (
|
||||
'*', '-name', 'description', 'user', 'token', 'refresh_token',
|
||||
'expires', 'scope', 'application'
|
||||
)
|
||||
read_only_fields = ('user', 'token', 'expires')
|
||||
class UserAuthorizedTokenSerializer(BaseOAuth2TokenSerializer):
|
||||
|
||||
def get_refresh_token(self, obj):
|
||||
request = self.context.get('request', None)
|
||||
@ -1061,18 +1070,6 @@ class UserAuthorizedTokenSerializer(BaseOAuth2TokenSerializer):
|
||||
|
||||
class OAuth2TokenSerializer(BaseOAuth2TokenSerializer):
|
||||
|
||||
class Meta:
|
||||
model = OAuth2AccessToken
|
||||
fields = (
|
||||
'*', '-name', 'description', 'user', 'token', 'refresh_token',
|
||||
'application', 'expires', 'scope',
|
||||
)
|
||||
read_only_fields = ('user', 'token', 'expires')
|
||||
extra_kwargs = {
|
||||
'scope': {'allow_null': False, 'required': True},
|
||||
'user': {'allow_null': False, 'required': True}
|
||||
}
|
||||
|
||||
def get_modified(self, obj):
|
||||
if obj is None:
|
||||
return None
|
||||
@ -1096,10 +1093,12 @@ class OAuth2TokenSerializer(BaseOAuth2TokenSerializer):
|
||||
try:
|
||||
if request.method == 'POST':
|
||||
return getattr(obj.refresh_token, 'token', '')
|
||||
elif not obj.refresh_token:
|
||||
return None
|
||||
else:
|
||||
return TOKEN_CENSOR
|
||||
except ObjectDoesNotExist:
|
||||
return ''
|
||||
return None
|
||||
|
||||
def create(self, validated_data):
|
||||
current_user = self.context['request'].user
|
||||
@ -1129,17 +1128,6 @@ class OAuth2TokenDetailSerializer(OAuth2TokenSerializer):
|
||||
|
||||
|
||||
class OAuth2AuthorizedTokenSerializer(BaseOAuth2TokenSerializer):
|
||||
|
||||
class Meta:
|
||||
model = OAuth2AccessToken
|
||||
fields = (
|
||||
'*', '-name', 'description', '-user', 'token', 'refresh_token',
|
||||
'expires', 'scope', 'application',
|
||||
)
|
||||
read_only_fields = ('user', 'token', 'expires')
|
||||
extra_kwargs = {
|
||||
'scope': {'allow_null': False, 'required': True}
|
||||
}
|
||||
|
||||
def get_refresh_token(self, obj):
|
||||
request = self.context.get('request', None)
|
||||
@ -1175,20 +1163,7 @@ class OAuth2AuthorizedTokenSerializer(BaseOAuth2TokenSerializer):
|
||||
class OAuth2PersonalTokenSerializer(BaseOAuth2TokenSerializer):
|
||||
|
||||
class Meta:
|
||||
model = OAuth2AccessToken
|
||||
fields = (
|
||||
'*', '-name', 'description', 'user', 'token', 'refresh_token',
|
||||
'application', 'expires', 'scope',
|
||||
)
|
||||
read_only_fields = ('user', 'token', 'expires', 'application')
|
||||
extra_kwargs = {
|
||||
'scope': {'allow_null': False, 'required': True}
|
||||
}
|
||||
|
||||
def get_modified(self, obj):
|
||||
if obj is None:
|
||||
return None
|
||||
return obj.updated
|
||||
|
||||
def get_related(self, obj):
|
||||
ret = super(OAuth2PersonalTokenSerializer, self).get_related(obj)
|
||||
@ -1238,7 +1213,6 @@ class OAuth2ApplicationSerializer(BaseSerializer):
|
||||
ret.pop('client_secret', None)
|
||||
return ret
|
||||
|
||||
|
||||
def get_modified(self, obj):
|
||||
if obj is None:
|
||||
return None
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user