Merge pull request #2167 from internetee/93-locked-domains-failed-after-fc

93 locked domains failed after fc
This commit is contained in:
Timo Võhmar 2021-10-21 11:02:06 +03:00 committed by GitHub
commit dbb58bc2e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 108 additions and 24 deletions

View file

@ -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)

View file

@ -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

View file

@ -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?

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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]

View file

@ -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