]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #4485 from tomhughes/drop-lower-index
authorAndy Allan <git@gravitystorm.co.uk>
Thu, 18 Jan 2024 10:49:52 +0000 (10:49 +0000)
committerGitHub <noreply@github.com>
Thu, 18 Jan 2024 10:49:52 +0000 (10:49 +0000)
Drop lowercase index on display names

1  2 
app/models/user.rb

diff --combined app/models/user.rb
index 7ca7b7a3b5294a220a201034121987432f76ae92,8ed6d4465f8687d2c17434770a56967d1da9228f..7faf748cd8afdb5866af50915e8dcd033a8dd2c2
@@@ -37,7 -37,6 +37,6 @@@
  #  users_auth_idx                    (auth_provider,auth_uid) UNIQUE
  #  users_display_name_canonical_idx  (lower(NORMALIZE(display_name, NFKC)))
  #  users_display_name_idx            (display_name) UNIQUE
- #  users_display_name_lower_idx      (lower((display_name)::text))
  #  users_email_idx                   (email) UNIQUE
  #  users_email_lower_idx             (lower((email)::text))
  #  users_home_idx                    (home_tile)
@@@ -100,7 -99,6 +99,7 @@@ class User < ApplicationRecor
    validates :display_name, :if => proc { |u| u.display_name_changed? },
                             :characters => { :url_safe => true },
                             :whitespace => { :leading => false, :trailing => false }
 +  validate :display_name_cannot_be_user_id_with_other_id, :if => proc { |u| u.display_name_changed? }
    validates :email, :presence => true, :confirmation => true, :characters => true
    validates :email, :if => proc { |u| u.email_changed? },
                      :uniqueness => { :case_sensitive => false }
    before_save :update_tile
    after_save :spam_check
  
 +  def display_name_cannot_be_user_id_with_other_id
 +    display_name&.match(/^user_(\d+)$/i) do |m|
 +      errors.add :display_name, I18n.t("activerecord.errors.messages.display_name_is_user_n") unless m[1].to_i == id
 +    end
 +  end
 +
    def to_param
      display_name
    end