diff options
| author | cedricnjanga | 2017-11-13 12:33:15 +0100 | 
|---|---|---|
| committer | cedricnjanga | 2017-11-13 12:43:15 +0100 | 
| commit | b81cbd6de7944443f9a024acb5fa6cdfdfeaac63 (patch) | |
| tree | d425705f149dfbcf840606570df10c9d1200708e /app | |
| parent | f74240182d95fd43f4aabc14b6560158dd276b21 (diff) | |
| download | chouette-core-b81cbd6de7944443f9a024acb5fa6cdfdfeaac63.tar.bz2 | |
Refs #4952 Fix bug related to compliance control set action links display
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/compliance_control_blocks_controller.rb | 1 | ||||
| -rw-r--r-- | app/controllers/compliance_control_sets_controller.rb | 1 | ||||
| -rw-r--r-- | app/controllers/compliance_controls_controller.rb | 1 | ||||
| -rw-r--r-- | app/helpers/compliance_control_sets_helper.rb | 34 | ||||
| -rw-r--r-- | app/policies/compliance_control_block_policy.rb | 20 | ||||
| -rw-r--r-- | app/policies/compliance_control_set_policy.rb | 6 | ||||
| -rw-r--r-- | app/views/compliance_control_sets/show.html.slim | 17 | 
7 files changed, 62 insertions, 18 deletions
| diff --git a/app/controllers/compliance_control_blocks_controller.rb b/app/controllers/compliance_control_blocks_controller.rb index 996f8a464..f53a1e04a 100644 --- a/app/controllers/compliance_control_blocks_controller.rb +++ b/app/controllers/compliance_control_blocks_controller.rb @@ -1,4 +1,5 @@  class ComplianceControlBlocksController < InheritedResources::Base +  include PolicyChecker    defaults resource_class: ComplianceControlBlock    belongs_to :compliance_control_set    actions :all, :except => [:show, :index] diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb index 956f26112..5c78d09e3 100644 --- a/app/controllers/compliance_control_sets_controller.rb +++ b/app/controllers/compliance_control_sets_controller.rb @@ -1,4 +1,5 @@  class ComplianceControlSetsController < InheritedResources::Base +  include PolicyChecker    defaults resource_class: ComplianceControlSet    include RansackDateFilter    before_action only: [:index] { set_date_time_params("updated_at", DateTime) } diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index 816d8897b..5a9c0b671 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -1,4 +1,5 @@  class ComplianceControlsController < InheritedResources::Base +  include PolicyChecker    defaults resource_class: ComplianceControl    belongs_to :compliance_control_set    actions :all, :except => [:index] diff --git a/app/helpers/compliance_control_sets_helper.rb b/app/helpers/compliance_control_sets_helper.rb index 6ba4bed4f..bb2a72623 100644 --- a/app/helpers/compliance_control_sets_helper.rb +++ b/app/helpers/compliance_control_sets_helper.rb @@ -4,4 +4,36 @@ module ComplianceControlSetsHelper      [current_organisation, Organisation.find_by_name("STIF")].uniq    end -end +  def flotted_links ccs_id = @compliance_control_set +    links = [new_control(ccs_id), new_block(ccs_id)] +    unless links.all? &:nil? +      content_tag :div, class: 'select_toolbox' do +        content_tag :ul do +          links.collect {|link| concat content_tag(:li, link, class: 'st_action with_text') unless link.nil?}  +        end +      end +    end +  end + +  def new_control ccs_id +    if policy(ComplianceControl).create? +      link_to select_type_compliance_control_set_compliance_controls_path(ccs_id) do  +        concat content_tag :span, nil, class: 'fa fa-plus' +        concat content_tag :span, t('compliance_control_sets.actions.add_compliance_control') +      end +    else +      nil +    end +  end + +  def new_block ccs_id +    if policy(ComplianceControlBlock).create? +      link_to new_compliance_control_set_compliance_control_block_path(ccs_id) do  +        concat content_tag :span, nil, class: 'fa fa-plus' +        concat content_tag :span,t('compliance_control_sets.actions.add_compliance_control_block') +      end    +    else +      nil +    end +  end +end
\ No newline at end of file diff --git a/app/policies/compliance_control_block_policy.rb b/app/policies/compliance_control_block_policy.rb new file mode 100644 index 000000000..acbc1853f --- /dev/null +++ b/app/policies/compliance_control_block_policy.rb @@ -0,0 +1,20 @@ +class ComplianceControlBlockPolicy < ApplicationPolicy +  class Scope < Scope +    def resolve +      scope +    end +  end + +  def destroy? +    user.has_permission?('compliance_control_blocks.destroy') +  end + +  def create? +    user.has_permission?('compliance_control_blocks.create') +  end + +  def update? +    user.has_permission?('compliance_control_blocks.update') +  end + +end diff --git a/app/policies/compliance_control_set_policy.rb b/app/policies/compliance_control_set_policy.rb index 6288a2ff2..011f6c0c7 100644 --- a/app/policies/compliance_control_set_policy.rb +++ b/app/policies/compliance_control_set_policy.rb @@ -6,15 +6,15 @@ class ComplianceControlSetPolicy < ApplicationPolicy    end    def destroy? -    user.has_permission?('compliance_controls_sets.destroy') +    user.has_permission?('compliance_control_sets.destroy')    end    def create? -    user.has_permission?('compliance_controls_sets.create') +    user.has_permission?('compliance_control_sets.create')    end    def update? -    user.has_permission?('compliance_controls_sets.update') +    user.has_permission?('compliance_control_sets.update')    end    def clone? diff --git a/app/views/compliance_control_sets/show.html.slim b/app/views/compliance_control_sets/show.html.slim index d086c07c8..89b645dd7 100644 --- a/app/views/compliance_control_sets/show.html.slim +++ b/app/views/compliance_control_sets/show.html.slim @@ -77,8 +77,8 @@                    .span.fa.fa-cog                  ul.dropdown-menu                    li -                    = link_to t('compliance_control_sets.actions.edit'), edit_compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id) -                    = link_to t('compliance_control_sets.actions.destroy'), compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id), :method => :delete, :data => {:confirm =>  t('compliance_control_sets.actions.destroy_confirm')} +                    = link_to t('compliance_control_sets.actions.edit'), edit_compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id) if policy(ComplianceControlBlock).update? +                    = link_to t('compliance_control_sets.actions.destroy'), compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id), :method => :delete, :data => {:confirm =>  t('compliance_control_sets.actions.destroy_confirm')} if policy(ComplianceControlBlock).destroy?            .row              .col-lg-12                .select_table @@ -108,15 +108,4 @@                    cls: 'table has-filter has-search',                    model: ComplianceControl -    .select_toolbox -      ul -        li.st_action.with_text -          = link_to select_type_compliance_control_set_compliance_controls_path(@compliance_control_set.id) -            span.fa.fa-plus -            span -              = t('compliance_control_sets.actions.add_compliance_control') -        li.st_action.with_text -          = link_to new_compliance_control_set_compliance_control_block_path(@compliance_control_set.id) -            span.fa.fa-plus -            span -              = t('compliance_control_sets.actions.add_compliance_control_block') +  = flotted_links(@compliance_control_set.id)
\ No newline at end of file | 
