Sha256: f0db74a37d265f0f1ba42fb552cc82e365ecd06635ca989fcd163325876036ce

Contents?: true

Size: 930 Bytes

Versions: 6

Compression:

Stored size: 930 Bytes

Contents

class Kuroko2::SessionsController < Kuroko2::ApplicationController
  skip_before_action :require_sign_in

  def new
    render layout: false
  end

  def create
    return_to = params[:state]
    reset_session

    unless valid_google_hosted_domain?
      render :invalid_hd, status: 403, layout: false
      return
    end

    self.current_user = Kuroko2::User.find_or_create_user(auth_hash[:uid], auth_hash[:info])

    unless Kuroko2::ReturnToValidator.valid?(return_to)
      return_to = root_path
    end
    redirect_to return_to
  end

  def destroy
    reset_session

    redirect_to sign_in_path
  end

  private

  def auth_hash
    request.env['omniauth.auth']
  end

  def valid_google_hosted_domain?
    options = Kuroko2.config.app_authentication.google_oauth2.options
    hd = options ? options.hd : nil
    if hd.present?
      Array(hd).include?(auth_hash.extra.id_info.hd)
    else
      true
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
kuroko2-0.8.0 app/controllers/kuroko2/sessions_controller.rb
kuroko2-0.7.0 app/controllers/kuroko2/sessions_controller.rb
kuroko2-0.6.0 app/controllers/kuroko2/sessions_controller.rb
kuroko2-0.5.2 app/controllers/kuroko2/sessions_controller.rb
kuroko2-0.5.1 app/controllers/kuroko2/sessions_controller.rb
kuroko2-0.5.0 app/controllers/kuroko2/sessions_controller.rb