3scale/porta

View on GitHub
app/controllers/partners/sessions_controller.rb

Summary

Maintainability
A
55 mins
Test Coverage
class Partners::SessionsController < Partners::BaseController

  skip_before_action :authenticate!

  def openid
    authenticate_with_open_id(params[:openid_url]) do |result, identity_url, registration|
      if result.successful?
        @user = User.find_by!(open_id: identity_url)
        @account = @user.account
        sso_token = SSOToken.new user_id: @user.id
        sso_token.protocol = 'http' unless request.ssl?
        sso_token.account = @account
        sso_url = sso_token.sso_url!(@account.external_admin_domain)
        sso_url << "&return_to=#{params[:return_to]}" if params[:return_to].present?
        redirect_to sso_url
      end
    end
  end
end