mirror of
https://github.com/internetee/registry.git
synced 2025-08-11 20:19:34 +02:00
Merge pull request #2432 from internetee/missing-force-delete-template
Missing force delete template
This commit is contained in:
commit
1b7f8791c8
10 changed files with 135 additions and 3 deletions
|
@ -11,7 +11,7 @@ module Domains
|
||||||
outzone_date: domain.outzone_date,
|
outzone_date: domain.outzone_date,
|
||||||
purge_date: domain.purge_date)
|
purge_date: domain.purge_date)
|
||||||
|
|
||||||
return if domain.registrar.notifications.last.text.include? template
|
return if domain.registrar&.notifications&.last&.text&.include? template
|
||||||
|
|
||||||
domain.registrar.notifications.create!(text: template)
|
domain.registrar.notifications.create!(text: template)
|
||||||
end
|
end
|
||||||
|
@ -23,7 +23,7 @@ module Domains
|
||||||
purge_date: domain.purge_date,
|
purge_date: domain.purge_date,
|
||||||
email: email)
|
email: email)
|
||||||
|
|
||||||
return if domain.registrar.notifications.last.text.include? template
|
return if domain.registrar&.notifications&.last&.text&.include? template
|
||||||
|
|
||||||
domain.registrar.notifications.create!(text: template)
|
domain.registrar.notifications.create!(text: template)
|
||||||
end
|
end
|
||||||
|
|
|
@ -34,7 +34,13 @@ module Domain::ForceDelete
|
||||||
reason = explicit&.downcase
|
reason = explicit&.downcase
|
||||||
return reason if %w[invalid_email invalid_phone].include?(reason)
|
return reason if %w[invalid_email invalid_phone].include?(reason)
|
||||||
|
|
||||||
registrant.org? ? 'legal_person' : 'private_person'
|
if contact_emails_verification_failed.present?
|
||||||
|
'invalid_email'
|
||||||
|
elsif registrant.org?
|
||||||
|
'legal_person'
|
||||||
|
else
|
||||||
|
'private_person'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def force_delete_scheduled?
|
def force_delete_scheduled?
|
||||||
|
|
|
@ -5,6 +5,10 @@ module EmailVerifable
|
||||||
scope :recently_not_validated, -> { where.not(id: ValidationEvent.validated_ids_by(name)) }
|
scope :recently_not_validated, -> { where.not(id: ValidationEvent.validated_ids_by(name)) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def email_verification_failed?
|
||||||
|
need_to_start_force_delete?
|
||||||
|
end
|
||||||
|
|
||||||
def validate_email_data(level:, count:)
|
def validate_email_data(level:, count:)
|
||||||
validation_events.order(created_at: :desc).limit(count).all? do |event|
|
validation_events.order(created_at: :desc).limit(count).all? do |event|
|
||||||
event.check_level == level.to_s && event.failed?
|
event.check_level == level.to_s && event.failed?
|
||||||
|
|
|
@ -24,6 +24,11 @@ class Contact < ApplicationRecord
|
||||||
alias_attribute :kind, :ident_type
|
alias_attribute :kind, :ident_type
|
||||||
alias_attribute :copy_from_id, :original_id # Old attribute name; for PaperTrail
|
alias_attribute :copy_from_id, :original_id # Old attribute name; for PaperTrail
|
||||||
|
|
||||||
|
scope :email_verification_failed, lambda {
|
||||||
|
joins('LEFT JOIN email_address_verifications emv ON contacts.email = emv.email')
|
||||||
|
.where('success = false and verified_at IS NOT NULL')
|
||||||
|
}
|
||||||
|
|
||||||
scope :with_different_company_name, (lambda do |company|
|
scope :with_different_company_name, (lambda do |company|
|
||||||
where("ident = ? AND ident_country_code = 'EE' AND name != ?",
|
where("ident = ? AND ident_country_code = 'EE' AND name != ?",
|
||||||
company.registration_number,
|
company.registration_number,
|
||||||
|
|
|
@ -725,6 +725,10 @@ class Domain < ApplicationRecord
|
||||||
DNS::DomainName.new(name)
|
DNS::DomainName.new(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def contact_emails_verification_failed
|
||||||
|
contacts.select(&:email_verification_failed?)&.map(&:email)&.uniq
|
||||||
|
end
|
||||||
|
|
||||||
def as_csv_row
|
def as_csv_row
|
||||||
[
|
[
|
||||||
name,
|
name,
|
||||||
|
|
|
@ -52,6 +52,10 @@ class DomainPresenter
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def contact_emails_verification_failed
|
||||||
|
domain.contact_emails_verification_failed.join(', ')
|
||||||
|
end
|
||||||
|
|
||||||
def remove_registry_lock_btn
|
def remove_registry_lock_btn
|
||||||
return unless domain.locked_by_registrant?
|
return unless domain.locked_by_registrant?
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
<p>Lugupeetud domeeni <%= @domain.name %> registreerija/halduskontakt</p>
|
||||||
|
|
||||||
|
<p>Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et domeeni <%= @domain.name %> kontaktandmed on puudulikud - eposti aadress <%= @domain.contact_emails_verification_failed %>.</p>
|
||||||
|
|
||||||
|
<p>Et see olukord on vastuolus .ee <a href='https://www.internet.ee/domains/ee-domain-regulation'>domeenireeglitega</a> algatas EIS <%= @delete_period_length %> päeva pikkuse kustutusmenetluse. Menetluse käigus on domeen <%= @expire_warning_period %> esimest päeva internetis kättesaadav.</p>
|
||||||
|
|
||||||
|
<p>Andmete parandamiseks pöörduge palun oma registripidaja <%= @registrar.name %> poole või isiklike ja oma ettevõtte andmete puhul <a href="https://registrant.internet.ee/">registreerija portaali</a>.</p>
|
||||||
|
|
||||||
|
<p>Kui kontaktandmed ei ole <%= @delete_period_length %> päeva jooksul parandatud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile <a href="https://auction.internet.ee">.ee oksjonikeskkonda</a>. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe <a href="https://www.internet.ee/domeenid/domeenide-oksjonikeskkonna-kasutajatingimused#3-oksjonikeskkonna-enampakkumisel-osalemise-tingimused">siit</a>.</p>
|
||||||
|
|
||||||
|
<p>Lisaküsimuste korral võtke palun ühendust oma registripidajaga:</p>
|
||||||
|
<%= render 'mailers/shared/registrar/registrar.et.html', registrar: @registrar %>
|
||||||
|
<%= render 'mailers/shared/signatures/signature.et.html' %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>Dear registrant/administrative contact of .ee domain,</p>
|
||||||
|
|
||||||
|
<p>Estonian Internet Foundation has learned that contact data of the domain <%= @domain.name %> s invalid - email(s) <%= @domain.contact_emails_verification_failed %>.</p>
|
||||||
|
|
||||||
|
<p>Since this is a violation of <a href='https://www.internet.ee/domains/ee-domain-regulation'>Estonian domain regulations</a>, <%= @delete_period_length %>-day deletion process has started for the <%= @domain.name %> domain. For the first <%= @expire_warning_period %> days the domain will remain available on the Internet during the deletion process.</p>
|
||||||
|
|
||||||
|
<p>Please, contact your registrar <%= @registrar.name %> with updated contact data, or in case of your personal or business data use <a href="https://registrant.internet.ee/">.ee portal for registrants</a></p>
|
||||||
|
|
||||||
|
<p>If the data is not fixed within <%= @delete_period_length %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the <a href="https://auction.internet.ee">.ee auction environment</a>. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results <a href="https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment">here</a>.</p>
|
||||||
|
|
||||||
|
<p>Should you have additional questions, please contact your registrar:</p>
|
||||||
|
<%= render 'mailers/shared/registrar/registrar.en.html', registrar: @registrar %>
|
||||||
|
<%= render 'mailers/shared/signatures/signature.en.html' %>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>Уважаемый регистрант/административный контакт домена .ee</p>
|
||||||
|
|
||||||
|
<p>Целевому учреждению Eesti Internet (EIS) стало известно, что контактные данные домена <%= @registrant.reg_no %> неверны - электронная почта <%= @domain.contact_emails_verification_failed %>.</p>
|
||||||
|
|
||||||
|
<p>Так как это является нарушением <a href='https://www.internet.ee/domains/ee-domain-regulation'>Правил домена .ee</a>, <%= @delete_period_length %>-дневный процесс удаления начат для доменного имени <%= @domain.name %>. В течение первых <%= @expire_warning_period %> дней домен будет доступен в интернете.</p>
|
||||||
|
|
||||||
|
<p>Для уточнения контактных данных, пожалуйста, свяжитесь с регистратором <%= @registrar.name %>, либо воспользуйтесь <a href="https://registrant.internet.ee/">порталом для регистрантов</a></p>
|
||||||
|
|
||||||
|
<p>Если контактные данные не будут исправлены в течение <%= @delete_period_length %> дней, домен <%= @domain.name %> отправится <%= @domain.force_delete_date %> на доменный аукцион в <a href="https://auction.internet.ee">аукционной среде.ee</a>. Если в течение 24 часов в отношении домена <%= @domain.name %> е поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». О других возможных результатах аукциона читайте <a href="https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment">здесь</a>.</p>
|
||||||
|
|
||||||
|
<p>В случае возникновения дополнительных вопросов свяжитесь, пожалуйста, со своим регистратором:
|
||||||
|
<%= render 'mailers/shared/registrar/registrar.ru.html', registrar: @registrar %></p>
|
||||||
|
|
||||||
|
<%= render 'mailers/shared/signatures/signature.ru.html' %>
|
|
@ -0,0 +1,45 @@
|
||||||
|
<p>Lugupeetud domeeni <%= @domain.name %> registreerija/halduskontakt</p>
|
||||||
|
|
||||||
|
<p>Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et domeeni <%= @domain.name %> kontaktandmed on puudulikud - eposti aadress <%= @domain.contact_emails_verification_failed %></p>
|
||||||
|
|
||||||
|
<p>Et see olukord on vastuolus .ee <a href='https://www.internet.ee/domains/ee-domain-regulation'>domeenireeglitega</a> algatas EIS <%= @delete_period_length %> päeva pikkuse kustutusmenetluse. Menetluse käigus on domeen <%= @expire_warning_period %> esimest päeva internetis kättesaadav.</p>
|
||||||
|
|
||||||
|
<p>Andmete parandamiseks pöörduge palun oma registripidaja <%= @registrar.name %> poole või isiklike ja oma ettevõtte andmete puhul <a href="https://registrant.internet.ee/">registreerija portaali</a>.</p>
|
||||||
|
|
||||||
|
<p>Kui kontaktandmed ei ole <%= @delete_period_length %> päeva jooksul parandatud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile <a href="https://auction.internet.ee">.ee oksjonikeskkonda</a>. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe <a href="https://www.internet.ee/domeenid/domeenide-oksjonikeskkonna-kasutajatingimused#3-oksjonikeskkonna-enampakkumisel-osalemise-tingimused">siit</a>.</p>
|
||||||
|
|
||||||
|
<p>Lisaküsimuste korral võtke palun ühendust oma registripidajaga:</p>
|
||||||
|
<%= render 'mailers/shared/registrar/registrar.et.html', registrar: @registrar %>
|
||||||
|
<%= render 'mailers/shared/signatures/signature.et.html' %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>Dear registrant/administrative contact of .ee domain,</p>
|
||||||
|
|
||||||
|
<p>Estonian Internet Foundation has learned that contact data of the domain <%= @domain.name %> s invalid - email(s) <%= @domain.contact_emails_verification_failed %>.</p>
|
||||||
|
|
||||||
|
<p>Since this is a violation of <a href='https://www.internet.ee/domains/ee-domain-regulation'>Estonian domain regulations</a>, <%= @delete_period_length %>-day deletion process has started for the <%= @domain.name %> domain. For the first <%= @expire_warning_period %> days the domain will remain available on the Internet during the deletion process.</p>
|
||||||
|
|
||||||
|
<p>Please, contact your registrar <%= @registrar.name %> with updated contact data, or in case of your personal or business data use <a href="https://registrant.internet.ee/">.ee portal for registrants</a></p>
|
||||||
|
|
||||||
|
<p>If the data is not fixed within <%= @delete_period_length %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the <a href="https://auction.internet.ee">.ee auction environment</a>. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results <a href="https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment">here</a>.</p>
|
||||||
|
|
||||||
|
<p>Should you have additional questions, please contact your registrar:</p>
|
||||||
|
<%= render 'mailers/shared/registrar/registrar.en.html', registrar: @registrar %>
|
||||||
|
<%= render 'mailers/shared/signatures/signature.en.html' %>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>Уважаемый регистрант/административный контакт домена .ee</p>
|
||||||
|
|
||||||
|
<p>Целевому учреждению Eesti Internet (EIS) стало известно, что контактные данные домена <%= @registrant.reg_no %> неверны - электронная почта <%= @domain.contact_emails_verification_failed %>.</p>
|
||||||
|
|
||||||
|
<p>Так как это является нарушением <a href='https://www.internet.ee/domains/ee-domain-regulation'>Правил домена .ee</a>, <%= @delete_period_length %>-дневный процесс удаления начат для доменного имени <%= @domain.name %>. В течение первых <%= @expire_warning_period %> дней домен будет доступен в интернете.</p>
|
||||||
|
|
||||||
|
<p>Для уточнения контактных данных, пожалуйста, свяжитесь с регистратором <%= @registrar.name %>, либо воспользуйтесь <a href="https://registrant.internet.ee/">порталом для регистрантов</a></p>
|
||||||
|
|
||||||
|
<p>Если контактные данные не будут исправлены в течение <%= @delete_period_length %> дней, домен <%= @domain.name %> отправится <%= @domain.force_delete_date %> на доменный аукцион в <a href="https://auction.internet.ee">аукционной среде.ee</a>. Если в течение 24 часов в отношении домена <%= @domain.name %> е поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». О других возможных результатах аукциона читайте <a href="https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment">здесь</a>.</p>
|
||||||
|
|
||||||
|
<p>В случае возникновения дополнительных вопросов свяжитесь, пожалуйста, со своим регистратором:
|
||||||
|
<%= render 'mailers/shared/registrar/registrar.ru.html', registrar: @registrar %></p>
|
||||||
|
|
||||||
|
<%= render 'mailers/shared/signatures/signature.ru.html' %>
|
|
@ -4,6 +4,8 @@ task check_force_delete: :environment do
|
||||||
|
|
||||||
invalid_contact_ids = validations.select do |validation|
|
invalid_contact_ids = validations.select do |validation|
|
||||||
contact = validation.validation_eventable
|
contact = validation.validation_eventable
|
||||||
|
next if contact.nil?
|
||||||
|
|
||||||
contact.need_to_start_force_delete? || contact.need_to_lift_force_delete?
|
contact.need_to_start_force_delete? || contact.need_to_lift_force_delete?
|
||||||
end.pluck(:validation_eventable_id)
|
end.pluck(:validation_eventable_id)
|
||||||
|
|
||||||
|
|
|
@ -73,4 +73,21 @@ class DomainDeleteMailerTest < ActionMailer::TestCase
|
||||||
' / Domain shop.test is in deletion process' \
|
' / Domain shop.test is in deletion process' \
|
||||||
' / Домен shop.test в процессе удаления', email.subject
|
' / Домен shop.test в процессе удаления', email.subject
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_forced_invalid_email
|
||||||
|
@domain.update(template_name: 'invalid_email')
|
||||||
|
@domain.reload
|
||||||
|
|
||||||
|
email = DomainDeleteMailer.forced(domain: @domain,
|
||||||
|
registrar: @domain.registrar,
|
||||||
|
registrant: @domain.registrant,
|
||||||
|
template_name: @domain.template_name).deliver_now
|
||||||
|
|
||||||
|
assert_emails 1
|
||||||
|
assert_equal ['legal@registry.test'], email.from
|
||||||
|
assert @domain.force_delete_contact_emails.sort == email.to.sort
|
||||||
|
assert_equal 'Domeen shop.test on kustutusmenetluses' \
|
||||||
|
' / Domain shop.test is in deletion process' \
|
||||||
|
' / Домен shop.test в процессе удаления', email.subject
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue