tab/app/controllers/application_controller.rb

24 lines
699 B
Ruby
Raw Normal View History

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 14:08:40 +02:00
protect_from_forgery with: :exception
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 14:08:40 +02:00
def authenticate_user_or_client!
2015-09-09 14:59:13 +02:00
current_user || current_client || head(:unauthorized)
2015-09-09 14:08:40 +02:00
end
2015-09-09 11:31:34 +02:00
def current_client
2015-09-10 15:43:00 +02:00
@current_client ||= Client.find_by key: (request.headers["X_API_KEY"] || request.headers["HTTP_X_API_KEY"])
2015-09-09 11:31:34 +02:00
end
2015-09-09 11:24:45 +02:00
def current_ability
2015-09-09 16:56:55 +02:00
@current_ability ||=
current_client.try { |c| ClientAbility.new(c) } ||
2015-09-09 20:11:59 +02:00
UserAbility.new(current_user)
2015-09-09 11:24:45 +02:00
end
2015-09-07 11:44:48 +02:00
end