summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/issue_custom_field.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/issue_custom_field.rb b/app/models/issue_custom_field.rb
index e811ccaae..513b96a54 100644
--- a/app/models/issue_custom_field.rb
+++ b/app/models/issue_custom_field.rb
@@ -28,6 +28,15 @@ class IssueCustomField < CustomField
super || (roles & user.roles_for_project(project)).present?
end
+ def visibility_by_project_condition(*args)
+ sql = super
+ additional_sql = "#{Issue.table_name}.tracker_id IN (SELECT tracker_id FROM #{table_name_prefix}custom_fields_trackers#{table_name_suffix} WHERE custom_field_id = #{id})"
+ unless is_for_all?
+ additional_sql << " AND #{Issue.table_name}.project_id IN (SELECT project_id FROM #{table_name_prefix}custom_fields_projects#{table_name_suffix} WHERE custom_field_id = #{id})"
+ end
+ "((#{sql}) AND (#{additional_sql}))"
+ end
+
def validate_custom_field
super
errors.add(:base, l(:label_role_plural) + ' ' + l('activerecord.errors.messages.blank')) unless visible? || roles.present?