diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 5dfc68068..494c23139 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -216,7 +216,7 @@ class ProjectsController < ApplicationController default_status = IssueStatus.default @issue = Issue.new(:project => @project, :tracker => @tracker) @issue.status = default_status - @allowed_statuses = default_status.find_new_statuses_allowed_to(logged_in_user.role_for_project(@project), @issue.tracker) if logged_in_user + @allowed_statuses = (default_status.find_new_statuses_allowed_to(logged_in_user.role_for_project(@project), @issue.tracker) || [default_status])if logged_in_user if request.get? @issue.start_date = Date.today @custom_values = @project.custom_fields_for_issues(@tracker).collect { |x| CustomValue.new(:custom_field => x, :customized => @issue) } diff --git a/app/models/issue_status.rb b/app/models/issue_status.rb index 61cb3f282..30a96f4ec 100644 --- a/app/models/issue_status.rb +++ b/app/models/issue_status.rb @@ -39,7 +39,7 @@ class IssueStatus < ActiveRecord::Base # Uses association cache when called more than one time def new_statuses_allowed_to(role, tracker) new_statuses = workflows.select {|w| w.role_id == role.id && w.tracker_id == tracker.id}.collect{|w| w.new_status} if role && tracker - new_statuses.sort{|x, y| x.position <=> y.position } + new_statuses.sort{|x, y| x.position <=> y.position } if new_statuses end # Same thing as above but uses a database query @@ -48,7 +48,7 @@ class IssueStatus < ActiveRecord::Base new_statuses = workflows.find(:all, :include => :new_status, :conditions => ["role_id=? and tracker_id=?", role.id, tracker.id]).collect{ |w| w.new_status } if role && tracker - new_statuses.sort{|x, y| x.position <=> y.position } + new_statuses.sort{|x, y| x.position <=> y.position } if new_statuses end private