From f733180f7fa6f85f1571da62b6f81070589a5353 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Fri, 10 Jun 2016 12:14:05 +0300 Subject: [PATCH 1/8] Strory#110308584 - hostname error responds in xml way of array (cherry picked from commit 7c1c065) --- app/views/epp/error.xml.builder | 8 +++++++- spec/epp/domain_spec.rb | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index 796856f4c..3f2aa37f0 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -5,7 +5,13 @@ xml.epp_head do xml.msg(x[:msg], 'lang' => 'en') xml.value('xmlns:obj' => 'urn:ietf:params:xml:ns:obj') do - xml.tag!("obj:#{x[:value][:obj]}", x[:value][:val]) + if (val = x[:value][:val]).respond_to?(:each) + val.each do |el| + xml.tag!("obj:#{x[:value][:obj]}", el) + end + else + xml.tag!("obj:#{x[:value][:obj]}", val) + end end if x[:value] x[:ext_values].each do |y| diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 8e3997649..ccf13c8b5 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -134,7 +134,7 @@ describe 'EPP Domain', epp: true do key = d.dnskeys.last - key.ds_alg.should == 3 + key.ds_alg.should == 5 key.ds_key_tag.should_not be_blank key.ds_digest_type.should == Setting.ds_algorithm From bfc47fa21eb23d42ed28a36a401c69398027a65e Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 14 Jun 2016 11:19:42 +0300 Subject: [PATCH 2/8] Strory#118822101 - update how schema is generated --- app/models/epp/domain.rb | 2 +- app/views/epp/error.xml.builder | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index c5e298cff..f97b1d164 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -160,7 +160,7 @@ class Epp::Domain < Domain code = registrant_frame.try(:text) if code.present? if action == 'chg' && registrant_change_prohibited? - add_epp_error('2304', nil, DomainStatus::SERVER_REGISTRANT_CHANGE_PROHIBITED, I18n.t(:object_status_prohibits_operation)) + add_epp_error('2304', "status", DomainStatus::SERVER_REGISTRANT_CHANGE_PROHIBITED, I18n.t(:object_status_prohibits_operation)) end regt = Registrant.find_by(code: code) if regt diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index 3f2aa37f0..ef92bdadd 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -7,10 +7,10 @@ xml.epp_head do xml.value('xmlns:obj' => 'urn:ietf:params:xml:ns:obj') do if (val = x[:value][:val]).respond_to?(:each) val.each do |el| - xml.tag!("obj:#{x[:value][:obj]}", el) + xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", el) end else - xml.tag!("obj:#{x[:value][:obj]}", val) + xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", val) end end if x[:value] From 8bd99a3c3b36c4133c8d2691e31ea0e8edeab8bd Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 14 Jun 2016 12:41:54 +0300 Subject: [PATCH 3/8] Strory#118822101 - update how schema is generated --- app/views/epp/error.xml.builder | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index ef92bdadd..c090cb840 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -5,12 +5,16 @@ xml.epp_head do xml.msg(x[:msg], 'lang' => 'en') xml.value('xmlns:obj' => 'urn:ietf:params:xml:ns:obj') do - if (val = x[:value][:val]).respond_to?(:each) + value = x[:value][:val] + attrs = {} + attrs["s"] = value if x[:value][:obj] == "status" + + if (val = value).respond_to?(:each) val.each do |el| - xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", el) + xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", el, attrs) end else - xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", val) + xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", val, attrs) end end if x[:value] From 58bdbb3f730df67c6a7275e364c06f621187a6da Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 21 Jun 2016 19:38:59 +0300 Subject: [PATCH 4/8] Story#118822101 - xmlns root element is type of object --- app/views/epp/error.xml.builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index c090cb840..43d50756f 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -4,7 +4,7 @@ xml.epp_head do xml.result('code' => x[:code]) do xml.msg(x[:msg], 'lang' => 'en') - xml.value('xmlns:obj' => 'urn:ietf:params:xml:ns:obj') do + xml.value("xmlns:#{controller.controller_name}" => 'https://epp.tld.ee/schema/all-ee-1.0.xsd') do value = x[:value][:val] attrs = {} attrs["s"] = value if x[:value][:obj] == "status" From 8839110f10c1ffb80567fe3bbbf80cb0a56e5164 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Mon, 27 Jun 2016 12:09:27 +0300 Subject: [PATCH 5/8] Story#118822101 - domains -> domain --- app/views/epp/error.xml.builder | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index 43d50756f..7dac4907a 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -3,18 +3,19 @@ xml.epp_head do @errors.each do |x| xml.result('code' => x[:code]) do xml.msg(x[:msg], 'lang' => 'en') + model_name = resource ? resource.model_name.singular.sub('epp_','') : controller.controller_name.singularize - xml.value("xmlns:#{controller.controller_name}" => 'https://epp.tld.ee/schema/all-ee-1.0.xsd') do + xml.value("xmlns:#{model_name}" => "https://epp.tld.ee/schema/#{model_name}-eis-1.0.xsd") do value = x[:value][:val] attrs = {} attrs["s"] = value if x[:value][:obj] == "status" if (val = value).respond_to?(:each) val.each do |el| - xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", el, attrs) + xml.tag!("#{model_name}:#{x[:value][:obj]}", el, attrs) end else - xml.tag!("#{controller.controller_name}:#{x[:value][:obj]}", val, attrs) + xml.tag!("#{model_name}:#{x[:value][:obj]}", val, attrs) end end if x[:value] From 0e4a03517f8b6c75f7e32e61aee95d2050bf2ff4 Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 28 Jul 2016 11:36:36 +0300 Subject: [PATCH 6/8] 118822101-status_added_for_error (cherry picked from commit ef0b067) --- app/models/domain.rb | 23 ++--------------------- app/models/domain_status.rb | 23 +++++++++++++++++++++++ app/models/epp/domain.rb | 3 ++- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 3751da5b6..772fdcf40 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -656,16 +656,7 @@ class Domain < ActiveRecord::Base end def pending_update_prohibited? - (statuses_was & [ - DomainStatus::PENDING_DELETE_CONFIRMATION, - DomainStatus::CLIENT_UPDATE_PROHIBITED, - DomainStatus::SERVER_UPDATE_PROHIBITED, - DomainStatus::PENDING_CREATE, - DomainStatus::PENDING_UPDATE, - DomainStatus::PENDING_DELETE, - DomainStatus::PENDING_RENEW, - DomainStatus::PENDING_TRANSFER - ]).present? + (statuses_was & DomainStatus::UPDATE_PROHIBIT_STATES).present? end def set_pending_update @@ -689,17 +680,7 @@ class Domain < ActiveRecord::Base end def pending_delete_prohibited? - (statuses_was & [ - DomainStatus::CLIENT_DELETE_PROHIBITED, - DomainStatus::SERVER_DELETE_PROHIBITED, - DomainStatus::CLIENT_UPDATE_PROHIBITED, - DomainStatus::SERVER_UPDATE_PROHIBITED, - DomainStatus::PENDING_CREATE, - DomainStatus::PENDING_RENEW, - DomainStatus::PENDING_TRANSFER, - DomainStatus::PENDING_UPDATE, - DomainStatus::PENDING_DELETE - ]).present? + (statuses_was & DomainStatus::DELETE_PROHIBIT_STATES).present? end # let's use positive method names diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index c784a86e3..4da6a4a3c 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -95,6 +95,29 @@ class DomainStatus < ActiveRecord::Base SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED ] + UPDATE_PROHIBIT_STATES = [ + DomainStatus::PENDING_DELETE_CONFIRMATION, + DomainStatus::CLIENT_UPDATE_PROHIBITED, + DomainStatus::SERVER_UPDATE_PROHIBITED, + DomainStatus::PENDING_CREATE, + DomainStatus::PENDING_UPDATE, + DomainStatus::PENDING_DELETE, + DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_TRANSFER + ] + + DELETE_PROHIBIT_STATES = [ + DomainStatus::CLIENT_DELETE_PROHIBITED, + DomainStatus::SERVER_DELETE_PROHIBITED, + DomainStatus::CLIENT_UPDATE_PROHIBITED, + DomainStatus::SERVER_UPDATE_PROHIBITED, + DomainStatus::PENDING_CREATE, + DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_TRANSFER, + DomainStatus::PENDING_UPDATE, + DomainStatus::PENDING_DELETE + ] + def epp_code_map { '2302' => [ # Object exists diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index f97b1d164..b7a0b4d52 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -11,7 +11,8 @@ class Epp::Domain < Domain return if is_admin # this bad hack for 109086524, refactor later return true if is_transfer || is_renewal return unless update_prohibited? || delete_prohibited? - add_epp_error('2304', nil, nil, I18n.t(:object_status_prohibits_operation)) + stat = (statuses && (DomainStatus::UPDATE_PROHIBIT_STATES + DomainStatus::DELETE_PROHIBIT_STATES)).first + add_epp_error('2304', 'status', stat, I18n.t(:object_status_prohibits_operation)) false end From 436846cfe9426e2d2cad0f284853610eab1de416 Mon Sep 17 00:00:00 2001 From: Stas Date: Sun, 31 Jul 2016 19:38:41 +0300 Subject: [PATCH 7/8] 118822101-builder_changes_for_array_error (cherry picked from commit e7841b5) --- app/models/nameserver.rb | 2 +- app/views/epp/error.xml.builder | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 86cd7e002..7b4daab3d 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -24,7 +24,7 @@ class Nameserver < ActiveRecord::Base def epp_code_map { '2302' => [ - [:hostname, :taken, { value: { obj: 'hostAttr', val: hostname } }] + [:hostname, :taken, { value: { obj: 'hostAttr', val: {'hostName': hostname} } }] ], '2005' => [ [:hostname, :invalid, { value: { obj: 'hostAttr', val: hostname } }], diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index 7dac4907a..fceb800b7 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -12,7 +12,13 @@ xml.epp_head do if (val = value).respond_to?(:each) val.each do |el| - xml.tag!("#{model_name}:#{x[:value][:obj]}", el, attrs) + if el.kind_of?(Array) + xml.tag!("#{model_name}:#{x[:value][:obj]}") do + xml.tag!("#{model_name}:#{el[0]}", el[1], attrs) + end + else + xml.tag!("#{model_name}:#{x[:value][:obj]}", el, attrs) + end end else xml.tag!("#{model_name}:#{x[:value][:obj]}", val, attrs) From 692de8fb0978e0f12057b01ccd11278e5ff0c6ef Mon Sep 17 00:00:00 2001 From: Stas Paaslane Date: Thu, 4 Aug 2016 16:47:08 +0300 Subject: [PATCH 8/8] 118822101-block_change (cherry picked from commit bb4f2de) --- app/models/epp/domain.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index b7a0b4d52..4ac84788b 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -11,7 +11,7 @@ class Epp::Domain < Domain return if is_admin # this bad hack for 109086524, refactor later return true if is_transfer || is_renewal return unless update_prohibited? || delete_prohibited? - stat = (statuses && (DomainStatus::UPDATE_PROHIBIT_STATES + DomainStatus::DELETE_PROHIBIT_STATES)).first + stat = (statuses & (DomainStatus::UPDATE_PROHIBIT_STATES + DomainStatus::DELETE_PROHIBIT_STATES)).first add_epp_error('2304', 'status', stat, I18n.t(:object_status_prohibits_operation)) false end