tab/app/controllers/application_controller.rb

44 lines
1.3 KiB
Ruby
Raw Normal View History

2015-09-07 09:44:48 +00:00
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
2015-09-09 12:08:40 +00:00
protect_from_forgery with: :exception
2019-04-12 09:31:59 +00:00
# Don't verfiy authenticity token (protects against CSRF) for API requests
skip_before_action :verify_authenticity_token, if: :api_request?
def api_request?
2019-04-17 22:50:41 +00:00
(user_token.present? || current_client.present?) && request.format.json?
2019-04-12 09:31:59 +00:00
end
2015-09-08 15:18:38 +00:00
rescue_from CanCan::AccessDenied do |exception|
respond_to do |format|
2015-09-11 13:50:07 +00:00
format.json { render json: [ "Diefstal is een misdrijf." ], status: :forbidden }
format.html { redirect_to root_url, alert: exception.message }
end
2015-09-08 15:18:38 +00:00
end
2015-09-09 09:24:45 +00:00
2015-09-09 12:08:40 +00:00
def authenticate_user_or_client!
2018-06-20 16:51:17 +00:00
current_user || current_client || user_token || redirect_to(root_path, flash: { notice: "You have been redirected." })
2015-09-09 12:08:40 +00:00
end
2015-09-09 09:31:34 +00:00
def current_client
@current_client ||= authenticate_with_http_token do |token, options|
Client.find_by key: token
end
2015-09-09 09:31:34 +00:00
end
2015-09-09 09:24:45 +00:00
def current_ability
2015-09-09 14:56:55 +00:00
@current_ability ||=
current_client.try { |c| ClientAbility.new(c) } ||
2018-06-20 16:51:17 +00:00
UserAbility.new(current_user || user_token)
end
def user_token
@user_token ||= authenticate_with_http_token do |token, options|
User.find_by key: token
end
2015-09-09 09:24:45 +00:00
end
2015-09-11 15:22:36 +00:00
def after_sign_in_path_for(resource)
root_path
2015-09-11 15:22:36 +00:00
end
2015-09-07 09:44:48 +00:00
end