2014-11-17 05:04:29 -06:00
|
|
|
require_dependency "spam_handler"
|
|
|
|
|
2013-10-21 13:49:51 -05:00
|
|
|
class AllowedIpAddressValidator < ActiveModel::EachValidator
|
|
|
|
|
|
|
|
def validate_each(record, attribute, value)
|
2014-11-17 05:04:29 -06:00
|
|
|
if record.ip_address
|
2015-05-31 23:46:25 -05:00
|
|
|
if ScreenedIpAddress.should_block?(record.ip_address)
|
2015-06-01 21:05:42 -05:00
|
|
|
record.errors.add(attribute, I18n.t('user.ip_address.blocked'))
|
2014-11-17 05:04:29 -06:00
|
|
|
end
|
2015-05-31 23:46:25 -05:00
|
|
|
if record.trust_level == TrustLevel[0] && SpamHandler.should_prevent_registration_from_ip?(record.ip_address)
|
|
|
|
record.errors.add(attribute, I18n.t('user.ip_address.max_new_accounts_per_registration_ip'))
|
|
|
|
end
|
2013-10-21 13:49:51 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-11-17 05:04:29 -06:00
|
|
|
end
|