From 0d0962323a78d411f995bde70aa0ae3e476c4eb5 Mon Sep 17 00:00:00 2001 From: MAEDA Go Date: Wed, 30 Sep 2026 18:35:41 +0900 Subject: [PATCH] Skip default assignees that are no longer assignable when creating an issue --- app/models/issue.rb | 5 +++-- test/unit/issue_test.rb | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index 8a55fc361..904195cad 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -2005,11 +2005,12 @@ class Issue < ApplicationRecord end # Default assignment based on project or category + # Default assignees that are no longer assignable are skipped def default_assign if assigned_to.nil? - if category && category.assigned_to + if category && category.assigned_to && assignable_users.include?(category.assigned_to) self.assigned_to = category.assigned_to - elsif project && project.default_assigned_to + elsif project && project.default_assigned_to && assignable_users.include?(project.default_assigned_to) self.assigned_to = project.default_assigned_to end end diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index cc92b8f8e..3c47ee858 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -683,6 +683,23 @@ class IssueTest < ActiveSupport::TestCase assert_equal user, issue.assigned_to end + def test_default_assigned_to_based_on_category_should_skip_non_assignable_user + category = IssueCategory.create!(:project_id => 1, :name => 'With default assignee', :assigned_to_id => 3) + Project.find(1).update!(:default_assigned_to_id => 2) + User.find(3).lock! + + issue = Issue.generate!(:project_id => 1, :category_id => category.id) + assert_equal User.find(2), issue.assigned_to + end + + def test_default_assigned_to_based_on_project_should_skip_non_assignable_user + Project.find(1).update!(:default_assigned_to_id => 3) + Role.find(2).update!(:assignable => false) + + issue = Issue.generate!(:project_id => 1) + assert_nil issue.assigned_to + end + def test_default_assigned_to_with_required_assignee_should_validate category = IssueCategory.create!(:project_id => 1, :name => 'With default assignee', :assigned_to_id => 3) Issue.any_instance.stubs(:required_attribute_names).returns(['assigned_to_id']) -- 2.55.0