diff --git a/app/mailers/domain_mailer.rb b/app/mailers/domain_mailer.rb index e53c6d596..905927344 100644 --- a/app/mailers/domain_mailer.rb +++ b/app/mailers/domain_mailer.rb @@ -117,26 +117,20 @@ class DomainMailer < ApplicationMailer name: @domain.name)} [#{@domain.name}]") end - def force_delete(domain_id, should_deliver) - @domain = Domain.find_by(id: domain_id) - return if delivery_off?(@domain, should_deliver) - emails = ([@domain.registrant.email] + @domain.admin_contacts.map { |x| format(x.email) }).uniq - return if whitelist_blocked?(emails) + def force_delete(domain:) + @domain = DomainPresenter.new(domain: domain, view: view_context) + @registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context) + @registrant = RegistrantPresenter.new(registrant: domain.registrant, view: view_context) - formatted_emails = emails.map { |x| format(x) } - mail(to: formatted_emails, - subject: "#{I18n.t(:force_delete_subject)}" - ) + mail(to: domain.primary_contact_emails) end def expiration(domain:) @domain = DomainPresenter.new(domain: domain, view: view_context) @registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context) - recipients = domain.admin_contact_emails << domain.registrant_email - subject = default_i18n_subject(domain_name: domain.name) - mail(to: recipients, subject: subject) + mail(to: domain.primary_contact_emails, subject: subject) end private diff --git a/app/models/domain.rb b/app/models/domain.rb index 156f9bafa..fad363bed 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -12,6 +12,7 @@ class Domain < ActiveRecord::Base alias_attribute :on_hold_time, :outzone_at alias_attribute :delete_time, :delete_at + alias_attribute :force_delete_time, :force_delete_at # TODO: whois requests ip whitelist for full info for own domains and partial info for other domains # TODO: most inputs should be trimmed before validatation, probably some global logic? @@ -564,7 +565,7 @@ class Domain < ActiveRecord::Base registrar.messages.create!( body: I18n.t('force_delete_set_on_domain', domain: name) ) - DomainMailer.force_delete(id, true).deliver + DomainMailer.force_delete(domain: self).deliver return true end false @@ -743,6 +744,10 @@ class Domain < ActiveRecord::Base nameservers.hostnames end + def primary_contact_emails + admin_contact_emails << registrant_email + end + def self.to_csv CSV.generate do |csv| csv << column_names diff --git a/app/presenters/domain_presenter.rb b/app/presenters/domain_presenter.rb index ea8b0ba22..b09743c5e 100644 --- a/app/presenters/domain_presenter.rb +++ b/app/presenters/domain_presenter.rb @@ -14,6 +14,10 @@ class DomainPresenter view.l(domain.delete_time, format: :date) if domain.delete_time end + def force_delete_date + view.l(domain.force_delete_time, format: :date) if domain.force_delete_time + end + def admin_contact_names domain.admin_contact_names.join(', ') end diff --git a/app/views/mailers/domain_mailer/expiration.html.erb b/app/views/mailers/domain_mailer/expiration.html.erb index d06a8803e..9c1d925f2 100644 --- a/app/views/mailers/domain_mailer/expiration.html.erb +++ b/app/views/mailers/domain_mailer/expiration.html.erb @@ -10,8 +10,14 @@ Domeeni <%= @domain.name %> kohta on registris järgmised andmed: Registreerija: <%= @domain.registrant_name %>
Halduskontakt: <%= @domain.admin_contact_names %>
Tehniline kontakt: <%= @domain.tech_contact_names %>
-Registripidaja: <%= @registrar.name %>
Nimeserverid: <%= @domain.nameserver_names %>
+ +

Registripidaja:
+<%= @registrar.name %>
+Email: <%= @registrar.email %>
+Telefon: <%= @registrar.phone %>
+Veebileht: <%= @registrar.url %>

+ Ülevaate kõikidest endaga seotud domeenidest saate registreerija portaalist. <%= ENV['registrant_url'] %>.


Lugupidamisega
@@ -31,8 +37,14 @@ The following data for the <%= @domain.name %> domain have been entered into the Registrant: <%= @domain.registrant_name %>
Administrative contact: <%= @domain.admin_contact_names %>
Technical contact: <%= @domain.tech_contact_names %>
-Registrar: <%= @registrar.name %>
Name servers: <%= @domain.nameserver_names %>
+ +

Registrar:
+<%= @registrar.name %>
+Email: <%= @registrar.email %>
+Telefon: <%= @registrar.phone %>
+Veebileht: <%= @registrar.url %>

+ You can find an overview of all your domains at the registrant's portal. <%= ENV['registrant_url'] %>.


Best Regards,
@@ -57,8 +69,14 @@ Estonian Internet Foundation Регистрант: <%= @domain.registrant_name %>
Административный контакт: <%= @domain.admin_contact_names %>
Технический контакт: <%= @domain.tech_contact_names %>
-Регистратор: <%= @registrar.name %>
Серверы доменных имен: <%= @domain.nameserver_names %>
+ +

Регистратор:
+<%= @registrar.name %>
+Электронная почта: <%= @registrar.email %>
+Телефон: <%= @registrar.phone %>
+Веб-сайт: <%= @registrar.url %>

+ Обзор всех связанных с Вами доменов можете получить на портале регистранта. <%= ENV['registrant_url'] %>.


diff --git a/app/views/mailers/domain_mailer/expiration.text.erb b/app/views/mailers/domain_mailer/expiration.text.erb index 7cfa9a9fc..ef8cce36c 100644 --- a/app/views/mailers/domain_mailer/expiration.text.erb +++ b/app/views/mailers/domain_mailer/expiration.text.erb @@ -10,8 +10,14 @@ Domeeni <%= @domain.name %> kohta on registris järgmised andmed: Registreerija: <%= @domain.registrant_name %> Halduskontakt: <%= @domain.admin_contact_names %> Tehniline kontakt: <%= @domain.tech_contact_names %> -Registripidaja: <%= @registrar.name %> Nimeserverid: <%= @domain.nameserver_names %> + +Registripidaja: +<%= @registrar.name %> +Email: <%= @registrar.email %> +Telefon: <%= @registrar.phone %> +Veebileht: <%= @registrar.url %> + Ülevaate kõikidest endaga seotud domeenidest saate registreerija portaalist. <%= ENV['registrant_url'] %>. Parimate soovidega @@ -31,8 +37,14 @@ The following data for the <%= @domain.name %> domain have been entered into the Registrant: <%= @domain.registrant_name %> Administrative contact: <%= @domain.admin_contact_names %> Technical contact: <%= @domain.tech_contact_names %> -Registrar: <%= @registrar.name %> Name servers: <%= @domain.nameserver_names %> + +Registrar: +<%= @registrar.name %> +Email: <%= @registrar.email %> +Phone: <%= @registrar.phone %> +Website: <%= @registrar.url %> + You can find an overview of all your domains at the registrant's portal. <%= ENV['registrant_url'] %>. Best Regards, @@ -52,8 +64,14 @@ Estonian Internet Foundation Регистрант: <%= @domain.registrant_name %> Административный контакт: <%= @domain.admin_contact_names %> Технический контакт: <%= @domain.tech_contact_names %> -Регистратор: <%= @registrar.name %> Серверы доменных имен: <%= @domain.nameserver_names %> + +Регистратор: +<%= @registrar.name %> +Электронная почта: <%= @registrar.email %> +Телефон: <%= @registrar.phone %> +Веб-сайт: <%= @registrar.url %> + Обзор всех связанных с Вами доменов можете получить на портале регистранта. <%= ENV['registrant_url'] %>. С наилучшими пожеланиями diff --git a/app/views/mailers/domain_mailer/force_delete.html.erb b/app/views/mailers/domain_mailer/force_delete.html.erb index adb8a5f70..134c8d91b 100644 --- a/app/views/mailers/domain_mailer/force_delete.html.erb +++ b/app/views/mailers/domain_mailer/force_delete.html.erb @@ -1,7 +1,4 @@ -
-

Eesti Interneti Sihtasutus

-
-
@@ -11,56 +8,74 @@

.ee domeeniregistrisse on domeeni <%= @domain.name %> kohta kantud järgmised andmed:

-

Registreerija nimi: <%= @domain.registrant %>
-Registrikood: <%= @domain.registrant.try(:ident) %>

+

Registreerija nimi: <%= @registrant.name %>
+Registrikood: <%= @registrant.ident %>

-

Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et juriidiline isik registrikoodiga <%= @domain.registrant.try(:ident) %> on äriregistrist kustutatud.

+

Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et juriidiline isik registrikoodiga <%= @registrant.ident %> on äriregistrist kustutatud.

Kuivõrd äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, siis algatas EIS <%= l(Time.zone.now, format: :date) %> vastavalt Domeenireeglite (http://www.internet.ee/domeenid/) punktile 6.4 domeeni <%= @domain.name %> suhtes 30 päeva pikkuse kustutusmenetluse. Kustutamise käigus jääb domeen internetis kättesaadavaks.

-

Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @domain.registrar %> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleb esitada Registripidajale esimesel võimalusel.

+

Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleb esitada Registripidajale esimesel võimalusel.

-

Kui üleandmine ei ole 30 päeva jooksul toimunud, kustub domeen <%= @domain.name %> 24 tunni jooksul <%= l(@domain.force_delete_at, format: :date) %> juhuslikult valitud ajahetkel. Soovi korral on võimalik domeen pärast selle kustumist registrist “kes ees, see mees” põhimõttel uuesti registreerida.

+

Kui üleandmine ei ole 30 päeva jooksul toimunud, kustub domeen <%= @domain.name %> 24 tunni jooksul <%= @domain.force_delete_date %> juhuslikult valitud ajahetkel. Soovi korral on võimalik domeen pärast selle kustumist registrist “kes ees, see mees” põhimõttel uuesti registreerida.

-

Lisaküsimuste korral võtke palun ühendust oma registripidajaga <%= @domain.registrar %>. Registripidajate kontaktid leiate aadressilt http://www.internet.ee/registripidajad



+

Lisaküsimuste korral võtke palun ühendust oma registripidajaga:

+

<%= @registrar.name %>
+Email: <%= @registrar.email %>
+Telefon: <%= @registrar.phone %>
+Veebileht: <%= @registrar.url %>

+
Dear contact of <%= @domain.name %> domain

The following details for domain name <%= @domain.name %> have been entered into the .ee domain registry:

-

Registrant's name: <%= @domain.registrant %>
-Registry code: <%= @domain.registrant.try(:ident) %>

+

Registrant's name: <%= @registrant.name %>
+Registry code: <%= @registrant.ident %>

-

Estonian Internet Foundation (EIS) has learned that the legal person with registry code <%= @domain.registrant.try(:ident) %> has been deleted from the Business Registry.

+

Estonian Internet Foundation (EIS) has learned that the legal person with registry code <%= @registrant.ident %> has been deleted from the Business Registry.

As a terminated legal person cannot be the registrant of a domain, the EIS started the deletion process of <%= @domain.name %> domain on <%= l(Time.zone.now, format: :date) %> according to the Domain Regulation (http://www.internet.ee/domains/), using the 30-day delete procedure. The domain will remain available on the Internet during the delete procedure.

-

According to paragraph 6.4 of the Domain Regulation, the registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @domain.registrar %> in accordance with paragraph 5.3.6.2 of the Domain Regulation. The application must be submitted together with documents certifying the acquisition of the domain that will replace the consent of the surrendering registrant as laid down in paragraph 5.3.6.3 of the Domain Regulation. The relevant documents should be submitted to the registrar as soon as possible.

+

According to paragraph 6.4 of the Domain Regulation, the registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %> in accordance with paragraph 5.3.6.2 of the Domain Regulation. The application must be submitted together with documents certifying the acquisition of the domain that will replace the consent of the surrendering registrant as laid down in paragraph 5.3.6.3 of the Domain Regulation. The relevant documents should be submitted to the registrar as soon as possible.

-

If the transfer has not been made in 30 days, the domain <%= @domain.name %> will be deleted at a randomly chosen moment within 24 hours on <%= l(@domain.force_delete_at, format: :date) %>. After deletion it is possible to reregister the domain on a "first come, first served" basis.

+

If the transfer has not been made in 30 days, the domain <%= @domain.name %> will be deleted at a randomly chosen moment within 24 hours on <%= @domain.force_delete_date %>. After deletion it is possible to reregister the domain on a "first come, first served" basis.

-

Should you have additional questions, please contact your registrar <%= @domain.registrar %>, whose contact information can be found at http://www.internet.ee/registrars/



+

Should you have additional questions, please contact your registrar:

+

<%= @registrar.name %>
+Email: <%= @registrar.email %>
+Phone: <%= @registrar.phone %>
+Website: <%= @registrar.url %>

+
Уважаемое контактное лицо домена <%= @domain.name %>

В регистр доменов Целевого учреждения Eesti Internet (EIS) внесены следующие данные относительно домена <%= @domain.name %>:

-

Имя регистранта: <%= @domain.registrant %>
-Регистрационный код: <%= @domain.registrant.try(:ident) %>

+

Имя регистранта: <%= @registrant.name %>
+Регистрационный код: <%= @registrant.ident %>

-

EIS стало известно, что юридическое лицо с регистрационным кодом <%= @domain.registrant.try(:ident) %> удалено из коммерческого реестра.

+

EIS стало известно, что юридическое лицо с регистрационным кодом <%= @registrant.ident %> удалено из коммерческого реестра.

Поскольку прекратившее деятельность юридическое лицо не может являться регистрантом домена, то согласно пункту 6.4 Правил домена (http://www.internet.ee/domeny/) EIS <%= l(Time.zone.now, format: :date) %> инициировало удаление домена <%= @domain.name %> с применением 30-дневной процедуры удаления. На протяжении процесса удаления домен остается доступным в Интернете.

-

Согласно пункту 6.4 Правил домена регистрант, имеющий право на домен, может подать регистратору <%= @domain.registrar %> домена <%= @domain.name %> ходатайство о передаче домена в соответствии с п. 5.3.6.2 Правил домена. К ходатайству следует приложить подтверждающие приобретение домена документы, заменяющие в соответствии с пунктом 5.3.6.3 Правил домена согласие передающего доменное имя регистранта. EIS предлагает представить соответствующую документацию Регистратору при первой возможности, начиная с инициирования процедуры удаления.

+

Согласно пункту 6.4 Правил домена регистрант, имеющий право на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче домена в соответствии с п. 5.3.6.2 Правил домена. К ходатайству следует приложить подтверждающие приобретение домена документы, заменяющие в соответствии с пунктом 5.3.6.3 Правил домена согласие передающего доменное имя регистранта. EIS предлагает представить соответствующую документацию Регистратору при первой возможности, начиная с инициирования процедуры удаления.

-

Если в течение 30 дней передача не произошла, домен <%= @domain.name %> удаляется по истечении 24 часов <%= l(@domain.force_delete_at, format: :date) %> в случайный момент времени. По желанию после удаления из регистра домен можно снова зарегистрировать по принципу "кто успел, тот и съел".

+

Если в течение 30 дней передача не произошла, домен <%= @domain.name %> удаляется по истечении 24 часов <%= @domain.force_delete_date %> в случайный момент времени. По желанию после удаления из регистра домен можно снова зарегистрировать по принципу "кто успел, тот и съел".

-

Просим обратиться к своему регистратору <%= @domain.registrar %>. Контактные данные регистраторов можно найти по адресу http://www.internet.ee/registratory/



+

Просим обратиться к своему регистратору:

+ +

<%= @registrar.name %>
+Электронная почта: <%= @registrar.email %>
+Телефон: <%= @registrar.phone %>
+Веб-сайт: <%= @registrar.url %>

+ + +

@@ -73,4 +88,4 @@ Registry code: <%= @domain.registrant.try(:ident) %>

+
diff --git a/app/views/mailers/domain_mailer/force_delete.text.erb b/app/views/mailers/domain_mailer/force_delete.text.erb index 12f3af85f..871cdb7d8 100644 --- a/app/views/mailers/domain_mailer/force_delete.text.erb +++ b/app/views/mailers/domain_mailer/force_delete.text.erb @@ -2,18 +2,23 @@ Lugupeetud domeeni <%= @domain.name %> kontaktisik .ee domeeniregistrisse on domeeni <%= @domain.name %> kohta kantud järgmised andmed: -Registreerija nimi: <%= @domain.registrant %> -Registrikood: <%= @domain.registrant.try(:ident) %> +Registreerija nimi: <%= @registrant.name %> +Registrikood: <%= @registrant.ident %> -Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et juriidiline isik registrikoodiga <%= @domain.registrant.try(:ident) %> on äriregistrist kustutatud. +Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et juriidiline isik registrikoodiga <%= @registrant.ident %> on äriregistrist kustutatud. Kuivõrd äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, siis algatas EIS <%= l(Time.zone.now, format: :date) %> vastavalt Domeenireeglite (http://www.internet.ee/domeenid/) punktile 6.4 domeeni <%= @domain.name %> suhtes 30 päeva pikkuse kustutusmenetluse. Kustutamise käigus jääb domeen internetis kättesaadavaks. -Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @domain.registrar %> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleb esitada Registripidajale esimesel võimalusel. +Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleb esitada Registripidajale esimesel võimalusel. -Kui üleandmine ei ole 30 päeva jooksul toimunud, kustub domeen <%= @domain.name %> 24 tunni jooksul <%= l(@domain.force_delete_at, format: :date) %> juhuslikult valitud ajahetkel. Soovi korral on võimalik domeen pärast selle kustumist registrist "kes ees, see mees" põhimõttel uuesti registreerida. +Kui üleandmine ei ole 30 päeva jooksul toimunud, kustub domeen <%= @domain.name %> 24 tunni jooksul <%= @domain.force_delete_date %> juhuslikult valitud ajahetkel. Soovi korral on võimalik domeen pärast selle kustumist registrist "kes ees, see mees" põhimõttel uuesti registreerida. -Lisaküsimuste korral võtke palun ühendust oma registripidajaga <%= @domain.registrar %>. Registripidajate kontaktid leiate aadressilt http://www.internet.ee/registripidajad/ +Lisaküsimuste korral võtke palun ühendust oma registripidajaga: + +<%= @registrar.name %> +Email: <%= @registrar.email %> +Telefon: <%= @registrar.phone %> +Veebileht: <%= @registrar.url %> @@ -21,18 +26,23 @@ Dear contact of <%= @domain.name %> domain The following details for domain name <%= @domain.name %> have been entered into the .ee domain registry: -Registrant's name: <%= @domain.registrant %> -Registry code: <%= @domain.registrant.try(:ident) %> +Registrant's name: <%= @registrant.name %> +Registry code: <%= @registrant.ident %> -Estonian Internet Foundation (EIS) has learned that the legal person with registry code <%= @domain.registrant.try(:ident) %> has been deleted from the Business Registry. +Estonian Internet Foundation (EIS) has learned that the legal person with registry code <%= @registrant.ident %> has been deleted from the Business Registry. As a terminated legal person cannot be the registrant of a domain, the EIS started the deletion process of <%= @domain.name %> domain on <%= l(Time.zone.now, format: :date) %> according to the Domain Regulation (http://www.internet.ee/domains/), using the 30-day delete procedure. The domain will remain available on the Internet during the delete procedure. -According to paragraph 6.4 of the Domain Regulation, the registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @domain.registrar %> in accordance with paragraph 5.3.6.2 of the Domain Regulation. The application must be submitted together with documents certifying the acquisition of the domain that will replace the consent of the surrendering registrant as laid down in paragraph 5.3.6.3 of the Domain Regulation. The relevant documents should be submitted to the registrar as soon as possible. +According to paragraph 6.4 of the Domain Regulation, the registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %> in accordance with paragraph 5.3.6.2 of the Domain Regulation. The application must be submitted together with documents certifying the acquisition of the domain that will replace the consent of the surrendering registrant as laid down in paragraph 5.3.6.3 of the Domain Regulation. The relevant documents should be submitted to the registrar as soon as possible. -If the transfer has not been made in 30 days, the domain <%= @domain.name %> will be deleted at a randomly chosen moment within 24 hours on <%= l(@domain.force_delete_at, format: :date) %>. After deletion it is possible to reregister the domain on a "first come, first served" basis. +If the transfer has not been made in 30 days, the domain <%= @domain.name %> will be deleted at a randomly chosen moment within 24 hours on <%= @domain.force_delete_date %>. After deletion it is possible to reregister the domain on a "first come, first served" basis. -Should you have additional questions, please contact your registrar <%= @domain.registrar %>, whose contact information can be found at http://www.internet.ee/registrars/ +Should you have additional questions, please contact your registrar: + +<%= @registrar.name %> +Email: <%= @registrar.email %> +Phone: <%= @registrar.phone %> +Website: <%= @registrar.url %> @@ -40,19 +50,23 @@ Should you have additional questions, please contact your registrar <%= @domain. В регистр доменов Целевого учреждения Eesti Internet (EIS) внесены следующие данные относительно домена <%= @domain.name %>: -Имя регистранта: <%= @domain.registrant %> -Регистрационный код: <%= @domain.registrant.try(:ident) %> +Имя регистранта: <%= @registrant.name %> +Регистрационный код: <%= @registrant.ident %> -EIS стало известно, что юридическое лицо с регистрационным кодом <%= @domain.registrant.try(:ident) %> удалено из коммерческого реестра. +EIS стало известно, что юридическое лицо с регистрационным кодом <%= @registrant.ident %> удалено из коммерческого реестра. Поскольку прекратившее деятельность юридическое лицо не может являться регистрантом домена, то согласно пункту 6.4 Правил домена (http://www.internet.ee/domeny) EIS <%= l(Time.zone.now, format: :date) %> инициировало удаление домена <%= @domain.name %> с применением 30-дневной процедуры удаления. На протяжении процесса удаления домен остается доступным в Интернете. -Согласно пункту 6.4 Правил домена регистрант, имеющий право на домен, может подать регистратору <%= @domain.registrar %> домена <%= @domain.name %> ходатайство о передаче домена в соответствии с п. 5.3.6.2 Правил домена. К ходатайству следует приложить подтверждающие приобретение домена документы, заменяющие в соответствии с пунктом 5.3.6.3 Правил домена согласие передающего доменное имя регистранта. EIS предлагает представить соответствующую документацию Регистратору при первой возможности, начиная с инициирования процедуры удаления. +Согласно пункту 6.4 Правил домена регистрант, имеющий право на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче домена в соответствии с п. 5.3.6.2 Правил домена. К ходатайству следует приложить подтверждающие приобретение домена документы, заменяющие в соответствии с пунктом 5.3.6.3 Правил домена согласие передающего доменное имя регистранта. EIS предлагает представить соответствующую документацию Регистратору при первой возможности, начиная с инициирования процедуры удаления. -Если в течение 30 дней передача не произошла, домен <%= @domain.name %> удаляется по истечении 24 часов <%= l(@domain.force_delete_at, format: :date) %> в случайный момент времени. По желанию после удаления из регистра домен можно снова зарегистрировать по принципу "кто успел, тот и съел". +Если в течение 30 дней передача не произошла, домен <%= @domain.name %> удаляется по истечении 24 часов <%= @domain.force_delete_date %> в случайный момент времени. По желанию после удаления из регистра домен можно снова зарегистрировать по принципу "кто успел, тот и съел". -Просим обратиться к своему регистратору <%= @domain.registrar %>. Контактные данные регистраторов можно найти по адресу http://www.internet.ee/registratory +Просим обратиться к своему регистратору: +<%= @registrar.name %> +Электронная почта: <%= @registrar.email %> +Телефон: <%= @registrar.phone %> +Веб-сайт: <%= @registrar.url %> Lugupidamisega, diff --git a/config/locales/en.yml b/config/locales/en.yml index 264502adf..5c301d0d2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -939,7 +939,6 @@ en: new_mail_template: New mail template failure: "It was not saved" contact_is_not_valid: 'Contact %{value} is not valid, please fix the invalid contact' - force_delete_subject: 'Kustutusmenetluse teade' welcome_to_eis_registrar_portal: 'Welcome to EIS Registrar portal' interfaces: 'Interfaces' list_format_is_in_yaml: 'List format is in YAML' diff --git a/config/locales/mailers/domain.en.yml b/config/locales/mailers/domain.en.yml index 99dc33a5a..07b3a8f89 100644 --- a/config/locales/mailers/domain.en.yml +++ b/config/locales/mailers/domain.en.yml @@ -2,3 +2,5 @@ en: domain_mailer: expiration: subject: The %{domain_name} domain has expired + force_delete: + subject: Kustutusmenetluse teade diff --git a/spec/factories/domain.rb b/spec/factories/domain.rb index b4079c5d7..5a396362d 100644 --- a/spec/factories/domain.rb +++ b/spec/factories/domain.rb @@ -7,7 +7,6 @@ FactoryGirl.define do registrant after :build do |domain| - domain.class.skip_callback(:commit, :after, :update_whois_record) # Otherwise FactoryGirl reports Domain#json= method as undefined domain.nameservers << FactoryGirl.build_pair(:nameserver) domain.admin_domain_contacts << FactoryGirl.build(:admin_domain_contact) domain.tech_domain_contacts << FactoryGirl.build(:tech_domain_contact) diff --git a/spec/mailers/domain_mailer_spec.rb b/spec/mailers/domain_mailer_spec.rb index c3679f116..2f7a38afe 100644 --- a/spec/mailers/domain_mailer_spec.rb +++ b/spec/mailers/domain_mailer_spec.rb @@ -1,12 +1,42 @@ require 'rails_helper' RSpec.describe DomainMailer do + describe '#force_delete' do + let(:domain) { instance_spy(Domain, name: 'test.com') } + let(:domain_presenter) { instance_spy(DomainPresenter) } + let(:registrar_presenter) { instance_spy(RegistrarPresenter) } + let(:registrant_presenter) { instance_spy(RegistrantPresenter) } + subject(:message) { described_class.force_delete(domain: domain) } + + before :example do + expect(DomainPresenter).to receive(:new).and_return(domain_presenter) + expect(RegistrarPresenter).to receive(:new).and_return(registrar_presenter) + expect(RegistrantPresenter).to receive(:new).and_return(registrant_presenter) + end + + it 'has sender' do + message.deliver! + expect(message.from).to eq(['noreply@internet.ee']) + end + + it 'has recipient' do + expect(domain).to receive(:primary_contact_emails).and_return(['recipient@test.com']) + message.deliver! + expect(message.to).to match_array(['recipient@test.com']) + end + + it 'has valid subject' do + message.deliver! + expect(message.subject).to eq('Kustutusmenetluse teade') + end + + it 'sends message' do + expect { message.deliver! }.to change { ActionMailer::Base.deliveries.count }.by(1) + end + end + describe '#expiration' do - let(:domain) { instance_spy(Domain, - name: 'test.com', - registrant_email: 'registrant@test.com', - admin_contact_emails: ['admin.contact.email@test.com'] - ) } + let(:domain) { instance_spy(Domain, name: 'test.com') } let(:domain_presenter) { instance_spy(DomainPresenter) } let(:registrar_presenter) { instance_spy(RegistrarPresenter) } subject(:message) { described_class.expiration(domain: domain) } @@ -16,14 +46,15 @@ RSpec.describe DomainMailer do expect(RegistrarPresenter).to receive(:new).and_return(registrar_presenter) end - it 'has valid sender' do + it 'has sender' do message.deliver! expect(message.from).to eq(['noreply@internet.ee']) end - it 'has registrant and administrative contacts as recipient' do + it 'has recipient' do + expect(domain).to receive(:primary_contact_emails).and_return(['recipient@test.com']) message.deliver! - expect(message.to).to match_array(['registrant@test.com', 'admin.contact.email@test.com']) + expect(message.to).to match_array(['recipient@test.com']) end it 'has valid subject' do diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb index f47128759..c6627d877 100644 --- a/spec/models/domain_spec.rb +++ b/spec/models/domain_spec.rb @@ -831,6 +831,7 @@ end RSpec.describe Domain, db: false do it { is_expected.to alias_attribute(:on_hold_time, :outzone_at) } it { is_expected.to alias_attribute(:delete_time, :delete_at) } + it { is_expected.to alias_attribute(:force_delete_time, :force_delete_at) } describe '#set_server_hold' do let(:domain) { described_class.new } @@ -896,4 +897,20 @@ RSpec.describe Domain, db: false do expect(domain.nameserver_hostnames).to eq('hostnames') end end + + describe '#primary_contact_emails' do + let(:domain) { described_class.new } + + before :example do + expect(domain).to receive(:registrant_email).and_return('registrant@test.com') + expect(domain).to receive(:admin_contact_emails).and_return(['admin.contact.email@test.com']) + end + + it 'returns registrant and administrative contact emails' do + expect(domain.primary_contact_emails).to match_array(%w( + registrant@test.com + admin.contact.email@test.com + )) + end + end end diff --git a/spec/presenters/domain_presenter_spec.rb b/spec/presenters/domain_presenter_spec.rb index a6799095b..79adcc68f 100644 --- a/spec/presenters/domain_presenter_spec.rb +++ b/spec/presenters/domain_presenter_spec.rb @@ -41,6 +41,25 @@ RSpec.describe DomainPresenter do end end + describe '#force_delete_date' do + subject(:force_delete_date) { presenter.force_delete_date } + + context 'when present' do + let(:domain) { instance_double(Domain, force_delete_time: '05.07.2010') } + + it 'returns localized date' do + expect(view).to receive(:l).with('05.07.2010', format: :date).and_return('delete date') + expect(force_delete_date).to eq('delete date') + end + end + + context 'when absent' do + let(:domain) { instance_double(Domain, force_delete_time: nil) } + + specify { expect(force_delete_date).to be_nil } + end + end + describe '#admin_contact_names' do let(:domain) { instance_double(Domain) } diff --git a/spec/views/mailers/domain_mailer/expiration.html.erb_spec.rb b/spec/views/mailers/domain_mailer/expiration.html.erb_spec.rb index fc1e18e61..735f0199c 100644 --- a/spec/views/mailers/domain_mailer/expiration.html.erb_spec.rb +++ b/spec/views/mailers/domain_mailer/expiration.html.erb_spec.rb @@ -17,7 +17,21 @@ RSpec.describe 'mailers/domain_mailer/expiration.html.erb' do expect(rendered).to have_text('test registrar name', count: mention_count) end - attributes = %i( + registrar_attributes = %i( + email + phone + url + ) + + registrar_attributes.each do |attr_name| + it "has registrar #{attr_name}" do + expect(registrar).to receive(attr_name).exactly(lang_count).times.and_return("test registrar #{attr_name}") + render + expect(rendered).to have_text("test registrar #{attr_name}", count: lang_count) + end + end + + domain_attributes = %i( on_hold_date delete_date registrant_name @@ -26,7 +40,7 @@ RSpec.describe 'mailers/domain_mailer/expiration.html.erb' do nameserver_names ) - attributes.each do |attr_name| + domain_attributes.each do |attr_name| it "has :#{attr_name}" do expect(domain).to receive(attr_name).exactly(lang_count).times.and_return(attr_name.to_s) render diff --git a/spec/views/mailers/domain_mailer/expiration.text.erb_spec.rb b/spec/views/mailers/domain_mailer/expiration.text.erb_spec.rb index 39a36cdb7..9af9978b7 100644 --- a/spec/views/mailers/domain_mailer/expiration.text.erb_spec.rb +++ b/spec/views/mailers/domain_mailer/expiration.text.erb_spec.rb @@ -17,7 +17,21 @@ RSpec.describe 'mailers/domain_mailer/expiration.text.erb' do expect(rendered).to have_text('test registrar name', count: mention_count) end - attributes = %i( + registrar_attributes = %i( + email + phone + url + ) + + registrar_attributes.each do |attr_name| + it "has registrar #{attr_name}" do + expect(registrar).to receive(attr_name).exactly(lang_count).times.and_return("test registrar #{attr_name}") + render + expect(rendered).to have_text("test registrar #{attr_name}", count: lang_count) + end + end + + domain_attributes = %i( on_hold_date delete_date registrant_name @@ -26,7 +40,7 @@ RSpec.describe 'mailers/domain_mailer/expiration.text.erb' do nameserver_names ) - attributes.each do |attr_name| + domain_attributes.each do |attr_name| it "has :#{attr_name}" do expect(domain).to receive(attr_name).exactly(lang_count).times.and_return(attr_name.to_s) render diff --git a/spec/views/mailers/domain_mailer/force_delete.html.erb_spec.rb b/spec/views/mailers/domain_mailer/force_delete.html.erb_spec.rb new file mode 100644 index 000000000..408777cc9 --- /dev/null +++ b/spec/views/mailers/domain_mailer/force_delete.html.erb_spec.rb @@ -0,0 +1,63 @@ +require 'rails_helper' + +RSpec.describe 'mailers/domain_mailer/force_delete.html.erb' do + let(:domain) { instance_spy(DomainPresenter) } + let(:registrar) { instance_spy(RegistrarPresenter) } + let(:registrant) { instance_spy(RegistrantPresenter) } + let(:lang_count) { 3 } + + before :example do + assign(:domain, domain) + assign(:registrar, registrar) + assign(:registrant, registrant) + end + + it 'has domain name' do + mention_count = 5 * lang_count + expect(domain).to receive(:name).exactly(mention_count).times.and_return('test domain name') + render + expect(rendered).to have_text('test domain name', count: mention_count) + end + + it 'has domain force delete date' do + mention_count = 1 * lang_count + expect(domain).to receive(:force_delete_date).exactly(mention_count).times.and_return('test domain force delete date') + render + expect(rendered).to have_text('test domain force delete date', count: mention_count) + end + + it 'has registrar name' do + mention_count = 2 * lang_count + expect(registrar).to receive(:name).exactly(mention_count).times.and_return('test registrar name') + render + expect(rendered).to have_text('test registrar name', count: mention_count) + end + + registrar_attributes = %i( + email + phone + url + ) + + registrar_attributes.each do |attr_name| + it "has registrar #{attr_name}" do + expect(registrar).to receive(attr_name).exactly(lang_count).times.and_return("test registrar #{attr_name}") + render + expect(rendered).to have_text("test registrar #{attr_name}", count: lang_count) + end + end + + it 'has registrant name' do + mention_count = 1 * lang_count + expect(registrant).to receive(:name).exactly(mention_count).times.and_return('test registrant name') + render + expect(rendered).to have_text('test registrant name', count: mention_count) + end + + it 'has registrant ident' do + mention_count = 2 * lang_count + expect(registrant).to receive(:ident).exactly(mention_count).times.and_return('test registrant ident') + render + expect(rendered).to have_text('test registrant ident', count: mention_count) + end +end diff --git a/spec/views/mailers/domain_mailer/force_delete.text.erb_spec.rb b/spec/views/mailers/domain_mailer/force_delete.text.erb_spec.rb new file mode 100644 index 000000000..500e746af --- /dev/null +++ b/spec/views/mailers/domain_mailer/force_delete.text.erb_spec.rb @@ -0,0 +1,63 @@ +require 'rails_helper' + +RSpec.describe 'mailers/domain_mailer/force_delete.text.erb' do + let(:domain) { instance_spy(DomainPresenter) } + let(:registrar) { instance_spy(RegistrarPresenter) } + let(:registrant) { instance_spy(RegistrantPresenter) } + let(:lang_count) { 3 } + + before :example do + assign(:domain, domain) + assign(:registrar, registrar) + assign(:registrant, registrant) + end + + it 'has domain name' do + mention_count = 5 * lang_count + expect(domain).to receive(:name).exactly(mention_count).times.and_return('test domain name') + render + expect(rendered).to have_text('test domain name', count: mention_count) + end + + it 'has domain force delete date' do + mention_count = 1 * lang_count + expect(domain).to receive(:force_delete_date).exactly(mention_count).times.and_return('test domain force delete date') + render + expect(rendered).to have_text('test domain force delete date', count: mention_count) + end + + it 'has registrar name' do + mention_count = 2 * lang_count + expect(registrar).to receive(:name).exactly(mention_count).times.and_return('test registrar name') + render + expect(rendered).to have_text('test registrar name', count: mention_count) + end + + registrar_attributes = %i( + email + phone + url + ) + + registrar_attributes.each do |attr_name| + it "has registrar #{attr_name}" do + expect(registrar).to receive(attr_name).exactly(lang_count).times.and_return("test registrar #{attr_name}") + render + expect(rendered).to have_text("test registrar #{attr_name}", count: lang_count) + end + end + + it 'has registrant name' do + mention_count = 1 * lang_count + expect(registrant).to receive(:name).exactly(mention_count).times.and_return('test registrant name') + render + expect(rendered).to have_text('test registrant name', count: mention_count) + end + + it 'has registrant ident' do + mention_count = 2 * lang_count + expect(registrant).to receive(:ident).exactly(mention_count).times.and_return('test registrant ident') + render + expect(rendered).to have_text('test registrant ident', count: mention_count) + end +end