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.moderator = moderator unless moderator.nil?
user.title = title unless title.nil?
# optionally save the user and sso_record if they have changed
user.user_avatar.save! if user.user_avatar
user.save!

View File

@ -1,6 +1,6 @@
class SingleSignOn
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]
FIXNUMS = []
BOOLS = [:avatar_force_update, :admin, :moderator, :require_activation, :suppress_welcome_message]

View File

@ -27,6 +27,7 @@ describe DiscourseSingleSignOn do
sso.moderator = false
sso.suppress_welcome_message = false
sso.require_activation = false
sso.title = "user title"
sso.custom_fields["a"] = "Aa"
sso.custom_fields["b.b"] = "B.b"
sso
@ -45,6 +46,7 @@ describe DiscourseSingleSignOn do
expect(parsed.moderator).to eq sso.moderator
expect(parsed.suppress_welcome_message).to eq sso.suppress_welcome_message
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["b.b"]).to eq "B.b"
end
@ -270,6 +272,33 @@ describe DiscourseSingleSignOn do
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
let(:sso) {
sso = DiscourseSingleSignOn.new