mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 17:59:47 +02:00
parent
95e3ac5d51
commit
ae5ae9c60b
3 changed files with 59 additions and 71 deletions
58
app/models/concerns/domain/force_delete.rb
Normal file
58
app/models/concerns/domain/force_delete.rb
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
module Concerns::Domain::ForceDelete
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
included do
|
||||||
|
alias_attribute :force_delete_time, :force_delete_at
|
||||||
|
end
|
||||||
|
|
||||||
|
def force_deletable?
|
||||||
|
!statuses.include?(DomainStatus::FORCE_DELETE)
|
||||||
|
end
|
||||||
|
|
||||||
|
def force_delete?
|
||||||
|
statuses.include?(DomainStatus::FORCE_DELETE)
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_force_delete
|
||||||
|
self.statuses_backup = statuses
|
||||||
|
statuses.delete(DomainStatus::CLIENT_DELETE_PROHIBITED)
|
||||||
|
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
|
||||||
|
statuses.delete(DomainStatus::PENDING_UPDATE)
|
||||||
|
statuses.delete(DomainStatus::PENDING_TRANSFER)
|
||||||
|
statuses.delete(DomainStatus::PENDING_RENEW)
|
||||||
|
statuses.delete(DomainStatus::PENDING_CREATE)
|
||||||
|
|
||||||
|
statuses.delete(DomainStatus::FORCE_DELETE)
|
||||||
|
statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED)
|
||||||
|
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
||||||
|
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
|
||||||
|
statuses.delete(DomainStatus::SERVER_MANUAL_INZONE)
|
||||||
|
statuses.delete(DomainStatus::PENDING_DELETE)
|
||||||
|
|
||||||
|
statuses << DomainStatus::FORCE_DELETE
|
||||||
|
statuses << DomainStatus::SERVER_RENEW_PROHIBITED
|
||||||
|
statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||||
|
statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||||
|
statuses << DomainStatus::PENDING_DELETE
|
||||||
|
|
||||||
|
if (statuses & [DomainStatus::SERVER_HOLD, DomainStatus::CLIENT_HOLD]).empty?
|
||||||
|
statuses << DomainStatus::SERVER_MANUAL_INZONE
|
||||||
|
end
|
||||||
|
|
||||||
|
self.force_delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day unless force_delete_at
|
||||||
|
save!(validate: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
def unset_force_delete
|
||||||
|
s = []
|
||||||
|
s << DomainStatus::EXPIRED if statuses.include?(DomainStatus::EXPIRED)
|
||||||
|
s << DomainStatus::SERVER_HOLD if statuses.include?(DomainStatus::SERVER_HOLD)
|
||||||
|
s << DomainStatus::DELETE_CANDIDATE if statuses.include?(DomainStatus::DELETE_CANDIDATE)
|
||||||
|
|
||||||
|
self.statuses = (statuses_backup + s).uniq
|
||||||
|
|
||||||
|
self.force_delete_at = nil
|
||||||
|
self.statuses_backup = []
|
||||||
|
save(validate: false)
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,7 +0,0 @@
|
||||||
module Statuses
|
|
||||||
extend ActiveSupport::Concern
|
|
||||||
|
|
||||||
def force_delete?
|
|
||||||
statuses.include?(DomainStatus::FORCE_DELETE)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -2,9 +2,9 @@
|
||||||
class Domain < ActiveRecord::Base
|
class Domain < ActiveRecord::Base
|
||||||
include UserEvents
|
include UserEvents
|
||||||
include Versions # version/domain_version.rb
|
include Versions # version/domain_version.rb
|
||||||
include Statuses
|
|
||||||
include Concerns::Domain::Expirable
|
include Concerns::Domain::Expirable
|
||||||
include Concerns::Domain::Activatable
|
include Concerns::Domain::Activatable
|
||||||
|
include Concerns::Domain::ForceDelete
|
||||||
|
|
||||||
has_paper_trail class_name: "DomainVersion", meta: { children: :children_log }
|
has_paper_trail class_name: "DomainVersion", meta: { children: :children_log }
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ class Domain < ActiveRecord::Base
|
||||||
attr_accessor :legal_document_id
|
attr_accessor :legal_document_id
|
||||||
|
|
||||||
alias_attribute :on_hold_time, :outzone_at
|
alias_attribute :on_hold_time, :outzone_at
|
||||||
alias_attribute :force_delete_time, :force_delete_at
|
|
||||||
alias_attribute :outzone_time, :outzone_at
|
alias_attribute :outzone_time, :outzone_at
|
||||||
alias_attribute :delete_time, :delete_at
|
alias_attribute :delete_time, :delete_at
|
||||||
|
|
||||||
|
@ -422,10 +421,6 @@ class Domain < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
# rubocop: enable Metrics/CyclomaticComplexity
|
# rubocop: enable Metrics/CyclomaticComplexity
|
||||||
|
|
||||||
def force_deletable?
|
|
||||||
!statuses.include?(DomainStatus::FORCE_DELETE)
|
|
||||||
end
|
|
||||||
|
|
||||||
def registrant_verification_asked?
|
def registrant_verification_asked?
|
||||||
registrant_verification_asked_at.present? && registrant_verification_token.present?
|
registrant_verification_asked_at.present? && registrant_verification_token.present?
|
||||||
end
|
end
|
||||||
|
@ -538,64 +533,6 @@ class Domain < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
# rubocop:enable Lint/Loop
|
# rubocop:enable Lint/Loop
|
||||||
|
|
||||||
# rubocop:disable Metrics/AbcSize
|
|
||||||
# rubocop:disable Metrics/MethodLength
|
|
||||||
def set_force_delete
|
|
||||||
self.statuses_backup = statuses
|
|
||||||
statuses.delete(DomainStatus::CLIENT_DELETE_PROHIBITED)
|
|
||||||
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
|
|
||||||
statuses.delete(DomainStatus::PENDING_UPDATE)
|
|
||||||
statuses.delete(DomainStatus::PENDING_TRANSFER)
|
|
||||||
statuses.delete(DomainStatus::PENDING_RENEW)
|
|
||||||
statuses.delete(DomainStatus::PENDING_CREATE)
|
|
||||||
|
|
||||||
statuses.delete(DomainStatus::FORCE_DELETE)
|
|
||||||
statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED)
|
|
||||||
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
|
||||||
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
|
|
||||||
statuses.delete(DomainStatus::SERVER_MANUAL_INZONE)
|
|
||||||
statuses.delete(DomainStatus::PENDING_DELETE)
|
|
||||||
|
|
||||||
statuses << DomainStatus::FORCE_DELETE
|
|
||||||
statuses << DomainStatus::SERVER_RENEW_PROHIBITED
|
|
||||||
statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
|
|
||||||
statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
|
|
||||||
statuses << DomainStatus::PENDING_DELETE
|
|
||||||
|
|
||||||
if (statuses & [DomainStatus::SERVER_HOLD, DomainStatus::CLIENT_HOLD]).empty?
|
|
||||||
statuses << DomainStatus::SERVER_MANUAL_INZONE
|
|
||||||
end
|
|
||||||
|
|
||||||
self.force_delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day unless force_delete_at
|
|
||||||
|
|
||||||
transaction do
|
|
||||||
save!(validate: false)
|
|
||||||
registrar.messages.create!(
|
|
||||||
body: I18n.t('force_delete_set_on_domain', domain: name)
|
|
||||||
)
|
|
||||||
|
|
||||||
DomainDeleteForcedEmailJob.enqueue(id)
|
|
||||||
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
false
|
|
||||||
end
|
|
||||||
# rubocop: enable Metrics/MethodLength
|
|
||||||
# rubocop:enable Metrics/AbcSize
|
|
||||||
|
|
||||||
def unset_force_delete
|
|
||||||
s = []
|
|
||||||
s << DomainStatus::EXPIRED if statuses.include?(DomainStatus::EXPIRED)
|
|
||||||
s << DomainStatus::SERVER_HOLD if statuses.include?(DomainStatus::SERVER_HOLD)
|
|
||||||
s << DomainStatus::DELETE_CANDIDATE if statuses.include?(DomainStatus::DELETE_CANDIDATE)
|
|
||||||
|
|
||||||
self.statuses = (statuses_backup + s).uniq
|
|
||||||
|
|
||||||
self.force_delete_at = nil
|
|
||||||
self.statuses_backup = []
|
|
||||||
save(validate: false)
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_graceful_expired
|
def set_graceful_expired
|
||||||
self.outzone_at = expire_time + self.class.expire_warning_period
|
self.outzone_at = expire_time + self.class.expire_warning_period
|
||||||
self.delete_at = outzone_at + self.class.redemption_grace_period
|
self.delete_at = outzone_at + self.class.redemption_grace_period
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue