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