summaryrefslogtreecommitdiff
path: root/app/validators/system_hook_url_validator.rb
blob: f4253006dad423748eadf301ce1c6e54f822e0fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# frozen_string_literal: true

# SystemHookUrlValidator
#
# Custom validator specific to SystemHook URLs. This validator works like AddressableUrlValidator but
# it blocks urls pointing to localhost or the local network depending on
# ApplicationSetting.allow_local_requests_from_system_hooks
#
# Example:
#   class SystemHook < WebHook
#     validates :url, system_hook_url: true
#   end
#
class SystemHookUrlValidator < PublicUrlValidator
  def self.allow_setting_local_requests?
    ApplicationSetting.current&.allow_local_requests_from_system_hooks?
  end
end