Merged r22417 from trunk to 5.1-stable (#39443).

git-svn-id: https://svn.redmine.org/redmine/branches/5.1-stable@22420 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Marius Balteanu
2023-11-11 07:12:34 +00:00
parent 50d12e2478
commit bae08d43a8

View File

@@ -566,11 +566,12 @@ class IssueQuery < Query
when "*", "!*" # Member / Not member
sw = operator == "!*" ? 'NOT' : ''
nl = operator == "!*" ? "#{Issue.table_name}.assigned_to_id IS NULL OR" : ''
subquery =
"SELECT DISTINCT #{Member.table_name}.user_id" +
"SELECT 1" +
" FROM #{Member.table_name}" +
" WHERE #{Member.table_name}.project_id = #{Issue.table_name}.project_id"
"(#{nl} #{Issue.table_name}.assigned_to_id #{sw} IN (#{subquery}))"
" WHERE #{Issue.table_name}.project_id = #{Member.table_name}.project_id AND #{Member.table_name}.user_id = #{Issue.table_name}.assigned_to_id"
"(#{nl} #{sw} EXISTS (#{subquery}))"
when "=", "!"
role_cond =
if value.any?
@@ -581,10 +582,10 @@ class IssueQuery < Query
sw = operator == "!" ? 'NOT' : ''
nl = operator == "!" ? "#{Issue.table_name}.assigned_to_id IS NULL OR" : ''
subquery =
"SELECT DISTINCT #{Member.table_name}.user_id, #{Member.table_name}.project_id" +
" FROM #{Member.table_name}, #{MemberRole.table_name}" +
" WHERE #{Member.table_name}.id = #{MemberRole.table_name}.member_id AND #{role_cond}"
"(#{nl} (#{Issue.table_name}.assigned_to_id, #{Issue.table_name}.project_id) #{sw} IN (#{subquery}))"
"SELECT 1" +
" FROM #{Member.table_name} inner join #{MemberRole.table_name} on members.id = member_roles.member_id" +
" WHERE #{Issue.table_name}.project_id = #{Member.table_name}.project_id AND #{Member.table_name}.user_id = #{Issue.table_name}.assigned_to_id AND #{role_cond}"
"(#{nl} #{sw} EXISTS (#{subquery}))"
end
end