diff --git a/app/models/v2/rule.rb b/app/models/v2/rule.rb index 28bedf0a06..b72a908976 100644 --- a/app/models/v2/rule.rb +++ b/app/models/v2/rule.rb @@ -19,6 +19,8 @@ class Rule < ApplicationRecord ) belongs_to :security_guide + has_many :profile_rules, dependent: :delete_all + has_many :profiles, through: :profile_rules, source: :profile, class_name: 'V2::Profile' sortable_by :title sortable_by :severity, SORTED_SEVERITIES diff --git a/app/serializers/v2/rule_serializer.rb b/app/serializers/v2/rule_serializer.rb index fdc6f52870..7ee8409143 100644 --- a/app/serializers/v2/rule_serializer.rb +++ b/app/serializers/v2/rule_serializer.rb @@ -4,5 +4,10 @@ module V2 # JSON API serialization for an OpenSCAP Rule class RuleSerializer < ApplicationSerializer attributes :ref_id, :title, :rationale, :description, :severity, :precedence + attribute :remediation_issue_id + + def include_remediation_issue_id? + true if object.params[:parents].include?(Profile) + end end end diff --git a/config/routes.rb b/config/routes.rb index bf78b2c1d7..cdf6fa671d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -25,9 +25,11 @@ def draw_routes(prefix) unless Rails.env.production? scope 'v2', module: 'v2', as: 'v2' do resources :security_guides, only: [:index, :show] do - resources :profiles, only: [:index, :show], parents: [:security_guide] resources :value_definitions, only: [:index, :show], parents: [:security_guide] resources :rules, only: [:index, :show], parents: [:security_guide] + resources :profiles, only: [:index, :show], parents: [:security_guide] do + resources :rules, only: [:index, :show], parents: [:security_guide, :profiles] + end end end end