diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b8504cde..6721791d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +04.11.2020 +* Email notification templates for forceDelete are now automatically selected according to registrant type [#442](https://github.com/internetee/registry/issues/442) + +03.11.2020 +* Fixed registrant confirmation while forcedelete is set on a domain [#1729](https://github.com/internetee/registry/issues/1729) +* Fixed search in registrar domain view [#262](https://github.com/internetee/registry/issues/262) +* Fixed double status issue on setting forceDelete [#1135](https://github.com/internetee/registry/issues/1135) + 28.10.2020 * Domain renew now canceles pending delete process [#1664](https://github.com/internetee/registry/issues/1664) * Added multi-language support to whois disclaimer [#1703](https://github.com/internetee/registry/issues/1703) diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index c61f050d2..6a111926f 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -22,7 +22,7 @@ module Admin send_email domain.update(contact_notification_sent_date: Time.zone.today) else - domain.update(template_name: params[:template_name]) + domain.update(template_name: domain.notification_template) end end @@ -46,7 +46,7 @@ module Admin DomainDeleteMailer.forced(domain: domain, registrar: domain.registrar, registrant: domain.registrant, - template_name: params[:template_name]).deliver_now + template_name: domain.notification_template).deliver_now end def force_delete_type diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index 50ad0bd10..1a46da463 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -11,26 +11,27 @@ class Registrar search_params[:name_matches].present? domain = Domain.find_by(name: search_params[:name_matches]) - if domain - redirect_to info_registrar_domains_url(domain_name: domain.name) and return - end + redirect_to info_registrar_domains_url(domain_name: domain.name) and return if domain end - if params[:statuses_contains] - domains = current_registrar_user.registrar.domains.includes(:registrar, :registrant).where( - "statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}" - ) - else - domains = current_registrar_user.registrar.domains.includes(:registrar, :registrant) + domains = if params[:statuses_contains] + current_domain_scope.where('domains.statuses @> ?::varchar[]', + "{#{params[:statuses_contains].join(',')}}") + else + current_domain_scope + end + + if params[:contacts_ident_eq] + domains = domains.where(contacts: { ident: params[:contacts_ident_eq] }) end normalize_search_parameters do - @q = domains.search(search_params) + @q = domains.search(search_params.except(:contacts_ident_eq)) @domains = @q.result.page(params[:page]) # if we do not get any results, add wildcards to the name field and search again if @domains.count == 0 && search_params[:name_matches] !~ /^%.+%$/ - new_search_params = search_params.to_h + new_search_params = search_params.to_h.except(:contacts_ident_eq) new_search_params[:name_matches] = "%#{new_search_params[:name_matches]}%" @q = domains.search(new_search_params) @domains = @q.result.page(params[:page]) @@ -56,6 +57,10 @@ class Registrar end end + def current_domain_scope + current_registrar_user.registrar.domains.includes(:registrar, :registrant) + end + def info authorize! :info, Depp::Domain @data = @domain.info(params[:domain_name]) if params[:domain_name] diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 6cf883c51..4f4055185 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -19,6 +19,10 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end end + def notification_template + registrant.org? ? 'legal_person' : 'private_person' + end + def force_delete_scheduled? statuses.include?(DomainStatus::FORCE_DELETE) end @@ -129,9 +133,9 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end def add_force_delete_statuses - statuses << DomainStatus::FORCE_DELETE - statuses << DomainStatus::SERVER_RENEW_PROHIBITED - statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED + self.statuses |= [DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED] end def remove_force_delete_statuses diff --git a/app/models/domain.rb b/app/models/domain.rb index 2b3213a36..648a7b3c5 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -384,7 +384,7 @@ class Domain < ApplicationRecord end def registrant_update_confirmable?(token) - return false if (statuses & [DomainStatus::FORCE_DELETE, DomainStatus::DELETE_CANDIDATE]).any? + return false if statuses.include? DomainStatus::DELETE_CANDIDATE return false unless pending_update? return false unless registrant_verification_asked? return false unless registrant_verification_token == token diff --git a/app/views/admin/domains/_force_delete_dialog.html.erb b/app/views/admin/domains/_force_delete_dialog.html.erb index a76c14edd..932a3f75c 100644 --- a/app/views/admin/domains/_force_delete_dialog.html.erb +++ b/app/views/admin/domains/_force_delete_dialog.html.erb @@ -33,12 +33,6 @@ -