Fix some validations

This commit is contained in:
Martin Lensment 2014-10-06 17:32:35 +03:00
parent b351c97647
commit 79bfa3049e

View file

@ -105,9 +105,10 @@ class Domain < ActiveRecord::Base
def validate_nameservers_uniqueness def validate_nameservers_uniqueness
validated = [] validated = []
nameservers.reject(&:marked_for_destruction?).each do |ns| list = nameservers.reject(&:marked_for_destruction?)
list.each do |ns|
next if ns.hostname.blank? next if ns.hostname.blank?
existing = nameservers.reject(&:marked_for_destruction?).select { |x| x.hostname == ns.hostname } existing = list.select { |x| x.hostname == ns.hostname }
next unless existing.length > 1 next unless existing.length > 1
validated << ns.hostname validated << ns.hostname
errors.add(:nameservers, :invalid) if errors[:nameservers].blank? errors.add(:nameservers, :invalid) if errors[:nameservers].blank?
@ -147,9 +148,10 @@ class Domain < ActiveRecord::Base
def validate_domain_statuses_uniqueness def validate_domain_statuses_uniqueness
validated = [] validated = []
domain_statuses.reject(&:marked_for_destruction?).each do |status| list = domain_statuses.reject(&:marked_for_destruction?)
list.each do |status|
next if status.value.blank? next if status.value.blank?
existing = domain_statuses.select { |x| x.value == status.value } existing = list.select { |x| x.value == status.value }
next unless existing.length > 1 next unless existing.length > 1
validated << status.value validated << status.value
errors.add(:domain_statuses, :invalid) if errors[:domain_statuses].blank? errors.add(:domain_statuses, :invalid) if errors[:domain_statuses].blank?
@ -159,9 +161,10 @@ class Domain < ActiveRecord::Base
def validate_dnskeys_uniqueness def validate_dnskeys_uniqueness
validated = [] validated = []
dnskeys.reject(&:marked_for_destruction?).each do |dnskey| list = dnskeys.reject(&:marked_for_destruction?)
list.each do |dnskey|
next if dnskey.public_key.blank? next if dnskey.public_key.blank?
existing = dnskeys.select { |x| x.public_key == dnskey.public_key } existing = list.select { |x| x.public_key == dnskey.public_key }
next unless existing.length > 1 next unless existing.length > 1
validated << dnskey.public_key validated << dnskey.public_key
errors.add(:dnskeys, :invalid) if errors[:dnskeys].blank? errors.add(:dnskeys, :invalid) if errors[:dnskeys].blank?