mirror of
				https://github.com/redmine/redmine.git
				synced 2025-10-31 02:15:52 +01:00 
			
		
		
		
	When updating an issue, allow adding time entry on an issue that was visible for the previous assignee (#34856).
git-svn-id: http://svn.redmine.org/redmine/trunk@21081 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
		| @@ -119,6 +119,13 @@ class TimeEntry < ActiveRecord::Base | ||||
|             self.project_id = issue.project_id | ||||
|           end | ||||
|           @invalid_issue_id = nil | ||||
|         elsif user.allowed_to?(:log_time, issue.project) && issue.assigned_to_id_changed? && issue.previous_assignee == User.current | ||||
|           current_assignee = issue.assigned_to | ||||
|           issue.assigned_to = issue.previous_assignee | ||||
|           unless issue.visible?(user) | ||||
|             @invalid_issue_id = issue_id | ||||
|           end | ||||
|           issue.assigned_to = current_assignee | ||||
|         else | ||||
|           @invalid_issue_id = issue_id | ||||
|         end | ||||
|   | ||||
| @@ -6510,6 +6510,29 @@ class IssuesControllerTest < Redmine::ControllerTest | ||||
|     assert_select 'input[name=?][value=?]', 'time_entry[comments]', 'this is my comment' | ||||
|   end | ||||
|  | ||||
|   def test_put_with_spent_time_when_assigned_to_of_private_issue_is_update_at_the_same_time | ||||
|     @request.session[:user_id] = 3 | ||||
|     Role.find(2).update! :issues_visibility => 'own' | ||||
|     private_issue = Issue.find(3) | ||||
|  | ||||
|     assert_difference('TimeEntry.count', 1) do | ||||
|       put( | ||||
|         :update, | ||||
|         params: { | ||||
|           id: private_issue.id, | ||||
|           issue: { assigned_to_id: nil }, | ||||
|           time_entry: { | ||||
|             comments: "add spent time", activity_id: TimeEntryActivity.first.id, hours: 1 | ||||
|           } | ||||
|         } | ||||
|       ) | ||||
|     end | ||||
|     assert_select '#errorExplanation', {text: /Log time is invalid/, count: 0} | ||||
|     assert_select '#errorExplanation', {text: /Issue is invalid/, count: 0} | ||||
|     assert_redirected_to action: 'show', id: private_issue.id | ||||
|     assert_not private_issue.reload.visible? | ||||
|   end | ||||
|  | ||||
|   def test_put_update_should_allow_fixed_version_to_be_set_to_a_subproject | ||||
|     issue = Issue.find(2) | ||||
|     @request.session[:user_id] = 2 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user