Project

General

Profile

Defect #44560 ยป 0001-Skip-default-assignees-that-are-no-longer-assignable.patch

Go MAEDA, 2026-09-30 12:02

View differences:

app/models/issue.rb
2005 2005
  end
2006 2006
  # Default assignment based on project or category
2007
  # Default assignees that are no longer assignable are skipped
2007 2008
  def default_assign
2008 2009
    if assigned_to.nil?
2009
      if category && category.assigned_to
2010
      if category && category.assigned_to && assignable_users.include?(category.assigned_to)
2010 2011
        self.assigned_to = category.assigned_to
2011
      elsif project && project.default_assigned_to
2012
      elsif project && project.default_assigned_to && assignable_users.include?(project.default_assigned_to)
2012 2013
        self.assigned_to = project.default_assigned_to
2013 2014
      end
2014 2015
    end
test/unit/issue_test.rb
683 683
    assert_equal user, issue.assigned_to
684 684
  end
685
  def test_default_assigned_to_based_on_category_should_skip_non_assignable_user
686
    category = IssueCategory.create!(:project_id => 1, :name => 'With default assignee', :assigned_to_id => 3)
687
    Project.find(1).update!(:default_assigned_to_id => 2)
688
    User.find(3).lock!
689

  
690
    issue = Issue.generate!(:project_id => 1, :category_id => category.id)
691
    assert_equal User.find(2), issue.assigned_to
692
  end
693

  
694
  def test_default_assigned_to_based_on_project_should_skip_non_assignable_user
695
    Project.find(1).update!(:default_assigned_to_id => 3)
696
    Role.find(2).update!(:assignable => false)
697

  
698
    issue = Issue.generate!(:project_id => 1)
699
    assert_nil issue.assigned_to
700
  end
701

  
685 702
  def test_default_assigned_to_with_required_assignee_should_validate
686 703
    category = IssueCategory.create!(:project_id => 1, :name => 'With default assignee', :assigned_to_id => 3)
687 704
    Issue.any_instance.stubs(:required_attribute_names).returns(['assigned_to_id'])
    (1-1/1)