]> source.dussan.org Git - redmine.git/commitdiff
New issue raises an error if no projects available (#23410).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 20 Aug 2016 11:26:43 +0000 (11:26 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 20 Aug 2016 11:26:43 +0000 (11:26 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@15740 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/issues_controller.rb
config/locales/en.yml
config/locales/fr.yml
test/functional/issues_controller_test.rb

index 05fb064cd6757261e0ca4ad9279e1c8a6f9eec5e..686a6b47f37a72304f63d5148255da78340be147 100644 (file)
@@ -151,13 +151,7 @@ class IssuesController < ApplicationController
       return
     else
       respond_to do |format|
-        format.html {
-          if @issue.project.nil?
-            render_error :status => 422
-          else
-            render :action => 'new'
-          end
-        }
+        format.html { render :action => 'new' }
         format.api  { render_validation_errors(@issue) }
       end
     end
@@ -490,6 +484,9 @@ class IssuesController < ApplicationController
         render_error l(:error_no_default_issue_status)
         return false
       end
+    else
+      render_error :message => l(:error_no_projects_with_tracker_allowed_for_new_issue), :status => 403
+      return false
     end
 
     @priorities = IssuePriority.active
index 7c07adbe633ac4740b66dc9396ac42a0cd7a35b4..a6501c38a4a1144a3a84fd9cba3d1a56ca3d15f9 100644 (file)
@@ -214,6 +214,7 @@ en:
   error_attachment_extension_not_allowed: "Attachment extension %{extension} is not allowed"
   error_ldap_bind_credentials: "Invalid LDAP Account/Password"
   error_no_tracker_allowed_for_new_issue_in_project: "The project doesn't have any trackers for which you can create an issue"
+  error_no_projects_with_tracker_allowed_for_new_issue: "There are no projects with trackers for which you can create an issue"
 
   mail_subject_lost_password: "Your %{value} password"
   mail_body_lost_password: 'To change your password, click on the following link:'
index bf967021214507debe97913f4f59306ed09c178e..50fe2b923e454b575b32d4d69b72fdbcf181ee7c 100644 (file)
@@ -234,6 +234,7 @@ fr:
   error_attachment_extension_not_allowed: "L'extension %{extension} n'est pas autorisée"
   error_ldap_bind_credentials: "Identifiant ou mot de passe LDAP incorrect"
   error_no_tracker_allowed_for_new_issue_in_project: "Le projet ne dispose d'aucun tracker sur lequel vous pouvez créer une demande"
+  error_no_projects_with_tracker_allowed_for_new_issue: "Aucun projet ne dispose d'un tracker sur lequel vous pouvez créer une demande"
 
   mail_subject_lost_password: "Votre mot de passe %{value}"
   mail_body_lost_password: 'Pour changer votre mot de passe, cliquez sur le lien suivant :'
index 142ccc3561643442763ba418590eea07e900cc83..e4c6cd2344d93330f0f38614c2f328b2d7a94011 100644 (file)
@@ -1817,6 +1817,24 @@ class IssuesControllerTest < Redmine::ControllerTest
     assert_response 403
   end
 
+  def test_new_without_projects_should_respond_with_403
+    Project.delete_all
+    @request.session[:user_id] = 2
+
+    get :new
+    assert_response 403
+    assert_select_error /no projects/
+  end
+
+  def test_new_without_enabled_trackers_on_projects_should_respond_with_403
+    Project.all.each {|p| p.trackers.clear }
+    @request.session[:user_id] = 2
+
+    get :new
+    assert_response 403
+    assert_select_error /no projects/
+  end
+
   def test_new_should_preselect_default_version
     version = Version.generate!(:project_id => 1)
     Project.find(1).update_attribute :default_version_id, version.id
@@ -2540,7 +2558,7 @@ class IssuesControllerTest < Redmine::ControllerTest
            :issue => {:project_id => 3,
                       :tracker_id => 2,
                       :subject => 'Foo'}
-      assert_response 422
+      assert_response 403
     end
   end