Revert "Fix possible doubling of contact objects after race"

This commit is contained in:
Timo Võhmar 2020-06-30 15:39:48 +03:00 committed by GitHub
parent 98a209505d
commit 3be2c384a2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 41 additions and 2238 deletions

View file

@ -103,19 +103,13 @@ module Epp
def update
authorize! :update, @domain, @password
updated = Domain.transaction(isolation: isolation_level) do
@domain.update(params[:parsed_frame], current_user)
end
updated = @domain.update(params[:parsed_frame], current_user)
(handle_errors(@domain) && return) unless updated
pending = @domain.epp_pending_update.present?
render_epp_response "/epp/domains/success#{'_pending' if pending}"
end
def isolation_level
:serializable unless Rails.env.test?
end
def delete
authorize! :delete, @domain, @password

View file

@ -1,25 +0,0 @@
class AddUniqueConstraintsToDomainObjects < ActiveRecord::Migration[6.0]
def up
execute <<-SQL
alter table domain_contacts
add constraint uniq_contact_of_type_per_domain unique (domain_id, type, contact_id);
SQL
execute <<-SQL
alter table nameservers
add constraint uniq_hostname_per_domain unique (domain_id, hostname);
SQL
end
def down
execute <<-SQL
alter table domain_contacts
drop constraint if exists uniq_contact_of_type_per_domain;
SQL
execute <<-SQL
alter table nameservers
drop constraint if exists uniq_hostname_per_domain;
SQL
end
end

File diff suppressed because it is too large Load diff

View file

@ -177,7 +177,7 @@ class ContactTest < ActiveSupport::TestCase
def test_linked_when_in_use_as_domain_contact
Domain.update_all(registrant_id: contacts(:william).id)
DomainContact.first.update(contact_id: @contact.id)
DomainContact.update_all(contact_id: @contact.id)
assert @contact.linked?
end

View file

@ -137,9 +137,9 @@ class DomainTest < ActiveSupport::TestCase
contact = contacts(:john)
domain.admin_contacts << contact
assert_raise ActiveRecord::RecordNotUnique do
domain.admin_contacts << contact
end
domain.admin_contacts << contact
assert domain.invalid?
end
def test_invalid_when_the_same_tech_contact_is_linked_twice
@ -147,9 +147,9 @@ class DomainTest < ActiveSupport::TestCase
contact = contacts(:john)
domain.tech_contacts << contact
assert_raise ActiveRecord::RecordNotUnique do
domain.tech_contacts << contact
end
domain.tech_contacts << contact
assert domain.invalid?
end
def test_validates_name_server_count_when_name_servers_are_required