diff options
| author | cedricnjanga | 2017-10-25 12:22:00 +0200 |
|---|---|---|
| committer | Robert | 2017-11-02 16:59:29 +0100 |
| commit | 4bc481fe691668a642a186931946c22ea74b0b16 (patch) | |
| tree | 5adf94b8396a14f52189eb34ad0132fc8050bd7c /app | |
| parent | 13553712a18435f16f449a6d0c6a2ade24038797 (diff) | |
| download | chouette-core-4776-compliance_controls_policy.tar.bz2 | |
Refs #4776 Add policies to ComplianceControl and ComplianceControlSet4776-compliance_controls_policy
Diffstat (limited to 'app')
| -rw-r--r-- | app/decorators/compliance_control_decorator.rb | 36 | ||||
| -rw-r--r-- | app/decorators/compliance_control_set_decorator.rb | 23 | ||||
| -rw-r--r-- | app/policies/compliance_control_policy.rb | 10 | ||||
| -rw-r--r-- | app/policies/compliance_control_set_policy.rb | 16 |
4 files changed, 48 insertions, 37 deletions
diff --git a/app/decorators/compliance_control_decorator.rb b/app/decorators/compliance_control_decorator.rb index e70ff5350..f56e80417 100644 --- a/app/decorators/compliance_control_decorator.rb +++ b/app/decorators/compliance_control_decorator.rb @@ -2,33 +2,29 @@ class ComplianceControlDecorator < Draper::Decorator delegate_all def action_links + policy = h.policy(object) links = [] - # if h.policy(object).destroy? - links << Link.new( - content: h.destroy_link_content, - href: h.compliance_control_set_compliance_control_path(object.compliance_control_set.id, object.id), - method: :delete, - data: { confirm: h.t('compliance_control_sets.actions.destroy_confirm') } - ) - # end - - # if h.policy(object).edit? - links << Link.new( - content: h.t('compliance_control_sets.actions.edit'), - href: h.edit_compliance_control_set_compliance_control_path(object.compliance_control_set.id, object.id) - ) - # end - - - # if h.policy(object).show? links << Link.new( content: h.t('compliance_control_sets.actions.show'), href: h.compliance_control_set_compliance_control_path(object.compliance_control_set.id, object.id) ) - # end + if policy.edit? + links << Link.new( + content: h.t('compliance_controls.actions.edit'), + href: h.edit_compliance_control_set_compliance_control_path(object.compliance_control_set.id, object.id) + ) + end + + if policy.destroy? + links << Link.new( + content: h.destroy_link_content, + href: h.compliance_control_set_compliance_control_path(object.compliance_control_set.id, object.id), + method: :delete, + data: { confirm: h.t('compliance_controls.actions.destroy_confirm') } + ) + end links end - end diff --git a/app/decorators/compliance_control_set_decorator.rb b/app/decorators/compliance_control_set_decorator.rb index 7515316ce..73d65d54a 100644 --- a/app/decorators/compliance_control_set_decorator.rb +++ b/app/decorators/compliance_control_set_decorator.rb @@ -2,30 +2,31 @@ class ComplianceControlSetDecorator < Draper::Decorator delegate_all def action_links + policy = h.policy(object) links = [] - # if policy.clone? + if policy.edit? + links << Link.new( + content: h.t('compliance_control_sets.actions.edit'), + href: h.edit_compliance_control_set_path(object.id) + ) + end + + if policy.clone? links << Link.new( content: h.t('actions.clone'), href: h.clone_compliance_control_set_path(object.id) ) - # end + end - # if h.policy(object).destroy? + if policy.destroy? links << Link.new( content: h.destroy_link_content, href: h.compliance_control_set_path(object.id), method: :delete, data: { confirm: h.t('compliance_control_sets.actions.destroy_confirm') } ) - # end - - # if h.policy(object).edit? - links << Link.new( - content: h.t('compliance_control_sets.actions.edit'), - href: h.edit_compliance_control_set_path(object.id) - ) - # end + end links end diff --git a/app/policies/compliance_control_policy.rb b/app/policies/compliance_control_policy.rb index 09250f013..a09760128 100644 --- a/app/policies/compliance_control_policy.rb +++ b/app/policies/compliance_control_policy.rb @@ -6,17 +6,15 @@ class ComplianceControlPolicy < ApplicationPolicy end def destroy? - # user.has_permission?('compliance_controls.destroy') - true + user.has_permission?('compliance_controls.destroy') end def create? - # user.has_permission?('compliance_controls.create') - true + user.has_permission?('compliance_controls.create') end def update? - # user.has_permission?('compliance_controls.update') - true + user.has_permission?('compliance_controls.update') end + end diff --git a/app/policies/compliance_control_set_policy.rb b/app/policies/compliance_control_set_policy.rb index 12b829aa4..6288a2ff2 100644 --- a/app/policies/compliance_control_set_policy.rb +++ b/app/policies/compliance_control_set_policy.rb @@ -4,4 +4,20 @@ class ComplianceControlSetPolicy < ApplicationPolicy scope end end + + def destroy? + user.has_permission?('compliance_controls_sets.destroy') + end + + def create? + user.has_permission?('compliance_controls_sets.create') + end + + def update? + user.has_permission?('compliance_controls_sets.update') + end + + def clone? + create? + end end |
