Disallow unicode whitespace in usernames (#2894).

This commit is contained in:
evazion
2017-02-25 01:47:57 -06:00
parent 4d87ac028b
commit 6966b74e18
4 changed files with 26 additions and 19 deletions

View File

@@ -0,0 +1,10 @@
class UserNameValidator < ActiveModel::EachValidator
def validate_each(rec, attr, value)
name = User.normalize_name(value)
rec.errors[attr] << "already exists" if User.find_by_name(name).present?
rec.errors[attr] << "must be 2 to 100 characters long" if !name.length.between?(2, 100)
rec.errors[attr] << "cannot have whitespace or colons" if name =~ /[[:space:]]|:/
rec.errors[attr] << "cannot begin or end with an underscore" if name =~ /\A_|_\z/
end
end