Admin contact cannot be juridical

This commit is contained in:
Martin Lensment 2015-01-21 16:18:08 +02:00
parent bc80274109
commit 20be38fd0b
4 changed files with 359 additions and 277 deletions

View file

@ -124,12 +124,17 @@ class Epp::EppDomain < Domain
contacts.each do |k, v|
v.each do |x|
contact = Contact.find_by(code: x[:contact])
if contact
attach_contact(k, contact)
else
# Detailed error message with value to display in EPP response
unless contact
add_epp_error('2303', 'contact', x[:contact], [:domain_contacts, :not_found])
next
end
if k == :admin && contact.juridical?
add_epp_error('2306', 'contact', x[:contact], [:domain_contacts, :admin_contact_can_be_only_citizen])
next
end
attach_contact(k, contact)
end
end

View file

@ -88,6 +88,7 @@ en:
domain_contacts:
invalid: 'Contacts are invalid'
not_found: 'Contact was not found'
admin_contact_can_be_only_citizen: 'Admin contact can be only citizen'
admin_contacts:
out_of_range: 'Admin contacts count must be between %{min}-%{max}'
less_than_or_equal_to: 'Admin contacts count must be less than or equal to %{count}'

File diff suppressed because it is too large Load diff

View file

@ -888,6 +888,18 @@ describe 'EPP Domain', epp: true do
expect(Domain.count).to eq 0
expect(DomainContact.count).to eq 0
end
it 'cannot assign juridical person as admin contact' do
xml = domain_create_xml({
_anonymus: [
{ contact: { value: 'jd1234', attrs: { type: 'admin' } } }
]
})
response = epp_request(xml, :xml)
expect(response[:result_code]).to eq('2306')
expect(response[:msg]).to eq('Admin contact can be only citizen')
end
end
context 'with valid domain' do