From ac977d2b8c477b6f602a8ad4faf8ebfe7a706f06 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 10 Aug 2015 18:28:00 +0300 Subject: [PATCH] Check if domain is transferrable before transfer #2845 --- app/models/epp/domain.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 7ad6aadc0..9a366a367 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -579,6 +579,13 @@ class Epp::Domain < Domain # rubocop: disable Metrics/MethodLength # rubocop: disable Metrics/AbcSize def query_transfer(frame, current_user) + unless transferrable? + throw :epp_error, { + code: '2304', + msg: I18n.t(:object_status_prohibits_operation) + } + end + unless can_be_transferred_to?(current_user.registrar) throw :epp_error, { code: '2002', @@ -741,6 +748,17 @@ class Epp::Domain < Domain new_registrar != registrar end + def transferrable? + (statuses & [ + DomainStatus::PENDING_CREATE, + DomainStatus::PENDING_UPDATE, + DomainStatus::PENDING_DELETE, + DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_TRANSFER, + DomainStatus::FORCE_DELETE + ]).empty? + end + ## SHARED # For domain transfer