Class: UcbRails::SessionsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/ucb_rails/sessions_controller.rb

Overview

Manages starting and ending of sessions, i.e., logging in and out.

Instance Method Summary collapse

Instance Method Details

#createnil

Login user after authentication by provider

Returns:

  • (nil)


17
18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/ucb_rails/sessions_controller.rb', line 17

def create
  uid = request.env['omniauth.auth'].uid
  session[:omniauth_provider] = request.env['omniauth.auth'].provider
  
  if user_session_manager.(uid)
    session[:uid] = uid
    redirect_to session[:original_url] || root_path
  else
    redirect_to not_authorized_path
  end
end

#destroynil

Log user out

Returns:

  • (nil)


32
33
34
35
36
37
# File 'app/controllers/ucb_rails/sessions_controller.rb', line 32

def destroy
  user_session_manager.logout(current_user)
  provider = session[:omniauth_provider]
  reset_session
  redirect_to redirect_url(provider)
end

#failurenil

Handler for authentication failure.

Returns:

  • (nil)


49
50
51
52
# File 'app/controllers/ucb_rails/sessions_controller.rb', line 49

def failure
  Rails.logger.debug("Authentication Failed for: #{request.env['omniauth.auth']}")
  render(:text => "Not Authorized", :status => 401)
end

#newnil

Redirects to authentication provider

Returns:

  • (nil)


9
10
11
12
# File 'app/controllers/ucb_rails/sessions_controller.rb', line 9

def new
  provider = UcbRails[:omniauth_provider] || :cas
  redirect_to "/auth/#{provider}"
end

#not_authorizednil

Action called when unauthorized access attempted

Returns:

  • (nil)


42
43
44
# File 'app/controllers/ucb_rails/sessions_controller.rb', line 42

def not_authorized
  render(:text => "Not Authorized", :status => 401)
end