Merge pull request #4681 from vietqhoang/feature/add-user-title-to-sso-payload

FEATURE: Add user title to SSO payload
This commit is contained in:
Sam 2017-02-07 10:25:32 -05:00 committed by GitHub
commit f34907b523
3 changed files with 32 additions and 1 deletions

View File

@ -79,6 +79,8 @@ class DiscourseSingleSignOn < SingleSignOn
user.admin = admin unless admin.nil? user.admin = admin unless admin.nil?
user.moderator = moderator unless moderator.nil? user.moderator = moderator unless moderator.nil?
user.title = title unless title.nil?
# optionally save the user and sso_record if they have changed # optionally save the user and sso_record if they have changed
user.user_avatar.save! if user.user_avatar user.user_avatar.save! if user.user_avatar
user.save! user.save!

View File

@ -1,6 +1,6 @@
class SingleSignOn class SingleSignOn
ACCESSORS = [:nonce, :name, :username, :email, :avatar_url, :avatar_force_update, :require_activation, ACCESSORS = [:nonce, :name, :username, :email, :avatar_url, :avatar_force_update, :require_activation,
:bio, :external_id, :return_sso_url, :admin, :moderator, :suppress_welcome_message, :bio, :external_id, :return_sso_url, :admin, :moderator, :suppress_welcome_message, :title,
:add_groups, :remove_groups] :add_groups, :remove_groups]
FIXNUMS = [] FIXNUMS = []
BOOLS = [:avatar_force_update, :admin, :moderator, :require_activation, :suppress_welcome_message] BOOLS = [:avatar_force_update, :admin, :moderator, :require_activation, :suppress_welcome_message]

View File

@ -27,6 +27,7 @@ describe DiscourseSingleSignOn do
sso.moderator = false sso.moderator = false
sso.suppress_welcome_message = false sso.suppress_welcome_message = false
sso.require_activation = false sso.require_activation = false
sso.title = "user title"
sso.custom_fields["a"] = "Aa" sso.custom_fields["a"] = "Aa"
sso.custom_fields["b.b"] = "B.b" sso.custom_fields["b.b"] = "B.b"
sso sso
@ -45,6 +46,7 @@ describe DiscourseSingleSignOn do
expect(parsed.moderator).to eq sso.moderator expect(parsed.moderator).to eq sso.moderator
expect(parsed.suppress_welcome_message).to eq sso.suppress_welcome_message expect(parsed.suppress_welcome_message).to eq sso.suppress_welcome_message
expect(parsed.require_activation).to eq false expect(parsed.require_activation).to eq false
expect(parsed.title).to eq sso.title
expect(parsed.custom_fields["a"]).to eq "Aa" expect(parsed.custom_fields["a"]).to eq "Aa"
expect(parsed.custom_fields["b.b"]).to eq "B.b" expect(parsed.custom_fields["b.b"]).to eq "B.b"
end end
@ -270,6 +272,33 @@ describe DiscourseSingleSignOn do
end end
end end
context 'setting title for a user' do
let(:sso) {
sso = DiscourseSingleSignOn.new
sso.username = 'test'
sso.name = 'test'
sso.email = 'test@test.com'
sso.external_id = '100'
sso.title = "The User's Title"
sso
}
it 'can set title if supplied on new users' do
user = sso.lookup_or_create_user(ip_address)
expect(user.title).to eq(sso.title)
end
it 'sets the title if user has an empty title' do
sso.title = ' '
user = sso.lookup_or_create_user(ip_address)
sso.title = 'I am a new title'
user = sso.lookup_or_create_user(ip_address)
expect(user.title).to eq(sso.title)
end
end
context 'setting bio for a user' do context 'setting bio for a user' do
let(:sso) { let(:sso) {
sso = DiscourseSingleSignOn.new sso = DiscourseSingleSignOn.new