From 6c559b8c254903bc53de1eaffb0c3a0113c181fe Mon Sep 17 00:00:00 2001 From: Matt Farnsworth Date: Thu, 19 Nov 2015 10:19:29 +0200 Subject: [PATCH] Story #104525314 - allow admin to remove pendingDelete and clear delete_at --- app/controllers/admin/domains_controller.rb | 1 + app/models/domain.rb | 31 +++++++++++++++------ app/models/domain_status.rb | 2 +- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 562505dc1..377912bad 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -47,6 +47,7 @@ class Admin::DomainsController < AdminController def update dp = ignore_empty_statuses @domain.is_admin = true + @domain.admin_status_update dp[:statuses] if @domain.update(dp) flash[:notice] = I18n.t('domain_updated') diff --git a/app/models/domain.rb b/app/models/domain.rb index 3ce220733..493fc14ac 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -495,7 +495,7 @@ class Domain < ActiveRecord::Base def cancel_pending_delete statuses.delete DomainStatus::PENDING_DELETE_CONFIRMATION statuses.delete DomainStatus::PENDING_DELETE - delete_at = nil + self.delete_at = nil end def pricelist(operation, period_i = nil, unit = nil) @@ -679,16 +679,31 @@ class Domain < ActiveRecord::Base statuses.include?(DomainStatus::FORCE_DELETE) end + # special handling for admin changing status + def admin_status_update(update) + # check for deleted status + statuses.each do |s| + unless update.includes? s + case s + when DomainStatus::PENDING_DELETE + self.delete_at = nil + # Handle any other special remove cases? + # when DomainStatus::FORCE_DELETE unset_force_delete + end + end + end + end + def pending_update_prohibited? (statuses_was & [ DomainStatus::PENDING_DELETE_CONFIRMATION, - DomainStatus::CLIENT_UPDATE_PROHIBITED, - DomainStatus::SERVER_UPDATE_PROHIBITED, - DomainStatus::PENDING_CREATE, - DomainStatus::PENDING_UPDATE, - DomainStatus::PENDING_DELETE, - DomainStatus::PENDING_RENEW, - DomainStatus::PENDING_TRANSFER + DomainStatus::CLIENT_UPDATE_PROHIBITED, + DomainStatus::SERVER_UPDATE_PROHIBITED, + DomainStatus::PENDING_CREATE, + DomainStatus::PENDING_UPDATE, + DomainStatus::PENDING_DELETE, + DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_TRANSFER ]).present? end diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index 543ba0ff4..c784a86e3 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -148,7 +148,7 @@ class DomainStatus < ActiveRecord::Base INACTIVE, FORCE_DELETE, PENDING_CREATE, - PENDING_DELETE, + #PENDING_DELETE, PENDING_RENEW, PENDING_TRANSFER, PENDING_UPDATE,