diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index ff60efe02..f5db59ebb 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -450,7 +450,12 @@ class Epp::Domain < Domain def update(frame, current_user, verify = true) return super if frame.blank? - check_discarded + if discarded? + throw :epp_error, { + code: '2304', + msg: 'Object status prohibits operation', + } + end at = {}.with_indifferent_access at.deep_merge!(attrs_from(frame.css('chg'), current_user, 'chg')) @@ -525,7 +530,12 @@ class Epp::Domain < Domain end def epp_destroy(frame, user_id) - check_discarded + if discarded? + throw :epp_error, { + code: '2304', + msg: 'Object status prohibits operation', + } + end if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame)) frame.css("legalDocument").first.content = doc.path if doc&.persisted? @@ -590,7 +600,12 @@ class Epp::Domain < Domain ### TRANSFER ### def transfer(frame, action, current_user) - check_discarded + if discarded? + throw :epp_error, { + code: '2106', + msg: 'Object is not eligible for transfer', + } + end @is_transfer = true @@ -814,15 +829,4 @@ class Epp::Domain < Domain result end end - - private - - def check_discarded - if discarded? - throw :epp_error, { - code: '2105', - msg: I18n.t(:object_is_not_eligible_for_renewal), - } - end - end end diff --git a/app/models/epp/response/result/code.rb b/app/models/epp/response/result/code.rb index 2566279f5..d880df6c6 100644 --- a/app/models/epp/response/result/code.rb +++ b/app/models/epp/response/result/code.rb @@ -18,6 +18,7 @@ module Epp parameter_value_syntax_error: 2005, billing_failure: 2104, object_is_not_eligible_for_renewal: 2105, + object_is_not_eligible_for_transfer: 2106, authorization_error: 2201, invalid_authorization_information: 2202, object_does_not_exist: 2303, @@ -43,6 +44,7 @@ module Epp 2005 => 'Parameter value syntax error', 2104 => 'Billing failure', 2105 => 'Object is not eligible for renewal', + 2106 => 'Object is not eligible for transfer', 2201 => 'Authorization error', 2202 => 'Invalid authorization information', 2303 => 'Object does not exist', diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index c1f52166d..9cf26f206 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -64,7 +64,7 @@ class EppDomainDeleteBaseTest < EppTestCase assert_no_difference 'Domain.count' do post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - assert_epp_response :object_is_not_eligible_for_renewal + assert_epp_response :object_status_prohibits_operation end def test_requests_registrant_confirmation_when_required diff --git a/test/integration/epp/domain/domain_update_test.rb b/test/integration/epp/domain/domain_update_test.rb index fcd0da0c6..e36f5a4b7 100644 --- a/test/integration/epp/domain/domain_update_test.rb +++ b/test/integration/epp/domain/domain_update_test.rb @@ -47,6 +47,6 @@ class EppDomainUpdateTest < EppTestCase XML post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - assert_epp_response :object_is_not_eligible_for_renewal + assert_epp_response :object_status_prohibits_operation end end diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index babb7642a..877076be7 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -86,7 +86,7 @@ class EppDomainTransferRequestTest < EppTestCase @domain.reload assert_equal registrars(:bestnames), @domain.registrar - assert_epp_response :object_is_not_eligible_for_renewal + assert_epp_response :object_is_not_eligible_for_transfer end def test_same_registrar diff --git a/test/models/epp/response/result/code_test.rb b/test/models/epp/response/result/code_test.rb index 0a5f507d3..2ee0f013f 100644 --- a/test/models/epp/response/result/code_test.rb +++ b/test/models/epp/response/result/code_test.rb @@ -39,6 +39,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase parameter_value_syntax_error: 2005, billing_failure: 2104, object_is_not_eligible_for_renewal: 2105, + object_is_not_eligible_for_transfer: 2106, authorization_error: 2201, invalid_authorization_information: 2202, object_does_not_exist: 2303, @@ -66,6 +67,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase 2005 => 'Parameter value syntax error', 2104 => 'Billing failure', 2105 => 'Object is not eligible for renewal', + 2106 => 'Object is not eligible for transfer', 2201 => 'Authorization error', 2202 => 'Invalid authorization information', 2303 => 'Object does not exist',