Merge branch 'master' of github.com:domify/registry

This commit is contained in:
Martin Lensment 2015-07-20 18:19:11 +03:00
commit 8ed8687691
4 changed files with 165 additions and 111 deletions

View file

@ -94,12 +94,26 @@ class Epp::ContactsController < EppController
'postalInfo > addr > pc', 'postalInfo > addr > cc', 'voice', 'email' 'postalInfo > addr > pc', 'postalInfo > addr > cc', 'voice', 'email'
) )
ident = params[:parsed_frame].css('ident') ident = params[:parsed_frame].css('ident')
if ident.present? && ident.attr('type').blank?
epp_errors << {
code: '2003',
msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'type')
}
end
if ident.present? && ident.text != 'birthday' && ident.attr('cc').blank? if ident.present? && ident.text != 'birthday' && ident.attr('cc').blank?
epp_errors << { epp_errors << {
code: '2003', code: '2003',
msg: I18n.t('errors.messages.required_attribute_missing', key: 'ident country code missing') msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'cc')
} }
end end
# if ident.present? && ident.attr('cc').blank?
# epp_errors << {
# code: '2003',
# msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'cc')
# }
# end
contact_org_disabled contact_org_disabled
fax_disabled fax_disabled
status_editing_disabled status_editing_disabled

View file

@ -1,125 +1,126 @@
- children = HashWithIndifferentAccess.new(version.children) - if version.present? && domain.present?
- nameservers = children[:nameservers] || [] - children = HashWithIndifferentAccess.new(version.children)
- tech_contacts = children[:tech_contacts] || [] - nameservers = children[:nameservers] || []
- admin_contacts = children[:admin_contacts] || [] - tech_contacts = children[:tech_contacts] || []
- registrant = children[:registrant] || [] - admin_contacts = children[:admin_contacts] || []
- registrant = children[:registrant] || []
%td %td
%p.nowrap %p.nowrap
= l(domain.updated_at, format: :short) = l(domain.updated_at, format: :short)
= version.event = version.event
%p.text-right %p.text-right
= version.terminator = version.terminator
%td %td
%p
= "#{domain.period}#{domain.period_unit}"
= "#{l(domain.valid_from, format: :date)} - #{l(domain.valid_to, format: :date)}"
%p
= domain.status
%td
- registrant.each do |oc|
%p %p
= oc[:name] = "#{domain.period}#{domain.period_unit}"
= oc[:phone] = "#{l(domain.valid_from, format: :date)} - #{l(domain.valid_to, format: :date)}"
= oc[:email]
%p %p
= oc[:code] = domain.status
%td %td
- admin_contacts.each do |ac| - registrant.each do |oc|
%p
= oc[:name]
= oc[:phone]
= oc[:email]
%p
= oc[:code]
%td
- admin_contacts.each do |ac|
%p
= ac[:name]
= ac[:phone]
= ac[:email]
%p
= ac[:code]
%td
- tech_contacts.each do |tc|
%p
= tc[:name]
= tc[:phone]
= tc[:email]
%p
= tc[:code]
%td
- nameservers.each do |ns|
%p
= ns[:hostname]
%br
= ns[:ipv4]
= ns[:ipv6]
%td
%p %p
= ac[:name] = domain.registrar.name
= ac[:phone]
= ac[:email]
%p
= ac[:code]
%td -# %td
- tech_contacts.each do |tc| -# = version.children.inspect
%p
= tc[:name]
= tc[:phone]
= tc[:email]
%p
= tc[:code]
%td -# %td{ class: changes.include?(:domain) ? 'edit-highlight' : 'no-highlight' }
- nameservers.each do |ns| -# - if children[:domain]
%p
= ns[:hostname]
%br
= ns[:ipv4]
= ns[:ipv6]
%td
%p
= domain.registrar.name
-# %td
-# = version.children.inspect
-# %td{ class: changes.include?(:domain) ? 'edit-highlight' : 'no-highlight' }
-# - if children[:domain]
-# %p{:style => "font-size:x-small;"}
-# = children[:domain][:period]
-# = children[:domain][:period_unit] if children[:domain][:period]
-# - if children[:domain][:valid_to] && children[:domain][:valid_from]
-# = ","
-# = l(children[:domain][:valid_from], format: :date) + '-' + l(children[:domain][:valid_to], format: :date)
-# - if children[:domain].try(:[], :registrar_id)
-# = ","
-# = Registrar.find(children[:domain][:registrar_id]).try(:name)
-# - if children[:domain][:status]
-# = ',' + children[:domain][:status]
-# %td{ class: changes.include?(:registrant) ? 'edit-highlight' : 'no-highlight' }
-# - if children[:registrant]
-# %p{:style => "font-size:x-small;"}
-# = children[:registrant][:name]
-# = ","
-# = children[:registrant][:phone]
-# = ","
-# = children[:registrant][:email]
-# = ","
-# = children[:registrant][:code]
-# %td{ class: changes.include?(:admin_contacts) ? 'edit-highlight' : 'no-highlight' }
-# - if children[:admin_contacts]
-# - children[:admin_contacts].each do |ac|
-# %p{:style => "font-size:x-small;"} -# %p{:style => "font-size:x-small;"}
-# = ac[:name] -# = children[:domain][:period]
-# = "," -# = children[:domain][:period_unit] if children[:domain][:period]
-# = ac[:phone] -# - if children[:domain][:valid_to] && children[:domain][:valid_from]
-# = "," -# = ","
-# = ac[:email] -# = l(children[:domain][:valid_from], format: :date) + '-' + l(children[:domain][:valid_to], format: :date)
-# = "," -# - if children[:domain].try(:[], :registrar_id)
-# = ac[:code] -# = ","
-# = Registrar.find(children[:domain][:registrar_id]).try(:name)
-# - if children[:domain][:status]
-# = ',' + children[:domain][:status]
-# %td{ class: changes.include?(:tech_contacts) ? 'edit-highlight' : 'no-highlight' }
-# - if children[:tech_contacts] -# %td{ class: changes.include?(:registrant) ? 'edit-highlight' : 'no-highlight' }
-# - children[:tech_contacts].each do |tc| -# - if children[:registrant]
-# %p{:style => "font-size:x-small;"} -# %p{:style => "font-size:x-small;"}
-# = tc[:name] -# = children[:registrant][:name]
-# = "," -# = ","
-# = tc[:phone] -# = children[:registrant][:phone]
-# = "," -# = ","
-# = tc[:email] -# = children[:registrant][:email]
-# = "," -# = ","
-# = tc[:code] -# = children[:registrant][:code]
-# %td{ class: changes.include?(:nameservers) ? 'edit-highlight' : 'no-highlight' } -# %td{ class: changes.include?(:admin_contacts) ? 'edit-highlight' : 'no-highlight' }
-# - if children[:nameservers] -# - if children[:admin_contacts]
-# - children[:nameservers].each do |ns| -# - children[:admin_contacts].each do |ac|
-# %p{:style => "font-size:x-small;"} -# %p{:style => "font-size:x-small;"}
-# = ns[:hostname] -# = ac[:name]
-# = "," -# = ","
-# = ns[:ipv4] || ns[:ipv6] -# = ac[:phone]
-# = ","
-# = ac[:email]
-# = ","
-# = ac[:code]
-# %td -# %td{ class: changes.include?(:tech_contacts) ? 'edit-highlight' : 'no-highlight' }
-# %p{ :style => 'font-size:x-small;' } -# - if children[:tech_contacts]
-# = l(version.created_at, format: :short) -# - children[:tech_contacts].each do |tc|
-# = whodunnit_with_protocol(version.whodunnit) -# %p{:style => "font-size:x-small;"}
-# = version.event -# = tc[:name]
-# = ","
-# = tc[:phone]
-# = ","
-# = tc[:email]
-# = ","
-# = tc[:code]
-# %td{ class: changes.include?(:nameservers) ? 'edit-highlight' : 'no-highlight' }
-# - if children[:nameservers]
-# - children[:nameservers].each do |ns|
-# %p{:style => "font-size:x-small;"}
-# = ns[:hostname]
-# = ","
-# = ns[:ipv4] || ns[:ipv6]
-# %td
-# %p{ :style => 'font-size:x-small;' }
-# = l(version.created_at, format: :short)
-# = whodunnit_with_protocol(version.whodunnit)
-# = version.event

View file

@ -256,7 +256,7 @@ en:
invalid_type: 'PostalInfo type is invalid' invalid_type: 'PostalInfo type is invalid'
unimplemented_command: 'Unimplemented command' unimplemented_command: 'Unimplemented command'
domain_exists_but_belongs_to_other_registrar: 'Domain exists but belongs to other registrar' domain_exists_but_belongs_to_other_registrar: 'Domain exists but belongs to other registrar'
required_attribute_missing: Required attributes missing required_ident_attribute_missing: "Required ident attribute missing: %{key}"
code: 'Code' code: 'Code'
value: 'Value' value: 'Value'

View file

@ -170,12 +170,26 @@ describe 'EPP Contact', epp: true do
Contact.last.code.should == 'FIRST0:ABC:ABC:12345' Contact.last.code.should == 'FIRST0:ABC:ABC:12345'
end end
it 'should add registrar prefix for code when missing' do
response = create_request({ id: { value: 'abc:ABC:12345' } })
response[:msg].should == 'Command completed successfully'
response[:result_code].should == '1000'
Contact.last.code.should == 'FIRST0:ABC:ABC:12345'
end
it 'should not allow spaces in custom code' do it 'should not allow spaces in custom code' do
response = create_request({ id: { value: 'abc 123' } }) response = create_request({ id: { value: 'abc 123' } })
response[:msg].should == 'is invalid [code]' response[:msg].should == 'is invalid [code]'
response[:result_code].should == '2005' response[:result_code].should == '2005'
end end
fit 'should not allow spaces in custom code' do
response = create_request({ id: { value: '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' } })
response[:msg].should == 'is invalid [code]'
response[:result_code].should == '2005'
end
it 'should not saves ident type with wrong country code' do it 'should not saves ident type with wrong country code' do
extension = { extension = {
ident: { ident: {
@ -189,6 +203,31 @@ describe 'EPP Contact', epp: true do
response[:result_code].should == '2005' response[:result_code].should == '2005'
end end
it 'should return country missing' do
extension = {
ident: {
value: '1990-22-12',
attrs: { type: 'birthday' }
}
}
response = create_request({}, extension, validate_input: false)
response[:msg].should ==
'Required ident attribute missing: cc'
response[:result_code].should == '2003'
end
it 'should return country missing' do
extension = {
ident: {
value: '1990-22-12'
}
}
response = create_request({}, extension, validate_input: false)
response[:msg].should ==
'Required ident attribute missing: type'
response[:result_code].should == '2003'
end
it 'should add registrar prefix for code when legacy prefix present' do it 'should add registrar prefix for code when legacy prefix present' do
response = create_request({ id: { value: 'CID:FIRST0:abc:ABC:NEW:12345' } }) response = create_request({ id: { value: 'CID:FIRST0:abc:ABC:NEW:12345' } })
response[:msg].should == 'Command completed successfully' response[:msg].should == 'Command completed successfully'