mirror of
https://github.com/meineerde/redmine.git
synced 2025-12-30 12:19:38 +00:00
Extend watched_by_me-issue filter to include all project-members instead of only <<me>>-substitution (#8160).
Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@17439 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
5484198d98
commit
5a2f924b76
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user