aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorcedricnjanga2017-10-25 12:22:00 +0200
committerRobert2017-11-02 16:59:29 +0100
commit4bc481fe691668a642a186931946c22ea74b0b16 (patch)
tree5adf94b8396a14f52189eb34ad0132fc8050bd7c /app
parent13553712a18435f16f449a6d0c6a2ade24038797 (diff)
downloadchouette-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.rb36
-rw-r--r--app/decorators/compliance_control_set_decorator.rb23
-rw-r--r--app/policies/compliance_control_policy.rb10
-rw-r--r--app/policies/compliance_control_set_policy.rb16
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