Module: HeimdallAuth::AuthenticationAdditions

Included in:
AuthenticationChecker, ControllerAdditions
Defined in:
lib/heimdall_auth/authentication_additions.rb

Instance Method Summary collapse

Instance Method Details

#current_abilityObject



3
4
5
# File 'lib/heimdall_auth/authentication_additions.rb', line 3

def current_ability
  @current_ability ||= Ability.new(current_user)
end

#current_access_tokenObject



16
17
18
# File 'lib/heimdall_auth/authentication_additions.rb', line 16

def current_access_token
  request.session[:access_token] || params[:access_token] || request.headers['HeimdallAccessToken']
end

#current_environmentObject



30
31
32
33
34
35
36
# File 'lib/heimdall_auth/authentication_additions.rb', line 30

def current_environment
  begin
    @current_environment ||= current_user.app_environment || params[:environment]
  rescue NoMethodError, Exception => e
    nil
  end
end

#current_userObject



20
21
22
23
24
25
26
27
28
# File 'lib/heimdall_auth/authentication_additions.rb', line 20

def current_user
  begin
    @current_user ||= get_user_from_auth_server(current_access_token)
  rescue NoMethodError => e
    User.new(is_invalid: true)
  rescue Exception => e
    nil
  end
end

#get_user_from_auth_server(access_token) ⇒ Object



38
39
40
41
42
# File 'lib/heimdall_auth/authentication_additions.rb', line 38

def get_user_from_auth_server(access_token)
  client = OAuth2::Client.new(ENV['HEIMDALL_APPLICATION_ID'], ENV['HEIMDALL_APPLICATION_SECRET'], :site => ENV['HEIMDALL_SERVER_URL'])
  user_data = OAuth2::AccessToken.new(client,access_token).get('/me.json').parsed
  User.new(user_data)
end

#storable_location?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/heimdall_auth/authentication_additions.rb', line 12

def storable_location?
  request.get? && request.format.try(:ref) == :html && !is_a?(SessionsController) && !request.xhr?
end

#store_location_in_sessionObject



7
8
9
10
# File 'lib/heimdall_auth/authentication_additions.rb', line 7

def store_location_in_session
  session[:last_url] = request.url if storable_location?
  ::Rails.logger.info("\033[32m session[:last_url] = #{session[:last_url]} \033[0m")
end

#user_signed_in?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/heimdall_auth/authentication_additions.rb', line 44

def user_signed_in?
  return true if current_user
end