mirror of
https://github.com/internetee/registry.git
synced 2025-06-07 21:25:39 +02:00
Merge pull request #2229 from internetee/remove-add-statuses-feature-v2
removed obj_and_ext_prohibited toggle feature
This commit is contained in:
commit
d97540aee6
7 changed files with 72 additions and 178 deletions
|
@ -162,8 +162,8 @@ module Epp
|
||||||
@prefix = 'update > update >'
|
@prefix = 'update > update >'
|
||||||
requires 'name'
|
requires 'name'
|
||||||
|
|
||||||
dnskey_update_enabled if Feature.obj_and_extensions_statuses_enabled?
|
dnskey_update_enabled
|
||||||
dnkey_update_prohibited if Feature.obj_and_extensions_statuses_enabled?
|
dnkey_update_prohibited
|
||||||
status_editing_disabled
|
status_editing_disabled
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,9 @@
|
||||||
module Domain::RegistryLockable
|
module Domain::RegistryLockable
|
||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
LOCK_STATUSES = if Feature.enable_lock_domain_with_new_statuses?
|
LOCK_STATUSES = [DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
|
||||||
[DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED,
|
DomainStatus::SERVER_DELETE_PROHIBITED,
|
||||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
|
||||||
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
|
|
||||||
else
|
|
||||||
[DomainStatus::SERVER_UPDATE_PROHIBITED,
|
|
||||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
|
||||||
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
|
|
||||||
end
|
|
||||||
|
|
||||||
EXTENSIONS_STATUS = [DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED].freeze
|
EXTENSIONS_STATUS = [DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED].freeze
|
||||||
|
|
||||||
|
@ -25,7 +19,7 @@ module Domain::RegistryLockable
|
||||||
def apply_statuses_locked_statuses(extensions_prohibited:)
|
def apply_statuses_locked_statuses(extensions_prohibited:)
|
||||||
self.admin_store_statuses_history = self.statuses
|
self.admin_store_statuses_history = self.statuses
|
||||||
self.statuses |= LOCK_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
|
self.locked_by_registrant_at = Time.zone.now
|
||||||
alert_registrar_lock_changes!(lock: true)
|
alert_registrar_lock_changes!(lock: true)
|
||||||
|
|
||||||
|
|
|
@ -82,10 +82,10 @@ class DomainStatus < ApplicationRecord
|
||||||
CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD,
|
CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD,
|
||||||
CLIENT_RENEW_PROHIBITED, SERVER_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED,
|
CLIENT_RENEW_PROHIBITED, SERVER_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED,
|
||||||
SERVER_TRANSFER_PROHIBITED, CLIENT_UPDATE_PROHIBITED, SERVER_UPDATE_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,
|
PENDING_RENEW, PENDING_TRANSFER, PENDING_UPDATE, SERVER_MANUAL_INZONE,
|
||||||
SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED,
|
SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED,
|
||||||
SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, DELETE_CANDIDATE, EXPIRED, DISPUTED,
|
SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, DELETE_CANDIDATE, EXPIRED, DISPUTED,
|
||||||
SERVER_RELEASE_PROHIBITED, SERVER_EXTENSION_UPDATE_PROHIBITED,
|
SERVER_RELEASE_PROHIBITED, SERVER_EXTENSION_UPDATE_PROHIBITED,
|
||||||
SERVER_OBJ_UPDATE_PROHIBITED
|
SERVER_OBJ_UPDATE_PROHIBITED
|
||||||
].freeze
|
].freeze
|
||||||
|
@ -98,7 +98,7 @@ class DomainStatus < ApplicationRecord
|
||||||
SERVER_STATUSES = [
|
SERVER_STATUSES = [
|
||||||
SERVER_DELETE_PROHIBITED, SERVER_HOLD, SERVER_RENEW_PROHIBITED, SERVER_TRANSFER_PROHIBITED,
|
SERVER_DELETE_PROHIBITED, SERVER_HOLD, SERVER_RENEW_PROHIBITED, SERVER_TRANSFER_PROHIBITED,
|
||||||
SERVER_UPDATE_PROHIBITED, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_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
|
SERVER_EXTENSION_UPDATE_PROHIBITED, SERVER_OBJ_UPDATE_PROHIBITED
|
||||||
].freeze
|
].freeze
|
||||||
|
|
||||||
|
@ -165,13 +165,10 @@ class DomainStatus < ApplicationRecord
|
||||||
['UpdateProhibited', SERVER_UPDATE_PROHIBITED],
|
['UpdateProhibited', SERVER_UPDATE_PROHIBITED],
|
||||||
['DeleteProhibited', SERVER_DELETE_PROHIBITED],
|
['DeleteProhibited', SERVER_DELETE_PROHIBITED],
|
||||||
['ReleaseProhibited', SERVER_RELEASE_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
|
admin_statuses
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
class Feature
|
class Feature
|
||||||
def self.obj_and_extensions_statuses_enabled?
|
# def self.obj_and_extensions_statuses_enabled?
|
||||||
return false if ENV['obj_and_extensions_prohibited'] == 'false'
|
# return false if ENV['obj_and_extensions_prohibited'] == 'false'
|
||||||
|
#
|
||||||
ENV['obj_and_extensions_prohibited'] || false
|
# ENV['obj_and_extensions_prohibited'] || false
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def self.enable_lock_domain_with_new_statuses?
|
# def self.enable_lock_domain_with_new_statuses?
|
||||||
return false if ENV['enable_lock_domain_with_new_statuses'] == 'false'
|
# return false if ENV['enable_lock_domain_with_new_statuses'] == 'false'
|
||||||
|
#
|
||||||
ENV['enable_lock_domain_with_new_statuses'] || false
|
# ENV['enable_lock_domain_with_new_statuses'] || false
|
||||||
end
|
# end
|
||||||
end
|
end
|
||||||
|
|
|
@ -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
|
# 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"
|
# 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)
|
# REGISTRAR configuration (DEPP)
|
||||||
#
|
#
|
||||||
|
|
|
@ -48,100 +48,6 @@ class EppDomainUpdateBaseTest < EppTestCase
|
||||||
assert_epp_response :parameter_value_syntax_error
|
assert_epp_response :parameter_value_syntax_error
|
||||||
end
|
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
|
def test_update_domain_data_out_of_extension_block_with_serverObjUpdateProhibited
|
||||||
ENV['obj_and_extensions_prohibited'] = 'true'
|
ENV['obj_and_extensions_prohibited'] = 'true'
|
||||||
@domain = domains(:shop)
|
@domain = domains(:shop)
|
||||||
|
|
|
@ -1,53 +1,53 @@
|
||||||
require 'test_helper'
|
require 'test_helper'
|
||||||
|
|
||||||
class FeatureTest < ActiveSupport::TestCase
|
class FeatureTest < ActiveSupport::TestCase
|
||||||
setup do
|
# setup do
|
||||||
@domain = domains(:shop)
|
# @domain = domains(:shop)
|
||||||
@domain.apply_registry_lock(extensions_prohibited: false)
|
# @domain.apply_registry_lock(extensions_prohibited: false)
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def test_if_obj_and_extensions_prohibited_enabled
|
# def test_if_obj_and_extensions_prohibited_enabled
|
||||||
ENV['obj_and_extensions_prohibited'] = 'true'
|
# ENV['obj_and_extensions_prohibited'] = 'true'
|
||||||
|
#
|
||||||
assert Feature.obj_and_extensions_statuses_enabled?
|
# assert Feature.obj_and_extensions_statuses_enabled?
|
||||||
|
#
|
||||||
statuses = DomainStatus.admin_statuses
|
# statuses = DomainStatus.admin_statuses
|
||||||
assert statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
# assert statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def test_if_obj_and_extensions_prohibited_is_nil
|
# def test_if_obj_and_extensions_prohibited_is_nil
|
||||||
ENV['obj_and_extensions_prohibited'] = nil
|
# ENV['obj_and_extensions_prohibited'] = nil
|
||||||
|
#
|
||||||
assert_not Feature.obj_and_extensions_statuses_enabled?
|
# assert_not Feature.obj_and_extensions_statuses_enabled?
|
||||||
|
#
|
||||||
statuses = DomainStatus.admin_statuses
|
# statuses = DomainStatus.admin_statuses
|
||||||
assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
# assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def test_if_obj_and_extensions_prohibited_is_false
|
# def test_if_obj_and_extensions_prohibited_is_false
|
||||||
ENV['obj_and_extensions_prohibited'] = 'false'
|
# ENV['obj_and_extensions_prohibited'] = 'false'
|
||||||
|
#
|
||||||
assert_not Feature.obj_and_extensions_statuses_enabled?
|
# assert_not Feature.obj_and_extensions_statuses_enabled?
|
||||||
|
#
|
||||||
statuses = DomainStatus.admin_statuses
|
# statuses = DomainStatus.admin_statuses
|
||||||
assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
# assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def test_if_enable_lock_domain_with_new_statuses_is_nil
|
# def test_if_enable_lock_domain_with_new_statuses_is_nil
|
||||||
ENV['enable_lock_domain_with_new_statuses'] = nil
|
# ENV['enable_lock_domain_with_new_statuses'] = nil
|
||||||
|
#
|
||||||
assert_not Feature.enable_lock_domain_with_new_statuses?
|
# assert_not Feature.enable_lock_domain_with_new_statuses?
|
||||||
|
#
|
||||||
assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
# assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
||||||
assert @domain.locked_by_registrant?
|
# assert @domain.locked_by_registrant?
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def test_if_enable_lock_domain_with_new_statuses_is_false
|
# def test_if_enable_lock_domain_with_new_statuses_is_false
|
||||||
ENV['enable_lock_domain_with_new_statuses'] = 'false'
|
# ENV['enable_lock_domain_with_new_statuses'] = 'false'
|
||||||
|
#
|
||||||
assert_not Feature.enable_lock_domain_with_new_statuses?
|
# assert_not Feature.enable_lock_domain_with_new_statuses?
|
||||||
|
#
|
||||||
assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
# assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"]
|
||||||
assert @domain.locked_by_registrant?
|
# assert @domain.locked_by_registrant?
|
||||||
end
|
# end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue