@@ -442,8 +445,21 @@ class Query < ActiveRecord::Base
elsiffield=='watcher_id'
db_table=Watcher.table_name
db_field='user_id'
sql<<"#{Issue.table_name}.id #{operator=='='?'IN':'NOT IN'} (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND "
sql<<"#{Issue.table_name}.id #{operator=='='?'IN':'NOT IN'} (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND #{sql_for_fieldfield,'=',v,db_table,db_field})"
sql_parts<<"#{Issue.table_name}.id #{operator=='='?'IN':'NOT IN'} (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND #{sql_for_fieldfield,'=',[user_id],db_table,db_field})"
end
# filter watchers only in projects the user has the permission to view watchers in
sql_parts<<"#{Issue.table_name}.id #{operator=='='?'IN':'NOT IN'} (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND #{sql_for_fieldfield,'=',v,db_table,db_field})"\
" AND #{Project.table_name}.id IN (#{project_ids.join(',')})"unlessproject_ids.empty?