fix: copy default scopes to prevent mutating the original list

This commit is contained in:
Ehmad Saeed
2024-03-15 03:29:15 +05:00
parent 14199e5b99
commit 2694f82654

View File

@@ -100,10 +100,13 @@ class EdxOAuth2Validator(OAuth2Validator):
client credentials, add `user_id` as a default scope if it is an allowed scope.
"""
default_scopes = super().get_default_scopes(client_id, request, *args, **kwargs)
if settings.FEATURES.get('ENABLE_USER_ID_SCOPE', False):
if settings.FEATURES.get('ENABLE_USER_ID_SCOPE', True):
if request.grant_type == 'client_credentials' and not request.scopes:
if get_scopes_backend().has_user_id_in_application_scopes(application=request.client):
default_scopes.append('user_id')
# copy the default scopes and add user_id to it to avoid modifying the original list
extended_default_scopes = default_scopes.copy()
extended_default_scopes.append('user_id')
return extended_default_scopes
return default_scopes
def validate_scopes(self, client_id, scopes, client, request, *args, **kwargs):