FIX: sso override code not triggered when attaching to existing user

This commit is contained in:
Sam
2015-03-27 09:39:35 +11:00
parent 914dd2dd8d
commit 4566a1e30a
2 changed files with 32 additions and 8 deletions

View File

@ -110,20 +110,15 @@ class DiscourseSingleSignOn < SingleSignOn
end
def change_external_attributes_and_override(sso_record, user)
if SiteSetting.sso_overrides_email && email != sso_record.external_email
# set the user's email to whatever came in the payload
if SiteSetting.sso_overrides_email && user.email != email
user.email = email
end
if SiteSetting.sso_overrides_username && username != sso_record.external_username && user.username != username
# we have an external username change, and the user's current username doesn't match
# run it through the UserNameSuggester to override it
if SiteSetting.sso_overrides_username && user.username != username
user.username = UserNameSuggester.suggest(username || name || email)
end
if SiteSetting.sso_overrides_name && name != sso_record.external_name && user.name != name
# we have an external name change, and the user's current name doesn't match
# run it through the name suggester to override it
if SiteSetting.sso_overrides_name && user.name != name
user.name = User.suggest_name(name || username || email)
end