mirror of
https://github.com/internetee/registry.git
synced 2025-07-24 19:48:28 +02:00
Add ability for admin to remove registry lock
This commit is contained in:
parent
4743b1e2a5
commit
dffe865d89
10 changed files with 174 additions and 29 deletions
22
app/controllers/admin/domains/registry_lock_controller.rb
Normal file
22
app/controllers/admin/domains/registry_lock_controller.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
module Admin
|
||||
module Domains
|
||||
class RegistryLockController < BaseController
|
||||
|
||||
def destroy
|
||||
set_domain
|
||||
authorize! :manage, @domain
|
||||
if @domain.remove_registry_lock
|
||||
redirect_to edit_admin_domain_url(@domain), notice: t('admin.domains.registry_lock_delete.success')
|
||||
else
|
||||
redirect_to edit_admin_domain_url(@domain), alert: t('admin.domains.registry_lock_delete.error')
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_domain
|
||||
@domain = Domain.find(params[:domain_id])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -5,26 +5,30 @@ module Concerns::Domain::Lockable
|
|||
return unless registry_lockable?
|
||||
return if locked_by_registrant?
|
||||
|
||||
statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
statuses << DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
|
||||
save
|
||||
transaction do
|
||||
statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
statuses << DomainStatus::SERVER_DELETE_PROHIBITED
|
||||
statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
self.locked_by_registrant_at = Time.zone.now
|
||||
save
|
||||
end
|
||||
end
|
||||
|
||||
def registry_lockable?
|
||||
(statuses & [
|
||||
DomainStatus::PENDING_DELETE_CONFIRMATION,
|
||||
DomainStatus::PENDING_CREATE,
|
||||
DomainStatus::PENDING_UPDATE,
|
||||
DomainStatus::PENDING_DELETE,
|
||||
DomainStatus::PENDING_RENEW,
|
||||
DomainStatus::PENDING_TRANSFER,
|
||||
DomainStatus::FORCE_DELETE,
|
||||
]).empty?
|
||||
DomainStatus::PENDING_DELETE_CONFIRMATION,
|
||||
DomainStatus::PENDING_CREATE,
|
||||
DomainStatus::PENDING_UPDATE,
|
||||
DomainStatus::PENDING_DELETE,
|
||||
DomainStatus::PENDING_RENEW,
|
||||
DomainStatus::PENDING_TRANSFER,
|
||||
DomainStatus::FORCE_DELETE,
|
||||
]).empty?
|
||||
end
|
||||
|
||||
def locked_by_registrant?
|
||||
return false unless locked_by_registrant_at
|
||||
|
||||
lock_statuses = [
|
||||
DomainStatus::SERVER_UPDATE_PROHIBITED,
|
||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
||||
|
@ -37,10 +41,13 @@ module Concerns::Domain::Lockable
|
|||
def remove_registry_lock
|
||||
return unless locked_by_registrant?
|
||||
|
||||
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
||||
transaction do
|
||||
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
||||
self.locked_by_registrant_at = nil
|
||||
|
||||
save
|
||||
save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -52,18 +52,29 @@ class DomainPresenter
|
|||
def force_delete_toggle_btn
|
||||
if !domain.force_delete_scheduled?
|
||||
view.content_tag(:a, view.t('admin.domains.force_delete_toggle_btn.schedule'),
|
||||
class: 'btn btn-default',
|
||||
data: {
|
||||
toggle: 'modal',
|
||||
target: '.domain-edit-force-delete-dialog',
|
||||
}
|
||||
},
|
||||
class: 'dropdown-item'
|
||||
)
|
||||
else
|
||||
view.link_to(view.t('admin.domains.force_delete_toggle_btn.cancel'),
|
||||
view.admin_domain_force_delete_path(domain),
|
||||
method: :delete,
|
||||
data: { confirm: view.t('admin.domains.force_delete_toggle_btn.cancel_confirm') },
|
||||
class: 'btn btn-primary')
|
||||
class: 'dropdown-item')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def remove_registry_lock_btn
|
||||
if domain.locked_by_registrant?
|
||||
view.link_to(view.t('admin.domains.registry_lock_delete.btn'),
|
||||
view.admin_domain_registry_lock_path(domain),
|
||||
method: :delete,
|
||||
data: { confirm: view.t('admin.domains.registry_lock_delete.confirm') },
|
||||
class: 'dropdown-item')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -6,12 +6,22 @@
|
|||
Edit: <%= domain.name %>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="col-sm-7">
|
||||
<h1 class="text-right text-center-xs">
|
||||
<%= link_to t('.add_new_status_btn'), '#', class: 'btn btn-primary js-add-status' %>
|
||||
<%= domain.force_delete_toggle_btn %>
|
||||
<div class="col-sm-7 text-right">
|
||||
<div class="btn-group">
|
||||
<%= link_to t('.back_btn'), [:admin, @domain], class: 'btn btn-default' %>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Actions
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><%= domain.force_delete_toggle_btn %></li>
|
||||
<li><%= domain.remove_registry_lock_btn %></li>
|
||||
<div class="divider"></div>
|
||||
<li><%= link_to t('.add_new_status_btn'), '#', class: 'js-add-status' %></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
|
|
@ -33,6 +33,9 @@
|
|||
|
||||
<dt><%= t('.force_delete_time') %></dt>
|
||||
<dd><%= l(@domain.force_delete_at) %></dd>
|
||||
|
||||
<dt><%= t('.locked_by_registrant_at') %></dt>
|
||||
<dd><%= l(@domain.locked_by_registrant_at) %></dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue