mirror of
https://github.com/internetee/registry.git
synced 2025-07-21 18:26:06 +02:00
Fix some epp tests
This commit is contained in:
parent
a740ed34f3
commit
f63eb66f02
6 changed files with 83 additions and 39 deletions
|
@ -3,12 +3,32 @@ class DelegationSigner < ActiveRecord::Base
|
|||
has_many :dnskeys
|
||||
|
||||
validate :validate_dnskeys_uniqueness
|
||||
validate :validate_dnskeys_count
|
||||
|
||||
|
||||
def epp_code_map
|
||||
{}
|
||||
sg = SettingGroup.domain_validation
|
||||
|
||||
{
|
||||
'2004' => [ # Parameter value range error
|
||||
[:dnskeys, :out_of_range,
|
||||
{
|
||||
min: sg.setting(Setting::DNSKEYS_MIN_COUNT).value,
|
||||
max: sg.setting(Setting::DNSKEYS_MAX_COUNT).value
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
def validate_dnskeys_uniqueness
|
||||
def validate_dnskeys_count
|
||||
sg = SettingGroup.domain_validation
|
||||
min, max = sg.setting(:dnskeys_min_count).value.to_i, sg.setting(:dnskeys_max_count).value.to_i
|
||||
return if dnskeys.reject(&:marked_for_destruction?).length.between?(min, max)
|
||||
errors.add(:dnskeys, :out_of_range, { min: min, max: max })
|
||||
end
|
||||
|
||||
def validate_dnskeys_uniqueness
|
||||
validated = []
|
||||
list = dnskeys.reject(&:marked_for_destruction?)
|
||||
list.each do |dnskey|
|
||||
|
|
|
@ -54,6 +54,7 @@ class Domain < ActiveRecord::Base
|
|||
validate :validate_tech_contacts_uniqueness
|
||||
validate :validate_admin_contacts_uniqueness
|
||||
validate :validate_domain_statuses_uniqueness
|
||||
# validate :validate_dnskeys_uniqueness
|
||||
validate :validate_nameserver_ips
|
||||
|
||||
attr_accessor :owner_contact_typeahead
|
||||
|
@ -158,6 +159,19 @@ class Domain < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def validate_dnskeys_uniqueness
|
||||
validated = []
|
||||
list = dnskeys.reject(&:marked_for_destruction?)
|
||||
list.each do |dnskey|
|
||||
next if dnskey.public_key.blank?
|
||||
existing = list.select { |x| x.public_key == dnskey.public_key }
|
||||
next unless existing.length > 1
|
||||
validated << dnskey.public_key
|
||||
errors.add(:dnskeys, :invalid) if errors[:dnskeys].blank?
|
||||
dnskey.errors.add(:public_key, :taken)
|
||||
end
|
||||
end
|
||||
|
||||
def validate_period
|
||||
return unless period.present?
|
||||
if period_unit == 'd'
|
||||
|
|
|
@ -9,4 +9,7 @@ class Setting < ActiveRecord::Base
|
|||
ALLOW_DS_DATA = 'allow_ds_data'
|
||||
ALLOW_DS_DATA_WITH_KEYS = 'allow_ds_data_with_keys'
|
||||
ALLOW_KEY_DATA = 'allow_key_data'
|
||||
DNSKEYS_MAX_COUNT = 'dnskeys_max_count'
|
||||
DNSKEYS_MIN_COUNT = 'dnskeys_min_count'
|
||||
|
||||
end
|
||||
|
|
|
@ -74,3 +74,7 @@ xml.epp_head do
|
|||
|
||||
xml << render('/epp/shared/trID')
|
||||
end
|
||||
|
||||
|
||||
9032
|
||||
72056
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue