diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-07-18 08:06:51 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-07-18 08:06:51 +0000 |
commit | 36d8f3519246898c402683a1b1575660f52de260 (patch) | |
tree | 60ffd4efc023d6286dc698eb9254b634ab0992a1 | |
parent | d41bd93acbea908676302a975aa8c52e1fbed0d4 (diff) | |
download | redmine-36d8f3519246898c402683a1b1575660f52de260.tar.gz redmine-36d8f3519246898c402683a1b1575660f52de260.zip |
Prevent creation of project with identifier 'new' (#3602).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2821 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/models/project.rb | 4 | ||||
-rw-r--r-- | test/unit/project_test.rb | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 8799e3b58..0b0c47a24 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -63,7 +63,9 @@ class Project < ActiveRecord::Base validates_length_of :identifier, :in => 1..20 # donwcase letters, digits, dashes but not digits only validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-]*$/, :if => Proc.new { |p| p.identifier_changed? } - + # reserved words + validates_exclusion_of :identifier, :in => %w( new ) + before_destroy :delete_all_members named_scope :has_module, lambda { |mod| { :conditions => ["#{Project.table_name}.id IN (SELECT em.project_id FROM #{EnabledModule.table_name} em WHERE em.name=?)", mod.to_s] } } diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index 2c8745856..60bc4f1c1 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -52,7 +52,8 @@ class ProjectTest < Test::Unit::TestCase to_test = {"abc" => true,
"ab12" => true,
"ab-12" => true,
- "12" => false}
+ "12" => false,
+ "new" => false}
to_test.each do |identifier, valid|
p = Project.new
|