diff -up redmine-3.2.1/app/controllers/issues_controller.rb.orig redmine-3.2.1/app/controllers/issues_controller.rb --- redmine-3.2.1/app/controllers/issues_controller.rb.orig 2016-03-13 18:18:43.000000000 +0100 +++ redmine-3.2.1/app/controllers/issues_controller.rb 2016-06-09 17:53:20.482524185 +0200 @@ -42,6 +42,27 @@ class IssuesController < ApplicationCont include SortHelper helper :timelog + def find_optional_project + @project = Project.find(params[:project_id]) unless params[:project_id].blank? + allowed = User.current.allowed_to?({:controller => params[:controller], :action => params[:action]}, @project, :global => true) + + if ! allowed and ! @project.nil? + @project.children.each do |subproject| + if User.current.allowed_to?({:controller => params[:controller], :action => params[:action]}, subproject, :global => true) + @project = subproject + return true; + end + end + + @project = nil + allowed = User.current.allowed_to?({:controller => params[:controller], :action => params[:action]}, @project, :global => true) + end + + allowed ? true : deny_access + rescue ActiveRecord::RecordNotFound + render_404 + end + def index retrieve_query sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria) diff -up redmine-3.2.1/app/views/issues/_form.html.erb.orig redmine-3.2.1/app/views/issues/_form.html.erb --- redmine-3.2.1/app/views/issues/_form.html.erb.orig 2016-03-13 18:18:44.000000000 +0100 +++ redmine-3.2.1/app/views/issues/_form.html.erb 2016-06-08 16:36:32.921088980 +0200 @@ -8,7 +8,8 @@

<% end %> -<% if @issue.safe_attribute?('project_id') && (!@issue.new_record? || @project.nil? || @issue.copy?) %> +<% if @issue.safe_attribute?('project_id') #&& (!@issue.new_record? || @project.nil? || @issue.copy?) +%>

<%= f.select :project_id, project_tree_options_for_select(@issue.allowed_target_projects, :selected => @issue.project), {:required => true}, :onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(@project, @issue)}', this)" %>

<% end %>