mirror of
https://github.com/internetee/registry.git
synced 2025-06-07 21:25:39 +02:00
parent
880ce2ed62
commit
e0960bcca4
10 changed files with 54 additions and 85 deletions
2
.reek
2
.reek
|
@ -145,7 +145,6 @@ DuplicateMethodCall:
|
||||||
- Admin::DomainsController#build_associations
|
- Admin::DomainsController#build_associations
|
||||||
- Admin::DomainsController#index
|
- Admin::DomainsController#index
|
||||||
- Admin::DomainsController#normalize_search_parameters
|
- Admin::DomainsController#normalize_search_parameters
|
||||||
- Admin::DomainsController#schedule_force_delete
|
|
||||||
- Admin::EppLogsController#index
|
- Admin::EppLogsController#index
|
||||||
- Admin::EppLogsController#set_default_dates
|
- Admin::EppLogsController#set_default_dates
|
||||||
- Admin::LegalDocumentsController#show
|
- Admin::LegalDocumentsController#show
|
||||||
|
@ -624,7 +623,6 @@ TooManyStatements:
|
||||||
- Admin::DomainVersionsController#show
|
- Admin::DomainVersionsController#show
|
||||||
- Admin::DomainsController#index
|
- Admin::DomainsController#index
|
||||||
- Admin::DomainsController#normalize_search_parameters
|
- Admin::DomainsController#normalize_search_parameters
|
||||||
- Admin::DomainsController#schedule_force_delete
|
|
||||||
- Admin::DomainsController#update
|
- Admin::DomainsController#update
|
||||||
- Admin::EppLogsController#index
|
- Admin::EppLogsController#index
|
||||||
- Admin::InvoicesController#create
|
- Admin::InvoicesController#create
|
||||||
|
|
39
app/controllers/admin/domains/force_delete_controller.rb
Normal file
39
app/controllers/admin/domains/force_delete_controller.rb
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
module Admin
|
||||||
|
module Domains
|
||||||
|
class ForceDeleteController < BaseController
|
||||||
|
def create
|
||||||
|
authorize! :manage, domain
|
||||||
|
|
||||||
|
domain.transaction do
|
||||||
|
domain.schedule_force_delete
|
||||||
|
domain.registrar.messages.create!(body: t('force_delete_set_on_domain', domain_name: domain.name))
|
||||||
|
|
||||||
|
if notify_by_email?
|
||||||
|
DomainDeleteMailer.forced(domain: domain,
|
||||||
|
registrar: domain.registrar,
|
||||||
|
registrant: domain.registrant,
|
||||||
|
template_name: params[:template_name]).deliver_now
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
redirect_to edit_admin_domain_url(domain), notice: t('.scheduled')
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
authorize! :manage, domain
|
||||||
|
domain.cancel_force_delete
|
||||||
|
redirect_to edit_admin_domain_url(domain), notice: t('.cancelled')
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def domain
|
||||||
|
@domain ||= Domain.find(params[:domain_id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def notify_by_email?
|
||||||
|
ActiveRecord::Type::Boolean.new.type_cast_from_user(params[:notify_by_email])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -62,34 +62,6 @@ module Admin
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_force_delete
|
|
||||||
raise 'Template param cannot be empty' if params[:template_name].blank?
|
|
||||||
|
|
||||||
@domain.transaction do
|
|
||||||
@domain.schedule_force_delete
|
|
||||||
@domain.registrar.messages.create!(body: I18n.t('force_delete_set_on_domain', domain_name: @domain.name))
|
|
||||||
|
|
||||||
if notify_by_email?
|
|
||||||
DomainDeleteMailer.forced(domain: @domain,
|
|
||||||
registrar: @domain.registrar,
|
|
||||||
registrant: @domain.registrant,
|
|
||||||
template_name: params[:template_name]).deliver_now
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to edit_admin_domain_url(@domain), notice: t('.scheduled')
|
|
||||||
end
|
|
||||||
|
|
||||||
def cancel_force_delete
|
|
||||||
if @domain.cancel_force_delete
|
|
||||||
flash[:notice] = t('.cancelled')
|
|
||||||
else
|
|
||||||
flash.now[:alert] = I18n.t('failed_to_update_domain')
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to edit_admin_domain_url(@domain)
|
|
||||||
end
|
|
||||||
|
|
||||||
def versions
|
def versions
|
||||||
@domain = Domain.where(id: params[:domain_id]).includes({ versions: :item }).first
|
@domain = Domain.where(id: params[:domain_id]).includes({ versions: :item }).first
|
||||||
@versions = @domain.versions
|
@versions = @domain.versions
|
||||||
|
@ -138,9 +110,5 @@ module Admin
|
||||||
def force_delete_templates
|
def force_delete_templates
|
||||||
%w(removed_company death)
|
%w(removed_company death)
|
||||||
end
|
end
|
||||||
|
|
||||||
def notify_by_email?
|
|
||||||
ActiveRecord::Type::Boolean.new.type_cast_from_user(params[:notify_by_email])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -49,8 +49,8 @@ class DomainPresenter
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
view.link_to(view.t('admin.domains.force_delete_toggle_btn.cancel'),
|
view.link_to(view.t('admin.domains.force_delete_toggle_btn.cancel'),
|
||||||
view.cancel_force_delete_admin_domain_path(domain),
|
view.admin_domain_force_delete_path(domain),
|
||||||
method: :patch,
|
method: :delete,
|
||||||
data: { confirm: view.t('admin.domains.force_delete_toggle_btn.cancel_confim') },
|
data: { confirm: view.t('admin.domains.force_delete_toggle_btn.cancel_confim') },
|
||||||
class: 'btn btn-primary')
|
class: 'btn btn-primary')
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
|
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<%= form_tag schedule_force_delete_admin_domain_path, method: :patch,
|
<%= form_tag admin_domain_force_delete_path(domain), id: 'domain-force-delete-form',
|
||||||
id: 'domain-force-delete-form', class: 'form-horizontal' do %>
|
class: 'form-horizontal' do %>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-sm-9 col-md-offset-2">
|
<div class="col-sm-9 col-md-offset-2">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
|
|
|
@ -17,4 +17,4 @@
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<%= render 'form' %>
|
<%= render 'form' %>
|
||||||
<%= render 'force_delete_dialog', templates: force_delete_templates %>
|
<%= render 'force_delete_dialog', domain: @domain, templates: force_delete_templates %>
|
||||||
|
|
|
@ -19,12 +19,6 @@ en:
|
||||||
close_btn: Close dialog
|
close_btn: Close dialog
|
||||||
submit_btn: Force delete domain
|
submit_btn: Force delete domain
|
||||||
|
|
||||||
schedule_force_delete:
|
|
||||||
scheduled: Force delete procedure has been scheduled
|
|
||||||
|
|
||||||
cancel_force_delete:
|
|
||||||
cancelled: Force delete procedure has been cancelled
|
|
||||||
|
|
||||||
versions:
|
versions:
|
||||||
time: Time
|
time: Time
|
||||||
registrant: Registrant
|
registrant: Registrant
|
||||||
|
|
9
config/locales/admin/domains/force_delete.en.yml
Normal file
9
config/locales/admin/domains/force_delete.en.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
en:
|
||||||
|
admin:
|
||||||
|
domains:
|
||||||
|
force_delete:
|
||||||
|
create:
|
||||||
|
scheduled: Force delete procedure has been scheduled
|
||||||
|
|
||||||
|
destroy:
|
||||||
|
cancelled: Force delete procedure has been cancelled
|
|
@ -202,11 +202,7 @@ Rails.application.routes.draw do
|
||||||
resources :domain_versions, controller: 'domains', action: 'versions'
|
resources :domain_versions, controller: 'domains', action: 'versions'
|
||||||
resources :pending_updates
|
resources :pending_updates
|
||||||
resources :pending_deletes
|
resources :pending_deletes
|
||||||
|
resource :force_delete, controller: 'domains/force_delete', only: %i[create destroy]
|
||||||
member do
|
|
||||||
patch 'schedule_force_delete'
|
|
||||||
patch 'cancel_force_delete'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :domain_versions do
|
resources :domain_versions do
|
||||||
|
|
|
@ -114,41 +114,6 @@ RSpec.describe DomainPresenter do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#force_delete_toggle_btn' do
|
|
||||||
let(:domain) { build_stubbed(:domain) }
|
|
||||||
|
|
||||||
context 'when force delete is not scheduled' do
|
|
||||||
before :example do
|
|
||||||
expect(domain).to receive(:force_delete_scheduled?).and_return(false)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns schedule button' do
|
|
||||||
html = view.content_tag(:a, 'Schedule force delete',
|
|
||||||
class: 'btn btn-danger',
|
|
||||||
data: {
|
|
||||||
toggle: 'modal',
|
|
||||||
target: '.domain-edit-force-delete-dialog',
|
|
||||||
})
|
|
||||||
expect(presenter.force_delete_toggle_btn).to eq(html)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when force delete is scheduled' do
|
|
||||||
before :example do
|
|
||||||
expect(domain).to receive(:force_delete_scheduled?).and_return(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns cancel button' do
|
|
||||||
html = link_to('Cancel force delete',
|
|
||||||
view.cancel_force_delete_admin_domain_path(domain),
|
|
||||||
method: :patch,
|
|
||||||
data: { confirm: 'Are you sure you want cancel force delete procedure?' },
|
|
||||||
class: 'btn btn-primary')
|
|
||||||
expect(presenter.force_delete_toggle_btn).to eq(html)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
domain_delegatable_attributes = %i(
|
domain_delegatable_attributes = %i(
|
||||||
name
|
name
|
||||||
transfer_code
|
transfer_code
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue