diff --git a/aleksis/core/util/auth_helpers.py b/aleksis/core/util/auth_helpers.py index 4b19d475ebf40ca5bdacaaaef3622f5a303fb701..e0cfcc778a55563e91ecf4d0d1027227e01a99b3 100644 --- a/aleksis/core/util/auth_helpers.py +++ b/aleksis/core/util/auth_helpers.py @@ -47,11 +47,15 @@ class CustomOAuth2Validator(OAuth2Validator): django_request = HttpRequest() django_request.META = request.headers + scopes = request.scopes.copy() + if request.access_token: + scopes += request.access_token.scope.split(" ") + claims = { "preferred_username": request.user.username, } - if "profile" in request.scopes: + if "profile" in scopes: if has_person(request.user): claims["given_name"] = request.user.person.first_name claims["family_name"] = request.user.person.last_name @@ -66,13 +70,13 @@ class CustomOAuth2Validator(OAuth2Validator): claims["given_name"] = request.user.first_name claims["family_name"] = request.user.last_name - if "email" in request.scopes: + if "email" in scopes: if has_person(request.user): claims["email"] = request.user.person.email else: claims["email"] = request.user.email - if "address" in request.scopes and has_person(request.user): + if "address" in scopes and has_person(request.user): claims["address"] = { "street_address": request.user.person.street + " " @@ -81,7 +85,7 @@ class CustomOAuth2Validator(OAuth2Validator): "postal_code": request.user.person.postal_code, } - if "groups" in request.scopes and has_person(request.user): + if "groups" in scopes and has_person(request.user): claims["groups"] = list( request.user.person.member_of.values_list("name", flat=True).all() )