Merge pull request #2229 from internetee/remove-add-statuses-feature-v2

removed obj_and_ext_prohibited toggle feature
This commit is contained in:
Timo Võhmar 2021-11-29 19:31:58 +02:00 committed by GitHub
commit d97540aee6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 72 additions and 178 deletions

View file

@ -162,8 +162,8 @@ module Epp
@prefix = 'update > update >'
requires 'name'
dnskey_update_enabled if Feature.obj_and_extensions_statuses_enabled?
dnkey_update_prohibited if Feature.obj_and_extensions_statuses_enabled?
dnskey_update_enabled
dnkey_update_prohibited
status_editing_disabled
end

View file

@ -1,15 +1,9 @@
module Domain::RegistryLockable
extend ActiveSupport::Concern
LOCK_STATUSES = if Feature.enable_lock_domain_with_new_statuses?
[DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
else
[DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
end
LOCK_STATUSES = [DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
EXTENSIONS_STATUS = [DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED].freeze
@ -25,7 +19,7 @@ module Domain::RegistryLockable
def apply_statuses_locked_statuses(extensions_prohibited:)
self.admin_store_statuses_history = self.statuses
self.statuses |= LOCK_STATUSES
self.statuses |= EXTENSIONS_STATUS if Feature.obj_and_extensions_statuses_enabled? && extensions_prohibited
self.statuses |= EXTENSIONS_STATUS if extensions_prohibited
self.locked_by_registrant_at = Time.zone.now
alert_registrar_lock_changes!(lock: true)

View file

@ -82,10 +82,10 @@ class DomainStatus < ApplicationRecord
CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD,
CLIENT_RENEW_PROHIBITED, SERVER_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED,
SERVER_TRANSFER_PROHIBITED, CLIENT_UPDATE_PROHIBITED, SERVER_UPDATE_PROHIBITED,
INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_DELETE_CONFIRMATION,
INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_DELETE_CONFIRMATION,
PENDING_RENEW, PENDING_TRANSFER, PENDING_UPDATE, SERVER_MANUAL_INZONE,
SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED,
SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, DELETE_CANDIDATE, EXPIRED, DISPUTED,
SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED,
SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, DELETE_CANDIDATE, EXPIRED, DISPUTED,
SERVER_RELEASE_PROHIBITED, SERVER_EXTENSION_UPDATE_PROHIBITED,
SERVER_OBJ_UPDATE_PROHIBITED
].freeze
@ -98,7 +98,7 @@ class DomainStatus < ApplicationRecord
SERVER_STATUSES = [
SERVER_DELETE_PROHIBITED, SERVER_HOLD, SERVER_RENEW_PROHIBITED, SERVER_TRANSFER_PROHIBITED,
SERVER_UPDATE_PROHIBITED, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_PROHIBITED,
SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, SERVER_RELEASE_PROHIBITED,
SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, SERVER_RELEASE_PROHIBITED,
SERVER_EXTENSION_UPDATE_PROHIBITED, SERVER_OBJ_UPDATE_PROHIBITED
].freeze
@ -165,13 +165,10 @@ class DomainStatus < ApplicationRecord
['UpdateProhibited', SERVER_UPDATE_PROHIBITED],
['DeleteProhibited', SERVER_DELETE_PROHIBITED],
['ReleaseProhibited', SERVER_RELEASE_PROHIBITED],
['ExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED],
['ObjUpdateProhibited', SERVER_OBJ_UPDATE_PROHIBITED],
]
if Feature.obj_and_extensions_statuses_enabled?
admin_statuses << ['ExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED]
admin_statuses << ['ObjUpdateProhibited', SERVER_OBJ_UPDATE_PROHIBITED]
end
admin_statuses
end

View file

@ -1,13 +1,13 @@
class Feature
def self.obj_and_extensions_statuses_enabled?
return false if ENV['obj_and_extensions_prohibited'] == 'false'
ENV['obj_and_extensions_prohibited'] || false
end
def self.enable_lock_domain_with_new_statuses?
return false if ENV['enable_lock_domain_with_new_statuses'] == 'false'
ENV['enable_lock_domain_with_new_statuses'] || false
end
# def self.obj_and_extensions_statuses_enabled?
# return false if ENV['obj_and_extensions_prohibited'] == 'false'
#
# ENV['obj_and_extensions_prohibited'] || false
# end
#
# def self.enable_lock_domain_with_new_statuses?
# return false if ENV['enable_lock_domain_with_new_statuses'] == 'false'
#
# ENV['enable_lock_domain_with_new_statuses'] || false
# end
end

View file

@ -61,9 +61,6 @@ contact_org_enabled: 'false'
# System default for legal document types is: pdf,asice,sce,asics,scs,adoc,edoc,bdoc,ddoc,zip,rar,gz,tar,7z,odt,doc,docx
# legal_document_types: "pdf,asice,sce,asics,scs,adoc,edoc,bdoc,ddoc,zip,rar,gz,tar,7z,odt,doc,docx"
obj_and_extensions_prohibited: 'true'
enable_lock_domain_with_new_statuses: 'true'
#
# REGISTRAR configuration (DEPP)
#

View file

@ -48,100 +48,6 @@ class EppDomainUpdateBaseTest < EppTestCase
assert_epp_response :parameter_value_syntax_error
end
def test_set_false_for_obj_and_extensions_prohibited
ENV['obj_and_extensions_prohibited'] = 'false'
@domain = domains(:shop)
@domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
@domain.save
@dnskey = dnskeys(:one)
@dnskey.update(domain: @domain)
request_xml = <<-XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="#{Xsd::Schema.filename(for_prefix: 'epp-ee', for_version: '1.0')}">
<command>
<update>
<domain:update xmlns:domain="#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}">
<domain:name>shop.test</domain:name>
<domain:rem>
<domain:ns>
<domain:hostAttr>
<domain:hostName>#{nameservers(:shop_ns1).hostname}</domain:hostName>
</domain:hostAttr>
<domain:hostAttr>
<domain:hostName>#{nameservers(:shop_ns2).hostname}</domain:hostName>
</domain:hostAttr>
</domain:ns>
<secDNS:keyData>
<secDNS:flags>#{@dnskey.flags}</secDNS:flags>
<secDNS:protocol>#{@dnskey.protocol}</secDNS:protocol>
<secDNS:alg>#{@dnskey.alg}</secDNS:alg>
<secDNS:pubKey>#{@dnskey.public_key}</secDNS:pubKey>
</secDNS:keyData>
</domain:rem>
</domain:update>
</update>
</command>
</epp>
XML
post epp_update_path, params: { frame: request_xml },
headers: { 'HTTP_COOKIE' => 'session=api_bestnames' }
response_xml = Nokogiri::XML(response.body)
p response.body
assert_correct_against_schema response_xml
@domain.reload
assert_epp_response :completed_successfully
ENV['obj_and_extensions_prohibited'] = nil
end
def test_set_nil_for_obj_and_extensions_prohibited
ENV['obj_and_extensions_prohibited'] = nil
@domain = domains(:shop)
@domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
@domain.save
@dnskey = dnskeys(:one)
@dnskey.update(domain: @domain)
request_xml = <<-XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="#{Xsd::Schema.filename(for_prefix: 'epp-ee', for_version: '1.0')}">
<command>
<update>
<domain:update xmlns:domain="#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}">
<domain:name>shop.test</domain:name>
<domain:rem>
<domain:ns>
<domain:hostAttr>
<domain:hostName>#{nameservers(:shop_ns1).hostname}</domain:hostName>
</domain:hostAttr>
<domain:hostAttr>
<domain:hostName>#{nameservers(:shop_ns2).hostname}</domain:hostName>
</domain:hostAttr>
</domain:ns>
<secDNS:keyData>
<secDNS:flags>#{@dnskey.flags}</secDNS:flags>
<secDNS:protocol>#{@dnskey.protocol}</secDNS:protocol>
<secDNS:alg>#{@dnskey.alg}</secDNS:alg>
<secDNS:pubKey>#{@dnskey.public_key}</secDNS:pubKey>
</secDNS:keyData>
</domain:rem>
</domain:update>
</update>
</command>
</epp>
XML
post epp_update_path, params: { frame: request_xml },
headers: { 'HTTP_COOKIE' => 'session=api_bestnames' }
response_xml = Nokogiri::XML(response.body)
assert_correct_against_schema response_xml
@domain.reload
assert_epp_response :completed_successfully
end
def test_update_domain_data_out_of_extension_block_with_serverObjUpdateProhibited
ENV['obj_and_extensions_prohibited'] = 'true'
@domain = domains(:shop)

View file

@ -1,53 +1,53 @@
require 'test_helper'
class FeatureTest < ActiveSupport::TestCase
setup do
@domain = domains(:shop)
@domain.apply_registry_lock(extensions_prohibited: false)
end
def test_if_obj_and_extensions_prohibited_enabled
ENV['obj_and_extensions_prohibited'] = 'true'
assert Feature.obj_and_extensions_statuses_enabled?
statuses = DomainStatus.admin_statuses
assert statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
end
def test_if_obj_and_extensions_prohibited_is_nil
ENV['obj_and_extensions_prohibited'] = nil
assert_not Feature.obj_and_extensions_statuses_enabled?
statuses = DomainStatus.admin_statuses
assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
end
def test_if_obj_and_extensions_prohibited_is_false
ENV['obj_and_extensions_prohibited'] = 'false'
assert_not Feature.obj_and_extensions_statuses_enabled?
statuses = DomainStatus.admin_statuses
assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
end
def test_if_enable_lock_domain_with_new_statuses_is_nil
ENV['enable_lock_domain_with_new_statuses'] = nil
assert_not Feature.enable_lock_domain_with_new_statuses?
assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
assert @domain.locked_by_registrant?
end
def test_if_enable_lock_domain_with_new_statuses_is_false
ENV['enable_lock_domain_with_new_statuses'] = 'false'
assert_not Feature.enable_lock_domain_with_new_statuses?
assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
assert @domain.locked_by_registrant?
end
# setup do
# @domain = domains(:shop)
# @domain.apply_registry_lock(extensions_prohibited: false)
# end
#
# def test_if_obj_and_extensions_prohibited_enabled
# ENV['obj_and_extensions_prohibited'] = 'true'
#
# assert Feature.obj_and_extensions_statuses_enabled?
#
# statuses = DomainStatus.admin_statuses
# assert statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
# end
#
# def test_if_obj_and_extensions_prohibited_is_nil
# ENV['obj_and_extensions_prohibited'] = nil
#
# assert_not Feature.obj_and_extensions_statuses_enabled?
#
# statuses = DomainStatus.admin_statuses
# assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
# end
#
# def test_if_obj_and_extensions_prohibited_is_false
# ENV['obj_and_extensions_prohibited'] = 'false'
#
# assert_not Feature.obj_and_extensions_statuses_enabled?
#
# statuses = DomainStatus.admin_statuses
# assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
# end
#
# def test_if_enable_lock_domain_with_new_statuses_is_nil
# ENV['enable_lock_domain_with_new_statuses'] = nil
#
# assert_not Feature.enable_lock_domain_with_new_statuses?
#
# assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
# assert @domain.locked_by_registrant?
# end
#
# def test_if_enable_lock_domain_with_new_statuses_is_false
# ENV['enable_lock_domain_with_new_statuses'] = 'false'
#
# assert_not Feature.enable_lock_domain_with_new_statuses?
#
# assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
# assert @domain.locked_by_registrant?
# end
end