You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
class ApplicationController < ActionController::Base |
|
include Pundit::Authorization |
|
|
|
rescue_from Pundit::NotAuthorizedError, with: :render_not_authorized |
|
|
|
before_action :check_maintenance_status |
|
before_action :set_paper_trail_whodunnit |
|
|
|
def check_maintenance_status |
|
if FeatureToggle.service_moved? |
|
unless %w[service-moved accessibility-statement privacy-notice cookies].include?(request.fullpath.split("?")[0].delete("/")) |
|
redirect_to service_moved_path |
|
end |
|
elsif FeatureToggle.service_unavailable? |
|
unless %w[service-unavailable accessibility-statement privacy-notice cookies].include?(request.fullpath.split("?")[0].delete("/")) |
|
redirect_to service_unavailable_path |
|
end |
|
elsif %w[service-moved service-unavailable].include?(request.fullpath.split("?")[0].delete("/")) |
|
redirect_back(fallback_location: root_path) |
|
end |
|
end |
|
|
|
def render_not_found |
|
render "errors/not_found", status: :not_found |
|
end |
|
|
|
def render_not_authorized |
|
render "errors/not_found", status: :unauthorized |
|
end |
|
|
|
def render_not_found_json(class_name, id) |
|
render json: { error: "#{class_name} #{id} not found" }, status: :not_found |
|
end |
|
|
|
protected |
|
|
|
def user_for_paper_trail |
|
current_user |
|
end |
|
|
|
def byte_order_mark |
|
"\uFEFF" |
|
end |
|
end
|
|
|