11class HttpUrlValidator < ActiveModel ::EachValidator
2- def self . blocked? ( value )
2+ def blocked? ( value )
33 ( TeSS ::Config . blocked_domains || [ ] ) . any? do |regex |
44 value =~ regex
55 end
66 end
77
8- def self . accessible? ( value )
8+ def accessible? ( value )
99 begin
1010 uri = URI . parse ( value ) rescue nil
1111 if uri && ( uri . scheme == 'http' || uri . scheme == 'https' )
@@ -14,17 +14,19 @@ def self.accessible?(value)
1414 res . code == 200
1515 end
1616 end
17- rescue PrivateAddressCheck ::PrivateConnectionAttemptedError , Net ::OpenTimeout , Net ::ReadTimeout , SocketError ,
18- Errno ::ECONNREFUSED , Errno ::EHOSTUNREACH , OpenSSL ::SSL ::SSLError , URI ::InvalidURIError
17+ rescue PrivateAddressCheck ::PrivateConnectionAttemptedError
1918 false
19+ rescue Net ::OpenTimeout , Net ::ReadTimeout , SocketError ,
20+ Errno ::ECONNREFUSED , Errno ::EHOSTUNREACH , OpenSSL ::SSL ::SSLError , URI ::InvalidURIError
21+ options [ :allow_inaccessible ]
2022 end
2123 end
2224
2325 def validate_each ( record , attribute , value )
2426 if value . present?
25- if self . class . blocked? ( value )
27+ if blocked? ( value )
2628 record . errors . add ( attribute , 'is blocked' )
27- elsif !self . class . accessible? ( value )
29+ elsif !accessible? ( value )
2830 record . errors . add ( attribute , 'is not accessible' )
2931 end
3032 end
0 commit comments