Files
nairobi/app/controllers/concerns/ip_denied_handler.rb
CoslaJohn 424cedc0c8 Restrict access to admin functions by IP
There are many possible ways to implement this feature:

* Adding a custom middleware
* Using rack-attack with a blocklist
* Using routes constraints

We're choosing to use a controller concern with a redirect because it's
what we do to handle unauthorized cancancan exceptions.
2024-10-30 15:59:50 +01:00

18 lines
315 B
Ruby

module IpDeniedHandler
extend ActiveSupport::Concern
included do
before_action :restrict_ip, unless: :allowed_ip?
end
private
def restrict_ip
redirect_to root_path, alert: t("ip_denied_handler.unauthorized")
end
def allowed_ip?
RestrictAdminIps.new(request.remote_ip).allowed?
end
end