diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 9b64aa72c..17d1d5e1a 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -53,9 +53,8 @@ module Admin dp = ignore_empty_statuses @domain.is_admin = true @domain.admin_status_update dp[:statuses] + if @domain.update(dp) - # @domain.admin_store_statuses_history = @domain.statuses - # @domain.save flash[:notice] = I18n.t('domain_updated') redirect_to [:admin, @domain] else diff --git a/app/models/concerns/domain/registry_lockable.rb b/app/models/concerns/domain/registry_lockable.rb index 4f9340aaf..6d8a478fa 100644 --- a/app/models/concerns/domain/registry_lockable.rb +++ b/app/models/concerns/domain/registry_lockable.rb @@ -40,6 +40,7 @@ module Domain::RegistryLockable end self.locked_by_registrant_at = nil self.statuses = admin_store_statuses_history || [] + admin_store_statuses_history = nil alert_registrar_lock_changes!(lock: false) save! diff --git a/app/models/domain.rb b/app/models/domain.rb index 43001deef..73240c8b4 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -557,9 +557,17 @@ class Domain < ApplicationRecord # special handling for admin changing status def admin_status_update(update) + lock_statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED, + DomainStatus::SERVER_DELETE_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED] # check for deleted status + update(admin_store_statuses_history: update) unless locked_by_registrant? - update(admin_store_statuses_history: update) + if locked_by_registrant? + result = update.reject { |status| lock_statuses.include? status } + update(admin_store_statuses_history: result) + + end statuses.each do |s| unless update.include? s case s