@@ -219,6 +219,12 class Query < ActiveRecord::Base | |||||
219 | @available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => system_shared_versions.sort.collect{|s| ["#{s.project.name} - #{s.name}", s.id.to_s] } } |
|
219 | @available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => system_shared_versions.sort.collect{|s| ["#{s.project.name} - #{s.name}", s.id.to_s] } } | |
220 | end |
|
220 | end | |
221 | add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true})) |
|
221 | add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true})) | |
|
222 | # project filter | |||
|
223 | project_values = Project.all(:conditions => Project.visible_by(User.current), :order => 'lft').map do |p| | |||
|
224 | pre = (p.level > 0 ? ('--' * p.level + ' ') : '') | |||
|
225 | ["#{pre}#{p.name}",p.id.to_s] | |||
|
226 | end | |||
|
227 | @available_filters["project_id"] = { :type => :list, :order => 1, :values => project_values} | |||
222 | end |
|
228 | end | |
223 | @available_filters |
|
229 | @available_filters | |
224 | end |
|
230 | end |
@@ -33,6 +33,15 class QueryTest < ActiveSupport::TestCase | |||||
33 | assert query.available_filters['fixed_version_id'][:values].detect {|v| v.last == '2'} |
|
33 | assert query.available_filters['fixed_version_id'][:values].detect {|v| v.last == '2'} | |
34 | end |
|
34 | end | |
35 |
|
35 | |||
|
36 | def test_project_filter_in_global_queries | |||
|
37 | query = Query.new(:project => nil, :name => '_') | |||
|
38 | project_filter = query.available_filters["project_id"] | |||
|
39 | assert_not_nil project_filter | |||
|
40 | project_ids = project_filter[:values].map{|p| p[1]} | |||
|
41 | assert project_ids.include?("1") #public project | |||
|
42 | assert !project_ids.include?("2") #private project user cannot see | |||
|
43 | end | |||
|
44 | ||||
36 | def find_issues_with_query(query) |
|
45 | def find_issues_with_query(query) | |
37 | Issue.find :all, |
|
46 | Issue.find :all, | |
38 | :include => [ :assigned_to, :status, :tracker, :project, :priority ], |
|
47 | :include => [ :assigned_to, :status, :tracker, :project, :priority ], |
General Comments 0
You need to be logged in to leave comments.
Login now