]> source.dussan.org Git - redmine.git/commitdiff
Merged r15959 (#24311).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 3 Dec 2016 08:42:06 +0000 (08:42 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 3 Dec 2016 08:42:06 +0000 (08:42 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@16047 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/issues/_form.html.erb
test/functional/issues_controller_test.rb

index 1e82b6f8432ac55f40281ca32fdb7c884a172b5f..a9e6799bf87b75c58bbbf12783012081fd104351 100644 (file)
@@ -8,7 +8,7 @@
 </p>
 <% end %>
 
-<% if @issue.safe_attribute?('project_id') && (!@issue.new_record? || @project.nil? || @issue.copy?) %>
+<% if (@issue.safe_attribute?('project_id') || @issue.project_id_changed?) && (!@issue.new_record? || @project.nil? || @issue.copy?) %>
 <p><%= 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)" %></p>
 <% end %>
index f3812a936efd198f13116a98d783271abb31cc59..9f34d2a53d8a851eab31e0df27aeeb12a7a55b30 100644 (file)
@@ -3267,6 +3267,7 @@ class IssuesControllerTest < ActionController::TestCase
     assert_not_nil assigns(:issue)
     assert_equal Issue.find(1), assigns(:issue)
 
+    assert_select 'select[name=?]', 'issue[project_id]'
     # Be sure we don't display inactive IssuePriorities
     assert ! IssuePriority.find(15).active?
     assert_select 'select[name=?]', 'issue[priority_id]' do
@@ -3274,6 +3275,25 @@ class IssuesControllerTest < ActionController::TestCase
     end
   end
 
+  def test_edit_should_hide_project_if_user_is_not_allowed_to_change_project
+    WorkflowPermission.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :field_name => 'project_id', :rule => 'readonly')
+
+    @request.session[:user_id] = 2
+    get :edit, :id => 1
+    assert_response :success
+    assert_select 'select[name=?]', 'issue[project_id]', 0
+  end
+
+  def test_edit_should_not_hide_project_when_user_changes_the_project_even_if_project_is_readonly_on_target_project
+    WorkflowPermission.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :field_name => 'project_id', :rule => 'readonly')
+    issue = Issue.generate!(:project_id => 2)
+
+    @request.session[:user_id] = 2
+    get :edit, :id => issue.id, :issue => {:project_id => 1}
+    assert_response :success
+    assert_select 'select[name=?]', 'issue[project_id]'
+  end
+
   def test_get_edit_should_display_the_time_entry_form_with_log_time_permission
     @request.session[:user_id] = 2
     Role.find_by_name('Manager').update_attribute :permissions, [:view_issues, :edit_issues, :log_time]