##// END OF EJS Templates
Merged r15223 and r15225 (#22127)....
Jean-Philippe Lang -
r14850:04a926592f20
parent child
Show More
@@ -442,6 +442,17 class Issue < ActiveRecord::Base
442 self.status_id = s
442 self.status_id = s
443 end
443 end
444 end
444 end
445 if (u = attrs.delete('assigned_to_id')) && safe_attribute?('assigned_to_id')
446 if u.blank?
447 self.assigned_to_id = nil
448 else
449 u = u.to_i
450 if assignable_users.any?{|assignable_user| assignable_user.id == u}
451 self.assigned_to_id = u
452 end
453 end
454 end
455
445
456
446 attrs = delete_unsafe_attributes(attrs, user)
457 attrs = delete_unsafe_attributes(attrs, user)
447 return if attrs.empty?
458 return if attrs.empty?
@@ -3504,13 +3504,15 class IssuesControllerTest < ActionController::TestCase
3504
3504
3505 @request.session[:user_id] = 2
3505 @request.session[:user_id] = 2
3506 # update issues assignee
3506 # update issues assignee
3507 post :bulk_update, :ids => [1, 2], :notes => 'Bulk editing',
3507 with_settings :issue_group_assignment => '1' do
3508 :issue => {:priority_id => '',
3508 post :bulk_update, :ids => [1, 2], :notes => 'Bulk editing',
3509 :assigned_to_id => group.id,
3509 :issue => {:priority_id => '',
3510 :custom_field_values => {'2' => ''}}
3510 :assigned_to_id => group.id,
3511
3511 :custom_field_values => {'2' => ''}}
3512 assert_response 302
3512
3513 assert_equal [group, group], Issue.where(:id => [1, 2]).collect {|i| i.assigned_to}
3513 assert_response 302
3514 assert_equal [group, group], Issue.where(:id => [1, 2]).collect {|i| i.assigned_to}
3515 end
3514 end
3516 end
3515
3517
3516 def test_bulk_update_on_different_projects
3518 def test_bulk_update_on_different_projects
@@ -3850,7 +3852,7 class IssuesControllerTest < ActionController::TestCase
3850 assert_no_difference 'Project.find(1).issues.count' do
3852 assert_no_difference 'Project.find(1).issues.count' do
3851 post :bulk_update, :ids => [1, 2], :copy => '1',
3853 post :bulk_update, :ids => [1, 2], :copy => '1',
3852 :issue => {
3854 :issue => {
3853 :project_id => '2', :tracker_id => '', :assigned_to_id => '4',
3855 :project_id => '2', :tracker_id => '', :assigned_to_id => '2',
3854 :status_id => '1', :start_date => '2009-12-01', :due_date => '2009-12-31'
3856 :status_id => '1', :start_date => '2009-12-01', :due_date => '2009-12-31'
3855 }
3857 }
3856 end
3858 end
@@ -3860,7 +3862,7 class IssuesControllerTest < ActionController::TestCase
3860 assert_equal 2, copied_issues.size
3862 assert_equal 2, copied_issues.size
3861 copied_issues.each do |issue|
3863 copied_issues.each do |issue|
3862 assert_equal 2, issue.project_id, "Project is incorrect"
3864 assert_equal 2, issue.project_id, "Project is incorrect"
3863 assert_equal 4, issue.assigned_to_id, "Assigned to is incorrect"
3865 assert_equal 2, issue.assigned_to_id, "Assigned to is incorrect"
3864 assert_equal 1, issue.status_id, "Status is incorrect"
3866 assert_equal 1, issue.status_id, "Status is incorrect"
3865 assert_equal '2009-12-01', issue.start_date.to_s, "Start date is incorrect"
3867 assert_equal '2009-12-01', issue.start_date.to_s, "Start date is incorrect"
3866 assert_equal '2009-12-31', issue.due_date.to_s, "Due date is incorrect"
3868 assert_equal '2009-12-31', issue.due_date.to_s, "Due date is incorrect"
@@ -706,6 +706,40 class IssueTest < ActiveSupport::TestCase
706 assert_nil issue.custom_field_value(cf2)
706 assert_nil issue.custom_field_value(cf2)
707 end
707 end
708
708
709 def test_safe_attributes_should_ignore_unassignable_assignee
710 issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 3,
711 :status_id => 1, :priority => IssuePriority.all.first,
712 :subject => 'test_create')
713 assert issue.valid?
714
715 # locked user, not allowed
716 issue.safe_attributes=({'assigned_to_id' => '5'})
717 assert_nil issue.assigned_to_id
718 # no member
719 issue.safe_attributes=({'assigned_to_id' => '1'})
720 assert_nil issue.assigned_to_id
721 # user 2 is ok
722 issue.safe_attributes=({'assigned_to_id' => '2'})
723 assert_equal 2, issue.assigned_to_id
724 assert issue.save
725
726 issue.reload
727 assert_equal 2, issue.assigned_to_id
728 issue.safe_attributes=({'assigned_to_id' => '5'})
729 assert_equal 2, issue.assigned_to_id
730 issue.safe_attributes=({'assigned_to_id' => '1'})
731 assert_equal 2, issue.assigned_to_id
732 # user 3 is also ok
733 issue.safe_attributes=({'assigned_to_id' => '3'})
734 assert_equal 3, issue.assigned_to_id
735 assert issue.save
736
737 # removal of assignee
738 issue.safe_attributes=({'assigned_to_id' => ''})
739 assert_nil issue.assigned_to_id
740 assert issue.save
741 end
742
709 def test_editable_custom_field_values_should_return_non_readonly_custom_values
743 def test_editable_custom_field_values_should_return_non_readonly_custom_values
710 cf1 = IssueCustomField.create!(:name => 'Writable field', :field_format => 'string',
744 cf1 = IssueCustomField.create!(:name => 'Writable field', :field_format => 'string',
711 :is_for_all => true, :tracker_ids => [1, 2])
745 :is_for_all => true, :tracker_ids => [1, 2])
General Comments 0
You need to be logged in to leave comments. Login now