2015-09-07 11:44:48 +02:00
|
|
|
class ApplicationController < ActionController::Base
|
|
|
|
# Prevent CSRF attacks by raising an exception.
|
|
|
|
# For APIs, you may want to use :null_session instead.
|
2015-09-09 11:53:30 +02:00
|
|
|
protect_from_forgery with: :null_session
|
2015-09-08 17:18:38 +02:00
|
|
|
|
|
|
|
rescue_from CanCan::AccessDenied do |exception|
|
|
|
|
redirect_to root_url, alert: exception.message
|
|
|
|
end
|
2015-09-09 11:24:45 +02:00
|
|
|
|
2015-09-09 11:31:34 +02:00
|
|
|
def current_client
|
|
|
|
@current_client ||= identify_client
|
|
|
|
end
|
|
|
|
|
2015-09-09 11:24:45 +02:00
|
|
|
def current_ability
|
|
|
|
if current_user
|
|
|
|
@current_ability ||= Ability.new(current_user)
|
|
|
|
elsif current_client
|
|
|
|
@current_ability ||= ClientAbility.new(current_account)
|
|
|
|
end
|
|
|
|
end
|
2015-09-09 11:32:40 +02:00
|
|
|
|
2015-09-09 11:31:34 +02:00
|
|
|
private
|
|
|
|
|
|
|
|
def identify_client
|
|
|
|
key = request.headers["X-API-KEY"]
|
|
|
|
Client.find_by key: key if key
|
|
|
|
end
|
2015-09-09 11:32:40 +02:00
|
|
|
|
2015-09-07 11:44:48 +02:00
|
|
|
end
|