diff --git a/app/models/actions/contact_delete.rb b/app/models/actions/contact_delete.rb index 59032d566..d4169e8b3 100644 --- a/app/models/actions/contact_delete.rb +++ b/app/models/actions/contact_delete.rb @@ -19,6 +19,11 @@ module Actions return end + if contact.delete_prohibited? + contact.errors.add(:status, :delete_prohibited) + return + end + commit end diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index 0c0ed3d5f..e7054c8aa 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -83,7 +83,8 @@ class Epp::Contact < Contact [:code, :epp_id_taken] ], '2305' => [ # Association exists - [:domains, :exist] + [:domains, :exist], + [:domains, :delete_prohibited], ] } end diff --git a/config/locales/contacts.en.yml b/config/locales/contacts.en.yml index 906bde193..b5f0dd7ed 100644 --- a/config/locales/contacts.en.yml +++ b/config/locales/contacts.en.yml @@ -25,6 +25,8 @@ en: email_regex_check_error: Invalid format domains: exist: 'Object association prohibits operation' + status: + delete_prohibited: Contact delete prohibited by status statuses: not_uniq: 'not uniq' country_code: diff --git a/test/integration/epp/contact/delete/base_test.rb b/test/integration/epp/contact/delete/base_test.rb index a93b68b6d..5bdb7b8cf 100644 --- a/test/integration/epp/contact/delete/base_test.rb +++ b/test/integration/epp/contact/delete/base_test.rb @@ -115,4 +115,4 @@ class EppContactDeleteBaseTest < EppTestCase DomainContact.delete_all contacts(:john) end -end \ No newline at end of file +end