commit
9c3e4bdead
@ -0,0 +1,14 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class UniqueUsernameValidator < ActiveModel::Validator |
||||
def validate(account) |
||||
return if account.username.nil? |
||||
|
||||
normalized_username = account.username.downcase.delete('.') |
||||
|
||||
scope = Account.where(domain: nil, username: normalized_username) |
||||
scope = scope.where.not(id: account.id) if account.persisted? |
||||
|
||||
account.errors.add(:username, :taken) if scope.exists? |
||||
end |
||||
end |
Loading…
Reference in new issue