Commit ad75119f authored by maeda's avatar maeda

Extend watched_by_me-issue filter to include all project-members instead of...

Extend watched_by_me-issue filter to include all project-members instead of only <<me>>-substitution (#8160).

Patch by Mizuki ISHIKAWA.


git-svn-id: https://svn.redmine.org/redmine/trunk@17439 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 69fed09e
......@@ -148,7 +148,7 @@ class IssueQuery < Query
if User.current.logged?
add_available_filter "watcher_id",
:type => :list, :values => [["<< #{l(:label_me)} >>", "me"]]
:type => :list, :values => lambda { watcher_values }
end
add_available_filter("updated_by",
......
......@@ -564,6 +564,12 @@ class Query < ActiveRecord::Base
statuses.collect{|s| [s.name, s.id.to_s]}
end
def watcher_values
watcher_values = [["<< #{l(:label_me)} >>", "me"]]
watcher_values += users.sort_by(&:status).collect{|s| [s.name, s.id.to_s, l("status_#{User::LABEL_BY_STATUS[s.status]}")] } if User.current.allowed_to?(:view_issue_watchers, self.project)
watcher_values
end
# Returns a scope of issue custom fields that are available as columns or filters
def issue_custom_fields
if project
......
......@@ -695,4 +695,41 @@ class QueriesControllerTest < Redmine::ControllerTest
assert_include ["Dave Lopper", "3", "active"], json
assert_include ["Dave2 Lopper2", "5", "locked"], json
end
def test_watcher_filter_without_permission_should_show_only_me
# This user does not have view_issue_watchers permission
@request.session[:user_id] = 7
get :filter, :params => {
:project_id => 1,
:type => 'IssueQuery',
:name => 'watcher_id'
}
assert_response :success
assert_equal 'application/json', response.content_type
json = ActiveSupport::JSON.decode(response.body)
assert_equal 1, json.count
assert_equal [["<< me >>", "me"]], json
end
def test_watcher_filter_with_permission_should_show_members
# This user has view_issue_watchers permission
@request.session[:user_id] = 1
get :filter, :params => {
:project_id => 1,
:type => 'IssueQuery',
:name => 'watcher_id'
}
assert_response :success
assert_equal 'application/json', response.content_type
json = ActiveSupport::JSON.decode(response.body)
assert_equal 6, json.count
# "me" value should not be grouped
assert_include ["<< me >>", "me"], json
assert_include ["Dave Lopper", "3", "active"], json
assert_include ["Dave2 Lopper2", "5", "locked"], json
end
end
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