Commit 9a452a5c authored by Jean-Philippe Lang's avatar Jean-Philippe Lang

Make sure user can not watch what he is not allowed to view.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3170 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent bb477a3a
......@@ -25,7 +25,11 @@ class WatchersController < ApplicationController
:render => { :nothing => true, :status => :method_not_allowed }
def watch
set_watcher(User.current, true)
if @watched.respond_to?(:visible?) && !@watched.visible?(User.current)
render_403
else
set_watcher(User.current, true)
end
end
def unwatch
......
......@@ -47,6 +47,15 @@ class WatchersControllerTest < ActionController::TestCase
end
assert Issue.find(1).watched_by?(User.find(3))
end
def test_watch_should_be_denied_without_permission
Role.find(2).remove_permission! :view_issues
@request.session[:user_id] = 3
assert_no_difference('Watcher.count') do
xhr :post, :watch, :object_type => 'issue', :object_id => '1'
assert_response 403
end
end
def test_watch_with_multiple_replacements
@request.session[:user_id] = 3
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment