Discourse should download and set the avatar if the user doesn't have one set yet.
21 lines
683 B
Ruby
21 lines
683 B
Ruby
class Discourse::SsoController < ApplicationController
|
|
before_action :authenticate_user!
|
|
|
|
def connect
|
|
secret = Setting.discourse_connect_secret
|
|
sso = DiscourseApi::SingleSignOn.parse(request.query_string, secret)
|
|
sso.external_id = current_user.id
|
|
sso.email = current_user.email
|
|
sso.username = current_user.cn
|
|
sso.name = current_user.display_name
|
|
if current_user.avatar.attached?
|
|
sso.avatar_url = helpers.image_url_for(current_user.avatar)
|
|
end
|
|
sso.admin = current_user.is_admin?
|
|
sso.sso_secret = secret
|
|
|
|
redirect_to sso.to_url("#{Setting.discourse_public_url}/session/sso_login"),
|
|
allow_other_host: true
|
|
end
|
|
end
|