Module: IPWhitelist::Controller
- Defined in:
- lib/ip_whitelist/controller.rb
Defined Under Namespace
Classes: IPWhitelistError
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(base) ⇒ Object
3
4
5
|
# File 'lib/ip_whitelist/controller.rb', line 3
def self.included(base)
base.before_action :check_ip_whitelist
end
|
Instance Method Details
#check_ip_whitelist ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/ip_whitelist/controller.rb', line 7
def check_ip_whitelist
if current_user && current_user.respond_to?(:ip_whitelist) && current_user.ip_whitelist.present?
ip = request.["CF-Connecting-IP"] || request.["REMOTE_ADDR"]
return if current_user.ip_whitelist.map(&:to_s).include?(ip)
raise IPWhiteListError.new(<<-MESSAGE.squish
IP #{ip} is not in the whitelist for user #{current_user.username}.
Whitelist: #{current_user.ip_whitelist.map(&:to_s)}
MESSAGE
)
end
end
|