Role-based issue custom field visibility (#5037).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12012 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -81,12 +81,13 @@ module Redmine
|
||||
token_clauses = columns.collect {|column| "(LOWER(#{column}) LIKE ?)"}
|
||||
|
||||
if !options[:titles_only] && searchable_options[:search_custom_fields]
|
||||
searchable_custom_field_ids = CustomField.where(:type => "#{self.name}CustomField", :searchable => true).pluck(:id)
|
||||
if searchable_custom_field_ids.any?
|
||||
custom_field_sql = "#{table_name}.id IN (SELECT customized_id FROM #{CustomValue.table_name}" +
|
||||
searchable_custom_fields = CustomField.where(:type => "#{self.name}CustomField", :searchable => true)
|
||||
searchable_custom_fields.each do |field|
|
||||
sql = "#{table_name}.id IN (SELECT customized_id FROM #{CustomValue.table_name}" +
|
||||
" WHERE customized_type='#{self.name}' AND customized_id=#{table_name}.id AND LOWER(value) LIKE ?" +
|
||||
" AND #{CustomValue.table_name}.custom_field_id IN (#{searchable_custom_field_ids.join(',')}))"
|
||||
token_clauses << custom_field_sql
|
||||
" AND #{CustomValue.table_name}.custom_field_id = #{field.id})" +
|
||||
" AND #{field.visibility_by_project_condition(searchable_options[:project_key], user)}"
|
||||
token_clauses << sql
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -256,7 +256,7 @@ module Redmine
|
||||
def fetch_row_values(issue, query, level)
|
||||
query.inline_columns.collect do |column|
|
||||
s = if column.is_a?(QueryCustomFieldColumn)
|
||||
cv = issue.custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
||||
cv = issue.visible_custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
||||
show_value(cv)
|
||||
else
|
||||
value = issue.send(column.name)
|
||||
@@ -571,8 +571,8 @@ module Redmine
|
||||
right << nil
|
||||
end
|
||||
|
||||
half = (issue.custom_field_values.size / 2.0).ceil
|
||||
issue.custom_field_values.each_with_index do |custom_value, i|
|
||||
half = (issue.visible_custom_field_values.size / 2.0).ceil
|
||||
issue.visible_custom_field_values.each_with_index do |custom_value, i|
|
||||
(i < half ? left : right) << [custom_value.custom_field.name, show_value(custom_value)]
|
||||
end
|
||||
|
||||
@@ -683,7 +683,7 @@ module Redmine
|
||||
pdf.RDMCell(190,5, title)
|
||||
pdf.Ln
|
||||
pdf.SetFontStyle('I',8)
|
||||
details_to_strings(journal.details, true).each do |string|
|
||||
details_to_strings(journal.visible_details, true).each do |string|
|
||||
pdf.RDMMultiCell(190,5, "- " + string)
|
||||
end
|
||||
if journal.notes?
|
||||
|
||||
Reference in New Issue
Block a user