Marius BALTEANU wrote:
I'm not able to reproduce the problem in order to review the patch.
I tried from the global issues page and each request made from contextual menu to add watchers to issues from different projects returned 200. Can someone add more detailed steps to reproduce the problem (maybe I do not understand something well)? or a test that fails on the current trunk?
In order to reproduce this problem I needed to input a search keyword in "Search for user".
When entering the search keyword, the request parameter is Parameters: {"object_type"=>"issue", "q"=>""} .
<!-- app/views/watchers/_new.html.erb -->
<%= javascript_tag "observeSearchfield('user_search', 'users_for_watcher', '#{ escape_javascript url_for(:controller => 'watchers',
:action => 'autocomplete_for_user',
:object_type => (watchables.present? ? watchables.first.class.name.underscore : nil),
:object_id => (watchables.present? && watchables.size == 1 ? watchables.first.id : nil),
:project_id => @project) }')" %>
If there are multiple watchable and multiple watchable projects, both object_id and project_id will be nil.
Those parameters are required for WatchersController#find_project to work.
Because WatchersController#find_project does not work, ApplicationController#authorize returns an exception "Filter chain halted as: authorize rendered or redirected".
I have made several changes by reading the patch written by Andrey Lobanov (RedSoft).
I appreciate that you shared the patch.
Changes:
- Add tests
- Make multiple watchable values of object_id instead of project_ids
- Change the conditions of users_for_new_watcher to maintain the specification of #5159