Class: MinUsernameLengthValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/validators/min_username_length_validator.rb

Constant Summary collapse

MIN_USERNAME_LENGTH_RANGE =
1..60

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ MinUsernameLengthValidator

Returns a new instance of MinUsernameLengthValidator.



6
7
8
# File 'lib/validators/min_username_length_validator.rb', line 6

def initialize(opts = {})
  @opts = opts
end

Instance Method Details

#error_messageObject



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/validators/min_username_length_validator.rb', line 20

def error_message
  if @min_length_violation
    I18n.t(
      "site_settings.errors.invalid_integer_min_max",
      min: MIN_USERNAME_LENGTH_RANGE.begin,
      max: MIN_USERNAME_LENGTH_RANGE.end,
    )
  elsif @username.blank?
    I18n.t("site_settings.errors.min_username_length_range")
  else
    I18n.t("site_settings.errors.min_username_length_exists", username: @username)
  end
end

#valid_value?(value) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
18
# File 'lib/validators/min_username_length_validator.rb', line 10

def valid_value?(value)
  if !MIN_USERNAME_LENGTH_RANGE.cover?(value)
    @min_range_violation = true
    return false
  end
  return false if value > SiteSetting.max_username_length
  @username = User.where("length(username) < ?", value).pick(:username)
  @username.blank?
end