From 00d879ec631a243b4314c403627a40a76adfff77 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Tue, 3 Apr 2018 00:44:12 +0800 Subject: [PATCH] Fix the build. --- app/models/user.rb | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 45bea901600..08beb52ac09 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1122,27 +1122,25 @@ class User < ActiveRecord::Base end USERNAME_EXISTS_SQL = <<~SQL - (SELECT 1 FROM users + (SELECT users.id AS user_id FROM users WHERE users.username_lower = :username) UNION ALL - (SELECT 1 FROM groups + (SELECT groups.id AS group_id FROM groups WHERE lower(groups.name) = :username) SQL def username_validator username_format_validator || begin - if will_save_change_to_username? - lower = username.downcase + lower = username.downcase - existing = User.exec_sql( - USERNAME_EXISTS_SQL, username: lower - ).values.present? + existing = User.exec_sql( + USERNAME_EXISTS_SQL, username: lower + ).to_a.first - if existing - errors.add(:username, I18n.t(:'user.username.unique')) - end + if will_save_change_to_username? && existing.present? && existing["user_id"] != self.id + errors.add(:username, I18n.t(:'user.username.unique')) end end end