X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/7406ae5dcc9cbb177a8ea33085af9caf6e3ebb1b..60dd5ce6e6e4e3222920fa9d6804c25deae3529c:/app/models/user.rb?ds=sidebyside diff --git a/app/models/user.rb b/app/models/user.rb index 7ca7b7a3b..125e5e973 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -37,7 +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) @@ -99,7 +98,8 @@ class User < ApplicationRecord :normalized_uniqueness => { :case_sensitive => false } validates :display_name, :if => proc { |u| u.display_name_changed? }, :characters => { :url_safe => true }, - :whitespace => { :leading => false, :trailing => false } + :whitespace => { :leading => false, :trailing => false }, + :width => { :minimum => 3 } 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? }, @@ -125,6 +125,18 @@ class User < ApplicationRecord before_save :update_tile after_save :spam_check + generates_token_for :new_user, :expires_in => 1.week do + fingerprint + end + + generates_token_for :new_email, :expires_in => 1.week do + fingerprint + end + + generates_token_for :password_reset, :expires_in => 1.week do + fingerprint + end + 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