FEATURE: allow specifying locale via SSO

Use:

locale
locale_force_update

To force user locale on users where SiteSetting.allow_user_locale is enabled

Note: If an invalid locale is specified no action will occur
This commit is contained in:
Sam
2018-08-30 09:57:53 +10:00
parent 22110d3106
commit e6970151a6
3 changed files with 74 additions and 8 deletions

View File

@ -327,6 +327,36 @@ describe DiscourseSingleSignOn do
expect(sso.nonce).to_not be_nil
end
context 'user locale' do
it 'sets default user locale if specified' do
SiteSetting.allow_user_locale = true
sso = DiscourseSingleSignOn.new
sso.username = "test"
sso.name = "test"
sso.email = "test@test.com"
sso.external_id = "123"
sso.locale = "es"
user = sso.lookup_or_create_user(ip_address)
expect(user.locale).to eq("es")
user.update_column(:locale, "he")
user = sso.lookup_or_create_user(ip_address)
expect(user.locale).to eq("he")
sso.locale_force_update = true
user = sso.lookup_or_create_user(ip_address)
expect(user.locale).to eq("es")
sso.locale = "fake"
user = sso.lookup_or_create_user(ip_address)
expect(user.locale).to eq("es")
end
end
context 'trusting emails' do
let(:sso) do
sso = DiscourseSingleSignOn.new