mirror of
https://github.com/internetee/registry.git
synced 2025-06-03 19:27:29 +02:00
Merge pull request #2167 from internetee/93-locked-domains-failed-after-fc
93 locked domains failed after fc
This commit is contained in:
commit
dbb58bc2e7
10 changed files with 108 additions and 24 deletions
|
@ -6,6 +6,11 @@ module Domains
|
|||
DomainStatus::SERVER_RENEW_PROHIBITED,
|
||||
DomainStatus::SERVER_TRANSFER_PROHIBITED,
|
||||
DomainStatus::CLIENT_HOLD]
|
||||
domain.force_delete_domain_statuses_history += [ DomainStatus::SERVER_TRANSFER_PROHIBITED,
|
||||
DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
|
||||
DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
] if domain.locked_by_registrant?
|
||||
domain.admin_store_statuses_history -= domain_statuses unless domain.admin_store_statuses_history.nil?
|
||||
rejected_statuses = domain.statuses.reject { |a| domain_statuses.include? a }
|
||||
domain.statuses = rejected_statuses
|
||||
domain.save(validate: false)
|
||||
|
|
|
@ -2,9 +2,13 @@ module Domains
|
|||
module CancelForceDelete
|
||||
class RestoreStatusesBeforeForceDelete < Base
|
||||
def execute
|
||||
domain.statuses = domain.force_delete_domain_statuses_history || []
|
||||
domain.statuses += domain.force_delete_domain_statuses_history || []
|
||||
domain.statuses += domain.admin_store_statuses_history || []
|
||||
domain.statuses.uniq!
|
||||
|
||||
domain.statuses_before_force_delete = nil
|
||||
domain.force_delete_domain_statuses_history = nil
|
||||
domain.admin_store_statuses_history = nil
|
||||
domain.save(validate: false)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -23,6 +23,7 @@ module Domain::RegistryLockable
|
|||
end
|
||||
|
||||
def apply_statuses_locked_statuses(extensions_prohibited:)
|
||||
self.admin_store_statuses_history = self.statuses
|
||||
self.statuses |= LOCK_STATUSES
|
||||
self.statuses |= EXTENSIONS_STATUS if Feature.obj_and_extensions_statuses_enabled? && extensions_prohibited
|
||||
self.locked_by_registrant_at = Time.zone.now
|
||||
|
@ -35,7 +36,7 @@ module Domain::RegistryLockable
|
|||
(statuses & [DomainStatus::PENDING_DELETE_CONFIRMATION,
|
||||
DomainStatus::PENDING_CREATE, DomainStatus::PENDING_UPDATE,
|
||||
DomainStatus::PENDING_DELETE, DomainStatus::PENDING_RENEW,
|
||||
DomainStatus::PENDING_TRANSFER, DomainStatus::FORCE_DELETE]).empty?
|
||||
DomainStatus::PENDING_TRANSFER]).empty?
|
||||
end
|
||||
|
||||
def locked_by_registrant?
|
||||
|
|
|
@ -122,7 +122,7 @@ class Domain < ApplicationRecord
|
|||
def status_is_consistant
|
||||
has_error = (hold_status? && statuses.include?(DomainStatus::SERVER_MANUAL_INZONE))
|
||||
if !has_error && (statuses & DELETE_STATUSES).any?
|
||||
has_error = statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
has_error = statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED unless locked_by_registrant?
|
||||
end
|
||||
errors.add(:domains, I18n.t(:object_status_prohibits_operation)) if has_error
|
||||
end
|
||||
|
|
|
@ -23,7 +23,7 @@ class RegistrantUser < User
|
|||
company_register.representation_rights(citizen_personal_code: ident,
|
||||
citizen_country_code: country.alpha3)
|
||||
end
|
||||
|
||||
|
||||
def contacts(representable: true)
|
||||
Contact.registrant_user_contacts(self, representable: representable)
|
||||
end
|
||||
|
|
|
@ -59,8 +59,8 @@ contact_org_enabled: 'false'
|
|||
# System default for legal document types is: pdf,asice,sce,asics,scs,adoc,edoc,bdoc,ddoc,zip,rar,gz,tar,7z,odt,doc,docx
|
||||
# legal_document_types: "pdf,asice,sce,asics,scs,adoc,edoc,bdoc,ddoc,zip,rar,gz,tar,7z,odt,doc,docx"
|
||||
|
||||
# obj_and_extensions_prohibited: 'true'
|
||||
# enable_lock_domain_with_new_statuses: 'true'
|
||||
obj_and_extensions_prohibited: 'true'
|
||||
enable_lock_domain_with_new_statuses: 'true'
|
||||
|
||||
#
|
||||
# REGISTRAR configuration (DEPP)
|
||||
|
|
|
@ -18,7 +18,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest
|
|||
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_DELETE_PROHIBITED))
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_TRANSFER_PROHIBITED))
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_UPDATE_PROHIBITED))
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED))
|
||||
|
||||
@domain.reload
|
||||
assert(@domain.locked_by_registrant?)
|
||||
|
@ -115,7 +115,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest
|
|||
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_DELETE_PROHIBITED))
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_TRANSFER_PROHIBITED))
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_UPDATE_PROHIBITED))
|
||||
assert(response_json[:statuses].include?(DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED))
|
||||
end
|
||||
|
||||
def test_locking_domains_returns_serialized_domain_object
|
||||
|
|
|
@ -23,7 +23,7 @@ class ReplaceUpdToObjUpdProhibitedJobTest < ActiveSupport::TestCase
|
|||
def test_start_adding_new_status_for_locked_domains
|
||||
@domain.apply_registry_lock(extensions_prohibited: false)
|
||||
assert @domain.locked_by_registrant?
|
||||
assert @domain.statuses.include? "serverUpdateProhibited"
|
||||
assert @domain.statuses.include? "serverObjUpdateProhibited"
|
||||
|
||||
# @domain.statuses += ["serverObjUpdateProhibited"]
|
||||
# @domain.save
|
||||
|
|
|
@ -30,23 +30,23 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
|||
assert @domain.locked_by_registrant?
|
||||
@domain.remove_registry_lock
|
||||
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
end
|
||||
|
||||
def test_restore_domain_statuses_after_unlock
|
||||
@domain.statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED]
|
||||
@domain.admin_store_statuses_history = [DomainStatus::SERVER_UPDATE_PROHIBITED]
|
||||
@domain.statuses = [DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED]
|
||||
@domain.admin_store_statuses_history = [DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED]
|
||||
@domain.save
|
||||
assert @domain.admin_store_statuses_history.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
assert @domain.admin_store_statuses_history.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
|
||||
@domain.apply_registry_lock(extensions_prohibited: false)
|
||||
assert @domain.locked_by_registrant?
|
||||
assert_equal @domain.statuses.sort, Domain::RegistryLockable::LOCK_STATUSES.sort
|
||||
|
||||
@domain.remove_registry_lock
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
end
|
||||
|
@ -62,7 +62,7 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
|||
|
||||
@domain.remove_registry_lock
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
end
|
||||
|
@ -73,12 +73,12 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
|||
check_statuses_lockable_domain
|
||||
assert(@domain.locked_by_registrant?)
|
||||
|
||||
statuses = @domain.statuses - [DomainStatus::SERVER_UPDATE_PROHIBITED]
|
||||
statuses = @domain.statuses - [DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED]
|
||||
@domain.update(statuses: statuses)
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
assert_not @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
|
||||
assert_not(@domain.locked_by_registrant?)
|
||||
end
|
||||
|
@ -88,7 +88,7 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
|||
@domain.apply_registry_lock(extensions_prohibited: false)
|
||||
|
||||
assert_equal(
|
||||
[DomainStatus::SERVER_UPDATE_PROHIBITED,
|
||||
[DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
|
||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
||||
DomainStatus::SERVER_TRANSFER_PROHIBITED],
|
||||
@domain.statuses
|
||||
|
@ -116,7 +116,7 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
|||
@domain.apply_registry_lock(extensions_prohibited: false)
|
||||
|
||||
assert_equal(
|
||||
[DomainStatus::SERVER_UPDATE_PROHIBITED,
|
||||
[DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
|
||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
||||
DomainStatus::SERVER_TRANSFER_PROHIBITED],
|
||||
@domain.statuses
|
||||
|
@ -139,17 +139,91 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_registry_lock_cannot_be_removed_if_statuses_were_set_by_admin
|
||||
@domain.statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
@domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
@domain.statuses << DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
@domain.statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
|
||||
refute(@domain.remove_registry_lock)
|
||||
end
|
||||
|
||||
def test_set_lock_for_domain_with_force_delete_status
|
||||
@domain.schedule_force_delete(type: :soft)
|
||||
@domain.reload
|
||||
|
||||
assert @domain.force_delete_scheduled?
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::FORCE_DELETE
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
|
||||
assert @domain.apply_registry_lock(extensions_prohibited: false)
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::FORCE_DELETE
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
|
||||
@domain.remove_registry_lock
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::FORCE_DELETE
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
end
|
||||
|
||||
def test_set_lock_for_domain_with_fd_status_and_remov_fd
|
||||
@domain.schedule_force_delete(type: :soft)
|
||||
@domain.reload
|
||||
|
||||
assert @domain.force_delete_scheduled?
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::FORCE_DELETE
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
|
||||
assert @domain.apply_registry_lock(extensions_prohibited: false)
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::FORCE_DELETE
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
|
||||
@domain.cancel_force_delete
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
end
|
||||
|
||||
def test_set_force_delete_for_locked_domain__and_remove_fc
|
||||
assert @domain.apply_registry_lock(extensions_prohibited: false)
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
|
||||
@domain.schedule_force_delete(type: :soft)
|
||||
@domain.reload
|
||||
|
||||
assert @domain.force_delete_scheduled?
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::FORCE_DELETE
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
|
||||
@domain.cancel_force_delete
|
||||
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def check_statuses_lockable_domain
|
||||
lock_statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED,
|
||||
lock_statuses = [DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
|
||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
||||
DomainStatus::SERVER_TRANSFER_PROHIBITED]
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ class FeatureTest < ActiveSupport::TestCase
|
|||
|
||||
assert_not Feature.enable_lock_domain_with_new_statuses?
|
||||
|
||||
assert_equal @domain.statuses, ["serverUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
||||
assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
||||
assert @domain.locked_by_registrant?
|
||||
end
|
||||
|
||||
|
@ -47,7 +47,7 @@ class FeatureTest < ActiveSupport::TestCase
|
|||
|
||||
assert_not Feature.enable_lock_domain_with_new_statuses?
|
||||
|
||||
assert_equal @domain.statuses, ["serverUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
||||
assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
||||
assert @domain.locked_by_registrant?
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue