mirror of
https://github.com/internetee/registry.git
synced 2025-06-08 21:54:48 +02:00
Add reason handling to force delete bulk action
This commit is contained in:
parent
2d8eb8f02c
commit
1cca76e9ba
4 changed files with 15 additions and 12 deletions
|
@ -4,14 +4,14 @@ module Admin
|
||||||
class MassActionsController < BaseController
|
class MassActionsController < BaseController
|
||||||
authorize_resource
|
authorize_resource
|
||||||
|
|
||||||
# GET /admin/disputes
|
# GET /admin/mass_actions
|
||||||
def index; end
|
def index; end
|
||||||
|
|
||||||
# POST /admin/disputes
|
# POST /admin/mass_actions
|
||||||
def create
|
def create
|
||||||
res = MassAction.process(params[:mass_action], params[:entry_list].path)
|
res = MassAction.process(params[:mass_action], params[:entry_list].path)
|
||||||
backlog = "#{params[:mass_action]} done for #{res[:ok].join(',')}.\n" \
|
backlog = "#{params[:mass_action]} completed for #{res[:ok]}.\n" \
|
||||||
"Failed: objects: #{res[:fail].join(',')}"
|
"Failed: objects: #{res[:fail]}"
|
||||||
|
|
||||||
redirect_to(admin_mass_actions_path, notice: backlog)
|
redirect_to(admin_mass_actions_path, notice: backlog)
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,12 +42,12 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
|
||||||
force_delete_start + Setting.expire_warning_period.days <= valid_to
|
force_delete_start + Setting.expire_warning_period.days <= valid_to
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_force_delete(type: :fast_track, notify: false)
|
def schedule_force_delete(type: :fast_track, reason: nil)
|
||||||
if discarded?
|
if discarded?
|
||||||
raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded'
|
raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded'
|
||||||
end
|
end
|
||||||
|
|
||||||
type == :fast_track ? force_delete_fast_track : force_delete_soft(notify: notify)
|
type == :fast_track ? force_delete_fast_track : force_delete_soft(reason: reason)
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_force_delete_type(force_delete_type)
|
def add_force_delete_type(force_delete_type)
|
||||||
|
@ -65,7 +65,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
|
||||||
save(validate: false)
|
save(validate: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def force_delete_soft(notify: false)
|
def force_delete_soft(reason: nil)
|
||||||
preserve_current_statuses_for_force_delete
|
preserve_current_statuses_for_force_delete
|
||||||
add_force_delete_statuses
|
add_force_delete_statuses
|
||||||
add_force_delete_type(:soft)
|
add_force_delete_type(:soft)
|
||||||
|
@ -73,7 +73,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
|
||||||
stop_all_pending_actions
|
stop_all_pending_actions
|
||||||
allow_deletion
|
allow_deletion
|
||||||
save(validate: false)
|
save(validate: false)
|
||||||
notify_parties if notify
|
notify_parties(reason) if reason
|
||||||
end
|
end
|
||||||
|
|
||||||
def clear_force_delete_data
|
def clear_force_delete_data
|
||||||
|
@ -150,8 +150,11 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
|
||||||
Time.zone.today + Setting.expire_warning_period.days + Setting.redemption_grace_period.days
|
Time.zone.today + Setting.expire_warning_period.days + Setting.redemption_grace_period.days
|
||||||
end
|
end
|
||||||
|
|
||||||
def notify_parties
|
def notify_parties(reason)
|
||||||
self.template_name = registrant.org? ? 'legal_person' : 'private_person'
|
ent = registrant.org? ? 'legal_person' : 'private_person' if reason == 'ENTITY_BURIED'
|
||||||
|
ent ||= reason.downcase
|
||||||
|
self.template_name = ent
|
||||||
|
|
||||||
save(validate: false)
|
save(validate: false)
|
||||||
registrar.notifications.create!(text: I18n.t('force_delete_set_on_domain',
|
registrar.notifications.create!(text: I18n.t('force_delete_set_on_domain',
|
||||||
domain_name: name,
|
domain_name: name,
|
||||||
|
|
|
@ -12,7 +12,7 @@ class MassAction
|
||||||
dn = Domain.find_by(name_puny: e['domain_name'])
|
dn = Domain.find_by(name_puny: e['domain_name'])
|
||||||
log[:fail] << e['domain_name'] and next unless dn
|
log[:fail] << e['domain_name'] and next unless dn
|
||||||
|
|
||||||
dn.schedule_force_delete(type: :soft, notify: true)
|
dn.schedule_force_delete(type: :soft, reason: e['delete_reason'])
|
||||||
log[:ok] << dn.name
|
log[:ok] << dn.name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<div class="panel-heading">Bulk Domain Force Delete</div>
|
<div class="panel-heading">Bulk Domain Force Delete</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<p>Triggers <b>soft</b> force delete procedure for uploaded domain list. List must be in <b>CSV</b> format. Each domain entry must be on separate line. Line must include <b>domain_name</b> (puny) followed with <b>delete_reason</b>, separated by comma.</p>
|
<p>Triggers <b>soft</b> force delete procedure for uploaded domain list. List must be in <b>CSV</b> format. Each domain entry must be on separate line. Line must include <b>domain_name</b> (puny) followed with <b>delete_reason</b>, separated by comma.</p>
|
||||||
<p>Allowed delete reasons: <b>IDENT_BURIED</b> | <b>PHONE</b> | <b>EMAIL</b></p>
|
<p>Allowed delete reasons: <b>ENTITY_BURIED</b> | <b>PHONE</b> | <b>EMAIL</b></p>
|
||||||
<%= form_tag admin_mass_actions_path, multipart: true do %>
|
<%= form_tag admin_mass_actions_path, multipart: true do %>
|
||||||
<%= file_field_tag :entry_list, accept: 'text/csv' %>
|
<%= file_field_tag :entry_list, accept: 'text/csv' %>
|
||||||
<%= hidden_field_tag :mass_action, 'force_delete' %>
|
<%= hidden_field_tag :mass_action, 'force_delete' %>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue