diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index e1a3d860c0..d9a9f0904b 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -463,6 +463,7 @@ class IssuesController < ApplicationController @issue.init_journal(User.current) issue_attributes = params[:issue] + issue_attributes[:assigned_to_id] = User.current.id if issue_attributes && issue_attributes[:assigned_to_id] == 'me' if issue_attributes && params[:conflict_resolution] case params[:conflict_resolution] when 'overwrite' diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 61b2ded0c5..7938e52c8d 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -4446,6 +4446,18 @@ class IssuesControllerTest < Redmine::ControllerTest end end + def test_get_edit_with_me_assigned_to_id + @request.session[:user_id] = 2 + get :edit, :params => { + :id => 1, + :issue => { :assigned_to_id => 'me' } + } + assert_response :success + assert_select 'select[name=?]', 'issue[assigned_to_id]' do + assert_select 'option[value="2"][selected=selected]' + end + end + def test_update_form_for_existing_issue @request.session[:user_id] = 2 patch :edit, :params => { @@ -5261,6 +5273,20 @@ class IssuesControllerTest < Redmine::ControllerTest assert_equal 'Original subject', issue.reload.subject end + def test_update_with_me_assigned_to_id + @request.session[:user_id] = 2 + issue = Issue.find(1) + assert_not_equal 2, issue.assigned_to_id + put :update, :params => { + :id => issue.id, + :issue => { + :assigned_to_id => 'me' + } + } + assert_response 302 + assert_equal 2, issue.reload.assigned_to_id + end + def test_get_bulk_edit @request.session[:user_id] = 2 get :bulk_edit, :params => {