aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/compliance_controls_controller.rb
blob: dad9b935a7c7c719b9251b403a1c8082164ae91c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class ComplianceControlsController < BreadcrumbController
  include PolicyChecker
  defaults resource_class: ComplianceControl
  belongs_to :compliance_control_set

  def index
    index! do |format|
      format.html {
        @compliance_controls = decorate_compliance_controls(@compliance_controls)
      }
    end
  end

  def create
    create!(notice: t('notice.compliance_control.created'))
  end

  def update
    path = compliance_control_set_compliance_control_path(parent, resource)
    update!(notice: t('notice.compliance_control.updated')) { path }
  end

  def destroy
    destroy!(notice: t('notice.compliance_control.destroyed'))
  end

  private
  def decorate_compliance_controls(compliance_controls)
    ModelDecorator.decorate(
      compliance_controls,
      with: ComplianceControlDecorator,
    )
  end

  def compliance_control_params
    params.require(:compliance_control).permit(:name, :code, :criticity, :comment, :control_attributes)
  end
end