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