Commit 874c3381 by Carlos Andrés Rocha

Merge pull request #5316 from rocha/use-default-locale-in-openid-claim

Use default locale to OpenID profile claims.
parents c35f4bf7 5500cc68
""" Handlers for OpenID Connect provider. """ """ Handlers for OpenID Connect provider. """
from django.conf import settings
import branding import branding
from courseware.access import has_access from courseware.access import has_access
from student.models import anonymous_id_for_user from student.models import anonymous_id_for_user
...@@ -51,6 +53,11 @@ class ProfileHandler(object): ...@@ -51,6 +53,11 @@ class ProfileHandler(object):
""" """
language = UserPreference.get_preference(data['user'], LANGUAGE_KEY) language = UserPreference.get_preference(data['user'], LANGUAGE_KEY)
# If the user has no language specified, return the default one.
if not language:
language = getattr(settings, 'LANGUAGE_CODE')
return language return language
......
# pylint: disable=missing-docstring # pylint: disable=missing-docstring
from django.conf import settings
from django.test.utils import override_settings from django.test.utils import override_settings
from django.test import TestCase from django.test import TestCase
...@@ -52,12 +53,13 @@ class IDTokenTest(BaseTestMixin, IDTokenTestCase): ...@@ -52,12 +53,13 @@ class IDTokenTest(BaseTestMixin, IDTokenTestCase):
self.assertEqual(claim_name, user_name) self.assertEqual(claim_name, user_name)
@override_settings(LANGUAGE_CODE='en')
def test_user_without_locale_claim(self): def test_user_without_locale_claim(self):
scopes, claims = self.get_new_id_token_values('openid profile') scopes, claims = self.get_new_id_token_values('openid profile')
self.assertIn('profile', scopes) self.assertIn('profile', scopes)
self.assertNotIn('locale', claims) self.assertEqual(claims['locale'], 'en')
def test_user_wit_locale_claim(self): def test_user_with_locale_claim(self):
language = 'en' language = 'en'
UserPreference.set_preference(self.user, LANGUAGE_KEY, language) UserPreference.set_preference(self.user, LANGUAGE_KEY, language)
scopes, claims = self.get_new_id_token_values('openid profile') scopes, claims = self.get_new_id_token_values('openid profile')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment