mirror of
https://github.com/internetee/registry.git
synced 2025-06-11 07:04:47 +02:00
Merge pull request #1977 from internetee/1885-server-release-prohibited-and-limit-the-effect-of-delete-prohibited
added feature permission for release if domain has status server-rele…
This commit is contained in:
commit
6ae96be0ac
4 changed files with 31 additions and 7 deletions
|
@ -17,14 +17,14 @@ module Domain::Releasable
|
||||||
' AND ? != ALL(coalesce(statuses, array[]::varchar[]))',
|
' AND ? != ALL(coalesce(statuses, array[]::varchar[]))',
|
||||||
Time.zone.today,
|
Time.zone.today,
|
||||||
Time.zone.today,
|
Time.zone.today,
|
||||||
DomainStatus::SERVER_DELETE_PROHIBITED)
|
DomainStatus::SERVER_RELEASE_PROHIBITED)
|
||||||
else
|
else
|
||||||
where('(delete_date <= ? OR force_delete_date <= ?)' \
|
where('(delete_date <= ? OR force_delete_date <= ?)' \
|
||||||
' AND ? != ALL(coalesce(statuses, array[]::varchar[])) AND' \
|
' AND ? != ALL(coalesce(statuses, array[]::varchar[])) AND' \
|
||||||
' ? != ALL(COALESCE(statuses, array[]::varchar[]))',
|
' ? != ALL(COALESCE(statuses, array[]::varchar[]))',
|
||||||
Time.zone.today,
|
Time.zone.today,
|
||||||
Time.zone.today,
|
Time.zone.today,
|
||||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
DomainStatus::SERVER_RELEASE_PROHIBITED,
|
||||||
DomainStatus::DELETE_CANDIDATE)
|
DomainStatus::DELETE_CANDIDATE)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,6 +4,8 @@ class DomainStatus < ApplicationRecord
|
||||||
include EppErrors
|
include EppErrors
|
||||||
belongs_to :domain
|
belongs_to :domain
|
||||||
|
|
||||||
|
SERVER_RELEASE_PROHIBITED = 'serverReleaseProhibited'
|
||||||
|
|
||||||
# Requests to delete the object MUST be rejected.
|
# Requests to delete the object MUST be rejected.
|
||||||
CLIENT_DELETE_PROHIBITED = 'clientDeleteProhibited'
|
CLIENT_DELETE_PROHIBITED = 'clientDeleteProhibited'
|
||||||
SERVER_DELETE_PROHIBITED = 'serverDeleteProhibited'
|
SERVER_DELETE_PROHIBITED = 'serverDeleteProhibited'
|
||||||
|
@ -81,7 +83,7 @@ class DomainStatus < ApplicationRecord
|
||||||
INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_DELETE_CONFIRMATION, PENDING_RENEW, PENDING_TRANSFER,
|
INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_DELETE_CONFIRMATION, PENDING_RENEW, PENDING_TRANSFER,
|
||||||
PENDING_UPDATE, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_PROHIBITED,
|
PENDING_UPDATE, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_PROHIBITED,
|
||||||
SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE,
|
SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE,
|
||||||
DELETE_CANDIDATE, EXPIRED, DISPUTED
|
DELETE_CANDIDATE, EXPIRED, DISPUTED, SERVER_RELEASE_PROHIBITED
|
||||||
].freeze
|
].freeze
|
||||||
|
|
||||||
CLIENT_STATUSES = [
|
CLIENT_STATUSES = [
|
||||||
|
@ -92,7 +94,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_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, SERVER_RELEASE_PROHIBITED
|
||||||
].freeze
|
].freeze
|
||||||
|
|
||||||
UPDATE_PROHIBIT_STATES = [
|
UPDATE_PROHIBIT_STATES = [
|
||||||
|
@ -157,7 +159,8 @@ class DomainStatus < ApplicationRecord
|
||||||
['AdminChangeProhibited', SERVER_ADMIN_CHANGE_PROHIBITED],
|
['AdminChangeProhibited', SERVER_ADMIN_CHANGE_PROHIBITED],
|
||||||
['TechChangeProhibited', SERVER_TECH_CHANGE_PROHIBITED],
|
['TechChangeProhibited', SERVER_TECH_CHANGE_PROHIBITED],
|
||||||
['UpdateProhibited', SERVER_UPDATE_PROHIBITED],
|
['UpdateProhibited', SERVER_UPDATE_PROHIBITED],
|
||||||
['DeleteProhibited', SERVER_DELETE_PROHIBITED]
|
['DeleteProhibited', SERVER_DELETE_PROHIBITED],
|
||||||
|
['ReleaseProhibited', SERVER_RELEASE_PROHIBITED],
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -99,10 +99,21 @@ class DomainReleasableAuctionableTest < ActiveJob::TestCase
|
||||||
assert_not @domain.domain_name.at_auction?
|
assert_not @domain.domain_name.at_auction?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_ignores_domains_with_server_delete_prohibited_status
|
def test_does_not_ignore_domains_with_server_delete_prohibited_status
|
||||||
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
||||||
travel_to Time.zone.parse('2010-07-05')
|
travel_to Time.zone.parse('2010-07-05')
|
||||||
|
|
||||||
|
assert_changes 'Domain.count' do
|
||||||
|
Domain.release_domains
|
||||||
|
end
|
||||||
|
|
||||||
|
assert @domain.domain_name.at_auction?
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_ignores_domains_with_server_release_prohibited_status
|
||||||
|
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_RELEASE_PROHIBITED])
|
||||||
|
travel_to Time.zone.parse('2010-07-05')
|
||||||
|
|
||||||
assert_no_difference 'Domain.count' do
|
assert_no_difference 'Domain.count' do
|
||||||
Domain.release_domains
|
Domain.release_domains
|
||||||
end
|
end
|
||||||
|
|
|
@ -51,13 +51,23 @@ class DomainReleasableDiscardableTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_ignores_domains_with_server_delete_prohibited_status
|
def test_does_not_ignore_domains_with_server_delete_prohibited_status
|
||||||
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
||||||
travel_to Time.zone.parse('2010-07-05')
|
travel_to Time.zone.parse('2010-07-05')
|
||||||
|
|
||||||
Domain.release_domains
|
Domain.release_domains
|
||||||
@domain.reload
|
@domain.reload
|
||||||
|
|
||||||
|
assert @domain.discarded?
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_ignores_domains_with_server_release_prohibited_status
|
||||||
|
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_RELEASE_PROHIBITED])
|
||||||
|
travel_to Time.zone.parse('2010-07-05')
|
||||||
|
|
||||||
|
Domain.release_domains
|
||||||
|
@domain.reload
|
||||||
|
|
||||||
assert_not @domain.discarded?
|
assert_not @domain.discarded?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue