docbrown/app/validators/valid_domain_csv_validator.rb
Michael Kohl b4a480edae
Add validations to SiteConfig model (#12341)
* Move straightforward validations

* Add color contrast validation to SiteConfig

* Move domain and emoji validation to SiteConfig

* Add specs

* Update service object

* Experimentally remove validation

* Update spec

* Fix comment
2021-01-26 09:12:24 +07:00

10 lines
407 B
Ruby

class ValidDomainCsvValidator < ActiveModel::EachValidator
DEFAULT_MESSAGE = "must be a comma-separated list of valid domains".freeze
VALID_DOMAIN = /^[a-zA-Z0-9]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+$/.freeze
def validate_each(record, attribute, value)
return if value.all? { |domain| domain.match?(VALID_DOMAIN) }
record.errors.add(attribute, options[:message] || DEFAULT_MESSAGE)
end
end