diff options
Diffstat (limited to 'app/lib')
-rw-r--r-- | app/lib/email_validator.rb | 31 | ||||
-rw-r--r-- | app/lib/status_length_validator.rb | 10 | ||||
-rw-r--r-- | app/lib/url_validator.rb | 14 |
3 files changed, 0 insertions, 55 deletions
diff --git a/app/lib/email_validator.rb b/app/lib/email_validator.rb deleted file mode 100644 index 06e9375f6..000000000 --- a/app/lib/email_validator.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -class EmailValidator < ActiveModel::EachValidator - def validate_each(record, attribute, value) - record.errors.add(attribute, I18n.t('users.invalid_email')) if blocked_email?(value) - end - - private - - def blocked_email?(value) - on_blacklist?(value) || not_on_whitelist?(value) - end - - def on_blacklist?(value) - return false if Rails.configuration.x.email_domains_blacklist.blank? - - domains = Rails.configuration.x.email_domains_blacklist.gsub('.', '\.') - regexp = Regexp.new("@(.+\\.)?(#{domains})", true) - - value =~ regexp - end - - def not_on_whitelist?(value) - return false if Rails.configuration.x.email_domains_whitelist.blank? - - domains = Rails.configuration.x.email_domains_whitelist.gsub('.', '\.') - regexp = Regexp.new("@(.+\\.)?(#{domains})", true) - - value !~ regexp - end -end diff --git a/app/lib/status_length_validator.rb b/app/lib/status_length_validator.rb deleted file mode 100644 index 55135a598..000000000 --- a/app/lib/status_length_validator.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -class StatusLengthValidator < ActiveModel::Validator - MAX_CHARS = 500 - - def validate(status) - return unless status.local? && !status.reblog? - status.errors.add(:text, I18n.t('statuses.over_character_limit', max: MAX_CHARS)) if [status.text, status.spoiler_text].join.length > MAX_CHARS - end -end diff --git a/app/lib/url_validator.rb b/app/lib/url_validator.rb deleted file mode 100644 index 4a5c4ef3f..000000000 --- a/app/lib/url_validator.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -class UrlValidator < ActiveModel::EachValidator - def validate_each(record, attribute, value) - record.errors.add(attribute, I18n.t('applications.invalid_url')) unless compliant?(value) - end - - private - - def compliant?(url) - parsed_url = Addressable::URI.parse(url) - !parsed_url.nil? && %w(http https).include?(parsed_url.scheme) && parsed_url.host - end -end |