Defect #44560 ยป 0001-Skip-default-assignees-that-are-no-longer-assignable.patch
| 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']) |