From 9015b749905ef88475a4bcb28c120d9746f54402 Mon Sep 17 00:00:00 2001 From: MAEDA Go Date: Mon, 27 Apr 2026 12:47:15 +0900 Subject: [PATCH] Add setting to always include issue authors in assignee list --- app/models/issue.rb | 4 +++- app/views/settings/_issues.html.erb | 2 ++ config/locales/en.yml | 1 + config/settings.yml | 2 ++ test/unit/issue_test.rb | 13 +++++++++++-- 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index fa2d7707d..c8d782d6b 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1030,7 +1030,9 @@ class Issue < ApplicationRecord return [] if project.nil? users = project.assignable_users(tracker).to_a - users << author if author && author.active? + if Setting.always_add_issue_author_to_assignable_users? && author&.active? + users << author + end if assigned_to_id_was.present? && assignee = Principal.find_by_id(assigned_to_id_was) users << assignee end diff --git a/app/views/settings/_issues.html.erb b/app/views/settings/_issues.html.erb index b9acf4fda..9665d5951 100644 --- a/app/views/settings/_issues.html.erb +++ b/app/views/settings/_issues.html.erb @@ -15,6 +15,8 @@

<%= setting_select :assignee_dropdown_display_format, assignee_dropdown_display_format_options %>

+

<%= setting_check_box :always_add_issue_author_to_assignable_users %>

+

<%= setting_check_box :default_issue_start_date_to_creation_date %>

<% diff --git a/config/locales/en.yml b/config/locales/en.yml index d0d93746a..5b9488ea6 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -501,6 +501,7 @@ en: setting_gantt_months_limit: Maximum number of months displayed on the gantt chart setting_issue_group_assignment: Allow issue assignment to groups setting_assignee_dropdown_display_format: Assignee drop-down display format + setting_always_add_issue_author_to_assignable_users: Always show the author in the assignee list setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed setting_unsubscribe: Allow users to delete their own account diff --git a/config/settings.yml b/config/settings.yml index 667a4427f..aeb235f8d 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -198,6 +198,8 @@ issue_group_assignment: default: 0 assignee_dropdown_display_format: default: users_then_groups +always_add_issue_author_to_assignable_users: + default: 0 default_issue_start_date_to_creation_date: default: 0 default_issue_due_date_offset: diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index cc92b8f8e..7f7c09c93 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -2696,11 +2696,20 @@ class IssueTest < ActiveSupport::TestCase assert_kind_of User, Issue.find(1).assignable_users.first end - test "#assignable_users should include the issue author" do + test "#assignable_users should include the issue author when enabled by settings" do non_project_member = User.generate! issue = Issue.generate!(:author => non_project_member) - assert issue.assignable_users.include?(non_project_member) + with_settings :always_add_issue_author_to_assignable_users => '1' do + assert issue.assignable_users.include?(non_project_member) + end + end + + test "#assignable_users should not include non member author" do + non_project_member = User.generate! + issue = Issue.generate!(:author => non_project_member) + + assert_not_include non_project_member, issue.assignable_users end def test_assignable_users_should_not_include_anonymous_user -- 2.50.1