aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorRobert2017-10-03 21:20:16 +0200
committerRobert2017-10-09 15:04:22 +0200
commit2f68a7e9ea109c4667a64ee183c052eaa6b3d5e8 (patch)
tree20670e4eef1f33e04935150bd2d7f30e37f54cba /app
parentef82645b9a0227d7628c0cbac0df1c041ee83396 (diff)
downloadchouette-core-2f68a7e9ea109c4667a64ee183c052eaa6b3d5e8.tar.bz2
Refs: #4629@1.5h;
Specs and implements coherent direct and indirect ComplianceControlSet parentship for ComplianceControls
Diffstat (limited to 'app')
-rw-r--r--app/models/compliance_control.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
index 947a10719..7e4e22636 100644
--- a/app/models/compliance_control.rb
+++ b/app/models/compliance_control.rb
@@ -12,6 +12,13 @@ class ComplianceControl < ActiveRecord::Base
validates :origin_code, presence: true
validates :compliance_control_set, presence: true
+ validate def coherent_control_set
+ return true if compliance_control_block_id.nil?
+ ids = [compliance_control_block.compliance_control_set_id, compliance_control_set_id]
+ return true if ids.first == ids.last
+ errors.add(:coherent_control_set, I18n.t('compliance_controls.errors.incoherent_control_sets', indirect_set_id: ids.first, direct_set_id: ids.last))
+ end
+
class << self
def create *args
super.tap do | x |