Patch #14318 » 0001-Fix-query-error-where-no-issue_ids-are-watched-or-fo.patch
app/models/issue.rb | ||
---|---|---|
136 | 136 |
"(#{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}))" |
137 | 137 |
when 'own_watch' |
138 | 138 |
user_ids = [user.id] + user.groups.pluck(:id).compact |
139 |
"(#{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}) OR #{table_name}.id IN (#{Watcher.where(user_id: user.id, watchable_type: 'Issue').pluck(:watchable_id).compact.join(',')}))" |
|
139 |
text_other_ids = Watcher.where(user_id: user.id, watchable_type: 'Issue').pluck(:watchable_id).compact.join(',') |
|
140 |
text_other_ids = "OR #{table_name}.id IN (#{text_other_ids})" if text_other_ids.present? |
|
141 |
"(#{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}) #{text_other_ids})" |
|
140 | 142 |
when 'own_watch_contributed' |
141 | 143 |
user_ids = [user.id] + user.groups.pluck(:id).compact |
142 |
"(#{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}) OR #{table_name}.id IN (#{Watcher.where(user_id: user.id, watchable_type: 'Issue').pluck(:watchable_id).compact.join(',')}) OR #{table_name}.id IN (#{Journal.where(user_id: user.id, journalized_type: 'Issue').group(:journalized_id).pluck(:journalized_id).compact.join(',')}))" |
|
144 |
text_other_ids = (Watcher.where(user_id: user.id, watchable_type: 'Issue').pluck(:watchable_id) + Journal.where(user_id: user.id, journalized_type: 'Issue').group(:journalized_id).pluck(:journalized_id)).compact.join(',') |
|
145 |
text_other_ids = "OR #{table_name}.id IN (#{text_other_ids})" if text_other_ids.present? |
|
146 |
"(#{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}) #{text_other_ids})" |
|
143 | 147 |
else |
144 | 148 |
'1=0' |
145 | 149 |
end |