diff --git a/app/helpers/routes_helper.rb b/app/helpers/routes_helper.rb
index 06f292d36..b8415a510 100644
--- a/app/helpers/routes_helper.rb
+++ b/app/helpers/routes_helper.rb
@@ -29,6 +29,14 @@ module RoutesHelper
end
end
+ def _new_project_issue_path(project, *args)
+ if project
+ new_project_issue_path(project, *args)
+ else
+ new_issue_path(*args)
+ end
+ end
+
def _project_calendar_path(project, *args)
project ? project_calendar_path(project, *args) : issues_calendar_path(*args)
end
diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb
index 2e971711f..7dcba2629 100644
--- a/app/views/issues/index.html.erb
+++ b/app/views/issues/index.html.erb
@@ -1,6 +1,6 @@
- <% if @project && User.current.allowed_to?(:add_issues, @project) && @project.trackers.any? %>
- <%= link_to l(:label_issue_new), new_project_issue_path(@project), :class => 'icon icon-add new-issue' %>
+ <% if User.current.allowed_to?(:add_issues, @project, :global => true) && (@project.nil? || @project.trackers.any?) %>
+ <%= link_to l(:label_issue_new), _new_project_issue_path(@project), :class => 'icon icon-add new-issue' %>
<% end %>
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
index f6e6459c7..14489dcb8 100644
--- a/test/functional/issues_controller_test.rb
+++ b/test/functional/issues_controller_test.rb
@@ -1081,6 +1081,12 @@ class IssuesControllerTest < ActionController::TestCase
assert_select 'a.new-issue', 0
end
+ def test_index_without_project_should_include_new_issue_link
+ @request.session[:user_id] = 2
+ get :index
+ assert_select 'a.new-issue[href="/issues/new"]', :text => 'New issue'
+ end
+
def test_show_by_anonymous
get :show, :id => 1
assert_response :success