Class: ThinkFeelDoEngine::Users::SessionsController

Inherits:
Devise::SessionsController
  • Object
show all
Defined in:
app/controllers/think_feel_do_engine/users/sessions_controller.rb

Overview

Extends the Devise controller to notify users if they don’t have a role

Instance Method Summary collapse

Instance Method Details

#createObject

Ignoring cops due to external code use. rubocop:disable Metrics/LineLength rubocop:disable Metrics/CyclomaticComplexity rubocop:disable Metrics/PerceivedComplexity



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/controllers/think_feel_do_engine/users/sessions_controller.rb', line 15

def create
  user = User.find_by_email params[:user][:email]
  if user && !user.admin? && user.user_roles.count == 0
    msg = "We're sorry, but you need to have a role to continue.\
          Contact your administrator."
    redirect_to new_user_session_path, alert: msg
  else
    # super...http://bit.ly/1uXh4rb
    self.resource = warden.authenticate!(auth_options)
    set_flash_message(:notice, :signed_in) if is_flashing_format?
    (resource_name, resource)
    yield resource if block_given?
    respond_with resource,
                 location:
                   (defined?(think_feel_do_dashboard) ? think_feel_do_dashboard.root_path : privacy_policy_path)
  end
  # rubocop:enable Metrics/CyclomaticComplexity
  # rubocop:enable Metrics/PerceivedComplexity
  # rubocop:enable Metrics/LineLength
end