]> source.dussan.org Git - redmine.git/commitdiff
DEPRECATION WARNING: Uniqueness validator will no longer enforce case sensitive compa...
authorGo MAEDA <maeda@farend.jp>
Thu, 1 Apr 2021 14:32:23 +0000 (14:32 +0000)
committerGo MAEDA <maeda@farend.jp>
Thu, 1 Apr 2021 14:32:23 +0000 (14:32 +0000)
Patch by Marius BALTEANU.

git-svn-id: http://svn.redmine.org/redmine/trunk@20880 e93f8b46-1217-0410-a6f0-8f06a7374b81

17 files changed:
app/models/auth_source.rb
app/models/changeset.rb
app/models/custom_field.rb
app/models/enabled_module.rb
app/models/enumeration.rb
app/models/issue_category.rb
app/models/issue_relation.rb
app/models/issue_status.rb
app/models/member.rb
app/models/project.rb
app/models/repository.rb
app/models/role.rb
app/models/setting.rb
app/models/token.rb
app/models/tracker.rb
app/models/version.rb
app/models/watcher.rb

index 0e4b03450f6729e33f94066767d5d7aa5a19641d..cc9663112e1a8a87e1703d6f6a0fa308aa83acf6 100644 (file)
@@ -30,7 +30,7 @@ class AuthSource < ActiveRecord::Base
   has_many :users
 
   validates_presence_of :name
-  validates_uniqueness_of :name
+  validates_uniqueness_of :name, :case_sensitive => true
   validates_length_of :name, :maximum => 60
 
   safe_attributes(
index f1580ce334ff2c9b061cadc916241cf05daf8506..da40bbb6385a9c4547ba3970739483873dbcf3de 100644 (file)
@@ -52,8 +52,8 @@ class Changeset < ActiveRecord::Base
                             :scope => proc {preload(:user, {:repository => :project})}
 
   validates_presence_of :repository_id, :revision, :committed_on, :commit_date
-  validates_uniqueness_of :revision, :scope => :repository_id
-  validates_uniqueness_of :scmid, :scope => :repository_id, :allow_nil => true
+  validates_uniqueness_of :revision, :scope => :repository_id, :case_sensitive => true
+  validates_uniqueness_of :scmid, :scope => :repository_id, :allow_nil => true, :case_sensitive => true
 
   scope :visible, (lambda do |*args|
     joins(:repository => :project).
index ed44d552ce7c992bdc54556f165043909b38843d..9787b2ee4d5a8cf6d8898284f8fc86b1515336db 100644 (file)
@@ -34,7 +34,7 @@ class CustomField < ActiveRecord::Base
   store :format_store
 
   validates_presence_of :name, :field_format
-  validates_uniqueness_of :name, :scope => :type
+  validates_uniqueness_of :name, :scope => :type, :case_sensitive => true
   validates_length_of :name, :maximum => 30
   validates_length_of :regexp, maximum: 255
   validates_inclusion_of :field_format,
index 8e5191a634ad0e2c034cf3a7c7c1ffe0ad37b3b5..f89aeaf0a45eae024337f625c7a95e44afda501b 100644 (file)
@@ -22,7 +22,7 @@ class EnabledModule < ActiveRecord::Base
   acts_as_watchable
 
   validates_presence_of :name
-  validates_uniqueness_of :name, :scope => :project_id
+  validates_uniqueness_of :name, :scope => :project_id, :case_sensitive => true
 
   after_create :module_enabled
 
index e564aed05d2d91a9bb087eb67b364177e383b320..83efea6df5a1c370d8d0cf17dac87983507d97e4 100644 (file)
@@ -32,7 +32,7 @@ class Enumeration < ActiveRecord::Base
   before_save    :check_default
 
   validates_presence_of :name
-  validates_uniqueness_of :name, :scope => [:type, :project_id]
+  validates_uniqueness_of :name, :scope => [:type, :project_id], :case_sensitive => true
   validates_length_of :name, :maximum => 30
 
   scope :shared, lambda {where(:project_id => nil)}
index 1e1883392d793883ef9bb11f9a9327729a492985..21713d7fd2dc3f4f3e21dbed0dbe08eaa8386adc 100644 (file)
@@ -24,7 +24,7 @@ class IssueCategory < ActiveRecord::Base
   has_many :issues, :foreign_key => 'category_id', :dependent => :nullify
 
   validates_presence_of :name
-  validates_uniqueness_of :name, :scope => [:project_id]
+  validates_uniqueness_of :name, :scope => [:project_id], :case_sensitive => true
   validates_length_of :name, :maximum => 60
 
   safe_attributes 'name', 'assigned_to_id'
index 09ee8b8cdfb68eb12b4457bdd22577af8665d9fa..0f9e8bf9175699e22c6b235f5fb2563c112825b6 100644 (file)
@@ -72,7 +72,7 @@ class IssueRelation < ActiveRecord::Base
   validates_presence_of :issue_from, :issue_to, :relation_type
   validates_inclusion_of :relation_type, :in => TYPES.keys
   validates_numericality_of :delay, :allow_nil => true
-  validates_uniqueness_of :issue_to_id, :scope => :issue_from_id
+  validates_uniqueness_of :issue_to_id, :scope => :issue_from_id, :case_sensitive => true
   validate :validate_issue_relation
 
   before_save :handle_issue_order
index f53c650a1a57f56928801e5fa5ff14df035f7df4..9176fcfa8a4635009e28aef3fe7d48844ceffdce 100644 (file)
@@ -29,7 +29,7 @@ class IssueStatus < ActiveRecord::Base
   before_destroy :delete_workflow_rules
 
   validates_presence_of :name
-  validates_uniqueness_of :name
+  validates_uniqueness_of :name, :case_sensitive => true
   validates_length_of :name, :maximum => 30
   validates_inclusion_of :default_done_ratio, :in => 0..100, :allow_nil => true
 
index 9c4044e15fec297529a4c12921c2bf62aba70eb0..f7b4038f5e12171b228b52384ca19b195828ad76 100644 (file)
@@ -25,7 +25,7 @@ class Member < ActiveRecord::Base
   belongs_to :project
 
   validates_presence_of :principal, :project
-  validates_uniqueness_of :user_id, :scope => :project_id
+  validates_uniqueness_of :user_id, :scope => :project_id, :case_sensitive => true
   validate :validate_role
 
   before_destroy :set_issue_category_nil, :remove_from_project_default_assigned_to
index 4cab972aaee2886fb2128a9420fed443bdfb9835..ab864436aeed668c6487d482155c28e4eff5b9f5 100644 (file)
@@ -72,7 +72,7 @@ class Project < ActiveRecord::Base
                 :author => nil
 
   validates_presence_of :name, :identifier
-  validates_uniqueness_of :identifier, :if => proc {|p| p.identifier_changed?}
+  validates_uniqueness_of :identifier, :if => proc {|p| p.identifier_changed?}, :case_sensitive => true
   validates_length_of :name, :maximum => 255
   validates_length_of :homepage, :maximum => 255
   validates_length_of :identifier, :maximum => IDENTIFIER_MAX_LENGTH
index 1ff8d0abc9d5b064aa612e51be595cb1cb3886a3..e65c800e63727f30752d67a5ffb644c136ee2714 100644 (file)
@@ -43,7 +43,7 @@ class Repository < ActiveRecord::Base
   validates_length_of :password, :maximum => 255, :allow_nil => true
   validates_length_of :root_url, :url, maximum: 255
   validates_length_of :identifier, :maximum => IDENTIFIER_MAX_LENGTH, :allow_blank => true
-  validates_uniqueness_of :identifier, :scope => :project_id
+  validates_uniqueness_of :identifier, :scope => :project_id, :case_sensitive => true
   validates_exclusion_of :identifier, :in => %w(browse show entry raw changes annotate diff statistics graph revisions revision)
   # donwcase letters, digits, dashes, underscores but not digits only
   validates_format_of :identifier, :with => /\A(?!\d+$)[a-z0-9\-_]*\z/, :allow_blank => true
index 6b9a5f9d9f44858d3032e6902cc55ab11401cadb..ee1a664e6f5d20f15fbea7502789243650d30aed 100644 (file)
@@ -76,7 +76,7 @@ class Role < ActiveRecord::Base
   store :settings, :accessors => [:permissions_all_trackers, :permissions_tracker_ids]
 
   validates_presence_of :name
-  validates_uniqueness_of :name
+  validates_uniqueness_of :name, :case_sensitive => true
   validates_length_of :name, :maximum => 255
   validates_inclusion_of(
     :issues_visibility,
index 5e5685b376447801d808646a7956ea0bcb0126ca..e5c5476655ae6a9fbeaa058f75d23da15fb06528 100644 (file)
@@ -85,6 +85,7 @@ class Setting < ActiveRecord::Base
 
   validates_uniqueness_of(
     :name,
+    :case_sensitive => true,
     :if => Proc.new do |setting|
       setting.new_record? || setting.name_changed?
     end
index 5f91cfa958084176f36afa36637067a4a4293b95..5fcd01d7e96fda207c4ff785cf4339df3fba90b4 100644 (file)
@@ -19,7 +19,7 @@
 
 class Token < ActiveRecord::Base
   belongs_to :user
-  validates_uniqueness_of :value
+  validates_uniqueness_of :value, :case_sensitive => true
 
   before_create :delete_previous_tokens, :generate_new_token
 
index f788ce5662e7ce279500d09318a841a756a18419..ffa137a32c02c5335c89f38692bb80b84370f67b 100644 (file)
@@ -40,7 +40,7 @@ class Tracker < ActiveRecord::Base
 
   validates_presence_of :default_status
   validates_presence_of :name
-  validates_uniqueness_of :name
+  validates_uniqueness_of :name, :case_sensitive => true
   validates_length_of :name, :maximum => 30
   validates_length_of :description, :maximum => 255
 
index 34fb55546d0922572462b191457b20e47a45f7e5..2e5430746ec56ad60198a9c130ce2d2dce9d4817 100644 (file)
@@ -127,7 +127,7 @@ class Version < ActiveRecord::Base
   VERSION_SHARINGS = %w(none descendants hierarchy tree system)
 
   validates_presence_of :name
-  validates_uniqueness_of :name, :scope => [:project_id]
+  validates_uniqueness_of :name, :scope => [:project_id], :case_sensitive => true
   validates_length_of :name, :maximum => 60
   validates_length_of :description, :wiki_page_title, :maximum => 255
   validates :effective_date, :date => true
index 2828fd0a07425d950191a85a68278fd57043ab08..90cefd2811f94320e0015bd7c5233cc929ed41f2 100644 (file)
@@ -22,7 +22,7 @@ class Watcher < ActiveRecord::Base
   belongs_to :user, :class_name => 'Principal'
 
   validates_presence_of :user
-  validates_uniqueness_of :user_id, :scope => [:watchable_type, :watchable_id]
+  validates_uniqueness_of :user_id, :scope => [:watchable_type, :watchable_id], :case_sensitive => true
   validate :validate_user
 
   # Returns true if at least one object among objects is watched by user