implement domain statuses restore after domain locked, added test

This commit is contained in:
Oleg Hasjanov 2021-04-05 15:36:24 +03:00
parent 90cb154d15
commit 28a54d6612
6 changed files with 645 additions and 885 deletions

View file

@ -1,6 +1,8 @@
module Domain::RegistryLockable
extend ActiveSupport::Concern
# status_notes public.hstore,
LOCK_STATUSES = [DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
@ -9,6 +11,12 @@ module Domain::RegistryLockable
return unless registry_lockable?
return if locked_by_registrant?
self.locked_domain_statuses_history = self.statuses.map do |status|
if LOCK_STATUSES.include? status
status
end
end
transaction do
self.statuses |= LOCK_STATUSES
self.locked_by_registrant_at = Time.zone.now
@ -36,7 +44,9 @@ module Domain::RegistryLockable
transaction do
LOCK_STATUSES.each do |domain_status|
statuses.delete(domain_status)
unless self.locked_domain_statuses_history.include? domain_status
statuses.delete(domain_status)
end
end
self.locked_by_registrant_at = nil
alert_registrar_lock_changes!(lock: false)