From bf5c1635c53a74d2ee35c4cdcb649defb468e846 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 4 Jul 2019 16:56:22 +0300 Subject: [PATCH 001/757] Add test --- test/models/registrar_test.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 53967cfcc..eec9007b6 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -31,6 +31,16 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.invalid? end + def test_email_format_validation + registrar = valid_registrar + + registrar.email = 'invalid' + assert registrar.invalid? + + registrar.email = 'valid@email.test' + assert registrar.valid? + end + def test_invalid_without_accounting_customer_code registrar = valid_registrar registrar.accounting_customer_code = '' From 1dfe30ccfd971626293f5de418821c558c5b003f Mon Sep 17 00:00:00 2001 From: Artur Beljajev <22315378+artur-beljajev@users.noreply.github.com> Date: Mon, 8 Jul 2019 13:43:57 +0300 Subject: [PATCH 002/757] Add missing translations (#1250) Fixes #1218 --- app/models/certification_request.rb | 3 +++ app/views/admin/bank_statements/index.haml | 2 +- app/views/admin/certificates/new.haml | 2 +- app/views/admin/certificates/show.haml | 8 ++++---- config/locales/admin/bank_statements.en.yml | 5 +++++ config/locales/admin/certificates.en.yml | 5 +++++ 6 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 app/models/certification_request.rb create mode 100644 config/locales/admin/bank_statements.en.yml create mode 100644 config/locales/admin/certificates.en.yml diff --git a/app/models/certification_request.rb b/app/models/certification_request.rb new file mode 100644 index 000000000..1ea81c120 --- /dev/null +++ b/app/models/certification_request.rb @@ -0,0 +1,3 @@ +class CertificationRequest + extend ActiveModel::Translation +end \ No newline at end of file diff --git a/app/views/admin/bank_statements/index.haml b/app/views/admin/bank_statements/index.haml index 0810c15fe..2c604c035 100644 --- a/app/views/admin/bank_statements/index.haml +++ b/app/views/admin/bank_statements/index.haml @@ -1,6 +1,6 @@ - content_for :actions do = link_to(t(:add), new_admin_bank_statement_path, class: 'btn btn-primary') - = link_to(t(:import), import_admin_bank_statements_path, class: 'btn btn-primary') + = link_to(t('.import_btn'), import_admin_bank_statements_path, class: 'btn btn-primary') = render 'shared/title', name: t(:bank_statements) .row diff --git a/app/views/admin/certificates/new.haml b/app/views/admin/certificates/new.haml index 40947ed19..e2988f58e 100644 --- a/app/views/admin/certificates/new.haml +++ b/app/views/admin/certificates/new.haml @@ -8,7 +8,7 @@ .form-group - if params[:crt] .col-md-4.control-label - = f.label :crt, t(:certificate) + = f.label :crt, t('.certificate_file') .col-md-8 = f.file_field :crt - else diff --git a/app/views/admin/certificates/show.haml b/app/views/admin/certificates/show.haml index 5adbdbdc4..821d7ec9a 100644 --- a/app/views/admin/certificates/show.haml +++ b/app/views/admin/certificates/show.haml @@ -54,7 +54,7 @@ %dt= t(:version) %dd= @csr.version - %dt= t(:subject) + %dt= CertificationRequest.human_attribute_name :subject %dd= @csr.subject %dt= t(:signature_algorithm) @@ -78,7 +78,7 @@ %dt= t(:version) %dd= @crt.version - %dt= t(:serial_number) + %dt= Certificate.human_attribute_name :serial_number %dd= @crt.serial %dt= t(:signature_algorithm) @@ -93,8 +93,8 @@ %dt= t(:valid_to) %dd= @crt.not_after - %dt= t(:subject) + %dt= Certificate.human_attribute_name :subject %dd= @crt.subject - %dt= t(:extensions) + %dt= Certificate.human_attribute_name :extensions %dd= @crt.extensions.map(&:to_s).join('
').html_safe diff --git a/config/locales/admin/bank_statements.en.yml b/config/locales/admin/bank_statements.en.yml new file mode 100644 index 000000000..ca451e4f8 --- /dev/null +++ b/config/locales/admin/bank_statements.en.yml @@ -0,0 +1,5 @@ +en: + admin: + bank_statements: + index: + import_btn: Import \ No newline at end of file diff --git a/config/locales/admin/certificates.en.yml b/config/locales/admin/certificates.en.yml new file mode 100644 index 000000000..e2a774abd --- /dev/null +++ b/config/locales/admin/certificates.en.yml @@ -0,0 +1,5 @@ +en: + admin: + certificates: + new: + certificate_file: Certificate file \ No newline at end of file From 9bb73b7cdd773608cded6daf83c109537e431835 Mon Sep 17 00:00:00 2001 From: Artur Beljajev <22315378+artur-beljajev@users.noreply.github.com> Date: Mon, 8 Jul 2019 13:45:45 +0300 Subject: [PATCH 003/757] Validate registrar's billing email (#1253) Previously it was being validated only if contact email changed (contact and billing emails have nothing in common). --- app/models/registrar.rb | 6 +++--- test/models/registrar_test.rb | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 8a65c0b06..030c2a824 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -32,9 +32,9 @@ class Registrar < ActiveRecord::Base attribute :vat_rate, ::Type::VATRate.new after_initialize :set_defaults - validates :email, :billing_email, - email_format: { message: :invalid }, - allow_blank: true, if: proc { |c| c.email_changed? } + validates :email, email_format: { message: :invalid }, + allow_blank: true, if: proc { |c| c.email_changed? } + validates :billing_email, email_format: { message: :invalid }, allow_blank: true WHOIS_TRIGGERS = %w(name email phone street city state zip) diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index eec9007b6..15c276018 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -47,6 +47,22 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.invalid? end + def test_optional_billing_email + registrar = valid_registrar + registrar.billing_email = '' + assert registrar.valid? + end + + def test_billing_email_format_validation + registrar = valid_registrar + + registrar.billing_email = 'invalid' + assert registrar.invalid? + + registrar.billing_email = 'valid@email.test' + assert registrar.valid? + end + def test_invalid_without_language registrar = valid_registrar registrar.language = '' From bff2d88036e9430355ed8455214ced744330877b Mon Sep 17 00:00:00 2001 From: Artur Beljajev <22315378+artur-beljajev@users.noreply.github.com> Date: Mon, 8 Jul 2019 13:46:25 +0300 Subject: [PATCH 004/757] Remove unnecessary `require` (#1254) --- config/application.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index 21d7e9dd0..f57056960 100644 --- a/config/application.rb +++ b/config/application.rb @@ -98,6 +98,4 @@ module DomainNameRegistry config.action_view.default_form_builder = 'DefaultFormBuilder' config.secret_key_base = Figaro.env.secret_key_base end -end - -require 'validates_email_format_of' +end \ No newline at end of file From 26fa15f76c7424e85a0c2da59320833fe3e66ff1 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 4 Jul 2019 17:17:03 +0300 Subject: [PATCH 005/757] Alias attribute --- app/models/registrar.rb | 2 ++ test/models/registrar_test.rb | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 030c2a824..de5b3a324 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -36,6 +36,8 @@ class Registrar < ActiveRecord::Base allow_blank: true, if: proc { |c| c.email_changed? } validates :billing_email, email_format: { message: :invalid }, allow_blank: true + alias_attribute :contact_email, :email + WHOIS_TRIGGERS = %w(name email phone street city state zip) after_commit :update_whois_records diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 15c276018..7b3867f4a 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -145,6 +145,12 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.invalid? end + def test_aliases_contact_email_to_email + email = 'info@registrar.test' + registrar = Registrar.new(email: email) + assert_equal email, registrar.contact_email + end + def test_full_address registrar = Registrar.new(address_street: 'Main Street 1', address_zip: '1234', address_city: 'NY', address_state: 'NY State') From 6356ce0e9f862fdc49b31ea7a9f478f4bbe18a7d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 4 Jul 2019 17:27:09 +0300 Subject: [PATCH 006/757] Fall back on contact email if billing email is absent Affects e-invoice and invoice delivery form. Fixes #1255 --- app/models/registrar.rb | 5 +++++ test/models/registrar_test.rb | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/app/models/registrar.rb b/app/models/registrar.rb index de5b3a324..fa8747114 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -176,6 +176,11 @@ class Registrar < ActiveRecord::Base iban end + def billing_email + return contact_email if self[:billing_email].blank? + self[:billing_email] + end + private def set_defaults diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 7b3867f4a..ae68ebeea 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -63,6 +63,18 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.valid? end + def test_returns_billing_email_when_provided + billing_email = 'billing@registrar.test' + registrar = Registrar.new(billing_email: billing_email) + assert_equal billing_email, registrar.billing_email + end + + def test_billing_email_fallback + contact_email = 'info@registrar.test' + registrar = Registrar.new(contact_email: contact_email, billing_email: '') + assert_equal contact_email, registrar.billing_email + end + def test_invalid_without_language registrar = valid_registrar registrar.language = '' From 88c186234560c085957e34de7cda2a9dc471fd84 Mon Sep 17 00:00:00 2001 From: Georg Date: Mon, 8 Jul 2019 15:37:43 +0300 Subject: [PATCH 007/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2811370e8..1dc8e6bbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +08.07.2019 +* Invoices are not delivered to e-invoice provider when registrar has no billing email [#1255](https://github.com/internetee/registry/issues/1255) + 28.06.2019 * E-invoicing with every generated invoice [#1222](https://github.com/internetee/registry/issues/1222) From be7a9103cbd39200e4128fb013cdb0e767ca9627 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 8 Jul 2019 15:47:25 +0300 Subject: [PATCH 008/757] Add form field hint Supplements #1256 --- app/views/admin/registrars/form/_billing.html.erb | 1 + config/locales/admin/registrars.en.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/app/views/admin/registrars/form/_billing.html.erb b/app/views/admin/registrars/form/_billing.html.erb index 91086918b..e3bb6629e 100644 --- a/app/views/admin/registrars/form/_billing.html.erb +++ b/app/views/admin/registrars/form/_billing.html.erb @@ -47,6 +47,7 @@
<%= f.email_field :billing_email, class: 'form-control' %> + <%= t '.billing_email_hint' %>
diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index 88e95843e..b6ba75fc9 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -61,6 +61,7 @@ en: Applies to new invoices. Leave blank if a registrar is VAT-registered; registry's rate of %{registry_vat_rate} will be applied in this case. + billing_email_hint: Contact email will be used for billing purposes if left blank no_reference_number_hint: Reference number will be generated automatically disabled_reference_number_hint: Reference number cannot be changed iban_hint: Used for e-invoices From 68aa523ba84c809681fc0d85631f00a3f42c2ee0 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 11 Jul 2019 16:39:36 +0300 Subject: [PATCH 009/757] Remove unused DB column It is absent in production-like envs, therefore no migration. --- db/structure.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/db/structure.sql b/db/structure.sql index d1f379a74..befd74afd 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -492,8 +492,7 @@ CREATE TABLE public.bank_transactions ( created_at timestamp without time zone, updated_at timestamp without time zone, creator_str character varying, - updator_str character varying, - in_directo boolean DEFAULT false + updator_str character varying ); From db6326e798d7eabd4df0f54579bfc856e490e23c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 8 Aug 2019 15:00:13 +0300 Subject: [PATCH 010/757] Remove unused script --- bin/update-repo | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100755 bin/update-repo diff --git a/bin/update-repo b/bin/update-repo deleted file mode 100755 index ae0cd536b..000000000 --- a/bin/update-repo +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -# -# Update repo -# - -# cd to Rails root directory -cd "$(dirname "$0")"; cd .. - -git pull origin master &> /dev/null -git reset --hard &> /dev/null -unset GIT_DIR GIT_WORK_TREE From 8d67301d625878c5235a34b466c1efff5f7edfa6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 10 Aug 2019 17:22:39 +0300 Subject: [PATCH 011/757] Remove unused factory --- spec/factories/bank_transaction.rb | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 spec/factories/bank_transaction.rb diff --git a/spec/factories/bank_transaction.rb b/spec/factories/bank_transaction.rb deleted file mode 100644 index ebe471984..000000000 --- a/spec/factories/bank_transaction.rb +++ /dev/null @@ -1,8 +0,0 @@ -FactoryBot.define do - factory :bank_transaction do - currency { 'EUR' } - sum { 100.0 } - description { 'Invoice no. 1' } - reference_no { 'RF2405752128' } - end -end From 5a68035818cd0a3af95b8379e27516b50833de9f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 11 Aug 2019 22:02:19 +0300 Subject: [PATCH 012/757] Remove unused db column --- app/models/invoice.rb | 1 - app/views/registrar/invoices/index.haml | 2 +- ...0190811184334_remove_invoices_seller_id.rb | 5 +++ db/structure.sql | 10 ++---- .../registrar_area/invoices/list_test.rb | 33 +++++++------------ 5 files changed, 20 insertions(+), 31 deletions(-) create mode 100644 db/migrate/20190811184334_remove_invoices_seller_id.rb diff --git a/app/models/invoice.rb b/app/models/invoice.rb index a36825848..50453f61f 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -3,7 +3,6 @@ class Invoice < ActiveRecord::Base include Concerns::Invoice::Cancellable include Concerns::Invoice::Payable - belongs_to :seller, class_name: 'Registrar' belongs_to :buyer, class_name: 'Registrar' has_one :account_activity has_many :items, class_name: 'InvoiceItem', dependent: :destroy diff --git a/app/views/registrar/invoices/index.haml b/app/views/registrar/invoices/index.haml index 9ed8b91d5..76a2966b5 100644 --- a/app/views/registrar/invoices/index.haml +++ b/app/views/registrar/invoices/index.haml @@ -57,7 +57,7 @@ %th{class: 'col-xs-3'}= t(:total) %tbody - @invoices.each do |invoice| - %tr.invoice + %tr %td= link_to(invoice, [:registrar, invoice]) - if invoice.paid? %td= l invoice.receipt_date diff --git a/db/migrate/20190811184334_remove_invoices_seller_id.rb b/db/migrate/20190811184334_remove_invoices_seller_id.rb new file mode 100644 index 000000000..d96dfedb4 --- /dev/null +++ b/db/migrate/20190811184334_remove_invoices_seller_id.rb @@ -0,0 +1,5 @@ +class RemoveInvoicesSellerId < ActiveRecord::Migration + def change + remove_column :invoices, :seller_id + end +end diff --git a/db/structure.sql b/db/structure.sql index befd74afd..a3d9fb481 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -935,7 +935,6 @@ CREATE TABLE public.invoices ( description character varying, reference_no character varying NOT NULL, vat_rate numeric(4,3) NOT NULL, - seller_id integer, seller_name character varying NOT NULL, seller_reg_no character varying, seller_iban character varying NOT NULL, @@ -3453,13 +3452,6 @@ CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btr CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); --- --- Name: index_invoices_on_seller_id; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_invoices_on_seller_id ON public.invoices USING btree (seller_id); - - -- -- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -4817,3 +4809,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190617122505'); INSERT INTO schema_migrations (version) VALUES ('20190620084334'); +INSERT INTO schema_migrations (version) VALUES ('20190811184334'); + diff --git a/test/system/registrar_area/invoices/list_test.rb b/test/system/registrar_area/invoices/list_test.rb index e63d8c1a4..b6d659a96 100644 --- a/test/system/registrar_area/invoices/list_test.rb +++ b/test/system/registrar_area/invoices/list_test.rb @@ -3,10 +3,9 @@ require 'test_helper' class ListInvoicesTest < ApplicationSystemTestCase setup do @user = users(:api_bestnames) - sign_in @user - @invoice = invoices(:one) - eliminate_effect_of_other_invoices + + sign_in @user end def test_show_balance @@ -14,31 +13,23 @@ class ListInvoicesTest < ApplicationSystemTestCase assert_text "Your current account balance is 100,00 EUR" end - def test_show_invoices_of_current_registrar - registrar = registrars(:bestnames) - @user.update!(registrar: registrar) - @invoice.update!(seller: registrar) + def test_shows_invoice_owned_by_current_user + owning_registrar = registrars(:bestnames) + assert_equal owning_registrar, @user.registrar + @invoice.update!(buyer: owning_registrar) visit registrar_invoices_url - assert_css '.invoice' + assert_text @invoice.to_s end - def test_do_not_show_invoices_of_other_registrars - registrar = registrars(:goodnames) - @user.update!(registrar: registrar) - @invoice.update!(seller: registrar) + def test_hides_invoice_owned_by_other_user + other_registrar = registrars(:goodnames) + assert_not_equal other_registrar, @user.registrar + @invoice.update!(buyer: other_registrar) visit registrar_invoices_url - assert_no_css '.invoice' - end - - private - - def eliminate_effect_of_other_invoices - Invoice.connection.disable_referential_integrity do - Invoice.delete_all("id != #{@invoice.id}") - end + assert_no_text @invoice.to_s end end \ No newline at end of file From cc58052436bd796959dc1163d6711432739422d9 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 20 Aug 2019 00:03:17 +0300 Subject: [PATCH 013/757] fix CVE-2019-5477 https://github.com/sparklemotion/nokogiri/issues/1915 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d71c55eee..094e33788 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -261,7 +261,7 @@ GEM mustermann-grape (1.0.0) mustermann (~> 1.0.0) netrc (0.11.0) - nokogiri (1.10.3) + nokogiri (1.10.4) mini_portile2 (~> 2.4.0) nori (2.6.0) open4 (1.3.4) From 04cc904e2e27ca19e8e6f9fbf315a234363eb37b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 21 Aug 2019 16:09:50 +0300 Subject: [PATCH 014/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dc8e6bbe..f11fd5701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +21.08.2019 +* Nokogiri update to 1.10.4 (CVE-2019-5477) [#1266](https://github.com/internetee/registry/pull/1266) + 08.07.2019 * Invoices are not delivered to e-invoice provider when registrar has no billing email [#1255](https://github.com/internetee/registry/issues/1255) From 1dc6ef7ddf600920b6edca49579358c546454b09 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 3 Jul 2019 14:51:16 +0300 Subject: [PATCH 015/757] Process payments automatically Closes #1232 --- Gemfile | 1 + Gemfile.lock | 11 +++ config/application-example.yml | 9 ++ config/schedule.rb | 7 ++ .../bank_transactions.xml | 73 ++++++++++++++++ .../create_bank_transactions.rake | 41 +++++++++ lib/tasks/invoices/process_payments.rake | 49 +++++++++++ test/fixtures/files/keystore.jks | Bin 0 -> 2242 bytes test/tasks/invoices/process_payments_test.rb | 78 ++++++++++++++++++ 9 files changed, 269 insertions(+) create mode 100644 lib/tasks/dev/create_bank_transactions/bank_transactions.xml create mode 100644 lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake create mode 100644 lib/tasks/invoices/process_payments.rake create mode 100644 test/fixtures/files/keystore.jks create mode 100644 test/tasks/invoices/process_payments_test.rb diff --git a/Gemfile b/Gemfile index fb61fd2ba..59882bed6 100644 --- a/Gemfile +++ b/Gemfile @@ -92,6 +92,7 @@ gem 'airbrake' gem 'company_register', github: 'internetee/company_register', branch: :master gem 'e_invoice', github: 'internetee/e_invoice', branch: :master +gem 'lhv', github: 'internetee/lhv', tag: 'v0.1.0' group :development do # deploy diff --git a/Gemfile.lock b/Gemfile.lock index d71c55eee..4a4d77bbb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -41,6 +41,15 @@ GIT hpricot libxml-ruby +GIT + remote: https://github.com/internetee/lhv.git + revision: e211516bc5fff2139584d4da41c17511863c229d + tag: v0.1.0 + specs: + lhv (0.1.0) + keystores + nokogiri + GIT remote: https://github.com/tarmotalu/digidoc_client.git revision: 1645e83a5a548addce383f75703b0275c5310c32 @@ -231,6 +240,7 @@ GEM kaminari (0.16.3) actionpack (>= 3.0.0) activesupport (>= 3.0.0) + keystores (0.4.0) libxml-ruby (3.0.0) loofah (2.2.3) crass (~> 1.0.2) @@ -479,6 +489,7 @@ DEPENDENCIES jquery-rails (= 4.0.4) jquery-ui-rails (= 5.0.5) kaminari (= 0.16.3) + lhv! mina (= 0.3.1) money-rails nokogiri diff --git a/config/application-example.yml b/config/application-example.yml index 0738a9278..de0e8f681 100644 --- a/config/application-example.yml +++ b/config/application-example.yml @@ -152,6 +152,12 @@ action_mailer_default_port: # default: no port (80) action_mailer_default_from: # no-reply@example.com action_mailer_force_delete_from: # `From` header for `DomainDeleteMailer#forced` email +lhv_keystore: +lhv_keystore_password: +lhv_keystore_alias: +lhv_ca_file: # Needed only in dev mode +lhv_dev_mode: 'false' + # Since the keys for staging are absent from the repo, we need to supply them separate for testing. test: payments_seb_bank_certificate: 'test/fixtures/files/seb_bank_cert.pem' @@ -161,6 +167,9 @@ test: action_mailer_default_host: 'registry.test' action_mailer_default_from: 'no-reply@registry.test' action_mailer_force_delete_from: 'legal@registry.test' + lhv_keystore: 'test/fixtures/files/keystore.jks' + lhv_keystore_password: 'testtest' + lhv_keystore_alias: 'testtest' # Airbrake // Errbit: airbrake_host: "https://your-errbit-host.ee" diff --git a/config/schedule.rb b/config/schedule.rb index d47b45ea9..fe920dc6d 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -57,6 +57,13 @@ if @cron_group == 'registry' every 42.minutes do rake 'domain:discard' end + + # Should be at least once every 4 days, since according to LHV specs: + # "Unread messages older than 5 days are automatically scheduled for deletion" + # https://partners.lhv.ee/en/connect/#messaging + every :day, at: '12:01am' do + rake 'invoices:process_payments' + end end every 10.minutes do diff --git a/lib/tasks/dev/create_bank_transactions/bank_transactions.xml b/lib/tasks/dev/create_bank_transactions/bank_transactions.xml new file mode 100644 index 000000000..72a53b697 --- /dev/null +++ b/lib/tasks/dev/create_bank_transactions/bank_transactions.xml @@ -0,0 +1,73 @@ + + + + + populated by rake task + 2019-07-28T10:00:00 + 1 + + 0.1 + + ABC Corporation + + + + test3 + TRF + false + 1 + 2019-07-28 + + test + + + + populated by rake task + + EUR + + + + LHVBEE22 + + + + + ABC/090928/CCT001/01 + ABC/4562/2009-09-08 + + + + 0.1 + + SHAR + + + LHVBEE22 + + + + DEF Electronics + + Corn Exchange 5th Floor + + + + + populated by rake task + + + + + 1 + + + + 13 + + + + + + + diff --git a/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake b/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake new file mode 100644 index 000000000..33614d049 --- /dev/null +++ b/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake @@ -0,0 +1,41 @@ +namespace :dev do + task create_bank_transactions: :environment do + remitter_iban = ENV['remitter_iban'] + beneficiary_iban = Setting.registry_iban + + keystore_password = ENV['lhv_keystore_password'] + keystore_alias = ENV['lhv_keystore_alias'] + keystore = Keystores::JavaKeystore.new + keystore.load(ENV['lhv_keystore'], keystore_password) + cert = keystore.get_certificate(keystore_alias) + key = keystore.get_key(keystore_alias, keystore_password) + + api_base_uri = URI.parse('https://testconnect.lhv.eu/connect-prelive') + request_headers = { 'content-type' => 'application/xml' } + + request_xml = File.binread(File.join(__dir__, 'bank_transactions.xml')) + request_xml_doc = Nokogiri::XML(request_xml) + request_xml_doc.at_css('CstmrCdtTrfInitn > GrpHdr > MsgId').content = SecureRandom.hex + request_xml_doc.at_css('CstmrCdtTrfInitn > PmtInf > DbtrAcct > Id > IBAN') + .content = remitter_iban + request_xml_doc.at_css('CstmrCdtTrfInitn > PmtInf > CdtTrfTxInf > CdtrAcct > Id > IBAN') + .content = beneficiary_iban + request_body = request_xml_doc.to_xml + + http = Net::HTTP.new(api_base_uri.host, api_base_uri.port) + http.use_ssl = api_base_uri.is_a?(URI::HTTPS) + http.cert = cert + http.key = key + http.ca_file = ENV['lhv_ca_file'] + + http.start do + response = http.post(api_base_uri.path + '/payment', request_body, request_headers) + + if response.is_a?(Net::HTTPSuccess) + puts 'Success' + else + puts 'Failure' + end + end + end +end \ No newline at end of file diff --git a/lib/tasks/invoices/process_payments.rake b/lib/tasks/invoices/process_payments.rake new file mode 100644 index 000000000..6e4c57213 --- /dev/null +++ b/lib/tasks/invoices/process_payments.rake @@ -0,0 +1,49 @@ +namespace :invoices do + task process_payments: :environment do + registry_bank_account_iban = Setting.registry_iban + + keystore_password = ENV['lhv_keystore_password'] + keystore_alias = ENV['lhv_keystore_alias'] + keystore = Keystores::JavaKeystore.new + keystore.load(ENV['lhv_keystore'], keystore_password) + cert = keystore.get_certificate(keystore_alias) + key = keystore.get_key(keystore_alias, keystore_password) + + api = Lhv::ConnectApi.new + api.cert = cert + api.key = key + api.ca_file = ENV['lhv_ca_file'] + api.dev_mode = ENV['lhv_dev_mode'] == 'true' + + incoming_transactions = [] + + api.credit_debit_notification_messages.each do |message| + next unless message.bank_account_iban == registry_bank_account_iban + + message.credit_transactions.each do |credit_transaction| + incoming_transactions << credit_transaction + end + end + + if incoming_transactions.any? + bank_statement = BankStatement.new(bank_code: Setting.registry_bank_code, + iban: Setting.registry_iban) + + ActiveRecord::Base.transaction do + bank_statement.save! + + incoming_transactions.each do |incoming_transaction| + transaction_attributes = { sum: incoming_transaction.amount, + currency: incoming_transaction.currency, + paid_at: incoming_transaction.date, + reference_no: incoming_transaction.payment_reference_number, + description: incoming_transaction.payment_description } + transaction = bank_statement.bank_transactions.create!(transaction_attributes) + transaction.autobind_invoice + end + end + end + + puts "Transactions processed: #{incoming_transactions.size}" + end +end \ No newline at end of file diff --git a/test/fixtures/files/keystore.jks b/test/fixtures/files/keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..7ce34f308d5df462a90842275cecdb54f6fef5ac GIT binary patch literal 2242 zcmchYS5VW58pZQZLP(@ZS%UNuFrY|6LRG4iD1wq0dJ}1yEU+NLg0$c!2ulf|$fAgV zFiLMqk!I*62uKqaM2Sj?2rMAg%iX#6&d&ILAI`)1J$-ZL%=r$u2V4*c1U?k-x1cw? zgKr!f>Pyl0L^j;iLMA?U*BE~Ic;{x7h$jG9xLQl zEzf4?w3~P(#%`%9y4NkX&Mmv5{cwiOwEjUOHgSO4@3);~;NGbBGcU~}j@`!hx%C;> z=RhHW5n>z~0A}&`?W}|?aOro0F8hM%aw*mO6hCGxHwe`gy-A`;+SEp=m7W^p zbwahjtHdIDE=fzybMOsN7cJ?#7Ahwg=NX{5}TD6;Lvy z7Os_>s#^6z?aT-am7w(*K1nm1EY8X0CYVp6wErEKuT@fJe+o3m`a<62c_s<7)pXwT zkLJp6Gf;gZI={L0Oe?p@Q1`E-9_TKH2G$(AQBfz(-@+B<6{&YxJ&$Ycx}>`*qSNTU zRD1%e_y+kzaA!DY#D@fC$)93*31Nd7vb4(Pa1)1L=2NSlpVj|fp{ID;48bxOEGJc# z&|w6c$g`V6u$at-0hNeeLHwB9lkr zEa~?_p9ZuGhZeY#BYuGw&}L}d*WLpPJc~IBs(Y458frZRhq6Sw`os7CzE3=$G5j_ z)lPm;YTDN0PFu`&246nEvaZ>JsYE z$-JO@&KBOSoD=3EKA%?TNiiDzBrbUEcBXt>BMviGdwQYJY9f8Fq~q7gSJX2Qjbzyv zza<}rbuyx1v3S_>Sxj`ey~#VtO;jtks30`l@TT$BL>tN7*#=row+$)ru7x_66I>

#;q z{e!G#eTxM{)FBS`iFc>N-=rDy5fFacA1p1Z$0PyjEFjVZ(!^wn@p)gTivOmQ?Ak_cA z1pWiz{ec|$f$;r6Apav6S)>3~52K6G!)jvma5$%bTPzl%^B?-U{xgolZvmkJ zLLdwcI0B{t0H`<|noSsbGSgf^RB(R3ahG2w6`Hmn|2y68+Il3ab<3>Yx)r=C*2Lc; zSJe|}4Tb<9AYTC^hmkpKh>Rdq94bbTugp$HuJtr#9gmW^IaO_Iq+jyS5Dz8RpAbE^Tlwo4qKM zVb9M-4#zpJ8Vt>jf?S#-QX|O;3$3c_Dgo&P?W>!NK4XM+j*FLhFcByWm9spjPK?JZ Q*B=|e+h($ literal 0 HcmV?d00001 diff --git a/test/tasks/invoices/process_payments_test.rb b/test/tasks/invoices/process_payments_test.rb new file mode 100644 index 000000000..8c3b6ec73 --- /dev/null +++ b/test/tasks/invoices/process_payments_test.rb @@ -0,0 +1,78 @@ +require 'test_helper' + +class ProcessPaymentsTaskTest < ActiveSupport::TestCase + setup do + @payment_amount = payment_amount = 0.1 + @payment_currency = payment_currency = 'EUR' + @payment_date = payment_date = Date.parse('2010-07-05') + @payment_reference_number = payment_reference_number = '13' + @payment_description = payment_description = @invoice_number = '1234' + beneficiary_iban = 'GB33BUKB20201555555555' + + @invoice = create_payable_invoice(number: @invoice_number, + total: payment_amount, + currency: @payment_currency, + reference_no: @payment_reference_number) + Setting.registry_iban = beneficiary_iban + + Lhv::ConnectApi.class_eval do + define_method :credit_debit_notification_messages do + transaction = OpenStruct.new(amount: payment_amount, + currency: payment_currency, + date: payment_date, + payment_reference_number: payment_reference_number, + payment_description: payment_description) + message = OpenStruct.new(bank_account_iban: beneficiary_iban, + credit_transactions: [transaction]) + [message] + end + end + end + + def test_doubles_are_valid + assert Lhv::ConnectApi.method_defined?(:credit_debit_notification_messages) + assert Lhv::ConnectApi::Messages::CreditDebitNotification.method_defined?(:bank_account_iban) + assert Lhv::ConnectApi::Messages::CreditDebitNotification.method_defined?(:credit_transactions) + end + + def test_saves_transactions + assert_difference 'BankStatement.count' do + assert_difference 'BankTransaction.count' do + capture_io { run_task } + end + end + transaction = BankTransaction.last + assert_equal @payment_amount, transaction.sum + assert_equal @payment_currency, transaction.currency + assert_equal @payment_date, transaction.paid_at.to_date + assert_equal @payment_reference_number, transaction.reference_no + assert_equal @payment_description, transaction.description + end + + def test_marks_matched_invoice_as_paid + assert @invoice.unpaid? + + capture_io { run_task } + @invoice.reload + + assert @invoice.paid? + end + + def test_output + assert_output "Transactions processed: 1\n" do + run_task + end + end + + private + + def run_task + Rake::Task['invoices:process_payments'].execute + end + + def create_payable_invoice(attributes = {}) + invoice = invoices(:one) + invoice.update!({ account_activity: nil, cancelled_at: nil }.merge(attributes)) + invoice + end +end \ No newline at end of file From e53ec19db4548941094bbebd851ea7dd67252617 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 26 Aug 2019 14:41:45 +0300 Subject: [PATCH 016/757] Remove unused rake tasks --- .codeclimate.yml | 2 - lib/tasks/convert.rake | 117 -------- lib/tasks/statuses.rake | 625 ---------------------------------------- 3 files changed, 744 deletions(-) delete mode 100644 lib/tasks/convert.rake delete mode 100644 lib/tasks/statuses.rake diff --git a/.codeclimate.yml b/.codeclimate.yml index 3760d0042..ec9b25820 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -33,12 +33,10 @@ exclude_patterns: - "lib/gem_ext/" - "lib/tasks/api_log.rake" - "lib/tasks/bootstrap.rake" - - "lib/tasks/convert.rake" - "lib/tasks/db.rake" - "lib/tasks/documents.rake" - "lib/tasks/import.rake" - "lib/tasks/legal_doc.rake" - - "lib/tasks/statuses.rake" - "lib/tasks/whois.rake" - "spec/" - "test/" diff --git a/lib/tasks/convert.rake b/lib/tasks/convert.rake deleted file mode 100644 index 47e0ec7c2..000000000 --- a/lib/tasks/convert.rake +++ /dev/null @@ -1,117 +0,0 @@ -namespace :convert do - desc 'Convert punycodes to unicode' - task punycode: :environment do - start = Time.zone.now.to_f - puts "-----> Convert domain punycodes to unicode..." - count = 0 - Domain.find_each(:batch_size => 1000) do |x| - old_name = x.name - if old_name != SimpleIDN.to_unicode(x.name.strip.downcase) - x.update_column(:name, (SimpleIDN.to_unicode(x.name.strip.downcase))) - x.update_column(:name_puny, (SimpleIDN.to_ascii(x.name.strip.downcase))) - count += 1 - puts "Domain #{x.id} changed from #{old_name} to #{SimpleIDN.to_unicode(old_name)} " - end - end - puts "-----> all done in #{(Time.zone.now.to_f - start).round(2)} seconds. #{count} domains changed." - end - - desc 'Convert punycodes in history to unicode' - task history_punycode: :environment do - DomainVersion.find_each do |d| - if obj = d.object - obj["name"] = SimpleIDN.to_unicode(obj["name"]) - obj["name_puny"] = SimpleIDN.to_ascii(obj["name_puny"]) - d.object = obj - end - if (obj_c = d.object_changes).present? - obj_c["name"].map!{|e| e ? SimpleIDN.to_unicode(e) : e } if obj_c["name"] - obj_c["name_puny"].map!{|e| e ? SimpleIDN.to_ascii(e) : e } if obj_c["name_puny"] - d.object_changes = obj_c - end - d.save! - end - end - - - desc 'Contact Address Country Code Upcase' - task country_code_upcase: :environment do - count = 0 - Contact.find_each do |c| - if c.country_code.present? && c.country_code != c.country_code.upcase - c.country_code = c.country_code.upcase - c.update_columns(country_code: c.country_code.upcase) - - count +=1 - puts "#{count} contacts has been changed" if count % 1000 == 0 - end - end - puts "Contacts change has been finished. Starting ContactVersions" - - count = 0 - ContactVersion.find_each do |c| - if (if_object = (c.object && c.object["country_code"].present? && c.object["country_code"] != c.object["country_code"].upcase)) || - (if_changes = (c.object_changes && c.object_changes["country_code"].present? && c.object_changes["country_code"] != c.object_changes["country_code"].map{|e|e.try(:upcase)})) - - if if_object - h = c.object - h["country_code"] = h["country_code"].try(:upcase) - c.object = h - end - - if if_changes - h = c.object_changes - h["country_code"] = h["country_code"].map{|e|e.try(:upcase)} - c.object_changes = h - end - c.update_columns(object: c.object, object_changes: c.object_changes) - - count +=1 - puts "#{count} contact histories has been changed" if count % 1000 == 0 - end - end - end - - desc 'Convert nameservers hostname and hostname_puny' - task nameserves_hostname: :environment do - - start = Time.zone.now.to_f - count = 0 - puts '-----> Converting hostnames...' - - Nameserver.find_each(:batch_size => 1000) do |ns| - ns.hostname = SimpleIDN.to_unicode(ns.hostname) - ns.hostname_puny = SimpleIDN.to_ascii(ns.hostname_puny) - ns.save validate: false - count += 1 - puts "-----> Converted #{count} nameservers" if count % 1000 == 0 - end - puts "-----> Converted #{count} nameservers #{(Time.zone.now.to_f - start).round(2)} seconds" - - end - - desc 'Convert nameservers history hostname' - task nameserves_history_hostname: :environment do - - start = Time.zone.now.to_f - count = 0 - puts '-----> Converting hostnames history...' - - NameserverVersion.find_each do |ns| - if obj = ns.object - obj["hostname"] = SimpleIDN.to_unicode(obj["hostname"]) - ns.object = obj - end - - if (obj_c = ns.object_changes).present? - obj_c["name"].map!{|e| e ? SimpleIDN.to_unicode(e) : e } if obj_c["hostname"] - ns.object_changes = obj_c - end - count += 1 - ns.save! - end - puts "-----> Converted #{count} history rows #{(Time.zone.now.to_f - start).round(2)} seconds" - end - -end - diff --git a/lib/tasks/statuses.rake b/lib/tasks/statuses.rake deleted file mode 100644 index 61adf372d..000000000 --- a/lib/tasks/statuses.rake +++ /dev/null @@ -1,625 +0,0 @@ -desc 'Schema load for all databases: registry, api_log and whois' -task statuses: [:environment] do - statuses = { - 'ok': [ - ], - 'inactive': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'clientDeleteProhibited': [ - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverDeleteProhibited': [ - 'clientDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'clientHold': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverHold': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'clientRenewProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingTransfer', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverRenewProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingTransfer', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'clientTransferProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverTransferProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'clientUpdateProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverUpdateProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'pendingCreate': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'pendingDelete': [ - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingDeleteConfirmation', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'pendingRenew': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - - ], - 'pendingTransfer': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'pendingUpdate': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'inactive', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverManualInzone': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'pendingUpdate', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverRegistrantChangeProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'pendingUpdate', - 'serverManualInzone', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverAdminChangeProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverTechChangeProhibited': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'serverForceDelete': [ - 'clientHold', - 'serverHold', - 'inactive', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'deleteCandidate', - 'expired' - ], - 'deleteCandidate': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate', - 'expired' - ], - 'expired': [ - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientHold', - 'serverHold', - 'clientRenewProhibited', - 'serverRenewProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'inactive', - 'pendingCreate', - 'pendingDelete', - 'pendingDeleteConfirmation', - 'pendingRenew', - 'pendingTransfer', - 'pendingUpdate', - 'serverManualInzone', - 'serverRegistrantChangeProhibited', - 'serverAdminChangeProhibited', - 'serverTechChangeProhibited', - 'serverForceDelete', - 'deleteCandidate' - ] - } - - puts "\nDomain status can be with other statuses map\n" - puts "---------------------------------------------" - statuses.each do |s, _v| - puts "\n#{s} =>" - statuses[s].map { |u| puts " #{u}" } - puts - end - - contact_statuses = { - 'ok': [ - 'linked' - ], - 'linked': [ - 'ok' - ], - 'clientDeleteProhibited': [ - 'linked', - 'serverDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'pendingCreate', - 'pendingTransfer', - 'pendingUpdate' - ], - 'serverDeleteProhibited': [ - 'linked', - 'clientDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'pendingCreate', - 'pendingTransfer', - 'pendingUpdate' - ], - 'clientTransferProhibited': [ - 'linked', - 'serverDeleteProhibited', - 'clientDeleteProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'pendingCreate', - 'pendingDelete', - 'pendingUpdate' - ], - 'serverTransferProhibited': [ - 'linked', - 'serverDeleteProhibited', - 'clientDeleteProhibited', - 'clientTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited', - 'pendingCreate', - 'pendingDelete', - 'pendingUpdate' - ], - 'clientUpdateProhibited': [ - 'linked', - 'serverDeleteProhibited', - 'clientDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'serverUpdateProhibited', - 'pendingCreate', - 'pendingDelete', - 'pendingTransfer' - ], - 'serverUpdateProhibited': [ - 'linked', - 'serverDeleteProhibited', - 'clientDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'pendingCreate', - 'pendingDelete', - 'pendingTransfer' - ], - 'pendingCreate': [ - 'linked', - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited' - ], - 'pendingDelete': [ - 'linked', - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited' - ], - 'pendingTransfer': [ - 'linked', - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited' - ], - 'pendingUpdate': [ - 'linked', - 'clientDeleteProhibited', - 'serverDeleteProhibited', - 'clientTransferProhibited', - 'serverTransferProhibited', - 'clientUpdateProhibited', - 'serverUpdateProhibited' - ] - } - - puts "\n\nContact status can be with other statuses map\n" - puts "---------------------------------------------" - contact_statuses.each do |s, _v| - puts "\n#{s} =>" - contact_statuses[s].map { |u| puts " #{u}" } - puts - end -end From 74fed16dc6b65c8a3aa5148ac47c41bffff34184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 26 Aug 2019 17:18:43 +0300 Subject: [PATCH 017/757] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f11fd5701..6b24940ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +26.08.2019 +* Introduced automatic payment processing using LHV Connect [#1232](https://github.com/internetee/registry/issues/1232) +* removed unused script [#1261](https://github.com/internetee/registry/pull/1261) +* removed unused factory [#1262](https://github.com/internetee/registry/pull/1262) +* removed unused seller_it columnt from invoices db table [#1264](https://github.com/internetee/registry/pull/1264) +* removed unused rakte tasks [#1268](https://github.com/internetee/registry/pull/1268) + 21.08.2019 * Nokogiri update to 1.10.4 (CVE-2019-5477) [#1266](https://github.com/internetee/registry/pull/1266) From 18e6f511aa91086c886a302f0bde71d30fbbc609 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 11 Aug 2019 23:11:26 +0300 Subject: [PATCH 018/757] Add db constraint --- app/models/invoice.rb | 2 +- ...5814_change_invoices_number_to_not_null.rb | 5 + db/structure.sql | 408 +++++++++--------- 3 files changed, 211 insertions(+), 204 deletions(-) create mode 100644 db/migrate/20190811195814_change_invoices_number_to_not_null.rb diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 50453f61f..cde439c70 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -35,7 +35,7 @@ class Invoice < ActiveRecord::Base attribute :vat_rate, ::Type::VATRate.new def set_invoice_number - last_no = Invoice.order(number: :desc).where('number IS NOT NULL').limit(1).pluck(:number).first + last_no = Invoice.order(number: :desc).limit(1).pluck(:number).first if last_no && last_no >= Setting.invoice_number_min.to_i self.number = last_no + 1 diff --git a/db/migrate/20190811195814_change_invoices_number_to_not_null.rb b/db/migrate/20190811195814_change_invoices_number_to_not_null.rb new file mode 100644 index 000000000..122e27572 --- /dev/null +++ b/db/migrate/20190811195814_change_invoices_number_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeInvoicesNumberToNotNull < ActiveRecord::Migration + def change + change_column_null :invoices, :number, false + end +end diff --git a/db/structure.sql b/db/structure.sql index a3d9fb481..14778b4d7 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -295,7 +295,7 @@ SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -335,7 +335,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -371,7 +371,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -403,7 +403,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -436,7 +436,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -472,7 +472,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -516,7 +516,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -549,7 +549,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -587,7 +587,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -645,7 +645,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -680,7 +680,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -721,7 +721,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -759,7 +759,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -796,7 +796,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( @@ -854,7 +854,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -886,7 +886,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -923,7 +923,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -963,7 +963,7 @@ CREATE TABLE public.invoices ( buyer_email character varying, creator_str character varying, updator_str character varying, - number integer, + number integer NOT NULL, cancelled_at timestamp without time zone, total numeric(10,2) NOT NULL, in_directo boolean DEFAULT false, @@ -992,7 +992,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.keyrelays ( @@ -1035,7 +1035,7 @@ ALTER SEQUENCE public.keyrelays_id_seq OWNED BY public.keyrelays.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -1070,7 +1070,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -1108,7 +1108,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1146,7 +1146,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1184,7 +1184,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1222,7 +1222,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1260,7 +1260,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1298,7 +1298,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1336,7 +1336,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1375,7 +1375,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1413,7 +1413,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1451,7 +1451,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1489,7 +1489,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1527,7 +1527,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1565,7 +1565,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_keyrelays ( @@ -1603,7 +1603,7 @@ ALTER SEQUENCE public.log_keyrelays_id_seq OWNED BY public.log_keyrelays.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1641,7 +1641,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1679,7 +1679,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1717,7 +1717,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1755,7 +1755,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1793,7 +1793,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1831,7 +1831,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1869,7 +1869,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -1907,7 +1907,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -1945,7 +1945,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -1983,7 +1983,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -2025,7 +2025,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( @@ -2060,7 +2060,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -2113,7 +2113,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -2148,7 +2148,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -2157,7 +2157,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2193,7 +2193,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2247,7 +2247,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2282,7 +2282,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( @@ -2318,7 +2318,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2353,7 +2353,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( @@ -2767,7 +2767,7 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2775,7 +2775,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -2783,7 +2783,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -2791,7 +2791,7 @@ ALTER TABLE ONLY public.actions -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2799,7 +2799,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -2807,7 +2807,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -2815,7 +2815,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2823,7 +2823,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -2831,7 +2831,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2839,7 +2839,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -2847,7 +2847,7 @@ ALTER TABLE ONLY public.directos -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -2855,7 +2855,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -2863,7 +2863,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -2871,7 +2871,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2879,7 +2879,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -2887,7 +2887,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -2895,7 +2895,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -2903,7 +2903,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.keyrelays @@ -2911,7 +2911,7 @@ ALTER TABLE ONLY public.keyrelays -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -2919,7 +2919,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -2927,7 +2927,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -2935,7 +2935,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -2943,7 +2943,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -2951,7 +2951,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -2959,7 +2959,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -2967,7 +2967,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -2975,7 +2975,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -2983,7 +2983,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -2991,7 +2991,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -2999,7 +2999,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -3007,7 +3007,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -3015,7 +3015,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -3023,7 +3023,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_keyrelays @@ -3031,7 +3031,7 @@ ALTER TABLE ONLY public.log_keyrelays -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -3039,7 +3039,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -3047,7 +3047,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -3055,7 +3055,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -3063,7 +3063,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -3071,7 +3071,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -3079,7 +3079,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -3087,7 +3087,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3095,7 +3095,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -3103,7 +3103,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -3111,7 +3111,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -3119,7 +3119,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -3127,7 +3127,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3135,7 +3135,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3143,7 +3143,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -3151,7 +3151,7 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3159,7 +3159,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3167,7 +3167,7 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3175,7 +3175,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3183,7 +3183,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3191,7 +3191,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3199,7 +3199,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3207,7 +3207,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3215,7 +3215,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3223,7 +3223,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3231,7 +3231,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3239,7 +3239,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3247,7 +3247,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3255,7 +3255,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3263,7 +3263,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3271,595 +3271,595 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_blocked_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_blocked_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_blocked_domains_on_name ON public.blocked_domains USING btree (name); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_accepter_id ON public.keyrelays USING btree (accepter_id); -- --- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_domain_id ON public.keyrelays USING btree (domain_id); -- --- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_requester_id ON public.keyrelays USING btree (requester_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_item_type_and_item_id ON public.log_keyrelays USING btree (item_type, item_id); -- --- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_whodunnit ON public.log_keyrelays USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); @@ -4811,3 +4811,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190620084334'); INSERT INTO schema_migrations (version) VALUES ('20190811184334'); +INSERT INTO schema_migrations (version) VALUES ('20190811195814'); + From f1b37853b9f773e1a75d671a6ad450c2cb8edc1d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 11 Aug 2019 23:21:50 +0300 Subject: [PATCH 019/757] AddInvoicesNumberUniqConstraint --- ...811202042_add_invoices_number_uniq_constraint.rb | 13 +++++++++++++ db/structure.sql | 10 ++++++++++ 2 files changed, 23 insertions(+) create mode 100644 db/migrate/20190811202042_add_invoices_number_uniq_constraint.rb diff --git a/db/migrate/20190811202042_add_invoices_number_uniq_constraint.rb b/db/migrate/20190811202042_add_invoices_number_uniq_constraint.rb new file mode 100644 index 000000000..423214355 --- /dev/null +++ b/db/migrate/20190811202042_add_invoices_number_uniq_constraint.rb @@ -0,0 +1,13 @@ +class AddInvoicesNumberUniqConstraint < ActiveRecord::Migration + def up + execute <<-SQL + ALTER TABLE invoices ADD CONSTRAINT unique_number UNIQUE (number) + SQL + end + + def down + execute <<-SQL + ALTER TABLE invoices DROP CONSTRAINT unique_number + SQL + end +end diff --git a/db/structure.sql b/db/structure.sql index 14778b4d7..09925eac5 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -3198,6 +3198,14 @@ ALTER TABLE ONLY public.registrars ADD CONSTRAINT unique_name UNIQUE (name); +-- +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.invoices + ADD CONSTRAINT unique_number UNIQUE (number); + + -- -- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -4813,3 +4821,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190811184334'); INSERT INTO schema_migrations (version) VALUES ('20190811195814'); +INSERT INTO schema_migrations (version) VALUES ('20190811202042'); + From b177b3eab2253e95fee122db84c375ee6bcb7b06 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 11 Aug 2019 23:24:34 +0300 Subject: [PATCH 020/757] AddInvoicesBuyerIdFk --- db/migrate/20190811202347_add_invoices_buyer_id_fk.rb | 5 +++++ db/structure.sql | 10 ++++++++++ 2 files changed, 15 insertions(+) create mode 100644 db/migrate/20190811202347_add_invoices_buyer_id_fk.rb diff --git a/db/migrate/20190811202347_add_invoices_buyer_id_fk.rb b/db/migrate/20190811202347_add_invoices_buyer_id_fk.rb new file mode 100644 index 000000000..de2a82fcd --- /dev/null +++ b/db/migrate/20190811202347_add_invoices_buyer_id_fk.rb @@ -0,0 +1,5 @@ +class AddInvoicesBuyerIdFk < ActiveRecord::Migration + def change + add_foreign_key :invoices, :registrars, column: :buyer_id + end +end diff --git a/db/structure.sql b/db/structure.sql index 09925eac5..0e122c441 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -3913,6 +3913,14 @@ ALTER TABLE ONLY public.domains ADD CONSTRAINT domains_registrar_id_fk FOREIGN KEY (registrar_id) REFERENCES public.registrars(id); +-- +-- Name: fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.invoices + ADD CONSTRAINT fk_rails_242b91538b FOREIGN KEY (buyer_id) REFERENCES public.registrars(id); + + -- -- Name: fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -4823,3 +4831,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190811195814'); INSERT INTO schema_migrations (version) VALUES ('20190811202042'); +INSERT INTO schema_migrations (version) VALUES ('20190811202347'); + From 98e662b003dea36a2526752031820a608231bf06 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 11 Aug 2019 23:43:49 +0300 Subject: [PATCH 021/757] ChangeInvoicesRequiredColumnsToNotNull --- ...e_invoices_required_columns_to_not_null.rb | 15 ++++++++++++ db/structure.sql | 24 ++++++++++--------- test/fixtures/invoices.yml | 12 +++++++++- 3 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 db/migrate/20190811202711_change_invoices_required_columns_to_not_null.rb diff --git a/db/migrate/20190811202711_change_invoices_required_columns_to_not_null.rb b/db/migrate/20190811202711_change_invoices_required_columns_to_not_null.rb new file mode 100644 index 000000000..fc8f0f895 --- /dev/null +++ b/db/migrate/20190811202711_change_invoices_required_columns_to_not_null.rb @@ -0,0 +1,15 @@ +class ChangeInvoicesRequiredColumnsToNotNull < ActiveRecord::Migration + def change + change_column_null :invoices, :buyer_id, false + change_column_null :invoices, :seller_reg_no, false + change_column_null :invoices, :seller_bank, false + change_column_null :invoices, :seller_swift, false + change_column_null :invoices, :seller_country_code, false + change_column_null :invoices, :seller_street, false + change_column_null :invoices, :seller_city, false + change_column_null :invoices, :buyer_reg_no, false + change_column_null :invoices, :buyer_country_code, false + change_column_null :invoices, :buyer_street, false + change_column_null :invoices, :buyer_city, false + end +end diff --git a/db/structure.sql b/db/structure.sql index 0e122c441..ccc253007 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -936,27 +936,27 @@ CREATE TABLE public.invoices ( reference_no character varying NOT NULL, vat_rate numeric(4,3) NOT NULL, seller_name character varying NOT NULL, - seller_reg_no character varying, + seller_reg_no character varying NOT NULL, seller_iban character varying NOT NULL, - seller_bank character varying, - seller_swift character varying, + seller_bank character varying NOT NULL, + seller_swift character varying NOT NULL, seller_vat_no character varying, - seller_country_code character varying, + seller_country_code character varying NOT NULL, seller_state character varying, - seller_street character varying, - seller_city character varying, + seller_street character varying NOT NULL, + seller_city character varying NOT NULL, seller_zip character varying, seller_phone character varying, seller_url character varying, seller_email character varying, seller_contact_name character varying, - buyer_id integer, + buyer_id integer NOT NULL, buyer_name character varying NOT NULL, - buyer_reg_no character varying, - buyer_country_code character varying, + buyer_reg_no character varying NOT NULL, + buyer_country_code character varying NOT NULL, buyer_state character varying, - buyer_street character varying, - buyer_city character varying, + buyer_street character varying NOT NULL, + buyer_city character varying NOT NULL, buyer_zip character varying, buyer_phone character varying, buyer_url character varying, @@ -4833,3 +4833,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190811202042'); INSERT INTO schema_migrations (version) VALUES ('20190811202347'); +INSERT INTO schema_migrations (version) VALUES ('20190811202711'); + diff --git a/test/fixtures/invoices.yml b/test/fixtures/invoices.yml index c3e3bac79..7c6be1afd 100644 --- a/test/fixtures/invoices.yml +++ b/test/fixtures/invoices.yml @@ -3,9 +3,19 @@ one: due_date: <%= Date.parse '2010-07-06' %> currency: EUR seller_name: Seller Ltd - seller_iban: US75512108001245126199 + seller_reg_no: 1234 + seller_iban: iban + seller_bank: Main Bank + seller_swift: swift + seller_country_code: US + seller_street: Main Street 1 + seller_city: New York buyer: bestnames buyer_name: Buyer Ltd + buyer_reg_no: 12345 + buyer_country_code: GB + buyer_street: Main Street 2 + buyer_city: London vat_rate: 0.1 total: 16.50 reference_no: 13 From 3be20eeec2150f1bd17005687cba794eae80dadd Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 12 Aug 2019 00:05:07 +0300 Subject: [PATCH 022/757] Fix fixtures --- test/fixtures/invoices.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/invoices.yml b/test/fixtures/invoices.yml index 7c6be1afd..e154b50d6 100644 --- a/test/fixtures/invoices.yml +++ b/test/fixtures/invoices.yml @@ -4,7 +4,7 @@ one: currency: EUR seller_name: Seller Ltd seller_reg_no: 1234 - seller_iban: iban + seller_iban: US75512108001245126199 seller_bank: Main Bank seller_swift: swift seller_country_code: US From 13ff0b1183b5a3cba1a5954178fed61684ad6223 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 12 Aug 2019 00:05:21 +0300 Subject: [PATCH 023/757] ChangeInvoicesRequiredColumnsToNotNullPart2 --- ..._change_invoices_required_columns_to_not_null_part2.rb | 7 +++++++ db/structure.sql | 8 +++++--- test/fixtures/invoices.yml | 3 +++ 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20190811205406_change_invoices_required_columns_to_not_null_part2.rb diff --git a/db/migrate/20190811205406_change_invoices_required_columns_to_not_null_part2.rb b/db/migrate/20190811205406_change_invoices_required_columns_to_not_null_part2.rb new file mode 100644 index 000000000..57e9d7d9b --- /dev/null +++ b/db/migrate/20190811205406_change_invoices_required_columns_to_not_null_part2.rb @@ -0,0 +1,7 @@ +class ChangeInvoicesRequiredColumnsToNotNullPart2 < ActiveRecord::Migration + def change + change_column_null :invoices, :seller_email, false + change_column_null :invoices, :seller_contact_name, false + change_column_null :invoices, :buyer_email, false + end +end diff --git a/db/structure.sql b/db/structure.sql index ccc253007..c134253b0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -948,8 +948,8 @@ CREATE TABLE public.invoices ( seller_zip character varying, seller_phone character varying, seller_url character varying, - seller_email character varying, - seller_contact_name character varying, + seller_email character varying NOT NULL, + seller_contact_name character varying NOT NULL, buyer_id integer NOT NULL, buyer_name character varying NOT NULL, buyer_reg_no character varying NOT NULL, @@ -960,7 +960,7 @@ CREATE TABLE public.invoices ( buyer_zip character varying, buyer_phone character varying, buyer_url character varying, - buyer_email character varying, + buyer_email character varying NOT NULL, creator_str character varying, updator_str character varying, number integer NOT NULL, @@ -4835,3 +4835,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190811202347'); INSERT INTO schema_migrations (version) VALUES ('20190811202711'); +INSERT INTO schema_migrations (version) VALUES ('20190811205406'); + diff --git a/test/fixtures/invoices.yml b/test/fixtures/invoices.yml index e154b50d6..3fe18b4b2 100644 --- a/test/fixtures/invoices.yml +++ b/test/fixtures/invoices.yml @@ -7,12 +7,15 @@ one: seller_iban: US75512108001245126199 seller_bank: Main Bank seller_swift: swift + seller_email: info@seller.test seller_country_code: US seller_street: Main Street 1 seller_city: New York + seller_contact_name: John Doe buyer: bestnames buyer_name: Buyer Ltd buyer_reg_no: 12345 + buyer_email: info@buyer.test buyer_country_code: GB buyer_street: Main Street 2 buyer_city: London From df0e9f2c40d6d40b3507363c1a2277e52270f45b Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 26 Aug 2019 17:56:22 +0300 Subject: [PATCH 024/757] Regenerate SQL --- db/structure.sql | 406 +++++++++++++++++++++++------------------------ 1 file changed, 203 insertions(+), 203 deletions(-) diff --git a/db/structure.sql b/db/structure.sql index c134253b0..0dcb19643 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -295,7 +295,7 @@ SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -335,7 +335,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -371,7 +371,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -403,7 +403,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -436,7 +436,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -472,7 +472,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -516,7 +516,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -549,7 +549,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -587,7 +587,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -645,7 +645,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -680,7 +680,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -721,7 +721,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -759,7 +759,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -796,7 +796,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( @@ -854,7 +854,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -886,7 +886,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -923,7 +923,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -992,7 +992,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.keyrelays ( @@ -1035,7 +1035,7 @@ ALTER SEQUENCE public.keyrelays_id_seq OWNED BY public.keyrelays.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -1070,7 +1070,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -1108,7 +1108,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1146,7 +1146,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1184,7 +1184,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1222,7 +1222,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1260,7 +1260,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1298,7 +1298,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1336,7 +1336,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1375,7 +1375,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1413,7 +1413,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1451,7 +1451,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1489,7 +1489,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1527,7 +1527,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1565,7 +1565,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_keyrelays ( @@ -1603,7 +1603,7 @@ ALTER SEQUENCE public.log_keyrelays_id_seq OWNED BY public.log_keyrelays.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1641,7 +1641,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1679,7 +1679,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1717,7 +1717,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1755,7 +1755,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1793,7 +1793,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1831,7 +1831,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1869,7 +1869,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -1907,7 +1907,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -1945,7 +1945,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -1983,7 +1983,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -2025,7 +2025,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( @@ -2060,7 +2060,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -2113,7 +2113,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -2148,7 +2148,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -2157,7 +2157,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2193,7 +2193,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2247,7 +2247,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2282,7 +2282,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( @@ -2318,7 +2318,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2353,7 +2353,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( @@ -2767,7 +2767,7 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2775,7 +2775,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -2783,7 +2783,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -2791,7 +2791,7 @@ ALTER TABLE ONLY public.actions -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2799,7 +2799,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -2807,7 +2807,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -2815,7 +2815,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2823,7 +2823,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -2831,7 +2831,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2839,7 +2839,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -2847,7 +2847,7 @@ ALTER TABLE ONLY public.directos -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -2855,7 +2855,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -2863,7 +2863,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -2871,7 +2871,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2879,7 +2879,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -2887,7 +2887,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -2895,7 +2895,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -2903,7 +2903,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.keyrelays @@ -2911,7 +2911,7 @@ ALTER TABLE ONLY public.keyrelays -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -2919,7 +2919,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -2927,7 +2927,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -2935,7 +2935,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -2943,7 +2943,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -2951,7 +2951,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -2959,7 +2959,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -2967,7 +2967,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -2975,7 +2975,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -2983,7 +2983,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -2991,7 +2991,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -2999,7 +2999,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -3007,7 +3007,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -3015,7 +3015,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -3023,7 +3023,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_keyrelays @@ -3031,7 +3031,7 @@ ALTER TABLE ONLY public.log_keyrelays -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -3039,7 +3039,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -3047,7 +3047,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -3055,7 +3055,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -3063,7 +3063,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -3071,7 +3071,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -3079,7 +3079,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -3087,7 +3087,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3095,7 +3095,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -3103,7 +3103,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -3111,7 +3111,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -3119,7 +3119,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -3127,7 +3127,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3135,7 +3135,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3143,7 +3143,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -3151,7 +3151,7 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3159,7 +3159,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3167,7 +3167,7 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3175,7 +3175,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3183,7 +3183,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3191,7 +3191,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3199,7 +3199,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3207,7 +3207,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3215,7 +3215,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3223,7 +3223,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3231,7 +3231,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3239,7 +3239,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3247,7 +3247,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3255,7 +3255,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3263,7 +3263,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3271,7 +3271,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3279,595 +3279,595 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_blocked_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_blocked_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_blocked_domains_on_name ON public.blocked_domains USING btree (name); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_accepter_id ON public.keyrelays USING btree (accepter_id); -- --- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_domain_id ON public.keyrelays USING btree (domain_id); -- --- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_requester_id ON public.keyrelays USING btree (requester_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_item_type_and_item_id ON public.log_keyrelays USING btree (item_type, item_id); -- --- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_whodunnit ON public.log_keyrelays USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); From 3bdde2881af4cc57aabd73b8f108e7f8a10031e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 27 Aug 2019 13:14:07 +0300 Subject: [PATCH 025/757] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b24940ce..d7554c0b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,12 @@ +27.8.2019 +* Added some new database constraints [#1265](https://github.com/internetee/registry/pull/1265) + 26.08.2019 * Introduced automatic payment processing using LHV Connect [#1232](https://github.com/internetee/registry/issues/1232) * removed unused script [#1261](https://github.com/internetee/registry/pull/1261) * removed unused factory [#1262](https://github.com/internetee/registry/pull/1262) -* removed unused seller_it columnt from invoices db table [#1264](https://github.com/internetee/registry/pull/1264) -* removed unused rakte tasks [#1268](https://github.com/internetee/registry/pull/1268) +* removed unused seller_it column from invoices db table [#1264](https://github.com/internetee/registry/pull/1264) +* removed unused rake tasks [#1268](https://github.com/internetee/registry/pull/1268) 21.08.2019 * Nokogiri update to 1.10.4 (CVE-2019-5477) [#1266](https://github.com/internetee/registry/pull/1266) From 99c787f94aa88c8a79c56eb210a606e2bc6a49db Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 3 Sep 2019 07:08:13 +0300 Subject: [PATCH 026/757] remove figaro requires what are not common to all apps --- config/initializers/figaro.rb | 8 -------- 1 file changed, 8 deletions(-) diff --git a/config/initializers/figaro.rb b/config/initializers/figaro.rb index 44c830eea..c057f8eee 100644 --- a/config/initializers/figaro.rb +++ b/config/initializers/figaro.rb @@ -1,15 +1,7 @@ Figaro.require_keys(%w[ app_name - zonefile_export_dir secret_key_base devise_secret - crl_dir - ca_cert_path - ca_key_path - ca_key_password - webclient_ips - legal_documents_dir - bank_statement_import_dir time_zone action_mailer_default_host action_mailer_default_from From d6973c6bdcd098d1911eba5be8bd29e21e86e1ab Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 3 Sep 2019 13:35:08 +0300 Subject: [PATCH 027/757] Remove deprecated testcase class --- test/support/task_test_case.rb | 14 -------------- test/test_helper.rb | 1 - 2 files changed, 15 deletions(-) delete mode 100644 test/support/task_test_case.rb diff --git a/test/support/task_test_case.rb b/test/support/task_test_case.rb deleted file mode 100644 index 8c539a90a..000000000 --- a/test/support/task_test_case.rb +++ /dev/null @@ -1,14 +0,0 @@ -class TaskTestCase < ActiveSupport::TestCase - setup do - # Rake tasks usually display some results, which mixes up with test results. - # This suppresses default stdout and makes Rails.env.test? checks unnecessary. - @original_stdout = $stdout - $stdout = File.open(File::NULL, 'w') - ActiveSupport::Deprecation.warn('`TaskTestCase` class will be removed soon.' \ - ' Use `capture_io` and `assert_output` instead') - end - - teardown do - $stdout = @original_stdout - end -end diff --git a/test/test_helper.rb b/test/test_helper.rb index fba374d5b..cbcc8fb70 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -11,7 +11,6 @@ require 'capybara/rails' require 'capybara/minitest' require 'webmock/minitest' require 'support/rails5_assertions' # Remove once upgraded to Rails 5 -require 'support/task_test_case' Setting.address_processing = false Setting.registry_country_code = 'US' From de43dbe43754d0398541e8472fb4b87a2ba79905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 3 Sep 2019 15:24:40 +0300 Subject: [PATCH 028/757] Update CHANGELOG.md --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7554c0b8..8abf67f62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ -27.8.2019 +03.09.2019 +* Updated Ruby to version 2.5.5 [#1273](https://github.com/internetee/registry/pull/1273) +* Updated bundler gem to 2.0.2 [#1278](https://github.com/internetee/registry/pull/1278) +* Figaro cleanup [#1272](https://github.com/internetee/registry/pull/1272) +* Removed deprecated testcase class [#1277](https://github.com/internetee/registry/pull/1277) + +27.08.2019 * Added some new database constraints [#1265](https://github.com/internetee/registry/pull/1265) 26.08.2019 From 771f9b20a99049150be0063658a2bd15518d7052 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 3 Sep 2019 18:25:18 +0300 Subject: [PATCH 029/757] Remove unnecessary teardown step --- test/integration/epp/domain/domain_update_test.rb | 1 - test/integration/epp/domain/transfer/request_test.rb | 1 - test/lib/auth_token/auth_token_creator_test.rb | 2 -- test/lib/auth_token/auth_token_decryptor_test.rb | 6 ------ test/lib/serializers/registrant_api/domain_test.rb | 1 - test/system/admin_area/domains/registry_lock_test.rb | 4 ---- test/system/admin_area/domains_test.rb | 4 ---- 7 files changed, 19 deletions(-) diff --git a/test/integration/epp/domain/domain_update_test.rb b/test/integration/epp/domain/domain_update_test.rb index bdd39a0a4..e97fe453a 100644 --- a/test/integration/epp/domain/domain_update_test.rb +++ b/test/integration/epp/domain/domain_update_test.rb @@ -49,6 +49,5 @@ class EppDomainUpdateTest < ApplicationIntegrationTest post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_equal '2105', Nokogiri::XML(response.body).at_css('result')[:code] - travel_back end end diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index 82f453277..f9cfda911 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -88,7 +88,6 @@ class EppDomainTransferRequestTest < ApplicationIntegrationTest assert_equal registrars(:bestnames), @domain.registrar assert_equal '2105', Nokogiri::XML(response.body).at_css('result')[:code] - travel_back end def test_same_registrar diff --git a/test/lib/auth_token/auth_token_creator_test.rb b/test/lib/auth_token/auth_token_creator_test.rb index 0465de9f4..440267a40 100644 --- a/test/lib/auth_token/auth_token_creator_test.rb +++ b/test/lib/auth_token/auth_token_creator_test.rb @@ -47,7 +47,5 @@ class AuthTokenCreatorTest < ActiveSupport::TestCase token_creator_with_defaults = AuthTokenCreator.create_with_defaults(@user) assert_equal(Rails.application.config.secret_key_base, token_creator_with_defaults.key) assert_equal('2010-07-05 02:30:00 UTC', token_creator_with_defaults.expires_at) - - travel_back end end diff --git a/test/lib/auth_token/auth_token_decryptor_test.rb b/test/lib/auth_token/auth_token_decryptor_test.rb index 49ca2b820..e97580a54 100644 --- a/test/lib/auth_token/auth_token_decryptor_test.rb +++ b/test/lib/auth_token/auth_token_decryptor_test.rb @@ -18,12 +18,6 @@ class AuthTokenDecryptorTest < ActiveSupport::TestCase @access_token = "q27NWIsKD5snWj9vZzJ0RcOYvgocEyu7H9yCaDjfmGi54sogovpBeALMPWTZHMcdFQzSiq6b4cI0p5tO0_5UEOHic2jRzNW7mkhi-bn-Y2Wlnw7jhMpxw6VwJR8QEoDzjkcNxnKBN6OKF4nssa60ZQ==" end - def teardown - super - - travel_back - end - def test_decrypt_token_returns_a_hash_when_token_is_valid decryptor = AuthTokenDecryptor.new(@access_token, @key) diff --git a/test/lib/serializers/registrant_api/domain_test.rb b/test/lib/serializers/registrant_api/domain_test.rb index 71f234c04..08648b29c 100644 --- a/test/lib/serializers/registrant_api/domain_test.rb +++ b/test/lib/serializers/registrant_api/domain_test.rb @@ -21,7 +21,6 @@ class SerializersRegistrantApiDomainTest < ActiveSupport::TestCase new_json = serializer_for_locked_domain.to_json assert_equal(Time.zone.parse('2010-07-05 10:30'), new_json[:locked_by_registrant_at]) - travel_back end def test_returns_registrar_name diff --git a/test/system/admin_area/domains/registry_lock_test.rb b/test/system/admin_area/domains/registry_lock_test.rb index ce09c445c..027ca8ecc 100644 --- a/test/system/admin_area/domains/registry_lock_test.rb +++ b/test/system/admin_area/domains/registry_lock_test.rb @@ -10,10 +10,6 @@ class AdminAreaRegistryLockTest < JavaScriptApplicationSystemTestCase @domain = domains(:airport) end - def teardown - travel_back - end - def test_does_not_have_link_when_domain_is_not_locked visit edit_admin_domain_path(@domain) click_link_or_button('Actions') diff --git a/test/system/admin_area/domains_test.rb b/test/system/admin_area/domains_test.rb index 7037a076d..f89c21ed6 100644 --- a/test/system/admin_area/domains_test.rb +++ b/test/system/admin_area/domains_test.rb @@ -7,10 +7,6 @@ class AdminDomainsTestTest < ApplicationSystemTestCase @domain = domains(:shop) end - teardown do - travel_back - end - def test_shows_details visit admin_domain_path(@domain) assert_field nil, with: @domain.transfer_code From ba5a7b1745575fafbeb3cd8cfcfc5a1cad7a2a58 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 3 Sep 2019 18:40:52 +0300 Subject: [PATCH 030/757] Require `application_system_test_case` explicitly --- test/application_system_test_case.rb | 13 ++++++++++++- test/system/admin_area/api_users/new_test.rb | 2 +- test/system/admin_area/contact_versions_test.rb | 2 +- test/system/admin_area/contacts_test.rb | 2 +- test/system/admin_area/domain_versions_test.rb | 2 +- test/system/admin_area/domains/details_test.rb | 2 +- test/system/admin_area/domains/force_delete_test.rb | 2 +- .../system/admin_area/domains/registry_lock_test.rb | 2 +- test/system/admin_area/domains_test.rb | 2 +- test/system/admin_area/invoices_test.rb | 2 +- test/system/admin_area/protected_area_test.rb | 2 +- test/system/admin_area/registrars_test.rb | 2 +- test/system/admin_area/reserved_domains/new_test.rb | 2 +- test/system/admin_area/sign_in_test.rb | 2 +- test/system/admin_area/sign_out_test.rb | 2 +- .../system/registrant_area/contacts/details_test.rb | 2 +- test/system/registrant_area/contacts/update_test.rb | 2 +- test/system/registrant_area/domains/details_test.rb | 2 +- test/system/registrant_area/domains/list_test.rb | 2 +- test/system/registrant_area/domains_test.rb | 2 +- test/system/registrant_area/layout_test.rb | 2 +- test/system/registrar_area/account_test.rb | 2 +- .../registrar_area/billing/balance_top_up_test.rb | 2 +- .../bulk_change/bulk_transfer_test.rb | 2 +- .../registrar_area/bulk_change/nameserver_test.rb | 2 +- .../registrar_area/bulk_change/tech_contact_test.rb | 2 +- test/system/registrar_area/domains_test.rb | 2 +- test/system/registrar_area/invoices/list_test.rb | 2 +- .../invoices/new_invoice_payment_test.rb | 2 +- test/system/registrar_area/invoices/new_test.rb | 2 +- .../invoices/payment_callback_test.rb | 2 +- .../registrar_area/invoices/payment_return_test.rb | 2 +- test/system/registrar_area/invoices_test.rb | 2 +- test/system/registrar_area/protected_area_test.rb | 2 +- .../settings/balance_auto_reload_test.rb | 2 +- .../system/registrar_area/sign_in/mobile_id_test.rb | 2 +- test/system/registrar_area/sign_in/password_test.rb | 2 +- test/system/registrar_area/sign_out_test.rb | 2 +- test/test_helper.rb | 2 -- 39 files changed, 49 insertions(+), 40 deletions(-) diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index cceeb27c5..ea3b6dff5 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -3,7 +3,18 @@ require 'test_helper' require 'database_cleaner' require 'selenium/webdriver' -ApplicationSystemTestCase = Class.new(ApplicationIntegrationTest) +class ApplicationSystemTestCase < ActionDispatch::IntegrationTest + include Capybara::DSL + include Capybara::Minitest::Assertions + include AbstractController::Translation + include Devise::Test::IntegrationHelpers + + teardown do + WebMock.reset! + Capybara.reset_sessions! + Capybara.use_default_driver + end +end class JavaScriptApplicationSystemTestCase < ApplicationSystemTestCase self.use_transactional_fixtures = false diff --git a/test/system/admin_area/api_users/new_test.rb b/test/system/admin_area/api_users/new_test.rb index aed012fdc..d34b990c2 100644 --- a/test/system/admin_area/api_users/new_test.rb +++ b/test/system/admin_area/api_users/new_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaNewApiUserTest < ApplicationSystemTestCase setup do diff --git a/test/system/admin_area/contact_versions_test.rb b/test/system/admin_area/contact_versions_test.rb index 5028b83fe..88d625c41 100644 --- a/test/system/admin_area/contact_versions_test.rb +++ b/test/system/admin_area/contact_versions_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class ContactVersionsTest < ApplicationSystemTestCase def setup diff --git a/test/system/admin_area/contacts_test.rb b/test/system/admin_area/contacts_test.rb index 7ace0b7ec..d98882dff 100644 --- a/test/system/admin_area/contacts_test.rb +++ b/test/system/admin_area/contacts_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminContactsTest < ApplicationSystemTestCase def setup diff --git a/test/system/admin_area/domain_versions_test.rb b/test/system/admin_area/domain_versions_test.rb index 0d7637f45..b4e3daec8 100644 --- a/test/system/admin_area/domain_versions_test.rb +++ b/test/system/admin_area/domain_versions_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class DomainVersionsTest < ApplicationSystemTestCase def setup diff --git a/test/system/admin_area/domains/details_test.rb b/test/system/admin_area/domains/details_test.rb index 49fada58e..835d213b3 100644 --- a/test/system/admin_area/domains/details_test.rb +++ b/test/system/admin_area/domains/details_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaDomainDetailsTest < ApplicationSystemTestCase setup do diff --git a/test/system/admin_area/domains/force_delete_test.rb b/test/system/admin_area/domains/force_delete_test.rb index 561e4d47a..5e135bf24 100644 --- a/test/system/admin_area/domains/force_delete_test.rb +++ b/test/system/admin_area/domains/force_delete_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase include ActionMailer::TestHelper diff --git a/test/system/admin_area/domains/registry_lock_test.rb b/test/system/admin_area/domains/registry_lock_test.rb index 027ca8ecc..6a34c23b4 100644 --- a/test/system/admin_area/domains/registry_lock_test.rb +++ b/test/system/admin_area/domains/registry_lock_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaRegistryLockTest < JavaScriptApplicationSystemTestCase def setup diff --git a/test/system/admin_area/domains_test.rb b/test/system/admin_area/domains_test.rb index f89c21ed6..abd1d93fb 100644 --- a/test/system/admin_area/domains_test.rb +++ b/test/system/admin_area/domains_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminDomainsTestTest < ApplicationSystemTestCase setup do diff --git a/test/system/admin_area/invoices_test.rb b/test/system/admin_area/invoices_test.rb index 8fef3cddb..814f95d4a 100644 --- a/test/system/admin_area/invoices_test.rb +++ b/test/system/admin_area/invoices_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaInvoicesTest < ApplicationSystemTestCase include ActionMailer::TestHelper diff --git a/test/system/admin_area/protected_area_test.rb b/test/system/admin_area/protected_area_test.rb index 9390348f0..f3375776a 100644 --- a/test/system/admin_area/protected_area_test.rb +++ b/test/system/admin_area/protected_area_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaProtectedAreaTest < ApplicationSystemTestCase def test_anonymous_user_is_asked_to_authenticate_when_navigating_to_protected_area diff --git a/test/system/admin_area/registrars_test.rb b/test/system/admin_area/registrars_test.rb index 3d3e1c4f0..0982fe624 100644 --- a/test/system/admin_area/registrars_test.rb +++ b/test/system/admin_area/registrars_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminRegistrarsSystemTest < ApplicationSystemTestCase include ActionView::Helpers::NumberHelper diff --git a/test/system/admin_area/reserved_domains/new_test.rb b/test/system/admin_area/reserved_domains/new_test.rb index 05b740b86..a6a5a9bfd 100644 --- a/test/system/admin_area/reserved_domains/new_test.rb +++ b/test/system/admin_area/reserved_domains/new_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaReservedDomainsNewTest < ApplicationSystemTestCase setup do diff --git a/test/system/admin_area/sign_in_test.rb b/test/system/admin_area/sign_in_test.rb index dd264aa5e..67a3f0d36 100644 --- a/test/system/admin_area/sign_in_test.rb +++ b/test/system/admin_area/sign_in_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaSignInTest < ApplicationSystemTestCase setup do diff --git a/test/system/admin_area/sign_out_test.rb b/test/system/admin_area/sign_out_test.rb index f85ea0bd2..45a60b12c 100644 --- a/test/system/admin_area/sign_out_test.rb +++ b/test/system/admin_area/sign_out_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class AdminAreaSignOutTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrant_area/contacts/details_test.rb b/test/system/registrant_area/contacts/details_test.rb index 1198de6c4..8152939a5 100644 --- a/test/system/registrant_area/contacts/details_test.rb +++ b/test/system/registrant_area/contacts/details_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrantAreaContactDetailsTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrant_area/contacts/update_test.rb b/test/system/registrant_area/contacts/update_test.rb index 897600cd9..f56e117ed 100644 --- a/test/system/registrant_area/contacts/update_test.rb +++ b/test/system/registrant_area/contacts/update_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrantAreaContactUpdateTest < ApplicationIntegrationTest setup do diff --git a/test/system/registrant_area/domains/details_test.rb b/test/system/registrant_area/domains/details_test.rb index ef9197541..5b2e30ba3 100644 --- a/test/system/registrant_area/domains/details_test.rb +++ b/test/system/registrant_area/domains/details_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrantAreaDomainDetailsTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrant_area/domains/list_test.rb b/test/system/registrant_area/domains/list_test.rb index 54ca979b3..805b130de 100644 --- a/test/system/registrant_area/domains/list_test.rb +++ b/test/system/registrant_area/domains/list_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' CompanyRegisterClientStub = Struct.new(:any_method) do def representation_rights(citizen_personal_code:, citizen_country_code:) diff --git a/test/system/registrant_area/domains_test.rb b/test/system/registrant_area/domains_test.rb index 175cb61ae..fa151c89e 100644 --- a/test/system/registrant_area/domains_test.rb +++ b/test/system/registrant_area/domains_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrantDomainsTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrant_area/layout_test.rb b/test/system/registrant_area/layout_test.rb index 0fedaaefe..9df8028e3 100644 --- a/test/system/registrant_area/layout_test.rb +++ b/test/system/registrant_area/layout_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrantLayoutTest < ApplicationSystemTestCase def setup diff --git a/test/system/registrar_area/account_test.rb b/test/system/registrar_area/account_test.rb index 81db3ed4b..708f8dc8f 100644 --- a/test/system/registrar_area/account_test.rb +++ b/test/system/registrar_area/account_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAccountTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/billing/balance_top_up_test.rb b/test/system/registrar_area/billing/balance_top_up_test.rb index 2d44e8328..2614b8701 100644 --- a/test/system/registrar_area/billing/balance_top_up_test.rb +++ b/test/system/registrar_area/billing/balance_top_up_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class BalanceTopUpTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/bulk_change/bulk_transfer_test.rb b/test/system/registrar_area/bulk_change/bulk_transfer_test.rb index 3a663a9bc..944a1f91f 100644 --- a/test/system/registrar_area/bulk_change/bulk_transfer_test.rb +++ b/test/system/registrar_area/bulk_change/bulk_transfer_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaBulkTransferTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/bulk_change/nameserver_test.rb b/test/system/registrar_area/bulk_change/nameserver_test.rb index c5789a969..b3f4e70c1 100644 --- a/test/system/registrar_area/bulk_change/nameserver_test.rb +++ b/test/system/registrar_area/bulk_change/nameserver_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaNameserverBulkChangeTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/bulk_change/tech_contact_test.rb b/test/system/registrar_area/bulk_change/tech_contact_test.rb index 0b68b9db2..f14fc2208 100644 --- a/test/system/registrar_area/bulk_change/tech_contact_test.rb +++ b/test/system/registrar_area/bulk_change/tech_contact_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaTechContactBulkChangeTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/domains_test.rb b/test/system/registrar_area/domains_test.rb index a01dd576b..00d5c9e43 100644 --- a/test/system/registrar_area/domains_test.rb +++ b/test/system/registrar_area/domains_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarDomainsTest < ApplicationSystemTestCase def test_downloads_domain_list_as_csv diff --git a/test/system/registrar_area/invoices/list_test.rb b/test/system/registrar_area/invoices/list_test.rb index b6d659a96..bb68acb2f 100644 --- a/test/system/registrar_area/invoices/list_test.rb +++ b/test/system/registrar_area/invoices/list_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class ListInvoicesTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/invoices/new_invoice_payment_test.rb b/test/system/registrar_area/invoices/new_invoice_payment_test.rb index 6933ff9ad..6366a418d 100644 --- a/test/system/registrar_area/invoices/new_invoice_payment_test.rb +++ b/test/system/registrar_area/invoices/new_invoice_payment_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class NewInvoicePaymentTest < ApplicationSystemTestCase def setup diff --git a/test/system/registrar_area/invoices/new_test.rb b/test/system/registrar_area/invoices/new_test.rb index a5a72fbe8..26ab34385 100644 --- a/test/system/registrar_area/invoices/new_test.rb +++ b/test/system/registrar_area/invoices/new_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class NewInvoiceTest < ApplicationSystemTestCase def setup diff --git a/test/system/registrar_area/invoices/payment_callback_test.rb b/test/system/registrar_area/invoices/payment_callback_test.rb index 62cdc1497..620c4a245 100644 --- a/test/system/registrar_area/invoices/payment_callback_test.rb +++ b/test/system/registrar_area/invoices/payment_callback_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class PaymentCallbackTest < ApplicationSystemTestCase def setup diff --git a/test/system/registrar_area/invoices/payment_return_test.rb b/test/system/registrar_area/invoices/payment_return_test.rb index 6ecb69649..63e83a4b0 100644 --- a/test/system/registrar_area/invoices/payment_return_test.rb +++ b/test/system/registrar_area/invoices/payment_return_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class PaymentReturnTest < ApplicationSystemTestCase def setup diff --git a/test/system/registrar_area/invoices_test.rb b/test/system/registrar_area/invoices_test.rb index 02df5da82..e64204165 100644 --- a/test/system/registrar_area/invoices_test.rb +++ b/test/system/registrar_area/invoices_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaInvoicesTest < ApplicationSystemTestCase include ActionMailer::TestHelper diff --git a/test/system/registrar_area/protected_area_test.rb b/test/system/registrar_area/protected_area_test.rb index f3ec06302..f1be6008d 100644 --- a/test/system/registrar_area/protected_area_test.rb +++ b/test/system/registrar_area/protected_area_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaProtectedAreaTest < ApplicationSystemTestCase def test_anonymous_user_is_asked_to_authenticate_when_navigating_to_protected_area diff --git a/test/system/registrar_area/settings/balance_auto_reload_test.rb b/test/system/registrar_area/settings/balance_auto_reload_test.rb index a5ad6dec1..066fb6186 100644 --- a/test/system/registrar_area/settings/balance_auto_reload_test.rb +++ b/test/system/registrar_area/settings/balance_auto_reload_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaSettingsBalanceAutoReloadTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/sign_in/mobile_id_test.rb b/test/system/registrar_area/sign_in/mobile_id_test.rb index ecca00c56..171172b2c 100644 --- a/test/system/registrar_area/sign_in/mobile_id_test.rb +++ b/test/system/registrar_area/sign_in/mobile_id_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaMobileIDSignInTest < JavaScriptApplicationSystemTestCase def setup diff --git a/test/system/registrar_area/sign_in/password_test.rb b/test/system/registrar_area/sign_in/password_test.rb index 433c56d9d..a362e98e3 100644 --- a/test/system/registrar_area/sign_in/password_test.rb +++ b/test/system/registrar_area/sign_in/password_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaPasswordSignInTest < ApplicationSystemTestCase setup do diff --git a/test/system/registrar_area/sign_out_test.rb b/test/system/registrar_area/sign_out_test.rb index 8fd48db21..040836600 100644 --- a/test/system/registrar_area/sign_out_test.rb +++ b/test/system/registrar_area/sign_out_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require 'application_system_test_case' class RegistrarAreaSignOutTest < ApplicationSystemTestCase setup do diff --git a/test/test_helper.rb b/test/test_helper.rb index cbcc8fb70..f36bd61f3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -57,5 +57,3 @@ class ApplicationIntegrationTest < ActionDispatch::IntegrationTest Capybara.use_default_driver end end - -require 'application_system_test_case' From dd839771ad2654c0db2fd10a0e2b0a362600fb06 Mon Sep 17 00:00:00 2001 From: Georg Date: Tue, 3 Sep 2019 19:43:04 +0300 Subject: [PATCH 031/757] Upgrade bundler and extend travis (#1280) * Use bundler 2.x * Run Travis tests with Ruby 2.4 / 2.5 / 2.6 --- .travis.yml | 8 ++++++-- Gemfile | 7 ------- Gemfile.lock | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 053699a2e..0873c0918 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,8 @@ language: ruby +rvm: + - 2.4 + - 2.5 + - 2.6 cache: bundler env: - DB=postgresql @@ -10,8 +14,8 @@ before_install: - "sudo mv -f ~/chromedriver /usr/local/share/" - "sudo chmod +x /usr/local/share/chromedriver" - "sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver" - - "gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true" - - "gem install bundler -v '< 2'" + - "gem update --system" + - "gem install bundler" before_script: - "cp config/application-example.yml config/application.yml" - "cp config/database-travis.yml config/database.yml" diff --git a/Gemfile b/Gemfile index 59882bed6..86b0001ce 100644 --- a/Gemfile +++ b/Gemfile @@ -1,10 +1,3 @@ -# Use https only for accessing github -# https://github.com/bundler/bundler/pull/3447 -git_source(:github) do |repo_name| - repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") - "https://github.com/#{repo_name}.git" -end if Bundler::VERSION < '2' - source 'https://rubygems.org' # core diff --git a/Gemfile.lock b/Gemfile.lock index 966cce077..8e96e66a9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -520,4 +520,4 @@ DEPENDENCIES whenever (= 0.9.4) BUNDLED WITH - 1.17.3 + 2.0.2 From 348e6e5d7a98ba60e196f0472751d67b72221441 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 3 Sep 2019 18:15:58 +0300 Subject: [PATCH 032/757] Introduce custom assertion --- app/models/epp/response.rb | 23 +++-- app/models/epp/response/result.rb | 23 +---- app/models/epp/response/result/code.rb | 81 ++++++++++++++++++ spec/models/epp/response/result_spec.rb | 21 ----- spec/rails_helper.rb | 3 - .../requests/epp/contact/create/ident_spec.rb | 20 ++--- spec/requests/epp/contact/shared/phone.rb | 6 +- .../requests/epp/contact/update/ident_spec.rb | 12 +-- .../epp/domain/create/account_balance_spec.rb | 4 +- .../epp/domain/create/default_period_spec.rb | 2 +- .../domain/create/optional_nameserver_spec.rb | 4 +- .../requests/epp/domain/create/period_spec.rb | 4 +- spec/requests/epp/domain/create/price_spec.rb | 4 +- .../domain/create/required_nameserver_spec.rb | 4 +- .../epp/domain/renew/account_balance_spec.rb | 4 +- .../epp/domain/renew/default_period_spec.rb | 2 +- .../epp/domain/renew/expire_time_spec.rb | 4 +- spec/requests/epp/domain/renew/period_spec.rb | 4 +- spec/requests/epp/domain/renew/price_spec.rb | 4 +- .../registrant_change/same_as_current_spec.rb | 8 +- .../update/registrant_change/verified_spec.rb | 8 +- spec/support/matchers/epp/code.rb | 39 --------- spec/support/matchers/epp/have_result.rb | 37 -------- spec/support/requests/epp_helpers.rb | 8 -- .../epp/contact/check/base_test.rb | 5 +- .../epp/contact/create/base_test.rb | 6 +- .../epp/contact/delete/base_test.rb | 9 +- .../integration/epp/contact/info/base_test.rb | 8 +- .../epp/contact/update/base_test.rb | 9 +- .../epp/domain/check/auction_test.rb | 17 ++-- .../integration/epp/domain/check/base_test.rb | 5 +- .../epp/domain/create/auction_idn_test.rb | 36 ++------ .../epp/domain/create/auction_test.rb | 35 ++------ .../epp/domain/create/base_test.rb | 7 +- .../epp/domain/create/nameservers_test.rb | 4 +- .../epp/domain/create/reserved_test.rb | 19 +---- .../epp/domain/create/transfer_code_test.rb | 8 +- .../epp/domain/delete/base_test.rb | 29 ++----- .../epp/domain/domain_renew_test.rb | 5 +- .../epp/domain/domain_update_test.rb | 7 +- test/integration/epp/domain/info/base_test.rb | 9 +- .../epp/domain/transfer/base_test.rb | 5 +- .../epp/domain/transfer/query_test.rb | 11 +-- .../epp/domain/transfer/request_test.rb | 16 ++-- .../integration/epp/login/credentials_test.rb | 10 +-- .../epp/login/password_change_test.rb | 5 +- .../epp/login/session_limit_test.rb | 9 +- test/integration/epp/logout_test.rb | 7 +- test/integration/epp/poll_test.rb | 20 ++--- test/models/epp/response/result/code_test.rb | 84 +++++++++++++++++++ test/models/epp/response/result_test.rb | 5 ++ test/models/epp/response_test.rb | 29 +++++++ test/support/assertions/epp_assertions.rb | 14 ++++ test/test_helper.rb | 5 ++ 54 files changed, 378 insertions(+), 389 deletions(-) create mode 100644 app/models/epp/response/result/code.rb delete mode 100644 spec/models/epp/response/result_spec.rb delete mode 100644 spec/support/matchers/epp/code.rb delete mode 100644 spec/support/matchers/epp/have_result.rb create mode 100644 test/models/epp/response/result/code_test.rb create mode 100644 test/models/epp/response/result_test.rb create mode 100644 test/models/epp/response_test.rb create mode 100644 test/support/assertions/epp_assertions.rb diff --git a/app/models/epp/response.rb b/app/models/epp/response.rb index c9a5d8bb4..eb61c02a4 100644 --- a/app/models/epp/response.rb +++ b/app/models/epp/response.rb @@ -1,22 +1,27 @@ -module EPP +module Epp class Response - attr_accessor :results + attr_reader :results - def self.from_xml(xml) + def self.xml(xml) xml_doc = Nokogiri::XML(xml) - response = new - result_elements = xml_doc.css('result') + results = [] result_elements.each do |result_element| - response.results << Result.new(result_element[:code].to_s, result_element.text.strip) + code_value = result_element[:code] + code = Result::Code.new(code_value) + results << Result.new(code: code) end - response + new(results: results) end - def initialize - @results = [] + def initialize(results:) + @results = results + end + + def code?(code) + results.any? { |result| result.code == code } end end end diff --git a/app/models/epp/response/result.rb b/app/models/epp/response/result.rb index 5c870c830..2bbf6cbf8 100644 --- a/app/models/epp/response/result.rb +++ b/app/models/epp/response/result.rb @@ -1,27 +1,10 @@ -module EPP +module Epp class Response class Result - CODE_TO_TYPE = { - '1000' => :success, - '1001' => :success_pending, - '1300' => :success_empty_queue, - '1301' => :success_dequeue, - '2001' => :syntax_error, - '2003' => :required_param_missing, - '2005' => :param_syntax_error, - '2308' => :data_management_policy_violation - } + attr_reader :code - attr_accessor :code - attr_accessor :message - - def initialize(code, message) + def initialize(code:) @code = code - @message = message - end - - def self.codes - CODE_TO_TYPE end end end diff --git a/app/models/epp/response/result/code.rb b/app/models/epp/response/result/code.rb new file mode 100644 index 000000000..2566279f5 --- /dev/null +++ b/app/models/epp/response/result/code.rb @@ -0,0 +1,81 @@ +module Epp + class Response + class Result + class Code + attr_reader :value + + KEY_TO_VALUE = { + completed_successfully: 1000, + completed_successfully_action_pending: 1001, + completed_successfully_no_messages: 1300, + completed_successfully_ack_to_dequeue: 1301, + completed_successfully_ending_session: 1500, + unknown_command: 2000, + syntax_error: 2001, + use_error: 2002, + required_parameter_missing: 2003, + parameter_value_range_error: 2004, + parameter_value_syntax_error: 2005, + billing_failure: 2104, + object_is_not_eligible_for_renewal: 2105, + authorization_error: 2201, + invalid_authorization_information: 2202, + object_does_not_exist: 2303, + object_status_prohibits_operation: 2304, + object_association_prohibits_operation: 2305, + parameter_value_policy_error: 2306, + data_management_policy_violation: 2308, + authentication_error_server_closing_connection: 2501, + }.freeze + private_constant :KEY_TO_VALUE + + DEFAULT_DESCRIPTIONS = { + 1000 => 'Command completed successfully', + 1001 => 'Command completed successfully; action pending', + 1300 => 'Command completed successfully; no messages', + 1301 => 'Command completed successfully; ack to dequeue', + 1500 => 'Command completed successfully; ending session', + 2000 => 'Unknown command', + 2001 => 'Command syntax error', + 2002 => 'Command use error', + 2003 => 'Required parameter missing', + 2004 => 'Parameter value range error', + 2005 => 'Parameter value syntax error', + 2104 => 'Billing failure', + 2105 => 'Object is not eligible for renewal', + 2201 => 'Authorization error', + 2202 => 'Invalid authorization information', + 2303 => 'Object does not exist', + 2304 => 'Object status prohibits operation', + 2305 => 'Object association prohibits operation', + 2306 => 'Parameter value policy error', + 2308 => 'Data management policy violation', + 2501 => 'Authentication error; server closing connection', + }.freeze + private_constant :DEFAULT_DESCRIPTIONS + + def self.codes + KEY_TO_VALUE + end + + def self.default_descriptions + DEFAULT_DESCRIPTIONS + end + + def self.key(key) + new(KEY_TO_VALUE[key]) + end + + def initialize(value) + value = value.to_i + raise ArgumentError, "Invalid value: #{value}" unless KEY_TO_VALUE.value?(value) + @value = value + end + + def ==(other) + value == other.value + end + end + end + end +end diff --git a/spec/models/epp/response/result_spec.rb b/spec/models/epp/response/result_spec.rb deleted file mode 100644 index 606a4c2de..000000000 --- a/spec/models/epp/response/result_spec.rb +++ /dev/null @@ -1,21 +0,0 @@ -require 'rails_helper' - -RSpec.describe EPP::Response::Result, db: false do - # https://tools.ietf.org/html/rfc5730#section-3 - describe '::codes' do - it 'returns codes' do - codes = { - '1000' => :success, - '1001' => :success_pending, - '1300' => :success_empty_queue, - '1301' => :success_dequeue, - '2001' => :syntax_error, - '2003' => :required_param_missing, - '2005' => :param_syntax_error, - '2308' => :data_management_policy_violation - } - - expect(described_class.codes).to eq(codes) - end - end -end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index aead0dfa5..85a9832e9 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -8,8 +8,6 @@ require 'support/requests/session_helpers' require 'support/requests/epp_helpers' require 'support/features/session_helpers' require 'support/matchers/alias_attribute' -require 'support/matchers/epp/code' -require 'support/matchers/epp/have_result' require 'support/capybara' require 'support/devise' @@ -30,7 +28,6 @@ RSpec.configure do |config| config.include AbstractController::Translation, type: :feature config.include AbstractController::Translation, type: :mailer config.include Requests::EPPHelpers, epp: true - config.include Matchers::EPP, epp: true config.include Devise::Test::IntegrationHelpers, type: :feature config.include Devise::Test::IntegrationHelpers, type: :request diff --git a/spec/requests/epp/contact/create/ident_spec.rb b/spec/requests/epp/contact/create/ident_spec.rb index f4f785f4a..2de0e59a1 100644 --- a/spec/requests/epp/contact/create/ident_spec.rb +++ b/spec/requests/epp/contact/create/ident_spec.rb @@ -52,7 +52,7 @@ RSpec.describe 'EPP contact:create' do specify do request - expect(epp_response).to have_result(:success) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -86,8 +86,7 @@ RSpec.describe 'EPP contact:create' do specify do request - expect(epp_response).to have_result(:required_param_missing, - 'Required parameter missing: extension > extdata > ident [ident]') + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:required_parameter_missing))).to be_truthy end end @@ -130,9 +129,7 @@ RSpec.describe 'EPP contact:create' do specify do request - - message = 'Ident code does not conform to national identification number format of Germany' - expect(epp_response).to have_result(:param_syntax_error, message) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy end end @@ -174,8 +171,7 @@ RSpec.describe 'EPP contact:create' do specify do request - expect(epp_response).to have_result(:param_syntax_error, - 'Ident code does not conform to registration number format of Germany') + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy end end @@ -209,8 +205,7 @@ RSpec.describe 'EPP contact:create' do specify do request - expect(epp_response).to have_result(:required_param_missing, - 'Required ident attribute missing: cc') + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:required_parameter_missing))).to be_truthy end end @@ -244,7 +239,7 @@ RSpec.describe 'EPP contact:create' do specify do request - expect(epp_response).to have_result(:syntax_error) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:syntax_error))).to be_truthy end end @@ -285,8 +280,7 @@ RSpec.describe 'EPP contact:create' do specify do request - expect(epp_response).to have_result(:param_syntax_error, - 'Ident type "priv" is invalid for Germany') + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy end end end diff --git a/spec/requests/epp/contact/shared/phone.rb b/spec/requests/epp/contact/shared/phone.rb index 3ae9f22df..51a0a758c 100644 --- a/spec/requests/epp/contact/shared/phone.rb +++ b/spec/requests/epp/contact/shared/phone.rb @@ -4,7 +4,7 @@ RSpec.shared_examples 'EPP contact phone' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -13,7 +13,7 @@ RSpec.shared_examples 'EPP contact phone' do specify do request - expect(response).to have_code_of(2005) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy end end @@ -22,7 +22,7 @@ RSpec.shared_examples 'EPP contact phone' do specify do request - expect(response).to have_code_of(2005) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy end end end diff --git a/spec/requests/epp/contact/update/ident_spec.rb b/spec/requests/epp/contact/update/ident_spec.rb index 25f57389f..c8e1fe389 100644 --- a/spec/requests/epp/contact/update/ident_spec.rb +++ b/spec/requests/epp/contact/update/ident_spec.rb @@ -45,7 +45,7 @@ RSpec.describe 'EPP contact:update' do specify do request - expect(epp_response).to have_result(:success) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -78,9 +78,7 @@ RSpec.describe 'EPP contact:update' do specify do request - - expect(epp_response).to have_result(:data_management_policy_violation, - t('epp.contacts.errors.valid_ident')) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:data_management_policy_violation))).to be_truthy end end end @@ -138,7 +136,7 @@ RSpec.describe 'EPP contact:update' do specify do request - expect(epp_response).to have_result(:success) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -190,9 +188,7 @@ RSpec.describe 'EPP contact:update' do specify do request - - expect(epp_response).to have_result(:data_management_policy_violation, - t('epp.contacts.errors.ident_update')) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:data_management_policy_violation))).to be_truthy end end end diff --git a/spec/requests/epp/domain/create/account_balance_spec.rb b/spec/requests/epp/domain/create/account_balance_spec.rb index 1692a1797..d4acc7141 100644 --- a/spec/requests/epp/domain/create/account_balance_spec.rb +++ b/spec/requests/epp/domain/create/account_balance_spec.rb @@ -49,7 +49,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -62,7 +62,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(2104) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy end end end diff --git a/spec/requests/epp/domain/create/default_period_spec.rb b/spec/requests/epp/domain/create/default_period_spec.rb index bb83d5aba..a3a7c6f70 100644 --- a/spec/requests/epp/domain/create/default_period_spec.rb +++ b/spec/requests/epp/domain/create/default_period_spec.rb @@ -54,7 +54,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end end diff --git a/spec/requests/epp/domain/create/optional_nameserver_spec.rb b/spec/requests/epp/domain/create/optional_nameserver_spec.rb index da409d0b9..920deb14e 100644 --- a/spec/requests/epp/domain/create/optional_nameserver_spec.rb +++ b/spec/requests/epp/domain/create/optional_nameserver_spec.rb @@ -64,7 +64,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(2308) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:data_management_policy_violation))).to be_truthy end end @@ -103,7 +103,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end end diff --git a/spec/requests/epp/domain/create/period_spec.rb b/spec/requests/epp/domain/create/period_spec.rb index c9c7e163a..7bd290852 100644 --- a/spec/requests/epp/domain/create/period_spec.rb +++ b/spec/requests/epp/domain/create/period_spec.rb @@ -57,7 +57,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -103,7 +103,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end end diff --git a/spec/requests/epp/domain/create/price_spec.rb b/spec/requests/epp/domain/create/price_spec.rb index b158bd7af..69f97633a 100644 --- a/spec/requests/epp/domain/create/price_spec.rb +++ b/spec/requests/epp/domain/create/price_spec.rb @@ -50,7 +50,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -61,7 +61,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(2104) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy end end end diff --git a/spec/requests/epp/domain/create/required_nameserver_spec.rb b/spec/requests/epp/domain/create/required_nameserver_spec.rb index cb21bc150..08b5208e1 100644 --- a/spec/requests/epp/domain/create/required_nameserver_spec.rb +++ b/spec/requests/epp/domain/create/required_nameserver_spec.rb @@ -61,7 +61,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -93,7 +93,7 @@ RSpec.describe 'EPP domain:create', settings: false do specify do request - expect(response).to have_code_of(2003) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:required_parameter_missing))).to be_truthy end end end diff --git a/spec/requests/epp/domain/renew/account_balance_spec.rb b/spec/requests/epp/domain/renew/account_balance_spec.rb index 7670dcd75..465469100 100644 --- a/spec/requests/epp/domain/renew/account_balance_spec.rb +++ b/spec/requests/epp/domain/renew/account_balance_spec.rb @@ -51,7 +51,7 @@ RSpec.describe 'EPP domain:renew' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -86,7 +86,7 @@ RSpec.describe 'EPP domain:renew' do specify do request - expect(response).to have_code_of(2104) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy end end end diff --git a/spec/requests/epp/domain/renew/default_period_spec.rb b/spec/requests/epp/domain/renew/default_period_spec.rb index dd0806806..623199cf4 100644 --- a/spec/requests/epp/domain/renew/default_period_spec.rb +++ b/spec/requests/epp/domain/renew/default_period_spec.rb @@ -50,7 +50,7 @@ RSpec.describe 'EPP domain:renew', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end end diff --git a/spec/requests/epp/domain/renew/expire_time_spec.rb b/spec/requests/epp/domain/renew/expire_time_spec.rb index 385b2ba5e..e4321386a 100644 --- a/spec/requests/epp/domain/renew/expire_time_spec.rb +++ b/spec/requests/epp/domain/renew/expire_time_spec.rb @@ -51,7 +51,7 @@ RSpec.describe 'EPP domain:renew' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -83,7 +83,7 @@ RSpec.describe 'EPP domain:renew' do specify do request - expect(response).to have_code_of(2306) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_policy_error))).to be_truthy end end end diff --git a/spec/requests/epp/domain/renew/period_spec.rb b/spec/requests/epp/domain/renew/period_spec.rb index 510e3cf06..0b2e6ed24 100644 --- a/spec/requests/epp/domain/renew/period_spec.rb +++ b/spec/requests/epp/domain/renew/period_spec.rb @@ -51,7 +51,7 @@ RSpec.describe 'EPP domain:renew', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -88,7 +88,7 @@ RSpec.describe 'EPP domain:renew', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end end diff --git a/spec/requests/epp/domain/renew/price_spec.rb b/spec/requests/epp/domain/renew/price_spec.rb index 68ee6b1a9..da2ad4022 100644 --- a/spec/requests/epp/domain/renew/price_spec.rb +++ b/spec/requests/epp/domain/renew/price_spec.rb @@ -51,7 +51,7 @@ RSpec.describe 'EPP domain:renew', settings: false do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end end @@ -62,7 +62,7 @@ RSpec.describe 'EPP domain:renew', settings: false do specify do request - expect(response).to have_code_of(2104) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy end end end diff --git a/spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb b/spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb index 46ea197da..bafe6fb0a 100644 --- a/spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb +++ b/spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb @@ -42,7 +42,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end it 'keeps same registrant' do @@ -87,7 +87,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1001) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully_action_pending))).to be_truthy end it 'does not change registrant without confirmation' do @@ -143,7 +143,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end it 'keeps same registrant' do @@ -188,7 +188,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end it 'changes registrant without confirmation' do diff --git a/spec/requests/epp/domain/update/registrant_change/verified_spec.rb b/spec/requests/epp/domain/update/registrant_change/verified_spec.rb index 5e0cee39d..8bb66e61c 100644 --- a/spec/requests/epp/domain/update/registrant_change/verified_spec.rb +++ b/spec/requests/epp/domain/update/registrant_change/verified_spec.rb @@ -43,7 +43,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end it 'changes registrant' do @@ -86,7 +86,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1001) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully_action_pending))).to be_truthy end it 'does not change registrant' do @@ -135,7 +135,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end it 'changes registrant' do @@ -178,7 +178,7 @@ RSpec.describe 'EPP domain:update' do specify do request - expect(response).to have_code_of(1000) + expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy end it 'changes registrant' do diff --git a/spec/support/matchers/epp/code.rb b/spec/support/matchers/epp/code.rb deleted file mode 100644 index 042598c50..000000000 --- a/spec/support/matchers/epp/code.rb +++ /dev/null @@ -1,39 +0,0 @@ -module Matchers - module EPP - class Code - def initialize(expected) - @expected = expected - end - - def matches?(response) - @xml = response.body - actual == expected - end - - def failure_message - "Expected EPP code of #{expected}, got #{actual} (#{code_description})" - end - - def description - "should have EPP code of #{expected}" - end - - private - - attr_reader :xml - attr_reader :expected - - def actual - xml_document.xpath('//xmlns:result').first['code'].to_i - end - - def code_description - xml_document.css('result msg').text - end - - def xml_document - @xml_document ||= Nokogiri::XML(xml) - end - end - end -end diff --git a/spec/support/matchers/epp/have_result.rb b/spec/support/matchers/epp/have_result.rb deleted file mode 100644 index 7850082dd..000000000 --- a/spec/support/matchers/epp/have_result.rb +++ /dev/null @@ -1,37 +0,0 @@ -module Matchers - module EPP - class HaveResultMatcher - def initialize(expected) - @expected = expected - end - - def matches?(target) - @target = target - - if @expected.message.present? - @target.results.any? { |result| result.code == @expected.code && result.message == @expected.message } - else - @target.results.any? { |result| result.code == @expected.code } - end - end - - def failure_message - "expected #{@target.results} to have result #{@expected.inspect}" - end - - def failure_message_when_negated - "expected #{@target.results} not to have result #{@expected.inspect}" - end - - def description - "should have EPP code of #{@expected}" - end - end - - def have_result(type, message = nil) - code = ::EPP::Response::Result.codes.key(type) - result = ::EPP::Response::Result.new(code, message) - HaveResultMatcher.new(result) - end - end -end diff --git a/spec/support/requests/epp_helpers.rb b/spec/support/requests/epp_helpers.rb index fb0175df1..1bdcd3075 100644 --- a/spec/support/requests/epp_helpers.rb +++ b/spec/support/requests/epp_helpers.rb @@ -1,15 +1,7 @@ module Requests module EPPHelpers - def have_code_of(*args) - Matchers::EPP::Code.new(*args) - end - def valid_legal_document Base64.encode64('a' * 5000) end - - def epp_response - EPP::Response.from_xml(response.body) - end end end diff --git a/test/integration/epp/contact/check/base_test.rb b/test/integration/epp/contact/check/base_test.rb index 0035f0db5..03fa7aba8 100644 --- a/test/integration/epp/contact/check/base_test.rb +++ b/test/integration/epp/contact/check/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppContactCheckBaseTest < ActionDispatch::IntegrationTest +class EppContactCheckBaseTest < EppTestCase setup do @contact = contacts(:john) end @@ -24,8 +24,7 @@ class EppContactCheckBaseTest < ActionDispatch::IntegrationTest post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal 'john-001', response_xml.at_xpath('//contact:id', contact: xml_schema).text end diff --git a/test/integration/epp/contact/create/base_test.rb b/test/integration/epp/contact/create/base_test.rb index ce8cad680..891dea93a 100644 --- a/test/integration/epp/contact/create/base_test.rb +++ b/test/integration/epp/contact/create/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppContactCreateBaseTest < ActionDispatch::IntegrationTest +class EppContactCreateBaseTest < EppTestCase def test_creates_new_contact_with_minimum_required_parameters request_xml = <<-XML @@ -28,9 +28,7 @@ class EppContactCreateBaseTest < ActionDispatch::IntegrationTest post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - + assert_epp_response :completed_successfully contact = Contact.last assert_not_empty contact.code assert_equal 'New', contact.name diff --git a/test/integration/epp/contact/delete/base_test.rb b/test/integration/epp/contact/delete/base_test.rb index 05e96d248..442d16a63 100644 --- a/test/integration/epp/contact/delete/base_test.rb +++ b/test/integration/epp/contact/delete/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppContactDeleteBaseTest < ActionDispatch::IntegrationTest +class EppContactDeleteBaseTest < EppTestCase def test_deletes_contact contact = deletable_contact @@ -23,9 +23,7 @@ class EppContactDeleteBaseTest < ActionDispatch::IntegrationTest assert_difference 'Contact.count', -1 do post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully end def test_undeletable_cannot_be_deleted @@ -51,8 +49,7 @@ class EppContactDeleteBaseTest < ActionDispatch::IntegrationTest assert_no_difference 'Contact.count' do post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '2305', response_xml.at_css('result')[:code] + assert_epp_response :object_association_prohibits_operation end private diff --git a/test/integration/epp/contact/info/base_test.rb b/test/integration/epp/contact/info/base_test.rb index 414c1a1d6..c871eb636 100644 --- a/test/integration/epp/contact/info/base_test.rb +++ b/test/integration/epp/contact/info/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppContactInfoBaseTest < ActionDispatch::IntegrationTest +class EppContactInfoBaseTest < EppTestCase setup do @contact = contacts(:john) end @@ -32,8 +32,7 @@ class EppContactInfoBaseTest < ActionDispatch::IntegrationTest post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal 'JOHN-001', response_xml.at_xpath('//contact:id', contact: xml_schema).text assert_equal 'ok', response_xml.at_xpath('//contact:status', contact: xml_schema)['s'] assert_equal 'john@inbox.test', response_xml.at_xpath('//contact:email', contact: xml_schema) @@ -62,8 +61,7 @@ class EppContactInfoBaseTest < ActionDispatch::IntegrationTest post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - response_xml = Nokogiri::XML(response.body) - assert_equal '2303', response_xml.at_css('result')[:code] + assert_epp_response :object_does_not_exist end private diff --git a/test/integration/epp/contact/update/base_test.rb b/test/integration/epp/contact/update/base_test.rb index 2c0486a07..a8bb1d7a2 100644 --- a/test/integration/epp/contact/update/base_test.rb +++ b/test/integration/epp/contact/update/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppContactUpdateBaseTest < ActionDispatch::IntegrationTest +class EppContactUpdateBaseTest < EppTestCase include ActionMailer::TestHelper setup do @@ -40,9 +40,7 @@ class EppContactUpdateBaseTest < ActionDispatch::IntegrationTest post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @contact.reload - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal 'new name', @contact.name assert_equal 'new-email@inbox.test', @contact.email assert_equal '+123.4', @contact.phone @@ -158,8 +156,7 @@ class EppContactUpdateBaseTest < ActionDispatch::IntegrationTest post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - response_xml = Nokogiri::XML(response.body) - assert_equal '2303', response_xml.at_css('result')[:code] + assert_epp_response :object_does_not_exist end private diff --git a/test/integration/epp/domain/check/auction_test.rb b/test/integration/epp/domain/check/auction_test.rb index 6a2722dc5..d52a65629 100644 --- a/test/integration/epp/domain/check/auction_test.rb +++ b/test/integration/epp/domain/check/auction_test.rb @@ -1,7 +1,7 @@ # encoding: UTF-8 require 'test_helper' -class EppDomainCheckAuctionTest < ApplicationIntegrationTest +class EppDomainCheckAuctionTest < EppTestCase setup do @auction = auctions(:one) @idn_auction = auctions(:idn) @@ -31,8 +31,7 @@ class EppDomainCheckAuctionTest < ApplicationIntegrationTest post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text end @@ -56,8 +55,7 @@ class EppDomainCheckAuctionTest < ApplicationIntegrationTest post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text end @@ -81,8 +79,7 @@ class EppDomainCheckAuctionTest < ApplicationIntegrationTest post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text end @@ -106,8 +103,7 @@ class EppDomainCheckAuctionTest < ApplicationIntegrationTest post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] assert_equal 'Awaiting payment', response_xml.at_xpath('//domain:reason', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text end @@ -131,8 +127,7 @@ class EppDomainCheckAuctionTest < ApplicationIntegrationTest post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] assert_nil response_xml.at_xpath('//domain:reason', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd') end diff --git a/test/integration/epp/domain/check/base_test.rb b/test/integration/epp/domain/check/base_test.rb index 65e746947..fc8eaaca0 100644 --- a/test/integration/epp/domain/check/base_test.rb +++ b/test/integration/epp/domain/check/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainCheckBaseTest < ApplicationIntegrationTest +class EppDomainCheckBaseTest < EppTestCase def test_returns_valid_response request_xml = <<-XML @@ -18,8 +18,7 @@ class EppDomainCheckBaseTest < ApplicationIntegrationTest post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal 'some.test', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text end diff --git a/test/integration/epp/domain/create/auction_idn_test.rb b/test/integration/epp/domain/create/auction_idn_test.rb index 52bc49a98..8830d93f2 100644 --- a/test/integration/epp/domain/create/auction_idn_test.rb +++ b/test/integration/epp/domain/create/auction_idn_test.rb @@ -1,7 +1,7 @@ # encoding: UTF-8 require 'test_helper' -class EppDomainCreateAuctionIdnTest < ApplicationIntegrationTest +class EppDomainCreateAuctionIdnTest < EppTestCase def setup super @@ -46,11 +46,7 @@ class EppDomainCreateAuctionIdnTest < ApplicationIntegrationTest @idn_auction.reload refute @idn_auction.domain_registered? - - response_xml = Nokogiri::XML(response.body) - assert_equal '2003', response_xml.at_css('result')[:code] - assert_equal 'Required parameter missing; reserved>pw element is required', - response_xml.at_css('result msg').text + assert_epp_response :required_parameter_missing end def test_domain_with_unicode_idn_cannot_be_registered_without_registration_code @@ -84,11 +80,7 @@ class EppDomainCreateAuctionIdnTest < ApplicationIntegrationTest @idn_auction.reload refute @idn_auction.domain_registered? - - response_xml = Nokogiri::XML(response.body) - assert_equal '2003', response_xml.at_css('result')[:code] - assert_equal 'Required parameter missing; reserved>pw element is required', - response_xml.at_css('result msg').text + assert_epp_response :required_parameter_missing end def test_domain_with_ascii_idn_cannot_be_registered_without_winning_the_auction @@ -121,11 +113,7 @@ class EppDomainCreateAuctionIdnTest < ApplicationIntegrationTest @idn_auction.reload refute @idn_auction.domain_registered? - - response_xml = Nokogiri::XML(response.body) - assert_equal '2306', response_xml.at_css('result')[:code] - assert_equal 'Parameter value policy error: domain is at auction', - response_xml.at_css('result msg').text + assert_epp_response :parameter_value_policy_error end def test_domain_with_unicode_idn_cannot_be_registered_without_winning_the_auction @@ -195,11 +183,7 @@ class EppDomainCreateAuctionIdnTest < ApplicationIntegrationTest @idn_auction.reload refute @idn_auction.domain_registered? - - response_xml = Nokogiri::XML(response.body) - assert_equal '2306', response_xml.at_css('result')[:code] - assert_equal 'Parameter value policy error: domain is at auction', - response_xml.at_css('result msg').text + assert_epp_response :parameter_value_policy_error end def test_registers_unicode_domain_with_correct_registration_code_when_payment_is_received @@ -235,10 +219,7 @@ class EppDomainCreateAuctionIdnTest < ApplicationIntegrationTest @idn_auction.reload assert @idn_auction.domain_registered? assert Domain.where(name: @idn_auction.domain).exists? - - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_registers_ascii_domain_with_correct_registration_code_when_payment_is_received @@ -274,9 +255,6 @@ class EppDomainCreateAuctionIdnTest < ApplicationIntegrationTest @idn_auction.reload assert @idn_auction.domain_registered? assert Domain.where(name: @idn_auction.domain).exists? - - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end end diff --git a/test/integration/epp/domain/create/auction_test.rb b/test/integration/epp/domain/create/auction_test.rb index cb3a4f3c3..73104c0bb 100644 --- a/test/integration/epp/domain/create/auction_test.rb +++ b/test/integration/epp/domain/create/auction_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainCreateAuctionTest < ApplicationIntegrationTest +class EppDomainCreateAuctionTest < EppTestCase setup do @auction = auctions(:one) Domain.release_to_auction = true @@ -33,9 +33,7 @@ class EppDomainCreateAuctionTest < ApplicationIntegrationTest assert_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_registers_domain_with_correct_registration_code_after_another_auction_when_payment_is_received @@ -72,9 +70,7 @@ class EppDomainCreateAuctionTest < ApplicationIntegrationTest assert_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_registers_domain_with_correct_registration_code_when_payment_is_received @@ -109,10 +105,7 @@ class EppDomainCreateAuctionTest < ApplicationIntegrationTest @auction.reload assert @auction.domain_registered? - - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_domain_cannot_be_registered_without_registration_code @@ -141,10 +134,7 @@ class EppDomainCreateAuctionTest < ApplicationIntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '2003', response_xml.at_css('result')[:code] - assert_equal 'Required parameter missing; reserved>pw element is required', - response_xml.at_css('result msg').text + assert_epp_response :required_parameter_missing end def test_domain_cannot_be_registered_with_wrong_registration_code @@ -176,10 +166,7 @@ class EppDomainCreateAuctionTest < ApplicationIntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '2202', response_xml.at_css('result')[:code] - assert_equal 'Invalid authorization information; invalid reserved>pw value', - response_xml.at_css('result msg').text + assert_epp_response :invalid_authorization_information end def test_domain_cannot_be_registered_when_payment_is_not_received @@ -210,10 +197,7 @@ class EppDomainCreateAuctionTest < ApplicationIntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '2003', response_xml.at_css('result')[:code] - assert_equal 'Required parameter missing; reserved>pw element required for reserved domains', - response_xml.at_css('result msg').text + assert_epp_response :required_parameter_missing end def test_domain_cannot_be_registered_when_at_auction @@ -240,9 +224,6 @@ class EppDomainCreateAuctionTest < ApplicationIntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - response_xml = Nokogiri::XML(response.body) - assert_equal '2306', response_xml.at_css('result')[:code] - assert_equal 'Parameter value policy error: domain is at auction', - response_xml.at_css('result msg').text + assert_epp_response :parameter_value_policy_error end end diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index ff3a856df..e8787645f 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainCreateBaseTest < ApplicationIntegrationTest +class EppDomainCreateBaseTest < EppTestCase def test_domain_can_be_registered_with_required_attributes_only request_xml = <<-XML @@ -28,9 +28,6 @@ class EppDomainCreateBaseTest < ApplicationIntegrationTest domain = Domain.last assert_equal 'new.test', domain.name assert_equal contacts(:john).becomes(Registrant), domain.registrant - - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end end diff --git a/test/integration/epp/domain/create/nameservers_test.rb b/test/integration/epp/domain/create/nameservers_test.rb index 954d1f300..205bc7a86 100644 --- a/test/integration/epp/domain/create/nameservers_test.rb +++ b/test/integration/epp/domain/create/nameservers_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainCreateNameserversTest < ApplicationIntegrationTest +class EppDomainCreateNameserversTest < EppTestCase # Glue record requirement def test_nameserver_ip_address_is_required_if_hostname_is_under_the_same_domain request_xml = <<-XML @@ -30,6 +30,6 @@ class EppDomainCreateNameserversTest < ApplicationIntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } end - assert_equal '2003', Nokogiri::XML(response.body).at_css('result')[:code] + assert_epp_response :required_parameter_missing end end diff --git a/test/integration/epp/domain/create/reserved_test.rb b/test/integration/epp/domain/create/reserved_test.rb index 1a57cd220..40e5be59d 100644 --- a/test/integration/epp/domain/create/reserved_test.rb +++ b/test/integration/epp/domain/create/reserved_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainCreateReservedTest < ApplicationIntegrationTest +class EppDomainCreateReservedTest < EppTestCase setup do @reserved_domain = reserved_domains(:one) end @@ -34,10 +34,7 @@ class EppDomainCreateReservedTest < ApplicationIntegrationTest assert_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_registering_reserved_domain_regenerates_registration_code @@ -101,11 +98,7 @@ class EppDomainCreateReservedTest < ApplicationIntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - - response_xml = Nokogiri::XML(response.body) - assert_equal '2202', response_xml.at_css('result')[:code] - assert_equal 'Invalid authorization information; invalid reserved>pw value', - response_xml.at_css('result msg').text + assert_epp_response :invalid_authorization_information end def test_domain_cannot_be_registered_without_registration_code @@ -133,10 +126,6 @@ class EppDomainCreateReservedTest < ApplicationIntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - - response_xml = Nokogiri::XML(response.body) - assert_equal '2003', response_xml.at_css('result')[:code] - assert_equal 'Required parameter missing; reserved>pw element required for reserved domains', - response_xml.at_css('result msg').text + assert_epp_response :required_parameter_missing end end diff --git a/test/integration/epp/domain/create/transfer_code_test.rb b/test/integration/epp/domain/create/transfer_code_test.rb index 131baf67a..05c7d0bec 100644 --- a/test/integration/epp/domain/create/transfer_code_test.rb +++ b/test/integration/epp/domain/create/transfer_code_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainCreateTransferCodeTest < ApplicationIntegrationTest +class EppDomainCreateTransferCodeTest < EppTestCase setup do travel_to Time.zone.parse('2010-07-05') end @@ -28,8 +28,7 @@ class EppDomainCreateTransferCodeTest < ApplicationIntegrationTest post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } refute_empty Domain.find_by(name: 'brandnew.test').transfer_code - assert_equal '1000', Nokogiri::XML(response.body).at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_honors_custom @@ -58,7 +57,6 @@ class EppDomainCreateTransferCodeTest < ApplicationIntegrationTest post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_equal '1058ad73', Domain.find_by(name: 'brandnew.test').transfer_code - assert_equal '1000', Nokogiri::XML(response.body).at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end end diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index 0a2a4308a..c1f52166d 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest +class EppDomainDeleteBaseTest < EppTestCase include ActionMailer::TestHelper setup do @@ -36,8 +36,7 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_includes Domain.find_by(name: 'invalid.test').statuses, DomainStatus::PENDING_DELETE_CONFIRMATION - assert_equal '1001', Nokogiri::XML(response.body).at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully_action_pending end def test_discarded_domain_cannot_be_deleted @@ -65,7 +64,7 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest assert_no_difference 'Domain.count' do post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - assert_equal '2105', Nokogiri::XML(response.body).at_css('result')[:code] + assert_epp_response :object_is_not_eligible_for_renewal end def test_requests_registrant_confirmation_when_required @@ -96,8 +95,7 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest assert @domain.registrant_verification_asked? assert @domain.pending_delete_confirmation? assert_emails 1 - response_xml = Nokogiri::XML(response.body) - assert_equal '1001', response_xml.at_css('result')[:code] + assert_epp_response :completed_successfully_action_pending end def test_skips_registrant_confirmation_when_not_required @@ -128,8 +126,7 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest assert_not @domain.registrant_verification_asked? assert_not @domain.pending_delete_confirmation? assert_no_emails - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] + assert_epp_response :completed_successfully end def test_skips_registrant_confirmation_when_required_but_already_verified_by_registrar @@ -160,8 +157,7 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest assert_not @domain.registrant_verification_asked? assert_not @domain.pending_delete_confirmation? assert_no_emails - response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] + assert_epp_response :completed_successfully end def test_legal_document_is_required @@ -182,10 +178,7 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - response_xml = Nokogiri::XML(response.body) - assert_equal '2003', response_xml.at_css('result')[:code] - assert_equal 'Required parameter missing: extension > extdata > legalDocument [legal_document]', - response_xml.at_css('result msg').text + assert_epp_response :required_parameter_missing end def test_domain_cannot_be_deleted_when_explicitly_prohibited_by_registrar @@ -212,9 +205,7 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - response_xml = Nokogiri::XML(response.body) - assert_equal '2304', response_xml.at_css('result')[:code] - assert_equal 'Domain status prohibits operation', response_xml.at_css('result msg').text + assert_epp_response :object_status_prohibits_operation end def test_domain_not_found @@ -240,8 +231,6 @@ class EppDomainDeleteBaseTest < ActionDispatch::IntegrationTest post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - response_xml = Nokogiri::XML(response.body) - assert_equal '2303', response_xml.at_css('result')[:code] - assert_equal 'Domain not found', response_xml.at_css('result msg').text + assert_epp_response :object_does_not_exist end end \ No newline at end of file diff --git a/test/integration/epp/domain/domain_renew_test.rb b/test/integration/epp/domain/domain_renew_test.rb index ac48269ad..e1dfbdae1 100644 --- a/test/integration/epp/domain/domain_renew_test.rb +++ b/test/integration/epp/domain/domain_renew_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainRenewTest < ApplicationIntegrationTest +class EppDomainRenewTest < EppTestCase self.use_transactional_fixtures = false setup do @@ -26,7 +26,6 @@ class EppDomainRenewTest < ApplicationIntegrationTest assert_no_changes -> { domains(:invalid).valid_to } do post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - assert_equal '2304', Nokogiri::XML(response.body).at_css('result')[:code], - Nokogiri::XML(response.body).css('result').text + assert_epp_response :object_status_prohibits_operation end end diff --git a/test/integration/epp/domain/domain_update_test.rb b/test/integration/epp/domain/domain_update_test.rb index e97fe453a..fcd0da0c6 100644 --- a/test/integration/epp/domain/domain_update_test.rb +++ b/test/integration/epp/domain/domain_update_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainUpdateTest < ApplicationIntegrationTest +class EppDomainUpdateTest < EppTestCase def setup @domain = domains(:shop) end @@ -27,8 +27,7 @@ class EppDomainUpdateTest < ApplicationIntegrationTest post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_equal 'f0ff7d17b0', @domain.transfer_code - assert_equal '1000', Nokogiri::XML(response.body).at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_discarded_domain_cannot_be_updated @@ -48,6 +47,6 @@ class EppDomainUpdateTest < ApplicationIntegrationTest XML post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - assert_equal '2105', Nokogiri::XML(response.body).at_css('result')[:code] + assert_epp_response :object_is_not_eligible_for_renewal end end diff --git a/test/integration/epp/domain/info/base_test.rb b/test/integration/epp/domain/info/base_test.rb index 2ba273951..0aebc4de5 100644 --- a/test/integration/epp/domain/info/base_test.rb +++ b/test/integration/epp/domain/info/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainInfoBaseTest < ApplicationIntegrationTest +class EppDomainInfoBaseTest < EppTestCase def test_returns_valid_response assert_equal 'john-001', contacts(:john).code domains(:shop).update_columns(statuses: [DomainStatus::OK], @@ -24,8 +24,7 @@ class EppDomainInfoBaseTest < ApplicationIntegrationTest post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - assert_equal '1000', response_xml.at_css('result')[:code] - assert_equal 1, response_xml.css('result').size + assert_epp_response :completed_successfully assert_equal 'shop.test', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text assert_equal 'ok', response_xml.at_xpath('//domain:status', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['s'] assert_equal 'john-001', response_xml.at_xpath('//domain:registrant', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -125,8 +124,6 @@ class EppDomainInfoBaseTest < ApplicationIntegrationTest post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - response_xml = Nokogiri::XML(response.body) - assert_equal '2303', response_xml.at_css('result')[:code] - assert_equal 'Domain not found', response_xml.at_css('result msg').text + assert_epp_response :object_does_not_exist end end \ No newline at end of file diff --git a/test/integration/epp/domain/transfer/base_test.rb b/test/integration/epp/domain/transfer/base_test.rb index e220f8ebd..5c15ae881 100644 --- a/test/integration/epp/domain/transfer/base_test.rb +++ b/test/integration/epp/domain/transfer/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainTransferBaseTest < ApplicationIntegrationTest +class EppDomainTransferBaseTest < EppTestCase def test_non_existent_domain request_xml = <<-XML @@ -19,6 +19,7 @@ class EppDomainTransferBaseTest < ApplicationIntegrationTest XML post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } - assert_equal '2303', Nokogiri::XML(response.body).at_css('result')[:code] + + assert_epp_response :object_does_not_exist end end diff --git a/test/integration/epp/domain/transfer/query_test.rb b/test/integration/epp/domain/transfer/query_test.rb index 8a9c589c8..e3bf7bdae 100644 --- a/test/integration/epp/domain/transfer/query_test.rb +++ b/test/integration/epp/domain/transfer/query_test.rb @@ -1,11 +1,10 @@ require 'test_helper' -class EppDomainTransferQueryTest < ApplicationIntegrationTest +class EppDomainTransferQueryTest < EppTestCase def test_returns_domain_transfer_details post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } xml_doc = Nokogiri::XML(response.body) - assert_equal '1000', xml_doc.at_css('result')[:code] - assert_equal 1, xml_doc.css('result').size + assert_epp_response :completed_successfully assert_equal 'shop.test', xml_doc.xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text assert_equal 'serverApproved', xml_doc.xpath('//domain:trStatus', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text assert_equal 'goodnames', xml_doc.xpath('//domain:reID', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -30,13 +29,15 @@ class EppDomainTransferQueryTest < ApplicationIntegrationTest XML post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } - assert_equal '2201', Nokogiri::XML(response.body).at_css('result')[:code] + + # https://github.com/internetee/registry/issues/686 + assert_epp_response :authorization_error end def test_no_domain_transfer domains(:shop).transfers.delete_all post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } - assert_equal '2303', Nokogiri::XML(response.body).at_css('result')[:code] + assert_epp_response :object_does_not_exist end private diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index f9cfda911..babb7642a 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainTransferRequestTest < ApplicationIntegrationTest +class EppDomainTransferRequestTest < EppTestCase def setup @domain = domains(:shop) @new_registrar = registrars(:goodnames) @@ -14,8 +14,7 @@ class EppDomainTransferRequestTest < ApplicationIntegrationTest def test_transfers_domain_at_once post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } - assert_equal '1000', Nokogiri::XML(response.body).at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_creates_new_domain_transfer @@ -77,7 +76,7 @@ class EppDomainTransferRequestTest < ApplicationIntegrationTest domains(:shop).reload assert_equal registrars(:bestnames), domains(:shop).registrar - assert_equal '2304', Nokogiri::XML(response.body).at_css('result')[:code] + assert_epp_response :object_status_prohibits_operation end def test_discarded_domain_cannot_be_transferred @@ -87,15 +86,14 @@ class EppDomainTransferRequestTest < ApplicationIntegrationTest @domain.reload assert_equal registrars(:bestnames), @domain.registrar - assert_equal '2105', Nokogiri::XML(response.body).at_css('result')[:code] + assert_epp_response :object_is_not_eligible_for_renewal end def test_same_registrar assert_no_difference -> { @domain.transfers.size } do post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } end - - assert_equal '2002', Nokogiri::XML(response.body).at_css('result')[:code] + assert_epp_response :use_error end def test_wrong_transfer_code @@ -118,7 +116,9 @@ class EppDomainTransferRequestTest < ApplicationIntegrationTest post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload refute_equal @new_registrar, @domain.registrar - assert_equal '2201', Nokogiri::XML(response.body).at_css('result')[:code] + + # https://github.com/internetee/registry/issues/686 + assert_epp_response :authorization_error end private diff --git a/test/integration/epp/login/credentials_test.rb b/test/integration/epp/login/credentials_test.rb index 3eac10da5..a9275e8e8 100644 --- a/test/integration/epp/login/credentials_test.rb +++ b/test/integration/epp/login/credentials_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppLoginCredentialsTest < ApplicationIntegrationTest +class EppLoginCredentialsTest < EppTestCase def test_correct_credentials request_xml = <<-XML @@ -27,8 +27,7 @@ class EppLoginCredentialsTest < ApplicationIntegrationTest post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } assert EppSession.find_by(session_id: 'new_session_id') assert_equal users(:api_bestnames), EppSession.find_by(session_id: 'new_session_id').user - assert Nokogiri::XML(response.body).at_css('result[code="1000"]') - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_already_logged_in @@ -58,7 +57,8 @@ class EppLoginCredentialsTest < ApplicationIntegrationTest XML - post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=any_random_string' } - assert Nokogiri::XML(response.body).at_css('result[code="2501"]') + post '/epp/session/login', { frame: request_xml }, 'HTTP_COOKIE' => 'session=any_random_string' + + assert_epp_response :authentication_error_server_closing_connection end end diff --git a/test/integration/epp/login/password_change_test.rb b/test/integration/epp/login/password_change_test.rb index 69c3140b6..69cda0d6a 100644 --- a/test/integration/epp/login/password_change_test.rb +++ b/test/integration/epp/login/password_change_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppLoginPasswordChangeTest < ActionDispatch::IntegrationTest +class EppLoginPasswordChangeTest < EppTestCase def test_password_change request_xml = <<-XML @@ -27,7 +27,6 @@ class EppLoginPasswordChangeTest < ActionDispatch::IntegrationTest post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } assert_equal 'new-password', users(:api_bestnames).plain_text_password - assert_equal '1000', Nokogiri::XML(response.body).at_css('result')[:code] - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end end \ No newline at end of file diff --git a/test/integration/epp/login/session_limit_test.rb b/test/integration/epp/login/session_limit_test.rb index de7f85a06..a3db4f145 100644 --- a/test/integration/epp/login/session_limit_test.rb +++ b/test/integration/epp/login/session_limit_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppLoginSessionLimitTest < ApplicationIntegrationTest +class EppLoginSessionLimitTest < EppTestCase setup do travel_to Time.zone.parse('2010-07-05') EppSession.delete_all @@ -16,9 +16,7 @@ class EppLoginSessionLimitTest < ApplicationIntegrationTest assert_difference 'EppSession.count' do post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } end - - assert Nokogiri::XML(response.body).at_css('result[code="1000"]') - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully end def test_reached @@ -31,8 +29,7 @@ class EppLoginSessionLimitTest < ApplicationIntegrationTest assert_no_difference 'EppSession.count' do post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } end - - assert Nokogiri::XML(response.body).at_css('result[code="2501"]') + assert_epp_response :authentication_error_server_closing_connection end private diff --git a/test/integration/epp/logout_test.rb b/test/integration/epp/logout_test.rb index dc8276e7e..bb6340c13 100644 --- a/test/integration/epp/logout_test.rb +++ b/test/integration/epp/logout_test.rb @@ -1,10 +1,9 @@ require 'test_helper' -class EppLogoutTest < ApplicationIntegrationTest +class EppLogoutTest < EppTestCase def test_success_response post '/epp/session/logout', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } - assert Nokogiri::XML(response.body).at_css('result[code="1500"]') - assert_equal 1, Nokogiri::XML(response.body).css('result').size + assert_epp_response :completed_successfully_ending_session end def test_ends_current_session @@ -19,7 +18,7 @@ class EppLogoutTest < ApplicationIntegrationTest def test_anonymous_user post '/epp/session/logout', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=non-existent' } - assert Nokogiri::XML(response.body).at_css('result[code="2201"]') + assert_epp_response :authorization_error end private diff --git a/test/integration/epp/poll_test.rb b/test/integration/epp/poll_test.rb index bc3a559cd..ae31398f1 100644 --- a/test/integration/epp/poll_test.rb +++ b/test/integration/epp/poll_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppPollTest < ApplicationIntegrationTest +class EppPollTest < EppTestCase setup do @notification = notifications(:complete) end @@ -18,8 +18,7 @@ class EppPollTest < ApplicationIntegrationTest post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' xml_doc = Nokogiri::XML(response.body) - assert_equal 1301.to_s, xml_doc.at_css('result')[:code] - assert_equal 1, xml_doc.css('result').size + assert_epp_response :completed_successfully_ack_to_dequeue assert_equal 2.to_s, xml_doc.at_css('msgQ')[:count] assert_equal @notification.id.to_s, xml_doc.at_css('msgQ')[:id] assert_equal Time.zone.parse('2010-07-05').utc.xmlschema, xml_doc.at_css('msgQ qDate').text @@ -63,9 +62,7 @@ class EppPollTest < ApplicationIntegrationTest XML post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - xml_doc = Nokogiri::XML(response.body) - assert_equal 1300.to_s, xml_doc.at_css('result')[:code] - assert_equal 1, xml_doc.css('result').size + assert_epp_response :completed_successfully_no_messages end def test_mark_as_read @@ -85,8 +82,7 @@ class EppPollTest < ApplicationIntegrationTest xml_doc = Nokogiri::XML(response.body) assert notification.read? - assert_equal 1000.to_s, xml_doc.at_css('result')[:code] - assert_equal 1, xml_doc.css('result').size + assert_epp_response :completed_successfully assert_equal 1.to_s, xml_doc.at_css('msgQ')[:count] assert_equal notification.id.to_s, xml_doc.at_css('msgQ')[:id] end @@ -105,9 +101,8 @@ class EppPollTest < ApplicationIntegrationTest post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' notification.reload - xml_doc = Nokogiri::XML(response.body) assert notification.unread? - assert_equal 2303.to_s, xml_doc.at_css('result')[:code] + assert_epp_response :object_does_not_exist end def test_notification_not_found @@ -121,7 +116,6 @@ class EppPollTest < ApplicationIntegrationTest XML post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - xml_doc = Nokogiri::XML(response.body) - assert_equal 2303.to_s, xml_doc.at_css('result')[:code] + assert_epp_response :object_does_not_exist end -end \ No newline at end of file +end diff --git a/test/models/epp/response/result/code_test.rb b/test/models/epp/response/result/code_test.rb new file mode 100644 index 000000000..0a5f507d3 --- /dev/null +++ b/test/models/epp/response/result/code_test.rb @@ -0,0 +1,84 @@ +require 'test_helper' + +class EppResponseResultCodeTest < ActiveSupport::TestCase + def test_creates_code_by_key + key = :completed_successfully + assert_includes Epp::Response::Result::Code.codes.keys, key + + assert_kind_of Epp::Response::Result::Code, Epp::Response::Result::Code.key(key) + end + + def test_creates_new_code_by_string_value + code_value = Epp::Response::Result::Code.codes.values.first + code = Epp::Response::Result::Code.new(code_value.to_s) + assert_equal code_value, code.value + end + + def test_invalid_code_value + invalid_code_value = 0000 + refute_includes Epp::Response::Result::Code.codes.values, invalid_code_value + + e = assert_raises ArgumentError do + Epp::Response::Result::Code.new(invalid_code_value) + end + assert_equal "Invalid value: #{invalid_code_value}", e.message + end + + def test_returns_code_values + codes = { + completed_successfully: 1000, + completed_successfully_action_pending: 1001, + completed_successfully_no_messages: 1300, + completed_successfully_ack_to_dequeue: 1301, + completed_successfully_ending_session: 1500, + unknown_command: 2000, + syntax_error: 2001, + use_error: 2002, + required_parameter_missing: 2003, + parameter_value_range_error: 2004, + parameter_value_syntax_error: 2005, + billing_failure: 2104, + object_is_not_eligible_for_renewal: 2105, + authorization_error: 2201, + invalid_authorization_information: 2202, + object_does_not_exist: 2303, + object_status_prohibits_operation: 2304, + object_association_prohibits_operation: 2305, + parameter_value_policy_error: 2306, + data_management_policy_violation: 2308, + authentication_error_server_closing_connection: 2501, + } + assert_equal codes, Epp::Response::Result::Code.codes + end + + def test_returns_default_descriptions + descriptions = { + 1000 => 'Command completed successfully', + 1001 => 'Command completed successfully; action pending', + 1300 => 'Command completed successfully; no messages', + 1301 => 'Command completed successfully; ack to dequeue', + 1500 => 'Command completed successfully; ending session', + 2000 => 'Unknown command', + 2001 => 'Command syntax error', + 2002 => 'Command use error', + 2003 => 'Required parameter missing', + 2004 => 'Parameter value range error', + 2005 => 'Parameter value syntax error', + 2104 => 'Billing failure', + 2105 => 'Object is not eligible for renewal', + 2201 => 'Authorization error', + 2202 => 'Invalid authorization information', + 2303 => 'Object does not exist', + 2304 => 'Object status prohibits operation', + 2305 => 'Object association prohibits operation', + 2306 => 'Parameter value policy error', + 2308 => 'Data management policy violation', + 2501 => 'Authentication error; server closing connection', + } + assert_equal descriptions, Epp::Response::Result::Code.default_descriptions + end + + def test_equality + assert_equal Epp::Response::Result::Code.new(1000), Epp::Response::Result::Code.new(1000) + end +end diff --git a/test/models/epp/response/result_test.rb b/test/models/epp/response/result_test.rb new file mode 100644 index 000000000..18947aa9a --- /dev/null +++ b/test/models/epp/response/result_test.rb @@ -0,0 +1,5 @@ +require 'test_helper' + +class EppResponseResultTest < ActiveSupport::TestCase + +end diff --git a/test/models/epp/response_test.rb b/test/models/epp/response_test.rb new file mode 100644 index 000000000..9f82bd205 --- /dev/null +++ b/test/models/epp/response_test.rb @@ -0,0 +1,29 @@ +require 'test_helper' + +class EppResponseTest < ActiveSupport::TestCase + def test_creates_new_response_from_xml_doc + xml = <<-XML + + + + + any + + + + XML + + assert_kind_of Epp::Response, Epp::Response.xml(xml) + end + + def test_code_predicate + present_code = Epp::Response::Result::Code.key(:completed_successfully) + absent_code = Epp::Response::Result::Code.key(:required_parameter_missing) + + result = Epp::Response::Result.new(code: present_code) + response = Epp::Response.new(results: [result]) + + assert response.code?(present_code) + assert_not response.code?(absent_code) + end +end diff --git a/test/support/assertions/epp_assertions.rb b/test/support/assertions/epp_assertions.rb new file mode 100644 index 000000000..3f955a7e0 --- /dev/null +++ b/test/support/assertions/epp_assertions.rb @@ -0,0 +1,14 @@ +module Assertions + module EppAssertions + def assert_epp_response(code_key, message = nil) + assert epp_response.code?(Epp::Response::Result::Code.key(code_key)), message + end + + private + + def epp_response + @epp_response = Epp::Response.xml(response.body) unless @epp_response + @epp_response + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index f36bd61f3..c250837c1 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -11,6 +11,7 @@ require 'capybara/rails' require 'capybara/minitest' require 'webmock/minitest' require 'support/rails5_assertions' # Remove once upgraded to Rails 5 +require 'support/assertions/epp_assertions' Setting.address_processing = false Setting.registry_country_code = 'US' @@ -57,3 +58,7 @@ class ApplicationIntegrationTest < ActionDispatch::IntegrationTest Capybara.use_default_driver end end + +class EppTestCase < ActionDispatch::IntegrationTest + include Assertions::EppAssertions +end From 96d1ab2a4122813e598ccc65d66daf9c0e8979d6 Mon Sep 17 00:00:00 2001 From: Georg Date: Wed, 4 Sep 2019 16:22:55 +0300 Subject: [PATCH 033/757] Revert "Upgrade bundler and extend travis (#1280)" (#1286) This reverts commit dd839771ad2654c0db2fd10a0e2b0a362600fb06. --- .travis.yml | 8 ++------ Gemfile | 7 +++++++ Gemfile.lock | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0873c0918..053699a2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,4 @@ language: ruby -rvm: - - 2.4 - - 2.5 - - 2.6 cache: bundler env: - DB=postgresql @@ -14,8 +10,8 @@ before_install: - "sudo mv -f ~/chromedriver /usr/local/share/" - "sudo chmod +x /usr/local/share/chromedriver" - "sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver" - - "gem update --system" - - "gem install bundler" + - "gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true" + - "gem install bundler -v '< 2'" before_script: - "cp config/application-example.yml config/application.yml" - "cp config/database-travis.yml config/database.yml" diff --git a/Gemfile b/Gemfile index 86b0001ce..59882bed6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,10 @@ +# Use https only for accessing github +# https://github.com/bundler/bundler/pull/3447 +git_source(:github) do |repo_name| + repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") + "https://github.com/#{repo_name}.git" +end if Bundler::VERSION < '2' + source 'https://rubygems.org' # core diff --git a/Gemfile.lock b/Gemfile.lock index 8e96e66a9..966cce077 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -520,4 +520,4 @@ DEPENDENCIES whenever (= 0.9.4) BUNDLED WITH - 2.0.2 + 1.17.3 From d2bb02e1efac5616532107e58a96083572e5d0f4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 4 Sep 2019 17:49:58 +0300 Subject: [PATCH 034/757] Update `hashdiff` gem Removes deprecation message > The HashDiff constant used by this gem conflicts with another gem of a similar name. As of version 1.0 the HashDiff constant will be completely removed and replaced by Hashdiff. For more information see https://github.com/liufengyun/hashdiff/issues/45. --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 966cce077..45ceca8ab 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -208,7 +208,7 @@ GEM haml (>= 4.0.6, < 5.0) html2haml (>= 1.0.1) railties (>= 4.0.1) - hashdiff (0.4.0) + hashdiff (1.0.0) hpricot (0.8.6) html2haml (2.1.0) erubis (~> 2.7.0) From a63e5badd88369d1b2094ddcfde6fdae30f67410 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Wed, 4 Sep 2019 22:49:25 +0300 Subject: [PATCH 035/757] Upgrade Ruby to 2.4.7, include Ruby 2.5 in Travis --- .ruby-version | 2 +- .travis.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index 59aa62c1f..e30309f73 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.4.5 +2.4.7 diff --git a/.travis.yml b/.travis.yml index 053699a2e..d92f21450 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,7 @@ language: ruby +rvm: + - 2.4 + - 2.5 cache: bundler env: - DB=postgresql From ede89d286c895b89f797cf4b6f916a34262e0a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 5 Sep 2019 12:07:13 +0300 Subject: [PATCH 036/757] Update CHANGELOG.md --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8abf67f62..014280fca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ +05.09.2019 +* Update hashdiff gem to 1.0.0 [#1287](https://github.com/internetee/registry/pull/1287) + 03.09.2019 * Updated Ruby to version 2.5.5 [#1273](https://github.com/internetee/registry/pull/1273) -* Updated bundler gem to 2.0.2 [#1278](https://github.com/internetee/registry/pull/1278) * Figaro cleanup [#1272](https://github.com/internetee/registry/pull/1272) * Removed deprecated testcase class [#1277](https://github.com/internetee/registry/pull/1277) From b5005e13da4e5988b44d4cb70ae06e01106ba5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 9 Sep 2019 09:47:34 +0300 Subject: [PATCH 037/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 014280fca..e49d7c95e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +09.09.2019 +* Upgrade Ruby to 2.4.7 [#1289](https://github.com/internetee/registry/pull/1289) + 05.09.2019 * Update hashdiff gem to 1.0.0 [#1287](https://github.com/internetee/registry/pull/1287) From 6aa25456f5c90af8d062153ce8d9f953f24161b3 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Sep 2019 14:32:43 +0300 Subject: [PATCH 038/757] Compare domains instead of strings Fixes #1291 --- app/models/nameserver.rb | 2 +- test/models/nameserver/glue_record_test.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index d9fdde406..4a0361397 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -81,7 +81,7 @@ class Nameserver < ActiveRecord::Base def glue_record_required? return unless hostname? && domain - hostname.end_with?(domain.name) + DomainName(hostname).domain == domain.name end def normalize_attributes diff --git a/test/models/nameserver/glue_record_test.rb b/test/models/nameserver/glue_record_test.rb index 599f04ec6..105138c8a 100644 --- a/test/models/nameserver/glue_record_test.rb +++ b/test/models/nameserver/glue_record_test.rb @@ -24,4 +24,12 @@ class NameserverGlueRecordTest < ActiveSupport::TestCase @nameserver.ipv4 = @nameserver.ipv6 = '' assert @nameserver.valid? end + + def test_valid_without_ip_when_glue_record_is_not_required + domain = Domain.new(name: 'le.test') + nameserver = Nameserver.new(domain: domain, hostname: 'ns1.example.test') + nameserver.ipv4 = nameserver.ipv6 = nil + + assert nameserver.valid? + end end From 369665bf863a6defada589990c7397a72414d49f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Sep 2019 14:47:57 +0300 Subject: [PATCH 039/757] Specify `domain_name` gem dependency explicitly --- Gemfile | 1 + Gemfile.lock | 1 + 2 files changed, 2 insertions(+) diff --git a/Gemfile b/Gemfile index 59882bed6..836fce72f 100644 --- a/Gemfile +++ b/Gemfile @@ -93,6 +93,7 @@ gem 'airbrake' gem 'company_register', github: 'internetee/company_register', branch: :master gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'lhv', github: 'internetee/lhv', tag: 'v0.1.0' +gem 'domain_name' group :development do # deploy diff --git a/Gemfile.lock b/Gemfile.lock index 45ceca8ab..e5caa4dfc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -475,6 +475,7 @@ DEPENDENCIES database_cleaner devise (~> 4.0) digidoc_client! + domain_name e_invoice! epp (= 1.5.0)! epp-xml (= 1.1.0)! From 1e4c3cf211ac35235c1d5c054276c684ad4fd18d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Sep 2019 15:25:54 +0300 Subject: [PATCH 040/757] Improve readability --- test/models/nameserver/glue_record_test.rb | 43 ++++++++++++++-------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/test/models/nameserver/glue_record_test.rb b/test/models/nameserver/glue_record_test.rb index 105138c8a..cec33ebf6 100644 --- a/test/models/nameserver/glue_record_test.rb +++ b/test/models/nameserver/glue_record_test.rb @@ -5,30 +5,41 @@ class NameserverGlueRecordTest < ActiveSupport::TestCase @nameserver = nameservers(:shop_ns1) end - def test_invalid_without_ip_if_glue_record_is_required - @nameserver.hostname = 'ns1.shop.test' - @nameserver.ipv4 = @nameserver.ipv6 = '' - assert @nameserver.invalid? - assert_includes @nameserver.errors.full_messages, 'Either IPv4 or IPv6 is required' \ + def test_invalid_when_glue_record_is_required_and_no_ip_is_provided + domain = Domain.new(name: 'shop.test') + nameserver = Nameserver.new(domain: domain, hostname: 'ns1.shop.test') + + assert nameserver.invalid? + assert_includes nameserver.errors.full_messages, 'Either IPv4 or IPv6 is required' \ ' for glue record generation' end - def test_valid_with_ip_if_glue_record_is_required - @nameserver.hostname = 'ns1.shop.test' - @nameserver.ipv4 = ['192.0.2.1'] - @nameserver.ipv6 = '' - assert @nameserver.valid? + def test_valid_when_glue_record_is_required_and_ipv4_is_provided + domain = Domain.new(name: 'shop.test') + nameserver = Nameserver.new(domain: domain, hostname: 'ns1.shop.test') + nameserver.ipv4 = ['192.0.2.1'] + + assert nameserver.valid? end - def test_valid_without_ip_if_glue_record_is_not_required - @nameserver.ipv4 = @nameserver.ipv6 = '' - assert @nameserver.valid? + def test_valid_when_glue_record_is_required_and_ipv6_is_provided + domain = Domain.new(name: 'shop.test') + nameserver = Nameserver.new(domain: domain, hostname: 'ns1.shop.test') + nameserver.ipv6 = ['2001:db8::1'] + + assert nameserver.valid? end - def test_valid_without_ip_when_glue_record_is_not_required + def test_valid_when_glue_record_is_not_required_and_no_ip_is_provided + domain = Domain.new(name: 'shop.test') + nameserver = Nameserver.new(domain: domain, hostname: 'ns1.registrar.test') + + assert nameserver.valid? + end + + def test_valid_when_glue_record_is_not_required_and_no_ip_is_provided_substring_match domain = Domain.new(name: 'le.test') - nameserver = Nameserver.new(domain: domain, hostname: 'ns1.example.test') - nameserver.ipv4 = nameserver.ipv6 = nil + nameserver = Nameserver.new(domain: domain, hostname: 'ns1.shop.test') assert nameserver.valid? end From 03037a039b62bf6a8479e38ecb3b1ff9ec1c3226 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Sep 2019 15:45:44 +0300 Subject: [PATCH 041/757] Remove unnecessary test --- .../epp/domain/create/nameservers_test.rb | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 test/integration/epp/domain/create/nameservers_test.rb diff --git a/test/integration/epp/domain/create/nameservers_test.rb b/test/integration/epp/domain/create/nameservers_test.rb deleted file mode 100644 index 205bc7a86..000000000 --- a/test/integration/epp/domain/create/nameservers_test.rb +++ /dev/null @@ -1,35 +0,0 @@ -require 'test_helper' - -class EppDomainCreateNameserversTest < EppTestCase - # Glue record requirement - def test_nameserver_ip_address_is_required_if_hostname_is_under_the_same_domain - request_xml = <<-XML - - - - - - new.test - - - ns1.new.test - - - john-001 - - - - - test - - - - - XML - - assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } - end - assert_epp_response :required_parameter_missing - end -end From 824d78231a54e6f8585f7d437d7341402b76e451 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Mon, 9 Sep 2019 20:04:19 +0300 Subject: [PATCH 042/757] Follow Rails file naming convention Fixes #189 --- .ruby-gemset | 2 +- .travis.yml | 4 ++-- README.md | 10 +++++----- ...lication-example.yml => application.yml.sample} | 0 .../{database-example.yml => database.yml.sample} | 2 +- ...lopment.yml => database_development.yml.sample} | 0 ...gistrant.yml => database_registrant.yml.sample} | 0 .../{database-travis.yml => database_travis.yml} | 0 config/{deploy-example.rb => deploy.rb.sample} | 0 ...evelopment-example.rb => development.rb.sample} | 0 .../{staging-example.rb => staging.rb.sample} | 0 doc/application_build_doc.md | 12 ++++++------ doc/epp/contact.md | 10 +++++----- doc/epp/domain.md | 14 +++++++------- doc/epp/keyrelay.md | 2 +- doc/epp/session.md | 8 ++++---- doc/{epp-examples.md => epp_examples.md} | 0 doc/que/README.md | 2 +- doc/que/{que-init-example => que_init_sample} | 0 doc/{registrant-api.md => registrant_api.md} | 0 doc/{repp-doc.md => repp_doc.md} | 0 21 files changed, 33 insertions(+), 33 deletions(-) rename config/{application-example.yml => application.yml.sample} (100%) rename config/{database-example.yml => database.yml.sample} (92%) rename config/{database-example-development.yml => database_development.yml.sample} (100%) rename config/{database-example-registrant.yml => database_registrant.yml.sample} (100%) rename config/{database-travis.yml => database_travis.yml} (100%) rename config/{deploy-example.rb => deploy.rb.sample} (100%) rename config/environments/{development-example.rb => development.rb.sample} (100%) rename config/environments/{staging-example.rb => staging.rb.sample} (100%) rename doc/{epp-examples.md => epp_examples.md} (100%) rename doc/que/{que-init-example => que_init_sample} (100%) rename doc/{registrant-api.md => registrant_api.md} (100%) rename doc/{repp-doc.md => repp_doc.md} (100%) diff --git a/.ruby-gemset b/.ruby-gemset index 14bc599bf..4dcdb08b2 100644 --- a/.ruby-gemset +++ b/.ruby-gemset @@ -1 +1 @@ -registry +-global \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index d92f21450..60b453f63 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,8 +16,8 @@ before_install: - "gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true" - "gem install bundler -v '< 2'" before_script: - - "cp config/application-example.yml config/application.yml" - - "cp config/database-travis.yml config/database.yml" + - "cp config/application.yml.sample config/application.yml" + - "cp config/database_travis.yml config/database.yml" - "bundle exec rake db:setup:all" - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter" - "chmod +x ./cc-test-reporter" diff --git a/README.md b/README.md index e2ba0b90f..d85fdfebc 100644 --- a/README.md +++ b/README.md @@ -17,15 +17,15 @@ Documentation ------------- * [EPP documentation](/doc/epp) -* [EPP request-response examples](/doc/epp-examples.md) -* [REPP documentation](/doc/repp-doc.md) +* [EPP request-response examples](/doc/epp_examples.md) +* [REPP documentation](/doc/repp_doc.md) * [Database diagram](/doc/models_complete.svg) * [Controllers diagram](/doc/controllers_complete.svg) ### Updating documentation AUTODOC=true rspec spec/requests - EPP_DOC=true rspec spec/epp --tag epp --require support/epp_doc.rb --format EppDoc > doc/epp-examples.md + EPP_DOC=true rspec spec/epp --tag epp --require support/epp_doc.rb --format EppDoc > doc/epp_examples.md Installation ------------ @@ -41,8 +41,8 @@ Manual demo install and database setup: cd demo-registry rbenv local 2.2.2 bundle - cp config/application-example.yml config/application.yml # and edit it - cp config/database-example.yml config/database.yml # and edit it + cp config/application.yml.sample config/application.yml # and edit it + cp config/database.yml.sample config/database.yml # and edit it bundle exec rake db:setup:all # for production, please follow deployment howto bundle exec rake bootstrap bundle exec rake assets:precompile diff --git a/config/application-example.yml b/config/application.yml.sample similarity index 100% rename from config/application-example.yml rename to config/application.yml.sample diff --git a/config/database-example.yml b/config/database.yml.sample similarity index 92% rename from config/database-example.yml rename to config/database.yml.sample index ca47a9979..a3eab11ed 100644 --- a/config/database-example.yml +++ b/config/database.yml.sample @@ -1,7 +1,7 @@ # # EPP, REPP, Admin and Registrar config # -# Registrant example is at database-example-registrant.yml file +# Registrant example is at database_registrant.yml.sample file default: &default adapter: postgresql diff --git a/config/database-example-development.yml b/config/database_development.yml.sample similarity index 100% rename from config/database-example-development.yml rename to config/database_development.yml.sample diff --git a/config/database-example-registrant.yml b/config/database_registrant.yml.sample similarity index 100% rename from config/database-example-registrant.yml rename to config/database_registrant.yml.sample diff --git a/config/database-travis.yml b/config/database_travis.yml similarity index 100% rename from config/database-travis.yml rename to config/database_travis.yml diff --git a/config/deploy-example.rb b/config/deploy.rb.sample similarity index 100% rename from config/deploy-example.rb rename to config/deploy.rb.sample diff --git a/config/environments/development-example.rb b/config/environments/development.rb.sample similarity index 100% rename from config/environments/development-example.rb rename to config/environments/development.rb.sample diff --git a/config/environments/staging-example.rb b/config/environments/staging.rb.sample similarity index 100% rename from config/environments/staging-example.rb rename to config/environments/staging.rb.sample diff --git a/doc/application_build_doc.md b/doc/application_build_doc.md index 1f565d4d6..9b4ba9289 100644 --- a/doc/application_build_doc.md +++ b/doc/application_build_doc.md @@ -25,14 +25,14 @@ Deploy overview: (database schema should be loaded and seeds should be present) cd registry rbenv local 2.2.2 # more info about rbenv at debian doc gem install mina # or any other deployment tool - cp config/deploy-example.rb config/deploy.rb # and edit it + cp config/deploy.rb.sample config/deploy.rb # and edit it mina pr setup # one time, only creates missing directories ssh registry # at your server cd registry - cp current/config/application-example.yml shared/config/application.yml # and edit it - cp current/config/database-example.yml shared/config/database.yml # and edit it + cp current/config/application.yml.sample shared/config/application.yml # and edit it + cp current/config/database.yml.sample shared/config/database.yml # and edit it vi /etc/apache2/sites-enabled/registry.conf # add conf and all needed serts vi /etc/apache2/sites-enabled/epp.conf # add epp conf, restart apache @@ -48,7 +48,7 @@ We recommend [Mina](https://github.com/mina-deploy/mina) instead of Capistrano o All deploy code locates at config/deploy.rb, please copy content from example file and edit it. - cp config/deploy-example.rb config/deploy.rb # and edit it + cp config/deploy.rb.sample config/deploy.rb # and edit it First add shortcuts to your local machine ssh config file, @@ -117,13 +117,13 @@ General rake and mina tips: ### CRON -Crontab can be setup after deploy. Jobs can be viewed [here](/config/schedule.rb). Some jobs are dependent on `cron_group` variable set in [deploy-example.rb](/config/deploy-example.rb) file. +Crontab can be setup after deploy. Jobs can be viewed [here](/config/schedule.rb). Some jobs are dependent on `cron_group` variable set in [deploy.rb.sample](/config/deploy.rb.sample) file. mina pr cron:setup # to update the crontab. mina pr cron:clear # to clear crontab. ### Application settings -Application settings locate at [config/application-example.yml](/config/application-example.yml) +Application settings locate at [config/application.yml.sample](/config/application.yml.sample) diff --git a/doc/epp/contact.md b/doc/epp/contact.md index 633e16cff..fd8ce602c 100644 --- a/doc/epp/contact.md +++ b/doc/epp/contact.md @@ -47,7 +47,7 @@ More info: https://en.wikipedia.org/wiki/Latin_script_in_Unicode Attribute: type="pdf/asice/sce/adoc/asics/scs/edoc/adoc/bdoc/ddoc/zip/rar/gz/tar/7z" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-contact-with-valid-user-create-command-successfully-creates-a-contact) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-contact-with-valid-user-create-command-successfully-creates-a-contact) ### Contact update @@ -85,7 +85,7 @@ More info: https://en.wikipedia.org/wiki/Latin_script_in_Unicode 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-contact-with-valid-user-update-command-is-succesful) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-contact-with-valid-user-update-command-is-succesful) ### Contact delete @@ -102,7 +102,7 @@ More info: https://en.wikipedia.org/wiki/Latin_script_in_Unicode Attribute: type="pdf/asice/sce/adoc/asics/scs/edoc/adoc/bdoc/ddoc/zip/rar/gz/tar/7z" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-contact-with-valid-user-delete-command-deletes-contact) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-contact-with-valid-user-delete-command-deletes-contact) ### Contact check @@ -114,7 +114,7 @@ More info: https://en.wikipedia.org/wiki/Latin_script_in_Unicode 1-n Contact id 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-contact-with-valid-user-check-command-returns-info-about-contact-availability) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-contact-with-valid-user-check-command-returns-info-about-contact-availability) ### Contact info @@ -128,4 +128,4 @@ More info: https://en.wikipedia.org/wiki/Latin_script_in_Unicode 1 Contact password. Attribute: roid="String" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-contact-with-valid-user-info-command-return-info-about-contact) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-contact-with-valid-user-info-command-return-info-about-contact) diff --git a/doc/epp/domain.md b/doc/epp/domain.md index df7611709..006cc00a6 100644 --- a/doc/epp/domain.md +++ b/doc/epp/domain.md @@ -45,7 +45,7 @@ Domain name mapping protocol short version: 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-domain-with-citizen-as-a-registrant-creates-a-domain) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-domain-with-citizen-as-a-registrant-creates-a-domain) ### Domain update @@ -95,7 +95,7 @@ Domain name mapping protocol short version: Attribute: type="pdf/asice/sce/adoc/asics/scs/edoc/adoc/bdoc/ddoc/zip/rar/gz/tar/7z" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-domain-with-valid-domain-updates-domain-and-adds-objects) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-domain-with-valid-domain-updates-domain-and-adds-objects) ### Domain delete @@ -111,7 +111,7 @@ Domain name mapping protocol short version: Attribute: type="pdf/asice/sce/adoc/asics/scs/edoc/adoc/bdoc/ddoc/zip/rar/gz/tar/7z" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-domain-with-valid-domain-deletes-domain) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-domain-with-valid-domain-deletes-domain) ### Domain info @@ -125,7 +125,7 @@ Domain name mapping protocol short version: 1 Domain transfer code. Attribute: roid="String" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-domain-with-valid-domain-returns-domain-info) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-domain-with-valid-domain-returns-domain-info) ### Domain renew @@ -145,7 +145,7 @@ Domain name mapping protocol short version: Attribute: type="pdf/asice/sce/adoc/asics/scs/edoc/adoc/bdoc/ddoc/zip/rar/gz/tar/7z" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-domain-with-valid-domain-renews-a-domain) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-domain-with-valid-domain-renews-a-domain) ### Domain transfer @@ -162,7 +162,7 @@ Domain name mapping protocol short version: Attribute: type="pdf/asice/sce/adoc/asics/scs/edoc/adoc/bdoc/ddoc/zip/rar/gz/tar/7z" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-domain-with-valid-domain-transfers-a-domain) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-domain-with-valid-domain-transfers-a-domain) ### Domain check @@ -173,4 +173,4 @@ Domain name mapping protocol short version: 1 Domain name. Can contain unicode characters. 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-domain-with-valid-domain-checks-a-domain) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-domain-with-valid-domain-checks-a-domain) diff --git a/doc/epp/keyrelay.md b/doc/epp/keyrelay.md index cda7dfa56..4239682bf 100644 --- a/doc/epp/keyrelay.md +++ b/doc/epp/keyrelay.md @@ -22,4 +22,4 @@ NB! Keyrelay not implemented. Required if ext:relative is not specified 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-keyrelay-makes-a-keyrelay-request) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-keyrelay-makes-a-keyrelay-request) diff --git a/doc/epp/session.md b/doc/epp/session.md index 1e10dce2b..4f97a9095 100644 --- a/doc/epp/session.md +++ b/doc/epp/session.md @@ -8,7 +8,7 @@ Here are functions like login, logout, hello, poll -[EXAMPLE RESPONSE](/doc/epp-examples.md#epp-session-when-not-connected-greets-client-upon-connection) +[EXAMPLE RESPONSE](/doc/epp_examples.md#epp-session-when-not-connected-greets-client-upon-connection) ### Login request @@ -27,7 +27,7 @@ Here are functions like login, logout, hello, poll 0-n Extension URI that is going to be used in current connection. 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-session-when-connected-with-valid-user-logs-in-epp-user) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-session-when-connected-with-valid-user-logs-in-epp-user) ### Logout request @@ -36,7 +36,7 @@ Here are functions like login, logout, hello, poll 1 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-session-when-connected-with-valid-user-logs-out-epp-user) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-session-when-connected-with-valid-user-logs-out-epp-user) ### Poll request @@ -46,4 +46,4 @@ Here are functions like login, logout, hello, poll Attribute: op="req / ack" 0-1 Client transaction id -[EXAMPLE REQUEST AND RESPONSE](/doc/epp-examples.md#epp-poll-queues-and-dequeues-messages) +[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-poll-queues-and-dequeues-messages) diff --git a/doc/epp-examples.md b/doc/epp_examples.md similarity index 100% rename from doc/epp-examples.md rename to doc/epp_examples.md diff --git a/doc/que/README.md b/doc/que/README.md index e7d3032d0..1fd0ef664 100644 --- a/doc/que/README.md +++ b/doc/que/README.md @@ -16,7 +16,7 @@ In both serarious que requires working Registry deployment and full access to Re Installation at deployed server: cd /home/registry/registry/current - sudo cp doc/que/que-init-example /etc/init.d/que # and edit it + sudo cp doc/que/que_init_sample /etc/init.d/que # and edit it sudo chmod +x /etc/init.d/que sudo /etc/init.d/que # for help and other commands sudo /etc/init.d/que start # for manual start diff --git a/doc/que/que-init-example b/doc/que/que_init_sample similarity index 100% rename from doc/que/que-init-example rename to doc/que/que_init_sample diff --git a/doc/registrant-api.md b/doc/registrant_api.md similarity index 100% rename from doc/registrant-api.md rename to doc/registrant_api.md diff --git a/doc/repp-doc.md b/doc/repp_doc.md similarity index 100% rename from doc/repp-doc.md rename to doc/repp_doc.md From 22b803ef83a0492dc4299ad90c81862af7fc5690 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Sep 2019 15:16:49 +0300 Subject: [PATCH 043/757] Fix typos --- doc/debian_build_doc.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/debian_build_doc.md b/doc/debian_build_doc.md index ff619fd0a..2328c6d9b 100644 --- a/doc/debian_build_doc.md +++ b/doc/debian_build_doc.md @@ -7,7 +7,7 @@ however officially Debian 7 is supported and tested. ### Manual build * Consider using [RBENV](https://github.com/sstephenson/rbenv) -* Compile requried [ruby version](https://github.com/internetee/registry/blob/master/.ruby-version) +* Compile required [ruby version](https://github.com/internetee/registry/blob/master/.ruby-version) * [Phusion passenger](https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html) * [Postgresql](http://www.postgresql.org/docs/) (requires postgresql-contrib package) * [Mailcatcher](https://mailcatcher.me/) (optional) @@ -80,9 +80,9 @@ iptables -A INPUT -p tcp --dport 43 -m recent --set --rsource --name whois -j AC #### EPP -Configure epp server ip in applicatin.yml +Configure epp server ip in application.yml iptables_server_ip: 'x.x.x.x' -Iptables hitcounter is updated by application. For every registrar there is one recent table, where the request counters are stored, registrar handles and sources ips are "connected" with iptables rules. +Iptables hit counter is updated by application. For every registrar there is one recent table, where the request counters are stored, registrar handles and sources ips are "connected" with iptables rules. ```` #!/bin/bash @@ -99,8 +99,8 @@ iptables -A INPUT -p tcp --dport 700 -j CHKLIMITS ```` #### Mailcatcher for staging (optional) -We recommend using mailcatcher for staging env, so that all outgoing e-mails are caught and not actualy sent out. -The mailcatcher website explains how it should be intsalled and configured. +We recommend using mailcatcher for staging env, so that all outgoing e-mails are caught and not actually sent out. +The mailcatcher website explains how it should be installed and configured. [Mailcatcher](https://mailcatcher.me/) ````` From 7dbd07fdcc48d9570da5f8ab41facd2e6e7b2eeb Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Sep 2019 23:10:19 +0300 Subject: [PATCH 044/757] Update `airbrake` gem --- Gemfile.lock | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 45ceca8ab..6d11c266b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -106,9 +106,10 @@ GEM tzinfo (~> 1.1) addressable (2.6.0) public_suffix (>= 2.0.2, < 4.0) - airbrake (6.0.0) - airbrake-ruby (~> 2.0) - airbrake-ruby (2.0.0) + airbrake (9.4.3) + airbrake-ruby (~> 4.6) + airbrake-ruby (4.6.0) + rbtree3 (~> 0.5) akami (1.3.1) gyoku (>= 0.4.0) nokogiri @@ -336,6 +337,7 @@ GEM activesupport (>= 3.0) i18n polyamorous (~> 1.1) + rbtree3 (0.5.0) rdoc (4.3.0) regexp_parser (1.5.1) request_store (1.4.1) From 674f4d8a2010c17cdf6d7e8eba3e1935e816e8a4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Sep 2019 23:11:16 +0300 Subject: [PATCH 045/757] Remove `airbrake` gem monkey patches --- config/initializers/{errbit.rb => airbrake.rb} | 14 -------------- 1 file changed, 14 deletions(-) rename config/initializers/{errbit.rb => airbrake.rb} (51%) diff --git a/config/initializers/errbit.rb b/config/initializers/airbrake.rb similarity index 51% rename from config/initializers/errbit.rb rename to config/initializers/airbrake.rb index 3d4185834..f48529bc7 100644 --- a/config/initializers/errbit.rb +++ b/config/initializers/airbrake.rb @@ -1,17 +1,3 @@ -module Patches - module Airbrake - module SyncSender - def build_https(uri) - super.tap do |req| - req.verify_mode = OpenSSL::SSL::VERIFY_NONE - end - end - end - end -end - -Airbrake::SyncSender.prepend(::Patches::Airbrake::SyncSender) - Airbrake.configure do |config| config.host = ENV['airbrake_host'] config.project_id = ENV['airbrake_project_id'] From 1194f170c2c1ba45f660f7efe3b76f21172c51c0 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 11 Sep 2019 16:23:10 +0300 Subject: [PATCH 046/757] Remove delay when rendering negative EPP response --- app/controllers/epp_controller.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 496526d71..2ed932945 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -129,10 +129,6 @@ class EppController < ApplicationController logger.error @errors.inspect logger.error "\n" - # Requested by client, ticket #2688 - # Known issues: error request is exactly 1 second slower and server can handle less load - sleep 1 if !Rails.env.test? || !Rails.env.development? - render_epp_response '/epp/error' end From f899bea5436f3402558daf571228ed87077e5fdc Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 11 Sep 2019 17:34:57 +0300 Subject: [PATCH 047/757] Update `cancancan` gem --- Gemfile | 4 +--- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 59882bed6..e8e300708 100644 --- a/Gemfile +++ b/Gemfile @@ -44,9 +44,7 @@ gem 'selectize-rails', '0.12.1' # include selectize.js for select gem 'kaminari', '0.16.3' # pagination gem 'coderay', '1.1.0' # xml console visualize gem 'select2-rails', '3.5.9.3' # for autocomplete - -# rights -gem 'cancancan', '1.11.0' # autharization +gem 'cancancan' gem 'devise', '~> 4.0' gem 'grape' diff --git a/Gemfile.lock b/Gemfile.lock index 45ceca8ab..cdb1aa647 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -131,7 +131,7 @@ GEM bullet (4.14.7) activesupport (>= 3.0.0) uniform_notifier (~> 1.9.0) - cancancan (1.11.0) + cancancan (3.0.1) capybara (3.22.0) addressable mini_mime (>= 0.1.3) @@ -464,7 +464,7 @@ DEPENDENCIES autodoc bootstrap-sass (~> 3.4) bullet (= 4.14.7) - cancancan (= 1.11.0) + cancancan capybara coderay (= 1.1.0) coffee-rails (= 4.1.0) From 5831a6b183cc7cee0d8c33be9f7e01a1fca129a4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 11 Sep 2019 19:27:21 +0300 Subject: [PATCH 048/757] Remove EPP response header Remove `mod_epp`-specific `X-EPP-Returncode` header set in EPP response since `mod_epp` was replaced by https://github.com/internetee/epp_proxy. --- app/controllers/epp/sessions_controller.rb | 3 --- app/controllers/epp_controller.rb | 2 -- 2 files changed, 5 deletions(-) diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index 05bbba9a8..449d1feef 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -82,7 +82,6 @@ class Epp::SessionsController < EppController if success if params[:parsed_frame].css('newPW').first unless @api_user.update(plain_text_password: params[:parsed_frame].css('newPW').first.text) - response.headers['X-EPP-Returncode'] = '2500' handle_errors(@api_user) and return end end @@ -93,7 +92,6 @@ class Epp::SessionsController < EppController epp_session.save! render_epp_response('login_success') else - response.headers['X-EPP-Returncode'] = '2500' handle_errors end end @@ -119,7 +117,6 @@ class Epp::SessionsController < EppController @api_user = current_user # cache current_user for logging epp_session.destroy - response.headers['X-EPP-Returncode'] = '1500' render_epp_response('logout') end diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 496526d71..97286a80d 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -22,7 +22,6 @@ class EppController < ApplicationController code: 2001, msg: error } - response.headers['X-EPP-Returncode'] = '2200' end handle_errors and return if epp_errors.any? end @@ -375,7 +374,6 @@ class EppController < ApplicationController if session_timeout_reached? @api_user = current_user # cache current_user for logging epp_session.destroy - response.headers['X-EPP-Returncode'] = '1500' epp_errors << { msg: t('session_timeout'), From 7689a11a7f9fcc97431f464bd2159e918b02575d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 11 Sep 2019 19:30:13 +0300 Subject: [PATCH 049/757] Remove duplicate test --- .../epp/domain/create/auction_idn_test.rb | 37 ------------------- 1 file changed, 37 deletions(-) diff --git a/test/integration/epp/domain/create/auction_idn_test.rb b/test/integration/epp/domain/create/auction_idn_test.rb index 8830d93f2..d4c49d66d 100644 --- a/test/integration/epp/domain/create/auction_idn_test.rb +++ b/test/integration/epp/domain/create/auction_idn_test.rb @@ -116,43 +116,6 @@ class EppDomainCreateAuctionIdnTest < EppTestCase assert_epp_response :parameter_value_policy_error end - def test_domain_with_unicode_idn_cannot_be_registered_without_winning_the_auction - @idn_auction.started! - - request_xml = <<-XML - - - - - - püramiid.test - #{contacts(:john).code} - - - - - #{'test' * 2000} - - - - - XML - - assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - end - - refute Domain.where(name: @idn_auction.domain).exists? - - @idn_auction.reload - refute @idn_auction.domain_registered? - - response_xml = Nokogiri::XML(response.body) - assert_equal '2306', response_xml.at_css('result')[:code] - assert_equal 'Parameter value policy error: domain is at auction', - response_xml.at_css('result msg').text - end - def test_domain_with_unicode_idn_cannot_be_registered_without_winning_the_auction @idn_auction.started! From fb2e6978fd664a3f47765deac0ca98177da209b9 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 12 Sep 2019 16:36:36 +0300 Subject: [PATCH 050/757] Regenerate Airbrake config --- config/initializers/airbrake.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/config/initializers/airbrake.rb b/config/initializers/airbrake.rb index f48529bc7..917deb02a 100644 --- a/config/initializers/airbrake.rb +++ b/config/initializers/airbrake.rb @@ -2,7 +2,17 @@ Airbrake.configure do |config| config.host = ENV['airbrake_host'] config.project_id = ENV['airbrake_project_id'] config.project_key = ENV['airbrake_project_key'] - + config.root_directory = Rails.root + config.logger = + if ENV['RAILS_LOG_TO_STDOUT'].present? + Logger.new(STDOUT, level: Rails.logger.level) + else + Logger.new( + Rails.root.join('log', 'airbrake.log'), + level: Rails.logger.level + ) + end config.environment = ENV['airbrake_env'] || Rails.env - config.ignore_environments = %w(development test) + config.ignore_environments = %w[test] + config.blacklist_keys = Rails.application.config.filter_parameters end From 99ddcadd893e22ef827e09d82e78e096b8579d62 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 12 Sep 2019 17:17:47 +0300 Subject: [PATCH 051/757] Remove unnecessary statement CSRF protection makes no sense in EPP and is already disabled with `skip_before_action :verify_authenticity_token`. --- app/controllers/epp_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 496526d71..820a992f3 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -1,6 +1,5 @@ class EppController < ApplicationController layout false - protect_from_forgery with: :null_session skip_before_action :verify_authenticity_token before_action :ensure_session_id_passed From 9d733429427d233ccd1deb033f8021fec7d367bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 12:31:35 +0300 Subject: [PATCH 052/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e49d7c95e..f2567ec82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +13.09.2019 +* Fixed bug where glue records were identified on partial string match with the domain name [#1291](https://github.com/internetee/registry/issues/1291) + 09.09.2019 * Upgrade Ruby to 2.4.7 [#1289](https://github.com/internetee/registry/pull/1289) From f7ed1a51be010cffd0a8dfc19b6059b318d74559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 13:02:16 +0300 Subject: [PATCH 053/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2567ec82..45012ff37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 13.09.2019 * Fixed bug where glue records were identified on partial string match with the domain name [#1291](https://github.com/internetee/registry/issues/1291) +* Updated Airbrake gem to 9.4.3 and tuned the configuration [#1297](https://github.com/internetee/registry/pull/1297) 09.09.2019 * Upgrade Ruby to 2.4.7 [#1289](https://github.com/internetee/registry/pull/1289) From 38a9df2a34e8e0c499dab61f75b0d05fca72e76c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 13:08:43 +0300 Subject: [PATCH 054/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45012ff37..cc861bb08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ 13.09.2019 * Fixed bug where glue records were identified on partial string match with the domain name [#1291](https://github.com/internetee/registry/issues/1291) * Updated Airbrake gem to 9.4.3 and tuned the configuration [#1297](https://github.com/internetee/registry/pull/1297) +* Updated filenames to follow Ruby name convention [#1295](https://github.com/internetee/registry/pull/1295) 09.09.2019 * Upgrade Ruby to 2.4.7 [#1289](https://github.com/internetee/registry/pull/1289) From 4274d533c61913da12c1bd0df5cd05529e36cd26 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 13 Sep 2019 13:24:36 +0300 Subject: [PATCH 055/757] Remove `jbuilder` gem There are no .jbuilder views. --- Gemfile | 1 - Gemfile.lock | 4 ---- config/application.rb | 1 - 3 files changed, 6 deletions(-) diff --git a/Gemfile b/Gemfile index 836fce72f..f9db13b22 100644 --- a/Gemfile +++ b/Gemfile @@ -50,7 +50,6 @@ gem 'cancancan', '1.11.0' # autharization gem 'devise', '~> 4.0' gem 'grape' -gem 'jbuilder', '2.2.16' # json api # registry specfic gem 'isikukood' # for EE-id validation diff --git a/Gemfile.lock b/Gemfile.lock index badb5a81b..c81f668c7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -228,9 +228,6 @@ GEM ice_nine (0.11.2) isikukood (0.1.2) iso8601 (0.8.6) - jbuilder (2.2.16) - activesupport (>= 3.0.0, < 5) - multi_json (~> 1.2) jquery-rails (4.0.4) rails-dom-testing (~> 1.0) railties (>= 4.2.0) @@ -488,7 +485,6 @@ DEPENDENCIES html2haml (= 2.1.0) isikukood iso8601 (= 0.8.6) - jbuilder (= 2.2.16) jquery-rails (= 4.0.4) jquery-ui-rails (= 5.0.5) kaminari (= 0.16.3) diff --git a/config/application.rb b/config/application.rb index f57056960..3c747b4b3 100644 --- a/config/application.rb +++ b/config/application.rb @@ -65,7 +65,6 @@ module DomainNameRegistry g.javascripts false g.helper false g.template_engine :erb - g.jbuilder false g.test_framework nil end From 7b72868c2b5d9fd2fbe490c33b6541393bcd0907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 13:27:45 +0300 Subject: [PATCH 056/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc861bb08..cd9486172 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 13.09.2019 * Fixed bug where glue records were identified on partial string match with the domain name [#1291](https://github.com/internetee/registry/issues/1291) +* Removed 1 second delay on erroneous epp query responses [#1299](https://github.com/internetee/registry/pull/1299) * Updated Airbrake gem to 9.4.3 and tuned the configuration [#1297](https://github.com/internetee/registry/pull/1297) * Updated filenames to follow Ruby name convention [#1295](https://github.com/internetee/registry/pull/1295) From 6d56dd7b4c16b681d64fcdf160a77756c21017e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 14:20:33 +0300 Subject: [PATCH 057/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd9486172..0f81a5aa4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * Fixed bug where glue records were identified on partial string match with the domain name [#1291](https://github.com/internetee/registry/issues/1291) * Removed 1 second delay on erroneous epp query responses [#1299](https://github.com/internetee/registry/pull/1299) * Updated Airbrake gem to 9.4.3 and tuned the configuration [#1297](https://github.com/internetee/registry/pull/1297) +* Updated cancancan gem to 3.0.1 [#1300](https://github.com/internetee/registry/pull/1300) * Updated filenames to follow Ruby name convention [#1295](https://github.com/internetee/registry/pull/1295) 09.09.2019 From 62c9e9dc002de61c42f5d9cc76f2541b842348bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2019 11:20:51 +0000 Subject: [PATCH 058/757] Bump devise from 4.6.1 to 4.7.1 Bumps [devise](https://github.com/plataformatec/devise) from 4.6.1 to 4.7.1. - [Release notes](https://github.com/plataformatec/devise/releases) - [Changelog](https://github.com/plataformatec/devise/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/devise/compare/v4.6.1...v4.7.1) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 0a69b58d6..cfb3144de 100644 --- a/Gemfile +++ b/Gemfile @@ -45,7 +45,7 @@ gem 'kaminari', '0.16.3' # pagination gem 'coderay', '1.1.0' # xml console visualize gem 'select2-rails', '3.5.9.3' # for autocomplete gem 'cancancan' -gem 'devise', '~> 4.0' +gem 'devise', '~> 4.7' gem 'grape' gem 'jbuilder', '2.2.16' # json api diff --git a/Gemfile.lock b/Gemfile.lock index ac53ec102..83e8cd549 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -124,7 +124,7 @@ GEM descendants_tracker (~> 0.0.4) ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) - bcrypt (3.1.12) + bcrypt (3.1.13) bootstrap-sass (3.4.1) autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) @@ -169,10 +169,10 @@ GEM database_cleaner (1.6.1) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devise (4.6.1) + devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) - railties (>= 4.1.0, < 6.0) + railties (>= 4.1.0) responders warden (~> 1.2.3) diff-lcs (1.3) @@ -321,7 +321,7 @@ GEM activesupport (>= 4.2.0, < 5.0) nokogiri (~> 1.6) rails-deprecated_sanitizer (>= 1.0.1) - rails-html-sanitizer (1.0.4) + rails-html-sanitizer (1.2.0) loofah (~> 2.2, >= 2.2.2) rails-settings-cached (0.7.2) rails (>= 4.2.0) @@ -330,7 +330,7 @@ GEM activesupport (= 4.2.11.1) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) - rake (12.3.2) + rake (12.3.3) ransack (1.5.1) actionpack (>= 3.0) activerecord (>= 3.0) @@ -475,7 +475,7 @@ DEPENDENCIES daemons-rails (= 1.2.1) data_migrate! database_cleaner - devise (~> 4.0) + devise (~> 4.7) digidoc_client! domain_name e_invoice! From 27ceda8c38944d152e35f3fc1ddf1926bd42f89f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 15:13:37 +0300 Subject: [PATCH 059/757] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f81a5aa4..44e0279e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,13 @@ 13.09.2019 * Fixed bug where glue records were identified on partial string match with the domain name [#1291](https://github.com/internetee/registry/issues/1291) * Removed 1 second delay on erroneous epp query responses [#1299](https://github.com/internetee/registry/pull/1299) +* Autoupdated Devise gem to 4.7.1 [#1304](https://github.com/internetee/registry/pull/1304) * Updated Airbrake gem to 9.4.3 and tuned the configuration [#1297](https://github.com/internetee/registry/pull/1297) * Updated cancancan gem to 3.0.1 [#1300](https://github.com/internetee/registry/pull/1300) * Updated filenames to follow Ruby name convention [#1295](https://github.com/internetee/registry/pull/1295) +* Removed mod_epp specific X-EPP-Returncode EPP response header [#1301](https://github.com/internetee/registry/pull/1301) +* Removed a dublicate test [#1302](https://github.com/internetee/registry/pull/1302) +* Removed disabled and unnecessary CSRF protection [#1305](https://github.com/internetee/registry/pull/1305) 09.09.2019 * Upgrade Ruby to 2.4.7 [#1289](https://github.com/internetee/registry/pull/1289) From fa73a0aacd27a42f3f7ef1dc372c62dff9df4f54 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Sep 2019 16:14:20 +0300 Subject: [PATCH 060/757] Introduce module --- app/controllers/epp/base_controller.rb | 410 +++++++++++++++ app/controllers/epp/contacts_controller.rb | 378 +++++++------- app/controllers/epp/domains_controller.rb | 534 ++++++++++---------- app/controllers/epp/errors_controller.rb | 20 +- app/controllers/epp/keyrelays_controller.rb | 86 ++-- app/controllers/epp/polls_controller.rb | 92 ++-- app/controllers/epp/sessions_controller.rb | 235 ++++----- app/controllers/epp_controller.rb | 410 --------------- doc/controllers_brief.svg | 5 - doc/controllers_complete.svg | 29 -- 10 files changed, 1089 insertions(+), 1110 deletions(-) create mode 100644 app/controllers/epp/base_controller.rb delete mode 100644 app/controllers/epp_controller.rb diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb new file mode 100644 index 000000000..bc19670fe --- /dev/null +++ b/app/controllers/epp/base_controller.rb @@ -0,0 +1,410 @@ +module Epp + class BaseController < ApplicationController + layout false + skip_before_action :verify_authenticity_token + + before_action :ensure_session_id_passed + before_action :generate_svtrid + before_action :latin_only + before_action :validate_against_schema + before_action :validate_request + before_action :update_epp_session, if: 'signed_in?' + + around_action :catch_epp_errors + + helper_method :current_user + helper_method :resource + + def validate_against_schema + return if ['hello', 'error', 'keyrelay'].include?(params[:action]) + schema.validate(params[:nokogiri_frame]).each do |error| + epp_errors << { + code: 2001, + msg: error + } + end + handle_errors and return if epp_errors.any? + end + + def catch_epp_errors + err = catch(:epp_error) do + yield + nil + end + return unless err + @errors = [err] + handle_errors + end + + rescue_from StandardError do |e| + @errors ||= [] + + if e.class == CanCan::AccessDenied + if @errors.blank? + @errors = [{ + msg: t('errors.messages.epp_authorization_error'), + code: '2201' + }] + end + else + if @errors.blank? + @errors = [{ + msg: 'Internal error.', + code: '2400' + }] + end + + if Rails.env.test? || Rails.env.development? + puts e.backtrace.reverse.join("\n") + puts "\n BACKTRACE REVERSED!\n" + puts "\n FROM-EPP-RESCUE: #{e.message}\n\n\n" + else + logger.error "FROM-EPP-RESCUE: #{e.message}" + logger.error e.backtrace.join("\n") + end + end + + render_epp_response '/epp/error' + end + + def schema + EPP_ALL_SCHEMA + end + + def generate_svtrid + @svTRID = "ccReg-#{format('%010d', rand(10 ** 10))}" + end + + def params_hash # TODO: THIS IS DEPRECATED AND WILL BE REMOVED IN FUTURE + @params_hash ||= Hash.from_xml(params[:frame]).with_indifferent_access + end + + def epp_session + EppSession.find_by(session_id: epp_session_id) + end + + def current_user + return unless signed_in? + epp_session.user + end + + # ERROR + RESPONSE HANDLING + def epp_errors + @errors ||= [] + end + + def handle_errors(obj = nil) + @errors ||= [] + + if obj + obj.construct_epp_errors + @errors += obj.errors[:epp_errors] + end + + if params[:parsed_frame].at_css('update') + @errors.each_with_index do |errors, index| + if errors[:code] == '2304' && + errors[:value].present? && + errors[:value][:val] == DomainStatus::SERVER_DELETE_PROHIBITED && + errors[:value][:obj] == 'status' + @errors[index][:value][:val] = DomainStatus::PENDING_UPDATE + end + end + end + + # for debugging + if @errors.blank? + @errors << { + code: '1', + msg: 'handle_errors was executed when there were actually no errors' + } + end + + @errors.uniq! + + logger.error "\nFOLLOWING ERRORS OCCURRED ON EPP QUERY:" + logger.error @errors.inspect + logger.error "\n" + + render_epp_response '/epp/error' + end + + def render_epp_response(*args) + @response = render_to_string(*args) + render xml: @response + write_to_epp_log + end + + # VALIDATION + def latin_only + return true if params['frame'].blank? + if params['frame'].match?(/\A[\p{Latin}\p{Z}\p{P}\p{S}\p{Cc}\p{Cf}\w_\'\+\-\.\(\)\/]*\Z/i) + return true + end + + epp_errors << { + msg: 'Parameter value policy error. Allowed only Latin characters.', + code: '2306' + } + + handle_errors and return false + end + + # VALIDATION + def validate_request + validation_method = "validate_#{params[:action]}" + return unless respond_to?(validation_method, true) + send(validation_method) + + # validate legal document's type here because it may be in most of the requests + @prefix = nil + if element_count('extdata > legalDocument').positive? + requires_attribute('extdata > legalDocument', 'type', values: LegalDocument::TYPES, policy: true) + end + + handle_errors and return if epp_errors.any? + end + + # let's follow grape's validations: https://github.com/intridea/grape/#parameter-validation-and-coercion + + # Adds error to epp_errors if element is missing or blank + # Returns last element of selectors if it exists + # + # requires 'transfer' + # + # TODO: Add possibility to pass validations / options in the method + + def requires(*selectors) + options = selectors.extract_options! + allow_blank = options[:allow_blank] ||= false # allow_blank is false by default + + el, missing = nil, nil + selectors.each do |selector| + full_selector = [@prefix, selector].compact.join(' ') + attr = selector.split('>').last.strip.underscore + el = params[:parsed_frame].css(full_selector).first + + if allow_blank + missing = el.nil? + else + missing = el.present? ? el.text.blank? : true + end + epp_errors << { + code: '2003', + msg: I18n.t('errors.messages.required_parameter_missing', key: "#{full_selector} [#{attr}]") + } if missing + end + + missing ? false : el # return last selector if it was present + end + + # Adds error to epp_errors if element or attribute is missing or attribute attribute is not one + # of the values + # + # requires_attribute 'transfer', 'op', values: %(approve, query, reject) + + def requires_attribute(element_selector, attribute_selector, options) + element = requires(element_selector, allow_blank: options[:allow_blank]) + return unless element + + attribute = element[attribute_selector] + + unless attribute + epp_errors << { + code: '2003', + msg: I18n.t('errors.messages.required_parameter_missing', key: attribute_selector) + } + return + end + + return if options[:values].include?(attribute) + + if options[:policy] + epp_errors << { + code: '2306', + msg: I18n.t('attribute_is_invalid', attribute: attribute_selector) + } + else + epp_errors << { + code: '2004', + msg: I18n.t('parameter_value_range_error', key: attribute_selector) + } + end + end + + def optional_attribute(element_selector, attribute_selector, options) + full_selector = [@prefix, element_selector].compact.join(' ') + element = params[:parsed_frame].css(full_selector).first + return unless element + + attribute = element[attribute_selector] + return if (attribute && options[:values].include?(attribute)) || !attribute + + epp_errors << { + code: '2306', + msg: I18n.t('attribute_is_invalid', attribute: attribute_selector) + } + end + + def exactly_one_of(*selectors) + full_selectors = create_full_selectors(*selectors) + return if element_count(*full_selectors, use_prefix: false) == 1 + + epp_errors << { + code: '2306', + msg: I18n.t(:exactly_one_parameter_required, params: full_selectors.join(' OR ')) + } + end + + def mutually_exclusive(*selectors) + full_selectors = create_full_selectors(*selectors) + return if element_count(*full_selectors, use_prefix: false) <= 1 + + epp_errors << { + code: '2306', + msg: I18n.t(:mutally_exclusive_params, params: full_selectors.join(', ')) + } + end + + def optional(selector, *validations) + full_selector = [@prefix, selector].compact.join(' ') + el = params[:parsed_frame].css(full_selector).first + return unless el&.text.present? + value = el.text + + validations.each do |x| + validator = "#{x.first[0]}_validator".camelize.constantize + err = validator.validate_epp(selector.split(' ').last, value) + epp_errors << err if err + end + end + + # Returns how many elements were present in the request + # if use_prefix is true, @prefix will be prepended to selectors e.g create > create > name + # default is true + # + # @prefix = 'create > create >' + # element_count 'name', 'registrar', use_prefix: false + # => 2 + + def element_count(*selectors) + options = selectors.extract_options! + use_prefix = options[:use_prefix] != false # use_prefix is true by default + + present_count = 0 + selectors.each do |selector| + full_selector = use_prefix ? [@prefix, selector].compact.join(' ') : selector + el = params[:parsed_frame].css(full_selector).first + present_count += 1 if el && el.text.present? + end + present_count + end + + def create_full_selectors(*selectors) + selectors.map { |x| [@prefix, x].compact.join(' ') } + end + + def xml_attrs_present?(ph, attributes) # TODO: THIS IS DEPRECATED AND WILL BE REMOVED IN FUTURE + attributes.each do |x| + epp_errors << { + code: '2003', + msg: I18n.t('errors.messages.required_parameter_missing', key: x.last) + } unless has_attribute(ph, x) + end + epp_errors.empty? + end + + def has_attribute(ph, path) # TODO: THIS IS DEPRECATED AND WILL BE REMOVED IN FUTURE + path.reduce(ph) do |location, key| + location.respond_to?(:keys) ? location[key] : nil + end + end + + def write_to_epp_log + request_command = params[:command] || params[:action] # error receives :command, other methods receive :action + frame = params[:raw_frame] || params[:frame] + + # filter pw + if request_command == 'login' && frame.present? + frame.gsub!(/pw>.+<\//, 'pw>[FILTERED]]+)>([^<])+<\/eis:legalDocument>/, "[FILTERED]") if frame.present? + + ApiLog::EppLog.create({ + request: trimmed_request, + request_command: request_command, + request_successful: epp_errors.empty?, + request_object: resource ? "#{params[:epp_object_type]}: #{resource.class} - #{resource.id} - #{resource.name}" : params[:epp_object_type], + response: @response, + api_user_name: @api_user.try(:username) || current_user.try(:username) || 'api-public', + api_user_registrar: @api_user.try(:registrar).try(:to_s) || current_user.try(:registrar).try(:to_s), + ip: request.ip, + uuid: request.uuid + }) + end + + def resource + name = self.class.to_s.sub("Epp::", "").sub("Controller", "").underscore.singularize + instance_variable_get("@#{name}") + end + + private + + def signed_in? + epp_session + end + + def epp_session_id + cookies[:session] # Passed by mod_epp https://github.com/mod-epp/mod-epp#requestscript-interface + end + + def ensure_session_id_passed + raise 'EPP session id is empty' unless epp_session_id.present? + end + + def update_epp_session + iptables_counter_update + + if session_timeout_reached? + @api_user = current_user # cache current_user for logging + epp_session.destroy + + epp_errors << { + msg: t('session_timeout'), + code: '2201' + } + + handle_errors and return + else + epp_session.update_column(:updated_at, Time.zone.now) + end + end + + def session_timeout_reached? + timeout = 5.minutes + epp_session.updated_at < (Time.zone.now - timeout) + end + + def iptables_counter_update + return if ENV['iptables_counter_enabled'].blank? && ENV['iptables_counter_enabled'] != 'true' + return if current_user.blank? + counter_update(current_user.registrar_code, ENV['iptables_server_ip']) + end + + def counter_update(registrar_code, ip) + counter_proc = "/proc/net/xt_recent/#{registrar_code}" + + begin + File.open(counter_proc, 'a') do |f| + f.puts "+#{ip}" + end + rescue Errno::ENOENT => e + logger.error "IPTABLES COUNTER UPDATE: cannot open #{counter_proc}: #{e}" + rescue Errno::EACCES => e + logger.error "IPTABLES COUNTER UPDATE: no permission #{counter_proc}: #{e}" + rescue IOError => e + logger.error "IPTABLES COUNTER UPDATE: cannot write #{ip} to #{counter_proc}: #{e}" + end + end + end +end diff --git a/app/controllers/epp/contacts_controller.rb b/app/controllers/epp/contacts_controller.rb index 7f28961f6..ff5dc982f 100644 --- a/app/controllers/epp/contacts_controller.rb +++ b/app/controllers/epp/contacts_controller.rb @@ -1,210 +1,212 @@ -class Epp::ContactsController < EppController - before_action :find_contact, only: [:info, :update, :delete] - before_action :find_password, only: [:info, :update, :delete] - helper_method :address_processing? +module Epp + class ContactsController < BaseController + before_action :find_contact, only: [:info, :update, :delete] + before_action :find_password, only: [:info, :update, :delete] + helper_method :address_processing? - def info - authorize! :info, @contact, @password - render_epp_response 'epp/contacts/info' - end + def info + authorize! :info, @contact, @password + render_epp_response 'epp/contacts/info' + end - def check - authorize! :check, Epp::Contact + def check + authorize! :check, Epp::Contact - ids = params[:parsed_frame].css('id').map(&:text) - @results = Epp::Contact.check_availability(ids) - render_epp_response '/epp/contacts/check' - end + ids = params[:parsed_frame].css('id').map(&:text) + @results = Epp::Contact.check_availability(ids) + render_epp_response '/epp/contacts/check' + end - def create - authorize! :create, Epp::Contact - frame = params[:parsed_frame] - @contact = Epp::Contact.new(frame, current_user.registrar) + def create + authorize! :create, Epp::Contact + frame = params[:parsed_frame] + @contact = Epp::Contact.new(frame, current_user.registrar) - @contact.add_legal_file_to_new(frame) - @contact.generate_code + @contact.add_legal_file_to_new(frame) + @contact.generate_code - if @contact.save - if !address_processing? && address_given? - @response_code = 1100 - @response_description = t('epp.contacts.completed_without_address') + if @contact.save + if !address_processing? && address_given? + @response_code = 1100 + @response_description = t('epp.contacts.completed_without_address') + else + @response_code = 1000 + @response_description = t('epp.contacts.completed') + end + + render_epp_response '/epp/contacts/save' else - @response_code = 1000 - @response_description = t('epp.contacts.completed') + handle_errors(@contact) + end + end + + def update + authorize! :update, @contact, @password + + frame = params[:parsed_frame] + + if @contact.update_attributes(frame, current_user) + if !address_processing? && address_given? + @response_code = 1100 + @response_description = t('epp.contacts.completed_without_address') + else + @response_code = 1000 + @response_description = t('epp.contacts.completed') + end + + render_epp_response 'epp/contacts/save' + else + handle_errors(@contact) + end + end + + def delete + authorize! :delete, @contact, @password + + if @contact.destroy_and_clean(params[:parsed_frame]) + render_epp_response '/epp/contacts/delete' + else + handle_errors(@contact) + end + end + + def renew + authorize! :renew, Epp::Contact + epp_errors << { code: '2101', msg: t(:'errors.messages.unimplemented_command') } + handle_errors + end + + private + + def find_password + @password = params[:parsed_frame].css('authInfo pw').text + end + + def find_contact + code = params[:parsed_frame].css('id').text.strip.upcase + + @contact = Epp::Contact.find_by_epp_code(code) + + if @contact.blank? + epp_errors << { + code: '2303', + msg: t('errors.messages.epp_obj_does_not_exist'), + value: { obj: 'id', val: code } + } + fail CanCan::AccessDenied + end + @contact + end + + # + # Validations + # + def validate_info + @prefix = 'info > info >' + requires 'id' + end + + def validate_check + @prefix = 'check > check >' + requires 'id' + end + + def validate_create + @prefix = 'create > create >' + + required_attributes = [ + 'postalInfo > name', + 'voice', + 'email' + ] + + address_attributes = [ + 'postalInfo > addr > street', + 'postalInfo > addr > city', + 'postalInfo > addr > pc', + 'postalInfo > addr > cc', + ] + + required_attributes.concat(address_attributes) if address_processing? + + requires(*required_attributes) + ident = params[:parsed_frame].css('ident') + + if ident.present? && ident.attr('type').blank? + epp_errors << { + code: '2003', + msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'type') + } end - render_epp_response '/epp/contacts/save' - else - handle_errors(@contact) - end - end - - def update - authorize! :update, @contact, @password - - frame = params[:parsed_frame] - - if @contact.update_attributes(frame, current_user) - if !address_processing? && address_given? - @response_code = 1100 - @response_description = t('epp.contacts.completed_without_address') - else - @response_code = 1000 - @response_description = t('epp.contacts.completed') + if ident.present? && ident.text != 'birthday' && ident.attr('cc').blank? + epp_errors << { + code: '2003', + msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'cc') + } end - - render_epp_response 'epp/contacts/save' - else - handle_errors(@contact) - end - end - - def delete - authorize! :delete, @contact, @password - - if @contact.destroy_and_clean(params[:parsed_frame]) - render_epp_response '/epp/contacts/delete' - else - handle_errors(@contact) - end - end - - def renew - authorize! :renew, Epp::Contact - epp_errors << { code: '2101', msg: t(:'errors.messages.unimplemented_command') } - handle_errors - end - - private - - def find_password - @password = params[:parsed_frame].css('authInfo pw').text - end - - def find_contact - code = params[:parsed_frame].css('id').text.strip.upcase - - @contact = Epp::Contact.find_by_epp_code(code) - - if @contact.blank? - epp_errors << { - code: '2303', - msg: t('errors.messages.epp_obj_does_not_exist'), - value: { obj: 'id', val: code } - } - fail CanCan::AccessDenied - end - @contact - end - - # - # Validations - # - def validate_info - @prefix = 'info > info >' - requires 'id' - end - - def validate_check - @prefix = 'check > check >' - requires 'id' - end - - def validate_create - @prefix = 'create > create >' - - required_attributes = [ - 'postalInfo > name', - 'voice', - 'email' - ] - - address_attributes = [ - 'postalInfo > addr > street', - 'postalInfo > addr > city', - 'postalInfo > addr > pc', - 'postalInfo > addr > cc', - ] - - required_attributes.concat(address_attributes) if address_processing? - - requires(*required_attributes) - ident = params[:parsed_frame].css('ident') - - if ident.present? && ident.attr('type').blank? - epp_errors << { - code: '2003', - msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'type') - } - end - - if ident.present? && ident.text != 'birthday' && ident.attr('cc').blank? - epp_errors << { - code: '2003', - msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'cc') - } - end - # if ident.present? && ident.attr('cc').blank? + # if ident.present? && ident.attr('cc').blank? # epp_errors << { - # code: '2003', - # msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'cc') + # code: '2003', + # msg: I18n.t('errors.messages.required_ident_attribute_missing', key: 'cc') # } - # end - contact_org_disabled - fax_disabled - status_editing_disabled - @prefix = nil - requires 'extension > extdata > ident' - end + # end + contact_org_disabled + fax_disabled + status_editing_disabled + @prefix = nil + requires 'extension > extdata > ident' + end - def validate_update - @prefix = 'update > update >' - contact_org_disabled - fax_disabled - status_editing_disabled - requires 'id' - @prefix = nil - end + def validate_update + @prefix = 'update > update >' + contact_org_disabled + fax_disabled + status_editing_disabled + requires 'id' + @prefix = nil + end - def validate_delete - @prefix = 'delete > delete >' - requires 'id' - @prefix = nil - end + def validate_delete + @prefix = 'delete > delete >' + requires 'id' + @prefix = nil + end - def contact_org_disabled - return true if ENV['contact_org_enabled'] == 'true' - return true if params[:parsed_frame].css('postalInfo org').text.blank? + def contact_org_disabled + return true if ENV['contact_org_enabled'] == 'true' + return true if params[:parsed_frame].css('postalInfo org').text.blank? - epp_errors << { - code: '2306', - msg: "#{I18n.t(:contact_org_error)}: postalInfo > org [org]" - } - end + epp_errors << { + code: '2306', + msg: "#{I18n.t(:contact_org_error)}: postalInfo > org [org]" + } + end - def fax_disabled - return true if ENV['fax_enabled'] == 'true' - return true if params[:parsed_frame].css('fax').text.blank? - epp_errors << { - code: '2306', - msg: "#{I18n.t(:contact_fax_error)}: fax [fax]" - } - end + def fax_disabled + return true if ENV['fax_enabled'] == 'true' + return true if params[:parsed_frame].css('fax').text.blank? + epp_errors << { + code: '2306', + msg: "#{I18n.t(:contact_fax_error)}: fax [fax]" + } + end - def status_editing_disabled - return true if Setting.client_status_editing_enabled - return true if params[:parsed_frame].css('status').empty? - epp_errors << { - code: '2306', - msg: "#{I18n.t(:client_side_status_editing_error)}: status [status]" - } - end + def status_editing_disabled + return true if Setting.client_status_editing_enabled + return true if params[:parsed_frame].css('status').empty? + epp_errors << { + code: '2306', + msg: "#{I18n.t(:client_side_status_editing_error)}: status [status]" + } + end - def address_given? - params[:parsed_frame].css('postalInfo addr').size != 0 - end + def address_given? + params[:parsed_frame].css('postalInfo addr').size != 0 + end - def address_processing? - Contact.address_processing? + def address_processing? + Contact.address_processing? + end end end diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index ecee7ae9d..64d4e972e 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -1,92 +1,118 @@ -class Epp::DomainsController < EppController - before_action :find_domain, only: %i[info renew update transfer delete] - before_action :find_password, only: %i[info update transfer delete] +module Epp + class DomainsController < BaseController + before_action :find_domain, only: %i[info renew update transfer delete] + before_action :find_password, only: %i[info update transfer delete] - def info - authorize! :info, @domain, @password + def info + authorize! :info, @domain, @password - @hosts = params[:parsed_frame].css('name').first['hosts'] || 'all' + @hosts = params[:parsed_frame].css('name').first['hosts'] || 'all' - case @hosts - when 'del' - @nameservers = @domain.delegated_nameservers.sort - when 'sub' - @nameservers = @domain.subordinate_nameservers.sort - when 'all' - @nameservers = @domain.nameservers.sort + case @hosts + when 'del' + @nameservers = @domain.delegated_nameservers.sort + when 'sub' + @nameservers = @domain.subordinate_nameservers.sort + when 'all' + @nameservers = @domain.nameservers.sort + end + + render_epp_response '/epp/domains/info' end - render_epp_response '/epp/domains/info' - end + def create + authorize! :create, Epp::Domain - def create - authorize! :create, Epp::Domain + if Domain.release_to_auction + request_domain_name = params[:parsed_frame].css('name').text.strip.downcase + domain_name = DNS::DomainName.new(SimpleIDN.to_unicode(request_domain_name)) - if Domain.release_to_auction - request_domain_name = params[:parsed_frame].css('name').text.strip.downcase - domain_name = DNS::DomainName.new(SimpleIDN.to_unicode(request_domain_name)) - - if domain_name.at_auction? - throw :epp_error, - code: '2306', - msg: 'Parameter value policy error: domain is at auction' - elsif domain_name.awaiting_payment? - throw :epp_error, - code: '2003', - msg: 'Required parameter missing; reserved>pw element required for reserved domains' - elsif domain_name.pending_registration? - registration_code = params[:parsed_frame].css('reserved > pw').text - - if registration_code.empty? + if domain_name.at_auction? + throw :epp_error, + code: '2306', + msg: 'Parameter value policy error: domain is at auction' + elsif domain_name.awaiting_payment? throw :epp_error, code: '2003', - msg: 'Required parameter missing; reserved>pw element is required' - end + msg: 'Required parameter missing; reserved>pw element required for reserved domains' + elsif domain_name.pending_registration? + registration_code = params[:parsed_frame].css('reserved > pw').text - unless domain_name.available_with_code?(registration_code) - throw :epp_error, - code: '2202', - msg: 'Invalid authorization information; invalid reserved>pw value' + if registration_code.empty? + throw :epp_error, + code: '2003', + msg: 'Required parameter missing; reserved>pw element is required' + end + + unless domain_name.available_with_code?(registration_code) + throw :epp_error, + code: '2202', + msg: 'Invalid authorization information; invalid reserved>pw value' + end + end + end + + @domain = Epp::Domain.new_from_epp(params[:parsed_frame], current_user) + handle_errors(@domain) and return if @domain.errors.any? + @domain.valid? + @domain.errors.delete(:name_dirty) if @domain.errors[:puny_label].any? + handle_errors(@domain) and return if @domain.errors.any? + handle_errors and return unless balance_ok?('create') # loads pricelist in this method + + ActiveRecord::Base.transaction do + @domain.add_legal_file_to_new(params[:parsed_frame]) + + if @domain.save # TODO: Maybe use validate: false here because we have already validated the domain? + current_user.registrar.debit!({ + sum: @domain_pricelist.price.amount, + description: "#{I18n.t('create')} #{@domain.name}", + activity_type: AccountActivity::CREATE, + price: @domain_pricelist + }) + + if Domain.release_to_auction && domain_name.pending_registration? + active_auction = Auction.find_by(domain: domain_name.to_s, + status: Auction.statuses[:payment_received]) + active_auction.domain_registered! + end + + render_epp_response '/epp/domains/create' + else + handle_errors(@domain) end end end - @domain = Epp::Domain.new_from_epp(params[:parsed_frame], current_user) - handle_errors(@domain) and return if @domain.errors.any? - @domain.valid? - @domain.errors.delete(:name_dirty) if @domain.errors[:puny_label].any? - handle_errors(@domain) and return if @domain.errors.any? - handle_errors and return unless balance_ok?('create') # loads pricelist in this method - - ActiveRecord::Base.transaction do - @domain.add_legal_file_to_new(params[:parsed_frame]) - - if @domain.save # TODO: Maybe use validate: false here because we have already validated the domain? - current_user.registrar.debit!({ - sum: @domain_pricelist.price.amount, - description: "#{I18n.t('create')} #{@domain.name}", - activity_type: AccountActivity::CREATE, - price: @domain_pricelist - }) - - if Domain.release_to_auction && domain_name.pending_registration? - active_auction = Auction.find_by(domain: domain_name.to_s, - status: Auction.statuses[:payment_received]) - active_auction.domain_registered! + def update + authorize! :update, @domain, @password + begin + if @domain.update(params[:parsed_frame], current_user) + if @domain.epp_pending_update.present? + render_epp_response '/epp/domains/success_pending' + else + render_epp_response '/epp/domains/success' + end + else + handle_errors(@domain) + end + rescue => e + if @domain.errors.any? + handle_errors(@domain) + else + throw e end - - render_epp_response '/epp/domains/create' - else - handle_errors(@domain) end end - end - def update - authorize! :update, @domain, @password - begin - if @domain.update(params[:parsed_frame], current_user) - if @domain.epp_pending_update.present? + def delete + authorize! :delete, @domain, @password + # all includes for bullet + @domain = Epp::Domain.where(id: @domain.id).includes(nameservers: :versions).first + + handle_errors(@domain) and return unless @domain.can_be_deleted? + + if @domain.epp_destroy(params[:parsed_frame], current_user.id) + if @domain.epp_pending_delete.present? render_epp_response '/epp/domains/success_pending' else render_epp_response '/epp/domains/success' @@ -94,227 +120,203 @@ class Epp::DomainsController < EppController else handle_errors(@domain) end - rescue => e - if @domain.errors.any? - handle_errors(@domain) - else - throw e - end end - end - def delete - authorize! :delete, @domain, @password - # all includes for bullet - @domain = Epp::Domain.where(id: @domain.id).includes(nameservers: :versions).first + def check + authorize! :check, Epp::Domain - handle_errors(@domain) and return unless @domain.can_be_deleted? - - if @domain.epp_destroy(params[:parsed_frame], current_user.id) - if @domain.epp_pending_delete.present? - render_epp_response '/epp/domains/success_pending' - else - render_epp_response '/epp/domains/success' - end - else - handle_errors(@domain) + domain_names = params[:parsed_frame].css('name').map(&:text) + @domains = Epp::Domain.check_availability(domain_names) + render_epp_response '/epp/domains/check' end - end - def check - authorize! :check, Epp::Domain + def renew + authorize! :renew, @domain - domain_names = params[:parsed_frame].css('name').map(&:text) - @domains = Epp::Domain.check_availability(domain_names) - render_epp_response '/epp/domains/check' - end + period_element = params[:parsed_frame].css('period').text + period = (period_element.to_i == 0) ? 1 : period_element.to_i + period_unit = Epp::Domain.parse_period_unit_from_frame(params[:parsed_frame]) || 'y' - def renew - authorize! :renew, @domain + balance_ok?('renew', period, period_unit) # loading pricelist - period_element = params[:parsed_frame].css('period').text - period = (period_element.to_i == 0) ? 1 : period_element.to_i - period_unit = Epp::Domain.parse_period_unit_from_frame(params[:parsed_frame]) || 'y' + begin + ActiveRecord::Base.transaction(isolation: :serializable) do + @domain.reload - balance_ok?('renew', period, period_unit) # loading pricelist + success = @domain.renew( + params[:parsed_frame].css('curExpDate').text, + period, period_unit + ) - begin - ActiveRecord::Base.transaction(isolation: :serializable) do - @domain.reload + if success + unless balance_ok?('renew', period, period_unit) + handle_errors + fail ActiveRecord::Rollback + end - success = @domain.renew( - params[:parsed_frame].css('curExpDate').text, - period, period_unit - ) + current_user.registrar.debit!({ + sum: @domain_pricelist.price.amount, + description: "#{I18n.t('renew')} #{@domain.name}", + activity_type: AccountActivity::RENEW, + price: @domain_pricelist + }) - if success - unless balance_ok?('renew', period, period_unit) - handle_errors - fail ActiveRecord::Rollback + render_epp_response '/epp/domains/renew' + else + handle_errors(@domain) end - - current_user.registrar.debit!({ - sum: @domain_pricelist.price.amount, - description: "#{I18n.t('renew')} #{@domain.name}", - activity_type: AccountActivity::RENEW, - price: @domain_pricelist - }) - - render_epp_response '/epp/domains/renew' - else - handle_errors(@domain) end + rescue ActiveRecord::StatementInvalid => e + sleep rand / 100 + retry end - rescue ActiveRecord::StatementInvalid => e - sleep rand / 100 - retry - end - end - - def transfer - authorize! :transfer, @domain, @password - action = params[:parsed_frame].css('transfer').first[:op] - - if @domain.non_transferable? - throw :epp_error, { - code: '2304', - msg: I18n.t(:object_status_prohibits_operation) - } end - @domain_transfer = @domain.transfer(params[:parsed_frame], action, current_user) + def transfer + authorize! :transfer, @domain, @password + action = params[:parsed_frame].css('transfer').first[:op] - if @domain_transfer - render_epp_response '/epp/domains/transfer' - else - epp_errors << { - code: '2303', - msg: I18n.t('no_transfers_found') - } - handle_errors - end - end + if @domain.non_transferable? + throw :epp_error, { + code: '2304', + msg: I18n.t(:object_status_prohibits_operation) + } + end - private + @domain_transfer = @domain.transfer(params[:parsed_frame], action, current_user) - def validate_info - @prefix = 'info > info >' - requires('name') - optional_attribute 'name', 'hosts', values: %(all, sub, del, none) - end - - def validate_create - if Domain.nameserver_required? - @prefix = 'create > create >' - requires 'name', 'ns', 'registrant', 'ns > hostAttr' - end - - @prefix = 'extension > create >' - mutually_exclusive 'keyData', 'dsData' - - @prefix = nil - requires 'extension > extdata > legalDocument' - - optional_attribute 'period', 'unit', values: %w(d m y) - - status_editing_disabled - end - - def validate_update - if element_count('update > chg > registrant') > 0 - requires 'extension > extdata > legalDocument' - end - - @prefix = 'update > update >' - requires 'name' - - status_editing_disabled - end - - def validate_delete - requires 'extension > extdata > legalDocument' - - @prefix = 'delete > delete >' - requires 'name' - end - - def validate_check - @prefix = 'check > check >' - requires('name') - end - - def validate_renew - @prefix = 'renew > renew >' - requires 'name', 'curExpDate' - - optional_attribute 'period', 'unit', values: %w(d m y) - end - - def validate_transfer - # period element is disabled for now - if params[:parsed_frame].css('period').any? - epp_errors << { - code: '2307', - msg: I18n.t(:unimplemented_object_service), - value: { obj: 'period' } - } - end - - requires 'transfer > transfer' - - @prefix = 'transfer > transfer >' - requires 'name' - - @prefix = nil - requires_attribute 'transfer', 'op', values: %(approve, query, reject, request, cancel) - end - - def find_domain - domain_name = params[:parsed_frame].css('name').text.strip.downcase - @domain = Epp::Domain.find_by_idn domain_name - - unless @domain - epp_errors << { - code: '2303', - msg: I18n.t('errors.messages.epp_domain_not_found'), - value: { obj: 'name', val: domain_name } - } - fail CanCan::AccessDenied - end - - @domain - end - - def find_password - @password = params[:parsed_frame].css('authInfo pw').text - end - - def status_editing_disabled - return true if Setting.client_status_editing_enabled - return true if params[:parsed_frame].css('status').empty? - epp_errors << { - code: '2306', - msg: "#{I18n.t(:client_side_status_editing_error)}: status [status]" - } - end - - def balance_ok?(operation, period = nil, unit = nil) - @domain_pricelist = @domain.pricelist(operation, period.try(:to_i), unit) - if @domain_pricelist.try(:price) # checking if price list is not found - if current_user.registrar.balance < @domain_pricelist.price.amount + if @domain_transfer + render_epp_response '/epp/domains/transfer' + else epp_errors << { + code: '2303', + msg: I18n.t('no_transfers_found') + } + handle_errors + end + end + + private + + def validate_info + @prefix = 'info > info >' + requires('name') + optional_attribute 'name', 'hosts', values: %(all, sub, del, none) + end + + def validate_create + if Domain.nameserver_required? + @prefix = 'create > create >' + requires 'name', 'ns', 'registrant', 'ns > hostAttr' + end + + @prefix = 'extension > create >' + mutually_exclusive 'keyData', 'dsData' + + @prefix = nil + requires 'extension > extdata > legalDocument' + + optional_attribute 'period', 'unit', values: %w(d m y) + + status_editing_disabled + end + + def validate_update + if element_count('update > chg > registrant') > 0 + requires 'extension > extdata > legalDocument' + end + + @prefix = 'update > update >' + requires 'name' + + status_editing_disabled + end + + def validate_delete + requires 'extension > extdata > legalDocument' + + @prefix = 'delete > delete >' + requires 'name' + end + + def validate_check + @prefix = 'check > check >' + requires('name') + end + + def validate_renew + @prefix = 'renew > renew >' + requires 'name', 'curExpDate' + + optional_attribute 'period', 'unit', values: %w(d m y) + end + + def validate_transfer + # period element is disabled for now + if params[:parsed_frame].css('period').any? + epp_errors << { + code: '2307', + msg: I18n.t(:unimplemented_object_service), + value: { obj: 'period' } + } + end + + requires 'transfer > transfer' + + @prefix = 'transfer > transfer >' + requires 'name' + + @prefix = nil + requires_attribute 'transfer', 'op', values: %(approve, query, reject, request, cancel) + end + + def find_domain + domain_name = params[:parsed_frame].css('name').text.strip.downcase + @domain = Epp::Domain.find_by_idn domain_name + + unless @domain + epp_errors << { + code: '2303', + msg: I18n.t('errors.messages.epp_domain_not_found'), + value: { obj: 'name', val: domain_name } + } + fail CanCan::AccessDenied + end + + @domain + end + + def find_password + @password = params[:parsed_frame].css('authInfo pw').text + end + + def status_editing_disabled + return true if Setting.client_status_editing_enabled + return true if params[:parsed_frame].css('status').empty? + epp_errors << { + code: '2306', + msg: "#{I18n.t(:client_side_status_editing_error)}: status [status]" + } + end + + def balance_ok?(operation, period = nil, unit = nil) + @domain_pricelist = @domain.pricelist(operation, period.try(:to_i), unit) + if @domain_pricelist.try(:price) # checking if price list is not found + if current_user.registrar.balance < @domain_pricelist.price.amount + epp_errors << { code: '2104', msg: I18n.t('billing_failure_credit_balance_low') + } + return false + end + else + epp_errors << { + code: '2104', + msg: I18n.t(:active_price_missing_for_this_operation) } return false end - else - epp_errors << { - code: '2104', - msg: I18n.t(:active_price_missing_for_this_operation) - } - return false + true end - true end end diff --git a/app/controllers/epp/errors_controller.rb b/app/controllers/epp/errors_controller.rb index 05618f5f7..2711b5907 100644 --- a/app/controllers/epp/errors_controller.rb +++ b/app/controllers/epp/errors_controller.rb @@ -1,13 +1,15 @@ -class Epp::ErrorsController < EppController - skip_authorization_check +module Epp + class ErrorsController < BaseController + skip_authorization_check - def error - epp_errors << { code: params[:code], msg: params[:msg] } - render_epp_response '/epp/error' - end + def error + epp_errors << { code: params[:code], msg: params[:msg] } + render_epp_response '/epp/error' + end - def not_found - epp_errors << { code: 2400, msg: t(:could_not_determine_object_type_check_xml_format_and_namespaces) } - render_epp_response '/epp/error' + def not_found + epp_errors << { code: 2400, msg: t(:could_not_determine_object_type_check_xml_format_and_namespaces) } + render_epp_response '/epp/error' + end end end diff --git a/app/controllers/epp/keyrelays_controller.rb b/app/controllers/epp/keyrelays_controller.rb index c4d7ef395..b4159e796 100644 --- a/app/controllers/epp/keyrelays_controller.rb +++ b/app/controllers/epp/keyrelays_controller.rb @@ -1,61 +1,63 @@ -class Epp::KeyrelaysController < EppController - skip_authorization_check # TODO: move authorization under ability +module Epp + class KeyrelaysController < BaseController + skip_authorization_check # TODO: move authorization under ability - def keyrelay - # keyrelay temp turned off - @domain = find_domain + def keyrelay + # keyrelay temp turned off + @domain = find_domain - handle_errors(@domain) and return unless @domain - handle_errors(@domain) and return unless @domain.authenticate(params[:parsed_frame].css('pw').text) - handle_errors(@domain) and return unless @domain.keyrelay(params[:parsed_frame], current_user.registrar) + handle_errors(@domain) and return unless @domain + handle_errors(@domain) and return unless @domain.authenticate(params[:parsed_frame].css('pw').text) + handle_errors(@domain) and return unless @domain.keyrelay(params[:parsed_frame], current_user.registrar) - render_epp_response '/epp/shared/success' - end + render_epp_response '/epp/shared/success' + end - private + private - def validate_keyrelay - @prefix = 'keyrelay >' + def validate_keyrelay + @prefix = 'keyrelay >' - requires( - 'name', - 'keyData', 'keyData > pubKey', 'keyData > flags', 'keyData > protocol', 'keyData > alg', - 'authInfo', 'authInfo > pw' - ) + requires( + 'name', + 'keyData', 'keyData > pubKey', 'keyData > flags', 'keyData > protocol', 'keyData > alg', + 'authInfo', 'authInfo > pw' + ) - optional 'expiry > relative', duration_iso8601: true - optional 'expiry > absolute', date_time_iso8601: true + optional 'expiry > relative', duration_iso8601: true + optional 'expiry > absolute', date_time_iso8601: true - exactly_one_of 'expiry > relative', 'expiry > absolute' - end + exactly_one_of 'expiry > relative', 'expiry > absolute' + end - def find_domain - domain_name = params[:parsed_frame].css('name').text.strip.downcase + def find_domain + domain_name = params[:parsed_frame].css('name').text.strip.downcase - # keyrelay temp turned off - epp_errors << { - code: '2307', - msg: I18n.t(:unimplemented_object_service), - value: { obj: 'name', val: domain_name } - } - nil - # end of keyrelay temp turned off + # keyrelay temp turned off + epp_errors << { + code: '2307', + msg: I18n.t(:unimplemented_object_service), + value: { obj: 'name', val: domain_name } + } + nil + # end of keyrelay temp turned off - # domain = Epp::Domain.includes(:registrant).find_by(name: domain_name) + # domain = Epp::Domain.includes(:registrant).find_by(name: domain_name) - # unless domain + # unless domain # epp_errors << { - # code: '2303', - # msg: I18n.t('errors.messages.epp_domain_not_found'), - # value: { obj: 'name', val: domain_name } + # code: '2303', + # msg: I18n.t('errors.messages.epp_domain_not_found'), + # value: { obj: 'name', val: domain_name } # } # return nil - # end + # end - # domain - end + # domain + end - def resource - @domain + def resource + @domain + end end end diff --git a/app/controllers/epp/polls_controller.rb b/app/controllers/epp/polls_controller.rb index 57961eb82..c971d7d85 100644 --- a/app/controllers/epp/polls_controller.rb +++ b/app/controllers/epp/polls_controller.rb @@ -1,61 +1,63 @@ -class Epp::PollsController < EppController - skip_authorization_check # TODO: move authorization under ability +module Epp + class PollsController < BaseController + skip_authorization_check # TODO: move authorization under ability - def poll - req_poll if params[:parsed_frame].css('poll').first['op'] == 'req' - ack_poll if params[:parsed_frame].css('poll').first['op'] == 'ack' - end + def poll + req_poll if params[:parsed_frame].css('poll').first['op'] == 'req' + ack_poll if params[:parsed_frame].css('poll').first['op'] == 'ack' + end - private + private - def req_poll - @notification = current_user.unread_notifications.order('created_at DESC').take + def req_poll + @notification = current_user.unread_notifications.order('created_at DESC').take - render_epp_response 'epp/poll/poll_no_messages' and return unless @notification - if @notification.attached_obj_type && @notification.attached_obj_id - begin - @object = Object.const_get(@notification.attached_obj_type).find(@notification.attached_obj_id) - rescue => problem - # the data model might be inconsistent; or ... - # this could happen if the registrar does not dequeue messages, and then the domain was deleted + render_epp_response 'epp/poll/poll_no_messages' and return unless @notification + if @notification.attached_obj_type && @notification.attached_obj_id + begin + @object = Object.const_get(@notification.attached_obj_type).find(@notification.attached_obj_id) + rescue => problem + # the data model might be inconsistent; or ... + # this could happen if the registrar does not dequeue messages, and then the domain was deleted - # SELECT messages.id, domains.name, messages.body FROM messages LEFT OUTER - # JOIN domains ON attached_obj_id::INTEGER = domains.id - # WHERE attached_obj_type = 'Epp::Domain' AND name IS NULL; + # SELECT messages.id, domains.name, messages.body FROM messages LEFT OUTER + # JOIN domains ON attached_obj_id::INTEGER = domains.id + # WHERE attached_obj_type = 'Epp::Domain' AND name IS NULL; - Rails.logger.error 'orphan message, error ignored: ' + problem.to_s - # now we should dequeue or delete the messages avoid duplicate log alarms + Rails.logger.error 'orphan message, error ignored: ' + problem.to_s + # now we should dequeue or delete the messages avoid duplicate log alarms + end + end + + if @notification.attached_obj_type == 'Keyrelay' + render_epp_response 'epp/poll/poll_keyrelay' + else + render_epp_response 'epp/poll/poll_req' end end - if @notification.attached_obj_type == 'Keyrelay' - render_epp_response 'epp/poll/poll_keyrelay' - else - render_epp_response 'epp/poll/poll_req' - end - end + def ack_poll + @notification = current_user.unread_notifications.find_by(id: params[:parsed_frame].css('poll').first['msgID']) - def ack_poll - @notification = current_user.unread_notifications.find_by(id: params[:parsed_frame].css('poll').first['msgID']) + unless @notification + epp_errors << { + code: '2303', + msg: I18n.t('message_was_not_found'), + value: { obj: 'msgID', val: params[:parsed_frame].css('poll').first['msgID'] } + } + handle_errors and return + end - unless @notification - epp_errors << { - code: '2303', - msg: I18n.t('message_was_not_found'), - value: { obj: 'msgID', val: params[:parsed_frame].css('poll').first['msgID'] } - } - handle_errors and return + handle_errors(@notification) and return unless @notification.mark_as_read + render_epp_response 'epp/poll/poll_ack' end - handle_errors(@notification) and return unless @notification.mark_as_read - render_epp_response 'epp/poll/poll_ack' - end + def validate_poll + requires_attribute 'poll', 'op', values: %(ack req), allow_blank: true + end - def validate_poll - requires_attribute 'poll', 'op', values: %(ack req), allow_blank: true - end - - def resource - @notification + def resource + @notification + end end end diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index 449d1feef..2175f7281 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -1,135 +1,138 @@ -class Epp::SessionsController < EppController - skip_authorization_check only: [:hello, :login, :logout] +module Epp + class SessionsController < BaseController + skip_authorization_check only: [:hello, :login, :logout] - def hello - render_epp_response('greeting') - end - - def login - success = true - @api_user = ApiUser.find_by(login_params) - - webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) - if webclient_request && !Rails.env.test? && !Rails.env.development? - client_md5 = Certificate.parse_md_from_string(request.env['HTTP_SSL_CLIENT_CERT']) - server_md5 = Certificate.parse_md_from_string(File.read(ENV['cert_path'])) - if client_md5 != server_md5 - epp_errors << { - msg: 'Authentication error; server closing connection (certificate is not valid)', - code: '2501' - } - - success = false - end + def hello + render_epp_response('greeting') end - if !Rails.env.development? && (!webclient_request && @api_user) - unless @api_user.api_pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], request.env['HTTP_SSL_CLIENT_S_DN_CN']) - epp_errors << { - msg: 'Authentication error; server closing connection (certificate is not valid)', - code: '2501' - } + def login + success = true + @api_user = ApiUser.find_by(login_params) - success = false - end - end + webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) + if webclient_request && !Rails.env.test? && !Rails.env.development? + client_md5 = Certificate.parse_md_from_string(request.env['HTTP_SSL_CLIENT_CERT']) + server_md5 = Certificate.parse_md_from_string(File.read(ENV['cert_path'])) + if client_md5 != server_md5 + epp_errors << { + msg: 'Authentication error; server closing connection (certificate is not valid)', + code: '2501' + } - if success && !@api_user - epp_errors << { - msg: 'Authentication error; server closing connection (API user not found)', - code: '2501' - } - - success = false - end - - if success && !@api_user.try(:active) - epp_errors << { - msg: 'Authentication error; server closing connection (API user is not active)', - code: '2501' - } - - success = false - end - - if success && @api_user.cannot?(:create, :epp_login) - epp_errors << { - msg: 'Authentication error; server closing connection (API user does not have epp role)', - code: '2501' - } - - success = false - end - - if success && !ip_white? - epp_errors << { - msg: 'Authentication error; server closing connection (IP is not whitelisted)', - code: '2501' - } - - success = false - end - - if success && EppSession.limit_reached?(@api_user.registrar) - epp_errors << { - msg: 'Authentication error; server closing connection (connection limit reached)', - code: '2501' - } - - success = false - end - - if success - if params[:parsed_frame].css('newPW').first - unless @api_user.update(plain_text_password: params[:parsed_frame].css('newPW').first.text) - handle_errors(@api_user) and return + success = false end end - epp_session = EppSession.new - epp_session.session_id = epp_session_id - epp_session.user = @api_user - epp_session.save! - render_epp_response('login_success') - else - handle_errors + if !Rails.env.development? && (!webclient_request && @api_user) + unless @api_user.api_pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], request.env['HTTP_SSL_CLIENT_S_DN_CN']) + epp_errors << { + msg: 'Authentication error; server closing connection (certificate is not valid)', + code: '2501' + } + + success = false + end + end + + if success && !@api_user + epp_errors << { + msg: 'Authentication error; server closing connection (API user not found)', + code: '2501' + } + + success = false + end + + if success && !@api_user.try(:active) + epp_errors << { + msg: 'Authentication error; server closing connection (API user is not active)', + code: '2501' + } + + success = false + end + + if success && @api_user.cannot?(:create, :epp_login) + epp_errors << { + msg: 'Authentication error; server closing connection (API user does not have epp role)', + code: '2501' + } + + success = false + end + + if success && !ip_white? + epp_errors << { + msg: 'Authentication error; server closing connection (IP is not whitelisted)', + code: '2501' + } + + success = false + end + + if success && EppSession.limit_reached?(@api_user.registrar) + epp_errors << { + msg: 'Authentication error; server closing connection (connection limit reached)', + code: '2501' + } + + success = false + end + + if success + if params[:parsed_frame].css('newPW').first + unless @api_user.update(plain_text_password: params[:parsed_frame].css('newPW').first.text) + handle_errors(@api_user) and return + end + end + + epp_session = EppSession.new + epp_session.session_id = epp_session_id + epp_session.user = @api_user + epp_session.save! + render_epp_response('login_success') + else + handle_errors end end - def ip_white? - webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) - return true if webclient_request - if @api_user - return false unless @api_user.registrar.api_ip_white?(request.ip) - end - true - end - - def logout - unless signed_in? - epp_errors << { - code: 2201, - msg: 'Authorization error' - } - handle_errors - return + def ip_white? + webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) + return true if webclient_request + if @api_user + return false unless @api_user.registrar.api_ip_white?(request.ip) + end + true end - @api_user = current_user # cache current_user for logging - epp_session.destroy - render_epp_response('logout') + def logout + unless signed_in? + epp_errors << { + code: 2201, + msg: 'Authorization error' + } + handle_errors + return + end + + @api_user = current_user # cache current_user for logging + epp_session.destroy + render_epp_response('logout') end - ### HELPER METHODS ### + ### HELPER METHODS ### - def login_params - user = params[:parsed_frame].css('clID').first.text - pw = params[:parsed_frame].css('pw').first.text - { username: user, plain_text_password: pw } - end + def login_params + user = params[:parsed_frame].css('clID').first.text + pw = params[:parsed_frame].css('pw').first.text + { username: user, plain_text_password: pw } + end - private - def resource - @api_user + private + + def resource + @api_user + end end end diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb deleted file mode 100644 index 15af1cd73..000000000 --- a/app/controllers/epp_controller.rb +++ /dev/null @@ -1,410 +0,0 @@ -class EppController < ApplicationController - layout false - skip_before_action :verify_authenticity_token - - before_action :ensure_session_id_passed - before_action :generate_svtrid - before_action :latin_only - before_action :validate_against_schema - before_action :validate_request - before_action :update_epp_session, if: 'signed_in?' - - around_action :catch_epp_errors - - helper_method :current_user - helper_method :resource - - def validate_against_schema - return if ['hello', 'error', 'keyrelay'].include?(params[:action]) - schema.validate(params[:nokogiri_frame]).each do |error| - epp_errors << { - code: 2001, - msg: error - } - end - handle_errors and return if epp_errors.any? - end - - - def catch_epp_errors - err = catch(:epp_error) do - yield - nil - end - return unless err - @errors = [err] - handle_errors - end - - - rescue_from StandardError do |e| - @errors ||= [] - - if e.class == CanCan::AccessDenied - if @errors.blank? - @errors = [{ - msg: t('errors.messages.epp_authorization_error'), - code: '2201' - }] - end - else - if @errors.blank? - @errors = [{ - msg: 'Internal error.', - code: '2400' - }] - end - - if Rails.env.test? || Rails.env.development? - puts e.backtrace.reverse.join("\n") - puts "\n BACKTRACE REVERSED!\n" - puts "\n FROM-EPP-RESCUE: #{e.message}\n\n\n" - else - logger.error "FROM-EPP-RESCUE: #{e.message}" - logger.error e.backtrace.join("\n") - end - end - - render_epp_response '/epp/error' - end - - def schema - EPP_ALL_SCHEMA - end - - def generate_svtrid - @svTRID = "ccReg-#{format('%010d', rand(10**10))}" - end - - def params_hash # TODO: THIS IS DEPRECATED AND WILL BE REMOVED IN FUTURE - @params_hash ||= Hash.from_xml(params[:frame]).with_indifferent_access - end - - def epp_session - EppSession.find_by(session_id: epp_session_id) - end - - def current_user - return unless signed_in? - epp_session.user - end - - # ERROR + RESPONSE HANDLING - def epp_errors - @errors ||= [] - end - - def handle_errors(obj = nil) - @errors ||= [] - - if obj - obj.construct_epp_errors - @errors += obj.errors[:epp_errors] - end - - if params[:parsed_frame].at_css('update') - @errors.each_with_index do |errors, index| - if errors[:code] == '2304' && - errors[:value].present? && - errors[:value][:val] == DomainStatus::SERVER_DELETE_PROHIBITED && - errors[:value][:obj] == 'status' - @errors[index][:value][:val] = DomainStatus::PENDING_UPDATE - end - end - end - - # for debugging - if @errors.blank? - @errors << { - code: '1', - msg: 'handle_errors was executed when there were actually no errors' - } - end - - @errors.uniq! - - logger.error "\nFOLLOWING ERRORS OCCURRED ON EPP QUERY:" - logger.error @errors.inspect - logger.error "\n" - - render_epp_response '/epp/error' - end - - def render_epp_response(*args) - @response = render_to_string(*args) - render xml: @response - write_to_epp_log - end - - # VALIDATION - def latin_only - return true if params['frame'].blank? - if params['frame'].match?(/\A[\p{Latin}\p{Z}\p{P}\p{S}\p{Cc}\p{Cf}\w_\'\+\-\.\(\)\/]*\Z/i) - return true - end - - epp_errors << { - msg: 'Parameter value policy error. Allowed only Latin characters.', - code: '2306' - } - - handle_errors and return false - end - - # VALIDATION - def validate_request - validation_method = "validate_#{params[:action]}" - return unless respond_to?(validation_method, true) - send(validation_method) - - # validate legal document's type here because it may be in most of the requests - @prefix = nil - if element_count('extdata > legalDocument').positive? - requires_attribute('extdata > legalDocument', 'type', values: LegalDocument::TYPES, policy: true) - end - - handle_errors and return if epp_errors.any? - end - - # let's follow grape's validations: https://github.com/intridea/grape/#parameter-validation-and-coercion - - # Adds error to epp_errors if element is missing or blank - # Returns last element of selectors if it exists - # - # requires 'transfer' - # - # TODO: Add possibility to pass validations / options in the method - - def requires(*selectors) - options = selectors.extract_options! - allow_blank = options[:allow_blank] ||= false # allow_blank is false by default - - el, missing = nil, nil - selectors.each do |selector| - full_selector = [@prefix, selector].compact.join(' ') - attr = selector.split('>').last.strip.underscore - el = params[:parsed_frame].css(full_selector).first - - if allow_blank - missing = el.nil? - else - missing = el.present? ? el.text.blank? : true - end - epp_errors << { - code: '2003', - msg: I18n.t('errors.messages.required_parameter_missing', key: "#{full_selector} [#{attr}]") - } if missing - end - - missing ? false : el # return last selector if it was present - end - - # Adds error to epp_errors if element or attribute is missing or attribute attribute is not one - # of the values - # - # requires_attribute 'transfer', 'op', values: %(approve, query, reject) - - def requires_attribute(element_selector, attribute_selector, options) - element = requires(element_selector, allow_blank: options[:allow_blank]) - return unless element - - attribute = element[attribute_selector] - - unless attribute - epp_errors << { - code: '2003', - msg: I18n.t('errors.messages.required_parameter_missing', key: attribute_selector) - } - return - end - - return if options[:values].include?(attribute) - - if options[:policy] - epp_errors << { - code: '2306', - msg: I18n.t('attribute_is_invalid', attribute: attribute_selector) - } - else - epp_errors << { - code: '2004', - msg: I18n.t('parameter_value_range_error', key: attribute_selector) - } - end - end - - def optional_attribute(element_selector, attribute_selector, options) - full_selector = [@prefix, element_selector].compact.join(' ') - element = params[:parsed_frame].css(full_selector).first - return unless element - - attribute = element[attribute_selector] - return if (attribute && options[:values].include?(attribute)) || !attribute - - epp_errors << { - code: '2306', - msg: I18n.t('attribute_is_invalid', attribute: attribute_selector) - } - end - - def exactly_one_of(*selectors) - full_selectors = create_full_selectors(*selectors) - return if element_count(*full_selectors, use_prefix: false) == 1 - - epp_errors << { - code: '2306', - msg: I18n.t(:exactly_one_parameter_required, params: full_selectors.join(' OR ')) - } - end - - def mutually_exclusive(*selectors) - full_selectors = create_full_selectors(*selectors) - return if element_count(*full_selectors, use_prefix: false) <= 1 - - epp_errors << { - code: '2306', - msg: I18n.t(:mutally_exclusive_params, params: full_selectors.join(', ')) - } - end - - def optional(selector, *validations) - full_selector = [@prefix, selector].compact.join(' ') - el = params[:parsed_frame].css(full_selector).first - return unless el&.text.present? - value = el.text - - validations.each do |x| - validator = "#{x.first[0]}_validator".camelize.constantize - err = validator.validate_epp(selector.split(' ').last, value) - epp_errors << err if err - end - end - - # Returns how many elements were present in the request - # if use_prefix is true, @prefix will be prepended to selectors e.g create > create > name - # default is true - # - # @prefix = 'create > create >' - # element_count 'name', 'registrar', use_prefix: false - # => 2 - - def element_count(*selectors) - options = selectors.extract_options! - use_prefix = options[:use_prefix] != false # use_prefix is true by default - - present_count = 0 - selectors.each do |selector| - full_selector = use_prefix ? [@prefix, selector].compact.join(' ') : selector - el = params[:parsed_frame].css(full_selector).first - present_count += 1 if el && el.text.present? - end - present_count - end - - def create_full_selectors(*selectors) - selectors.map { |x| [@prefix, x].compact.join(' ') } - end - - def xml_attrs_present?(ph, attributes) # TODO: THIS IS DEPRECATED AND WILL BE REMOVED IN FUTURE - attributes.each do |x| - epp_errors << { - code: '2003', - msg: I18n.t('errors.messages.required_parameter_missing', key: x.last) - } unless has_attribute(ph, x) - end - epp_errors.empty? - end - - def has_attribute(ph, path) # TODO: THIS IS DEPRECATED AND WILL BE REMOVED IN FUTURE - path.reduce(ph) do |location, key| - location.respond_to?(:keys) ? location[key] : nil - end - end - - def write_to_epp_log - request_command = params[:command] || params[:action] # error receives :command, other methods receive :action - frame = params[:raw_frame] || params[:frame] - - # filter pw - if request_command == 'login' && frame.present? - frame.gsub!(/pw>.+<\//, 'pw>[FILTERED]]+)>([^<])+<\/eis:legalDocument>/, "[FILTERED]") if frame.present? - - ApiLog::EppLog.create({ - request: trimmed_request, - request_command: request_command, - request_successful: epp_errors.empty?, - request_object: resource ? "#{params[:epp_object_type]}: #{resource.class} - #{resource.id} - #{resource.name}" : params[:epp_object_type], - response: @response, - api_user_name: @api_user.try(:username) || current_user.try(:username) || 'api-public', - api_user_registrar: @api_user.try(:registrar).try(:to_s) || current_user.try(:registrar).try(:to_s), - ip: request.ip, - uuid: request.uuid - }) - end - - def resource - name = self.class.to_s.sub("Epp::","").sub("Controller","").underscore.singularize - instance_variable_get("@#{name}") - end - - private - - def signed_in? - epp_session - end - - def epp_session_id - cookies[:session] # Passed by mod_epp https://github.com/mod-epp/mod-epp#requestscript-interface - end - - def ensure_session_id_passed - raise 'EPP session id is empty' unless epp_session_id.present? - end - - def update_epp_session - iptables_counter_update - - if session_timeout_reached? - @api_user = current_user # cache current_user for logging - epp_session.destroy - - epp_errors << { - msg: t('session_timeout'), - code: '2201' - } - - handle_errors and return - else - epp_session.update_column(:updated_at, Time.zone.now) - end - end - - def session_timeout_reached? - timeout = 5.minutes - epp_session.updated_at < (Time.zone.now - timeout) - end - - def iptables_counter_update - return if ENV['iptables_counter_enabled'].blank? && ENV['iptables_counter_enabled'] != 'true' - return if current_user.blank? - counter_update(current_user.registrar_code, ENV['iptables_server_ip']) - end - - def counter_update(registrar_code, ip) - counter_proc = "/proc/net/xt_recent/#{registrar_code}" - - begin - File.open(counter_proc, 'a') do |f| - f.puts "+#{ip}" - end - rescue Errno::ENOENT => e - logger.error "IPTABLES COUNTER UPDATE: cannot open #{counter_proc}: #{e}" - rescue Errno::EACCES => e - logger.error "IPTABLES COUNTER UPDATE: no permission #{counter_proc}: #{e}" - rescue IOError => e - logger.error "IPTABLES COUNTER UPDATE: cannot write #{ip} to #{counter_proc}: #{e}" - end - end -end diff --git a/doc/controllers_brief.svg b/doc/controllers_brief.svg index 63fc964ba..1ae503845 100644 --- a/doc/controllers_brief.svg +++ b/doc/controllers_brief.svg @@ -247,10 +247,5 @@ Registrant::DomainDeleteConfirmsController - -EppController - -EppController - diff --git a/doc/controllers_complete.svg b/doc/controllers_complete.svg index 0501ceac9..23ab7f9ec 100644 --- a/doc/controllers_complete.svg +++ b/doc/controllers_complete.svg @@ -646,34 +646,5 @@ _layout - -EppController - -EppController - -create_full_selectors -current_user -element_count -epp_errors -epp_session -exactly_one_of -generate_svtrid -handle_errors -has_attribute -latin_only -mutually_exclusive -optional -optional_attribute -params_hash -render_epp_response -requires -requires_attribute -validate_request -write_to_epp_log -xml_attrs_present? - - -_layout - From f819c0f5096c651d859943917993d0d5dc1924ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 15:43:09 +0300 Subject: [PATCH 061/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44e0279e0..8efdb228e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Updated Airbrake gem to 9.4.3 and tuned the configuration [#1297](https://github.com/internetee/registry/pull/1297) * Updated cancancan gem to 3.0.1 [#1300](https://github.com/internetee/registry/pull/1300) * Updated filenames to follow Ruby name convention [#1295](https://github.com/internetee/registry/pull/1295) +* Removed unused jbuilder gem [#1311](https://github.com/internetee/registry/pull/1311) * Removed mod_epp specific X-EPP-Returncode EPP response header [#1301](https://github.com/internetee/registry/pull/1301) * Removed a dublicate test [#1302](https://github.com/internetee/registry/pull/1302) * Removed disabled and unnecessary CSRF protection [#1305](https://github.com/internetee/registry/pull/1305) From bfdd016102c1fad73adbdaed7bd39a9be6ca1250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 13 Sep 2019 15:49:24 +0300 Subject: [PATCH 062/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8efdb228e..f5875ee6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * Removed mod_epp specific X-EPP-Returncode EPP response header [#1301](https://github.com/internetee/registry/pull/1301) * Removed a dublicate test [#1302](https://github.com/internetee/registry/pull/1302) * Removed disabled and unnecessary CSRF protection [#1305](https://github.com/internetee/registry/pull/1305) +* Introduced modules [#1312](https://github.com/internetee/registry/pull/1312) 09.09.2019 * Upgrade Ruby to 2.4.7 [#1289](https://github.com/internetee/registry/pull/1289) From 44f123ffd336fcc3700b4ce85c92aff902b16165 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 13 Sep 2019 20:14:08 +0300 Subject: [PATCH 063/757] Replace `haml-rails` gem with `haml` The former is not used. --- Gemfile | 4 +--- Gemfile.lock | 8 +------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 34766dd15..803b0d4ce 100644 --- a/Gemfile +++ b/Gemfile @@ -25,9 +25,6 @@ gem 'paper_trail', '~> 4.0' # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server # https://github.com/huacnlee/rails-settings-cached/issues/165 gem 'rails-settings-cached', '0.7.2' - -# html-xml -gem 'haml-rails', '0.9.0' # haml for views gem 'nokogiri' # style @@ -91,6 +88,7 @@ gem 'company_register', github: 'internetee/company_register', branch: :master gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'lhv', github: 'internetee/lhv', tag: 'v0.1.0' gem 'domain_name' +gem 'haml' group :development do # deploy diff --git a/Gemfile.lock b/Gemfile.lock index 0dbb10328..c126bc184 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -203,12 +203,6 @@ GEM builder (>= 2.1.2) haml (4.0.7) tilt - haml-rails (0.9.0) - actionpack (>= 4.0.1) - activesupport (>= 4.0.1) - haml (>= 4.0.6, < 5.0) - html2haml (>= 1.0.1) - railties (>= 4.0.1) hashdiff (1.0.0) hpricot (0.8.6) html2haml (2.1.0) @@ -481,7 +475,7 @@ DEPENDENCIES factory_bot_rails figaro (= 1.1.1) grape - haml-rails (= 0.9.0) + haml html2haml (= 2.1.0) isikukood iso8601 (= 0.8.6) From 79d9c631f5592da8c75854381cc4703923d89f71 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 13 Sep 2019 21:29:49 +0300 Subject: [PATCH 064/757] Change EPP response code according to its specification Fixes #718 --- app/models/epp/domain.rb | 32 +++++++++++-------- app/models/epp/response/result/code.rb | 2 ++ .../epp/domain/delete/base_test.rb | 2 +- .../epp/domain/domain_update_test.rb | 2 +- .../epp/domain/transfer/request_test.rb | 2 +- test/models/epp/response/result/code_test.rb | 2 ++ 6 files changed, 25 insertions(+), 17 deletions(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index ff60efe02..f5db59ebb 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -450,7 +450,12 @@ class Epp::Domain < Domain def update(frame, current_user, verify = true) return super if frame.blank? - check_discarded + if discarded? + throw :epp_error, { + code: '2304', + msg: 'Object status prohibits operation', + } + end at = {}.with_indifferent_access at.deep_merge!(attrs_from(frame.css('chg'), current_user, 'chg')) @@ -525,7 +530,12 @@ class Epp::Domain < Domain end def epp_destroy(frame, user_id) - check_discarded + if discarded? + throw :epp_error, { + code: '2304', + msg: 'Object status prohibits operation', + } + end if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame)) frame.css("legalDocument").first.content = doc.path if doc&.persisted? @@ -590,7 +600,12 @@ class Epp::Domain < Domain ### TRANSFER ### def transfer(frame, action, current_user) - check_discarded + if discarded? + throw :epp_error, { + code: '2106', + msg: 'Object is not eligible for transfer', + } + end @is_transfer = true @@ -814,15 +829,4 @@ class Epp::Domain < Domain result end end - - private - - def check_discarded - if discarded? - throw :epp_error, { - code: '2105', - msg: I18n.t(:object_is_not_eligible_for_renewal), - } - end - end end diff --git a/app/models/epp/response/result/code.rb b/app/models/epp/response/result/code.rb index 2566279f5..d880df6c6 100644 --- a/app/models/epp/response/result/code.rb +++ b/app/models/epp/response/result/code.rb @@ -18,6 +18,7 @@ module Epp parameter_value_syntax_error: 2005, billing_failure: 2104, object_is_not_eligible_for_renewal: 2105, + object_is_not_eligible_for_transfer: 2106, authorization_error: 2201, invalid_authorization_information: 2202, object_does_not_exist: 2303, @@ -43,6 +44,7 @@ module Epp 2005 => 'Parameter value syntax error', 2104 => 'Billing failure', 2105 => 'Object is not eligible for renewal', + 2106 => 'Object is not eligible for transfer', 2201 => 'Authorization error', 2202 => 'Invalid authorization information', 2303 => 'Object does not exist', diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index c1f52166d..9cf26f206 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -64,7 +64,7 @@ class EppDomainDeleteBaseTest < EppTestCase assert_no_difference 'Domain.count' do post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - assert_epp_response :object_is_not_eligible_for_renewal + assert_epp_response :object_status_prohibits_operation end def test_requests_registrant_confirmation_when_required diff --git a/test/integration/epp/domain/domain_update_test.rb b/test/integration/epp/domain/domain_update_test.rb index fcd0da0c6..e36f5a4b7 100644 --- a/test/integration/epp/domain/domain_update_test.rb +++ b/test/integration/epp/domain/domain_update_test.rb @@ -47,6 +47,6 @@ class EppDomainUpdateTest < EppTestCase XML post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - assert_epp_response :object_is_not_eligible_for_renewal + assert_epp_response :object_status_prohibits_operation end end diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index babb7642a..877076be7 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -86,7 +86,7 @@ class EppDomainTransferRequestTest < EppTestCase @domain.reload assert_equal registrars(:bestnames), @domain.registrar - assert_epp_response :object_is_not_eligible_for_renewal + assert_epp_response :object_is_not_eligible_for_transfer end def test_same_registrar diff --git a/test/models/epp/response/result/code_test.rb b/test/models/epp/response/result/code_test.rb index 0a5f507d3..2ee0f013f 100644 --- a/test/models/epp/response/result/code_test.rb +++ b/test/models/epp/response/result/code_test.rb @@ -39,6 +39,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase parameter_value_syntax_error: 2005, billing_failure: 2104, object_is_not_eligible_for_renewal: 2105, + object_is_not_eligible_for_transfer: 2106, authorization_error: 2201, invalid_authorization_information: 2202, object_does_not_exist: 2303, @@ -66,6 +67,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase 2005 => 'Parameter value syntax error', 2104 => 'Billing failure', 2105 => 'Object is not eligible for renewal', + 2106 => 'Object is not eligible for transfer', 2201 => 'Authorization error', 2202 => 'Invalid authorization information', 2303 => 'Object does not exist', From 9341f658fd80637f021efe599420d314df0d7cf8 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Sep 2019 16:28:05 +0300 Subject: [PATCH 065/757] Hide methods --- app/controllers/epp/base_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index bc19670fe..9fa2d4e40 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -15,6 +15,8 @@ module Epp helper_method :current_user helper_method :resource + private + def validate_against_schema return if ['hello', 'error', 'keyrelay'].include?(params[:action]) schema.validate(params[:nokogiri_frame]).each do |error| @@ -348,8 +350,6 @@ module Epp instance_variable_get("@#{name}") end - private - def signed_in? epp_session end From 1ba3048588e9c05bc96a838bed46cd43b12891a5 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 15 Sep 2019 16:43:06 +0300 Subject: [PATCH 066/757] Update `coffee-rails` gem --- Gemfile | 5 +---- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 34766dd15..e949e203a 100644 --- a/Gemfile +++ b/Gemfile @@ -33,10 +33,7 @@ gem 'nokogiri' # style gem 'bootstrap-sass', '~> 3.4' gem 'sass-rails', '5.0.6' # sass style - -# js - -gem 'coffee-rails', '4.1.0' # coffeescript support +gem 'coffee-rails', '~> 4.2' gem 'jquery-rails', '4.0.4' # jquery gem 'selectize-rails', '0.12.1' # include selectize.js for select diff --git a/Gemfile.lock b/Gemfile.lock index 0dbb10328..94f1d16b1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -147,9 +147,9 @@ GEM coderay (1.1.0) coercible (1.0.0) descendants_tracker (~> 0.0.1) - coffee-rails (4.1.0) + coffee-rails (4.2.2) coffee-script (>= 2.2.0) - railties (>= 4.0.0, < 5.0) + railties (>= 4.0.0) coffee-script (2.4.1) coffee-script-source execjs @@ -466,7 +466,7 @@ DEPENDENCIES cancancan capybara coderay (= 1.1.0) - coffee-rails (= 4.1.0) + coffee-rails (~> 4.2) company_register! countries daemons-rails (= 1.2.1) From 7343a1828abc54d83aa5f464e02def573d49b2f4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 15 Sep 2019 16:47:07 +0300 Subject: [PATCH 067/757] Update `data_migrate` gem --- Gemfile | 6 +----- Gemfile.lock | 14 ++++---------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/Gemfile b/Gemfile index 34766dd15..4de068374 100644 --- a/Gemfile +++ b/Gemfile @@ -53,11 +53,7 @@ gem 'grape' gem 'isikukood' # for EE-id validation gem 'simpleidn', '0.0.7' # For punycode gem 'money-rails' - -# deploy -gem 'data_migrate', - github: 'internetee/data-migrate', - ref: '35d22b09ff37a4e9d61ab326ad5d8eb0edf1fc81' +gem 'data_migrate' gem 'whenever', '0.9.4', require: false # country listing diff --git a/Gemfile.lock b/Gemfile.lock index 0dbb10328..c3f0d65f3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,14 +7,6 @@ GIT activesupport savon -GIT - remote: https://github.com/internetee/data-migrate.git - revision: 35d22b09ff37a4e9d61ab326ad5d8eb0edf1fc81 - ref: 35d22b09ff37a4e9d61ab326ad5d8eb0edf1fc81 - specs: - data_migrate (1.3.0) - rails (>= 4.1.0) - GIT remote: https://github.com/internetee/e_invoice.git revision: 917318bd546322408b83567745375c998619c926 @@ -166,6 +158,8 @@ GEM daemons-rails (1.2.1) daemons multi_json (~> 1.0) + data_migrate (5.3.2) + rails (>= 4.2) database_cleaner (1.6.1) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) @@ -252,7 +246,7 @@ GEM mina (0.3.1) open4 (~> 1.3.4) rake - mini_mime (1.0.1) + mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.11.3) monetize (1.9.0) @@ -470,7 +464,7 @@ DEPENDENCIES company_register! countries daemons-rails (= 1.2.1) - data_migrate! + data_migrate database_cleaner devise (~> 4.7) digidoc_client! From d9a975bae74d2e7fd0a5cbd24d632447b5388a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 16 Sep 2019 17:16:38 +0300 Subject: [PATCH 068/757] Update CHANGELOG.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5875ee6a..f27702b65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +16.09.2019 +* Updated coffee-rails gem to 4.2 [#1320](https://github.com/internetee/registry/pull/1320) +* Updated data_migrate gem to 5.3.2 [#1321](https://github.com/internetee/registry/pull/1321) +* Replaced unused haml-rails gem with haml [#1315](https://github.com/internetee/registry/pull/1315) +* Hid some methods [#1318](https://github.com/internetee/registry/pull/1318) + 13.09.2019 * Fixed bug where glue records were identified on partial string match with the domain name [#1291](https://github.com/internetee/registry/issues/1291) * Removed 1 second delay on erroneous epp query responses [#1299](https://github.com/internetee/registry/pull/1299) From e16b51f4d66e5c7230bfce21c2205f1e2c0f4a1c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 15 Sep 2019 17:38:45 +0300 Subject: [PATCH 069/757] Update `jquery-rails` gem --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 6f82219b7..06d98010d 100644 --- a/Gemfile +++ b/Gemfile @@ -31,7 +31,7 @@ gem 'nokogiri' gem 'bootstrap-sass', '~> 3.4' gem 'sass-rails', '5.0.6' # sass style gem 'coffee-rails', '~> 4.2' -gem 'jquery-rails', '4.0.4' # jquery +gem 'jquery-rails' gem 'selectize-rails', '0.12.1' # include selectize.js for select # view helpers diff --git a/Gemfile.lock b/Gemfile.lock index 64c9fcc0e..b9f19749d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -216,8 +216,8 @@ GEM ice_nine (0.11.2) isikukood (0.1.2) iso8601 (0.8.6) - jquery-rails (4.0.4) - rails-dom-testing (~> 1.0) + jquery-rails (4.3.5) + rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-ui-rails (5.0.5) @@ -473,7 +473,7 @@ DEPENDENCIES html2haml (= 2.1.0) isikukood iso8601 (= 0.8.6) - jquery-rails (= 4.0.4) + jquery-rails jquery-ui-rails (= 5.0.5) kaminari (= 0.16.3) lhv! From 793e60b1731ec7eda1800f35713a8f3f5181a91b Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 13 Sep 2019 20:18:15 +0300 Subject: [PATCH 070/757] Remove `html2haml` gem as unused. --- Gemfile | 1 - Gemfile.lock | 9 --------- 2 files changed, 10 deletions(-) diff --git a/Gemfile b/Gemfile index 6f82219b7..a43240e56 100644 --- a/Gemfile +++ b/Gemfile @@ -98,7 +98,6 @@ group :development, :test do gem 'pry', '0.10.1' gem 'bullet', '4.14.7' # for finding database optimizations - gem 'html2haml', '2.1.0' gem 'sdoc', '0.4.1' # bundle exec rake doc:rails generates the API under doc/api. gem 'railroady', '1.3.0' # to generate database diagrams gem 'autodoc' diff --git a/Gemfile.lock b/Gemfile.lock index 64c9fcc0e..650037b0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -199,11 +199,6 @@ GEM tilt hashdiff (1.0.0) hpricot (0.8.6) - html2haml (2.1.0) - erubis (~> 2.7.0) - haml (~> 4.0) - nokogiri (>= 1.6.0) - ruby_parser (~> 3.5) http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) @@ -355,8 +350,6 @@ GEM rspec-mocks (~> 3.6.0) rspec-support (~> 3.6.0) rspec-support (3.6.0) - ruby_parser (3.8.4) - sexp_processor (~> 4.1) rubyzip (1.2.2) safe_yaml (1.0.5) sass (3.4.23) @@ -386,7 +379,6 @@ GEM selenium-webdriver (3.13.0) childprocess (~> 0.5) rubyzip (~> 1.2) - sexp_processor (4.8.0) simplecov (0.16.1) docile (~> 1.1) json (>= 1.8, < 3) @@ -470,7 +462,6 @@ DEPENDENCIES figaro (= 1.1.1) grape haml - html2haml (= 2.1.0) isikukood iso8601 (= 0.8.6) jquery-rails (= 4.0.4) From 89bf6f040194aba7d02e5c388a0eea1a51fe1093 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 17 Sep 2019 13:50:13 +0300 Subject: [PATCH 071/757] Add EPP domain:renew tests --- .../epp/domain/domain_renew_test.rb | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/test/integration/epp/domain/domain_renew_test.rb b/test/integration/epp/domain/domain_renew_test.rb index e1dfbdae1..8ab598102 100644 --- a/test/integration/epp/domain/domain_renew_test.rb +++ b/test/integration/epp/domain/domain_renew_test.rb @@ -4,9 +4,36 @@ class EppDomainRenewTest < EppTestCase self.use_transactional_fixtures = false setup do + @domain = domains(:shop) travel_to Time.zone.parse('2010-07-05') end + def test_renews_domain + travel_to Time.zone.parse('2010-07-05') + original_valid_to = @domain.valid_to + default_renewal_period = 1.year + request_xml = <<-XML + + + + + + #{@domain.name} + #{@domain.expire_time.to_date} + 1 + + + + + XML + + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + + assert_epp_response :completed_successfully + assert_equal original_valid_to + default_renewal_period, @domain.valid_to + end + def test_domain_cannot_be_renewed_when_invalid request_xml = <<-XML @@ -28,4 +55,104 @@ class EppDomainRenewTest < EppTestCase end assert_epp_response :object_status_prohibits_operation end + + def test_domain_cannot_be_renewed_when_belongs_to_another_registrar + session = epp_sessions(:api_bestnames) + domain = domains(:metro) + assert_not_equal session.user.registrar, domain.registrar + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.valid_to.to_date} + 1 + + + + + XML + + assert_no_changes -> { domains(:invalid).valid_to } do + post '/epp/command/renew', { frame: request_xml }, + 'HTTP_COOKIE' => "session=#{session.session_id}" + end + assert_epp_response :authorization_error + end + + def test_insufficient_funds + session = epp_sessions(:api_bestnames) + session.user.registrar.accounts.first.update!(balance: 0) + request_xml = <<-XML + + + + + + #{@domain.name} + #{@domain.expire_time.to_date} + 1 + + + + + XML + + @domain.reload + assert_no_difference -> { @domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + end + assert_epp_response :billing_failure + end + + def test_no_price + assert_nil Billing::Price.find_by(duration: '2 months') + + request_xml = <<-XML + + + + + + #{@domain.name} + #{@domain.expire_time.to_date} + 2 + + + + + XML + + assert_no_changes -> { @domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :billing_failure + end + + def test_fails_when_provided_expiration_date_is_wrong + provided_expiration_date = Date.parse('2010-07-06') + assert_not_equal provided_expiration_date, @domain.valid_to + + request_xml = <<-XML + + + + + + #{@domain.name} + #{provided_expiration_date} + + + + + XML + + assert_no_changes -> { @domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :parameter_value_policy_error + end end From 06cc6430be95ea8bd59f0452e9c6928f4c77c9fb Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 17 Sep 2019 13:58:07 +0300 Subject: [PATCH 072/757] Improve readability --- .../epp/domain/domain_renew_test.rb | 60 +++++++++++-------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/test/integration/epp/domain/domain_renew_test.rb b/test/integration/epp/domain/domain_renew_test.rb index 8ab598102..7884db86f 100644 --- a/test/integration/epp/domain/domain_renew_test.rb +++ b/test/integration/epp/domain/domain_renew_test.rb @@ -3,23 +3,20 @@ require 'test_helper' class EppDomainRenewTest < EppTestCase self.use_transactional_fixtures = false - setup do - @domain = domains(:shop) - travel_to Time.zone.parse('2010-07-05') - end - def test_renews_domain travel_to Time.zone.parse('2010-07-05') - original_valid_to = @domain.valid_to + domain = domains(:shop) + original_valid_to = domain.valid_to default_renewal_period = 1.year + request_xml = <<-XML - #{@domain.name} - #{@domain.expire_time.to_date} + #{domain.name} + #{domain.expire_time.to_date} 1 @@ -28,21 +25,23 @@ class EppDomainRenewTest < EppTestCase XML post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - @domain.reload + domain.reload assert_epp_response :completed_successfully - assert_equal original_valid_to + default_renewal_period, @domain.valid_to + assert_equal original_valid_to + default_renewal_period, domain.valid_to end def test_domain_cannot_be_renewed_when_invalid + domain = domains(:invalid) + request_xml = <<-XML - invalid.test - 2010-07-05 + #{domain.name} + #{domain.valid_to.to_date} 1 @@ -50,15 +49,16 @@ class EppDomainRenewTest < EppTestCase XML - assert_no_changes -> { domains(:invalid).valid_to } do + assert_no_changes -> { domain.valid_to } do post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + domain.reload end assert_epp_response :object_status_prohibits_operation end def test_domain_cannot_be_renewed_when_belongs_to_another_registrar - session = epp_sessions(:api_bestnames) domain = domains(:metro) + session = epp_sessions(:api_bestnames) assert_not_equal session.user.registrar, domain.registrar request_xml = <<-XML @@ -76,24 +76,27 @@ class EppDomainRenewTest < EppTestCase XML - assert_no_changes -> { domains(:invalid).valid_to } do + assert_no_changes -> { domain.valid_to } do post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + domain.reload end assert_epp_response :authorization_error end def test_insufficient_funds + domain = domains(:shop) session = epp_sessions(:api_bestnames) session.user.registrar.accounts.first.update!(balance: 0) + request_xml = <<-XML - #{@domain.name} - #{@domain.expire_time.to_date} + #{domain.name} + #{domain.expire_time.to_date} 1 @@ -101,14 +104,16 @@ class EppDomainRenewTest < EppTestCase XML - @domain.reload - assert_no_difference -> { @domain.valid_to } do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + assert_no_difference -> { domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => + "session=#{session.session_id}" + domain.reload end assert_epp_response :billing_failure end def test_no_price + domain = domains(:shop) assert_nil Billing::Price.find_by(duration: '2 months') request_xml = <<-XML @@ -117,8 +122,8 @@ class EppDomainRenewTest < EppTestCase - #{@domain.name} - #{@domain.expire_time.to_date} + #{domain.name} + #{domain.expire_time.to_date} 2 @@ -126,15 +131,17 @@ class EppDomainRenewTest < EppTestCase XML - assert_no_changes -> { @domain.valid_to } do + assert_no_changes -> { domain.valid_to } do post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + domain.reload end assert_epp_response :billing_failure end def test_fails_when_provided_expiration_date_is_wrong + domain = domains(:shop) provided_expiration_date = Date.parse('2010-07-06') - assert_not_equal provided_expiration_date, @domain.valid_to + assert_not_equal provided_expiration_date, domain.valid_to request_xml = <<-XML @@ -142,7 +149,7 @@ class EppDomainRenewTest < EppTestCase - #{@domain.name} + #{domain.name} #{provided_expiration_date} @@ -150,8 +157,9 @@ class EppDomainRenewTest < EppTestCase XML - assert_no_changes -> { @domain.valid_to } do + assert_no_changes -> { domain.valid_to } do post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + domain.reload end assert_epp_response :parameter_value_policy_error end From 7254fd49742cf9ad3c17949f80a68f1f4039aa3a Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 17 Sep 2019 13:59:09 +0300 Subject: [PATCH 073/757] Move tests --- .../epp/domain/{domain_renew_test.rb => renew/base_test.rb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename test/integration/epp/domain/{domain_renew_test.rb => renew/base_test.rb} (99%) diff --git a/test/integration/epp/domain/domain_renew_test.rb b/test/integration/epp/domain/renew/base_test.rb similarity index 99% rename from test/integration/epp/domain/domain_renew_test.rb rename to test/integration/epp/domain/renew/base_test.rb index 7884db86f..537e697c9 100644 --- a/test/integration/epp/domain/domain_renew_test.rb +++ b/test/integration/epp/domain/renew/base_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class EppDomainRenewTest < EppTestCase +class EppDomainRenewBaseTest < EppTestCase self.use_transactional_fixtures = false def test_renews_domain From 61751447db4ca7660f5ae352796819ea1691c47f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 17 Sep 2019 17:24:16 +0300 Subject: [PATCH 074/757] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f27702b65..9bbb81642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +17.09.2019 +* Fixed error messages on deletind deletecandidate domains [#718](https://github.com/internetee/registry/issues/718) +* Removed html2haml gem [#1316](https://github.com/internetee/registry/pull/1316) + 16.09.2019 * Updated coffee-rails gem to 4.2 [#1320](https://github.com/internetee/registry/pull/1320) * Updated data_migrate gem to 5.3.2 [#1321](https://github.com/internetee/registry/pull/1321) From 0a1405ae527c8c0657a76a565005b9b5e86dba64 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Sep 2019 16:55:35 +0300 Subject: [PATCH 075/757] Remove unused view --- app/views/epp/latin_error.xml.builder | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 app/views/epp/latin_error.xml.builder diff --git a/app/views/epp/latin_error.xml.builder b/app/views/epp/latin_error.xml.builder deleted file mode 100644 index 6ff19efbf..000000000 --- a/app/views/epp/latin_error.xml.builder +++ /dev/null @@ -1,8 +0,0 @@ -xml.epp_head do - xml.response do - xml.result('code' => '2306') do - xml.msg('Parameter value policy error. Allowed only Latin characters.', 'lang' => 'en') - end - render('epp/shared/trID', builder: xml) - end -end From 77678681a65aa7010ebc751e8d9171a13d787333 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 11 Sep 2019 18:42:13 +0300 Subject: [PATCH 076/757] Improve EPP error handling Fixes #539 --- app/controllers/epp/base_controller.rb | 105 ++++++++---------- app/controllers/epp/contacts_controller.rb | 13 +-- app/controllers/epp/domains_controller.rb | 87 ++++++++------- app/models/ability.rb | 5 +- app/models/epp/contact.rb | 21 ++-- app/models/epp/domain.rb | 46 +++----- app/models/epp/response/result/code.rb | 2 + app/views/epp/domains/info.xml.builder | 2 +- config/locales/en.yml | 1 - test/integration/epp/base_test.rb | 90 +++++++++++++++ test/integration/epp/contact/base_test.rb | 21 ++++ .../integration/epp/contact/info/base_test.rb | 21 ---- .../epp/contact/update/base_test.rb | 26 ----- test/integration/epp/domain/base_test.rb | 21 ++++ .../epp/domain/delete/base_test.rb | 26 ----- test/integration/epp/domain/info/base_test.rb | 21 ---- .../epp/domain/transfer/base_test.rb | 25 ----- test/models/epp/response/result/code_test.rb | 2 + 18 files changed, 263 insertions(+), 272 deletions(-) create mode 100644 test/integration/epp/base_test.rb create mode 100644 test/integration/epp/contact/base_test.rb create mode 100644 test/integration/epp/domain/base_test.rb delete mode 100644 test/integration/epp/domain/transfer/base_test.rb diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index 9fa2d4e40..6a0e805d7 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -1,7 +1,10 @@ module Epp - class BaseController < ApplicationController - layout false + class BaseController < ActionController::Base + class AuthorizationError < StandardError; end + + check_authorization skip_before_action :verify_authenticity_token + layout false before_action :ensure_session_id_passed before_action :generate_svtrid @@ -10,13 +13,50 @@ module Epp before_action :validate_request before_action :update_epp_session, if: 'signed_in?' - around_action :catch_epp_errors + around_action :wrap_exceptions helper_method :current_user helper_method :resource + rescue_from StandardError, with: :respond_with_command_failed_error + rescue_from AuthorizationError, with: :respond_with_authorization_error + rescue_from ActiveRecord::RecordNotFound, with: :respond_with_object_does_not_exist_error + + protected + + def respond_with_command_failed_error(exception) + epp_errors << { + code: '2400', + msg: 'Command failed', + } + handle_errors + log_exception(exception) + end + + def respond_with_object_does_not_exist_error + epp_errors << { + code: '2303', + msg: 'Object does not exist', + } + handle_errors + end + + def respond_with_authorization_error + epp_errors << { + code: '2201', + msg: 'Authorization error', + } + handle_errors + end + private + def wrap_exceptions + yield + rescue CanCan::AccessDenied + raise AuthorizationError + end + def validate_against_schema return if ['hello', 'error', 'keyrelay'].include?(params[:action]) schema.validate(params[:nokogiri_frame]).each do |error| @@ -28,47 +68,6 @@ module Epp handle_errors and return if epp_errors.any? end - def catch_epp_errors - err = catch(:epp_error) do - yield - nil - end - return unless err - @errors = [err] - handle_errors - end - - rescue_from StandardError do |e| - @errors ||= [] - - if e.class == CanCan::AccessDenied - if @errors.blank? - @errors = [{ - msg: t('errors.messages.epp_authorization_error'), - code: '2201' - }] - end - else - if @errors.blank? - @errors = [{ - msg: 'Internal error.', - code: '2400' - }] - end - - if Rails.env.test? || Rails.env.development? - puts e.backtrace.reverse.join("\n") - puts "\n BACKTRACE REVERSED!\n" - puts "\n FROM-EPP-RESCUE: #{e.message}\n\n\n" - else - logger.error "FROM-EPP-RESCUE: #{e.message}" - logger.error e.backtrace.join("\n") - end - end - - render_epp_response '/epp/error' - end - def schema EPP_ALL_SCHEMA end @@ -114,25 +113,13 @@ module Epp end end - # for debugging - if @errors.blank? - @errors << { - code: '1', - msg: 'handle_errors was executed when there were actually no errors' - } - end - @errors.uniq! - logger.error "\nFOLLOWING ERRORS OCCURRED ON EPP QUERY:" - logger.error @errors.inspect - logger.error "\n" - render_epp_response '/epp/error' end def render_epp_response(*args) - @response = render_to_string(*args) + @response = render_to_string(*args, formats: 'xml') render xml: @response write_to_epp_log end @@ -406,5 +393,9 @@ module Epp logger.error "IPTABLES COUNTER UPDATE: cannot write #{ip} to #{counter_proc}: #{e}" end end + + def log_exception(exception) + notify_airbrake(exception) + end end end diff --git a/app/controllers/epp/contacts_controller.rb b/app/controllers/epp/contacts_controller.rb index ff5dc982f..32b2050ca 100644 --- a/app/controllers/epp/contacts_controller.rb +++ b/app/controllers/epp/contacts_controller.rb @@ -84,18 +84,7 @@ module Epp def find_contact code = params[:parsed_frame].css('id').text.strip.upcase - - @contact = Epp::Contact.find_by_epp_code(code) - - if @contact.blank? - epp_errors << { - code: '2303', - msg: t('errors.messages.epp_obj_does_not_exist'), - value: { obj: 'id', val: code } - } - fail CanCan::AccessDenied - end - @contact + @contact = Epp::Contact.find_by!(code: code) end # diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 64d4e972e..7a1dd2d8c 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -4,10 +4,14 @@ module Epp before_action :find_password, only: %i[info update transfer delete] def info - authorize! :info, @domain, @password + authorize! :info, @domain @hosts = params[:parsed_frame].css('name').first['hosts'] || 'all' + sponsoring_registrar = (@domain.registrar == current_user.registrar) + correct_transfer_code_provided = (@domain.transfer_code == @password) + @reveal_full_details = (sponsoring_registrar || correct_transfer_code_provided) + case @hosts when 'del' @nameservers = @domain.delegated_nameservers.sort @@ -28,26 +32,38 @@ module Epp domain_name = DNS::DomainName.new(SimpleIDN.to_unicode(request_domain_name)) if domain_name.at_auction? - throw :epp_error, - code: '2306', - msg: 'Parameter value policy error: domain is at auction' + epp_errors << { + code: '2306', + msg: 'Parameter value policy error: domain is at auction', + } + handle_errors + return elsif domain_name.awaiting_payment? - throw :epp_error, - code: '2003', - msg: 'Required parameter missing; reserved>pw element required for reserved domains' + epp_errors << { + code: '2003', + msg: 'Required parameter missing; reserved>pw element required for reserved domains', + } + handle_errors + return elsif domain_name.pending_registration? registration_code = params[:parsed_frame].css('reserved > pw').text if registration_code.empty? - throw :epp_error, - code: '2003', - msg: 'Required parameter missing; reserved>pw element is required' + epp_errors << { + code: '2003', + msg: 'Required parameter missing; reserved>pw element is required', + } + handle_errors + return end unless domain_name.available_with_code?(registration_code) - throw :epp_error, - code: '2202', - msg: 'Invalid authorization information; invalid reserved>pw value' + epp_errors << { + code: '2202', + msg: 'Invalid authorization information; invalid reserved>pw value', + } + handle_errors + return end end end @@ -85,22 +101,15 @@ module Epp def update authorize! :update, @domain, @password - begin - if @domain.update(params[:parsed_frame], current_user) - if @domain.epp_pending_update.present? - render_epp_response '/epp/domains/success_pending' - else - render_epp_response '/epp/domains/success' - end + + if @domain.update(params[:parsed_frame], current_user) + if @domain.epp_pending_update.present? + render_epp_response '/epp/domains/success_pending' else - handle_errors(@domain) - end - rescue => e - if @domain.errors.any? - handle_errors(@domain) - else - throw e + render_epp_response '/epp/domains/success' end + else + handle_errors(@domain) end end @@ -177,14 +186,21 @@ module Epp action = params[:parsed_frame].css('transfer').first[:op] if @domain.non_transferable? - throw :epp_error, { + epp_errors << { code: '2304', - msg: I18n.t(:object_status_prohibits_operation) + msg: I18n.t(:object_status_prohibits_operation), } + handle_errors + return end @domain_transfer = @domain.transfer(params[:parsed_frame], action, current_user) + if @domain.errors[:epp_errors].any? + handle_errors(@domain) + return + end + if @domain_transfer render_epp_response '/epp/domains/transfer' else @@ -272,18 +288,11 @@ module Epp def find_domain domain_name = params[:parsed_frame].css('name').text.strip.downcase - @domain = Epp::Domain.find_by_idn domain_name - unless @domain - epp_errors << { - code: '2303', - msg: I18n.t('errors.messages.epp_domain_not_found'), - value: { obj: 'name', val: domain_name } - } - fail CanCan::AccessDenied - end + domain = Epp::Domain.find_by_idn(domain_name) + raise ActiveRecord::RecordNotFound unless domain - @domain + @domain = domain end def find_password diff --git a/app/models/ability.rb b/app/models/ability.rb index 50e87c98e..706d85180 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -48,13 +48,12 @@ class Ability # can(:create, :epp_request) # Epp::Domain - can(:info, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || pw.blank? ? true : d.transfer_code == pw } + can(:info, Epp::Domain) can(:check, Epp::Domain) can(:create, Epp::Domain) can(:renew, Epp::Domain) { |d| d.registrar_id == @user.registrar_id } can(:update, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } - can(:transfer, Epp::Domain) { |d, pw| d.transfer_code == pw } - can(:view_password, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } + can(:transfer, Epp::Domain) can(:delete, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } # Epp::Contact diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index a33e55a0e..8ea01b67d 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -154,10 +154,17 @@ class Epp::Contact < Contact type: ident_frame.attr('type'), country_code: ident_frame.attr('cc')) - report_valid_ident_error if submitted_ident != identifier + if submitted_ident != identifier + add_epp_error('2308', nil, nil, I18n.t('epp.contacts.errors.valid_ident')) + return + end else ident_update_attempt = ident_frame.text.present? && (ident_frame.text != ident) - report_ident_update_error if ident_update_attempt + + if ident_update_attempt + add_epp_error('2308', nil, nil, I18n.t('epp.contacts.errors.ident_update')) + return + end identifier = Ident.new(code: ident, type: ident_frame.attr('type'), @@ -243,14 +250,4 @@ class Epp::Contact < Contact frame.css("legalDocument").first.content = doc.path if doc&.persisted? self.legal_document_id = doc.id end - - private - - def report_valid_ident_error - throw :epp_error, { code: '2308', msg: I18n.t('epp.contacts.errors.valid_ident') } - end - - def report_ident_update_error - throw :epp_error, { code: '2308', msg: I18n.t('epp.contacts.errors.ident_update') } - end end diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index f5db59ebb..19933a5eb 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -451,10 +451,8 @@ class Epp::Domain < Domain return super if frame.blank? if discarded? - throw :epp_error, { - code: '2304', - msg: 'Object status prohibits operation', - } + add_epp_error('2304', nil, nil, 'Object status prohibits operation') + return end at = {}.with_indifferent_access @@ -531,10 +529,8 @@ class Epp::Domain < Domain def epp_destroy(frame, user_id) if discarded? - throw :epp_error, { - code: '2304', - msg: 'Object status prohibits operation', - } + add_epp_error('2304', nil, nil, 'Object status prohibits operation') + return end if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame)) @@ -554,10 +550,10 @@ class Epp::Domain < Domain end def set_pending_delete! - throw :epp_error, { - code: '2304', - msg: I18n.t(:object_status_prohibits_operation) - } unless pending_deletable? + unless pending_deletable? + add_epp_error('2304', nil, nil, I18n.t(:object_status_prohibits_operation)) + return + end self.delete_date = Time.zone.today + Setting.redemption_grace_period.days + 1.day set_pending_delete @@ -601,10 +597,8 @@ class Epp::Domain < Domain def transfer(frame, action, current_user) if discarded? - throw :epp_error, { - code: '2106', - msg: 'Object is not eligible for transfer', - } + add_epp_error('2106', nil, nil, 'Object is not eligible for transfer') + return end @is_transfer = true @@ -624,10 +618,8 @@ class Epp::Domain < Domain def query_transfer(frame, current_user) if current_user.registrar == registrar - throw :epp_error, { - code: '2002', - msg: I18n.t(:domain_already_belongs_to_the_querying_registrar) - } + add_epp_error('2002', nil, nil, I18n.t(:domain_already_belongs_to_the_querying_registrar)) + return end transaction do @@ -661,11 +653,10 @@ class Epp::Domain < Domain def approve_transfer(frame, current_user) pt = pending_transfer + if current_user.registrar != pt.old_registrar - throw :epp_error, { - msg: I18n.t('transfer_can_be_approved_only_by_current_registrar'), - code: '2304' - } + add_epp_error('2304', nil, nil, I18n.t('transfer_can_be_approved_only_by_current_registrar')) + return end transaction do @@ -687,11 +678,10 @@ class Epp::Domain < Domain def reject_transfer(frame, current_user) pt = pending_transfer + if current_user.registrar != pt.old_registrar - throw :epp_error, { - msg: I18n.t('transfer_can_be_rejected_only_by_current_registrar'), - code: '2304' - } + add_epp_error('2304', nil, nil, I18n.t('transfer_can_be_rejected_only_by_current_registrar')) + return end transaction do diff --git a/app/models/epp/response/result/code.rb b/app/models/epp/response/result/code.rb index d880df6c6..403f67435 100644 --- a/app/models/epp/response/result/code.rb +++ b/app/models/epp/response/result/code.rb @@ -26,6 +26,7 @@ module Epp object_association_prohibits_operation: 2305, parameter_value_policy_error: 2306, data_management_policy_violation: 2308, + command_failed: 2400, authentication_error_server_closing_connection: 2501, }.freeze private_constant :KEY_TO_VALUE @@ -52,6 +53,7 @@ module Epp 2305 => 'Object association prohibits operation', 2306 => 'Parameter value policy error', 2308 => 'Data management policy violation', + 2400 => 'Command failed', 2501 => 'Authentication error; server closing connection', }.freeze private_constant :DEFAULT_DESCRIPTIONS diff --git a/app/views/epp/domains/info.xml.builder b/app/views/epp/domains/info.xml.builder index 937da30a4..ce5d60941 100644 --- a/app/views/epp/domains/info.xml.builder +++ b/app/views/epp/domains/info.xml.builder @@ -53,7 +53,7 @@ xml.epp_head do xml.tag!('domain:exDate', @domain.valid_to.iso8601) - if can? :view_password, @domain, @password + if @reveal_full_details xml.tag!('domain:authInfo') do xml.tag!('domain:pw', @domain.transfer_code) end diff --git a/config/locales/en.yml b/config/locales/en.yml index 8beb4bed2..9d89726b1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -202,7 +202,6 @@ en: epp_domain_zone_with_same_origin: Zone with the same origin exists epp_domain_at_auction: Domain is at auction epp_domain_awaiting_payment: Awaiting payment - epp_obj_does_not_exist: 'Object does not exist' epp_authorization_error: 'Authorization error' epp_id_taken: 'Contact id already exists' epp_domain_not_found: 'Domain not found' diff --git a/test/integration/epp/base_test.rb b/test/integration/epp/base_test.rb new file mode 100644 index 000000000..eb02c42e8 --- /dev/null +++ b/test/integration/epp/base_test.rb @@ -0,0 +1,90 @@ +require 'test_helper' + +class DummyEppController < Epp::BaseController + def internal_error + raise StandardError + end +end + +class EppBaseTest < EppTestCase + def test_internal_error + Rails.application.routes.draw do + post 'epp/command/internal_error', to: 'dummy_epp#internal_error', + constraints: EppConstraint.new(:poll) + end + + any_valid_epp_request_xml = <<-XML + + + + + XML + + begin + assert_difference 'ApiLog::EppLog.count' do + post '/epp/command/internal_error', { frame: any_valid_epp_request_xml }, + 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :command_failed + rescue + raise + ensure + Rails.application.reload_routes! + end + end + + def test_invalid_request + invalid_xml = <<-XML + + + + XML + post '/epp/command/internal_error', { frame: invalid_xml }, + 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :syntax_error + end + + def test_anonymous_user + xml_of_epp_command_that_requires_authentication = <<-XML + + + + + + #{domains(:shop).name} + + + + + XML + post '/epp/command/info', { frame: xml_of_epp_command_that_requires_authentication }, + 'HTTP_COOKIE' => 'session=non-existent' + + assert_epp_response :authorization_error + end + + def test_non_authorized_user + session = epp_sessions(:api_bestnames) + user = session.user + user.update!(roles: [ApiUser::BILLING]) + assert user.cannot?(:info, Domain) + + xml_of_epp_command_that_requires_authorization = <<-XML + + + + + + #{domains(:shop).name} + + + + + XML + post '/epp/command/info', { frame: xml_of_epp_command_that_requires_authorization }, + 'HTTP_COOKIE' => "session=#{session.session_id}" + + assert_epp_response :authorization_error + end +end diff --git a/test/integration/epp/contact/base_test.rb b/test/integration/epp/contact/base_test.rb new file mode 100644 index 000000000..c332e7b36 --- /dev/null +++ b/test/integration/epp/contact/base_test.rb @@ -0,0 +1,21 @@ +require 'test_helper' + +class EppContactBaseTest < EppTestCase + def test_non_existent_contact + request_xml = <<-XML + + + + + + non-existent + + + + + XML + post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :object_does_not_exist + end +end diff --git a/test/integration/epp/contact/info/base_test.rb b/test/integration/epp/contact/info/base_test.rb index c871eb636..d535d14d5 100644 --- a/test/integration/epp/contact/info/base_test.rb +++ b/test/integration/epp/contact/info/base_test.rb @@ -43,27 +43,6 @@ class EppContactInfoBaseTest < EppTestCase contact: xml_schema).text end - def test_contact_not_found - assert_nil Contact.find_by(code: 'non-existing') - - request_xml = <<-XML - - - - - - non-existing - - - - - XML - - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - - assert_epp_response :object_does_not_exist - end - private def xml_schema diff --git a/test/integration/epp/contact/update/base_test.rb b/test/integration/epp/contact/update/base_test.rb index a8bb1d7a2..2362a4469 100644 --- a/test/integration/epp/contact/update/base_test.rb +++ b/test/integration/epp/contact/update/base_test.rb @@ -133,32 +133,6 @@ class EppContactUpdateBaseTest < EppTestCase assert_no_emails end - def test_non_existing_contact - assert_nil Contact.find_by(code: 'non-existing') - - request_xml = <<-XML - - - - - - non-existing - - - any - - - - - - - XML - - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - - assert_epp_response :object_does_not_exist - end - private def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) diff --git a/test/integration/epp/domain/base_test.rb b/test/integration/epp/domain/base_test.rb new file mode 100644 index 000000000..b12fcf8da --- /dev/null +++ b/test/integration/epp/domain/base_test.rb @@ -0,0 +1,21 @@ +require 'test_helper' + +class EppDomainBaseTest < EppTestCase + def test_non_existent_domain + request_xml = <<-XML + + + + + + non-existent.test + + + + + XML + post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :object_does_not_exist + end +end diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index 9cf26f206..a194e8ce2 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -207,30 +207,4 @@ class EppDomainDeleteBaseTest < EppTestCase assert_epp_response :object_status_prohibits_operation end - - def test_domain_not_found - assert_nil Domain.find_by(name: 'non-existing.test') - - request_xml = <<-XML - - - - - - non-existing.test - - - - - dGVzdCBmYWlsCg== - - - - - XML - - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - - assert_epp_response :object_does_not_exist - end end \ No newline at end of file diff --git a/test/integration/epp/domain/info/base_test.rb b/test/integration/epp/domain/info/base_test.rb index 0aebc4de5..fd90177ca 100644 --- a/test/integration/epp/domain/info/base_test.rb +++ b/test/integration/epp/domain/info/base_test.rb @@ -105,25 +105,4 @@ class EppDomainInfoBaseTest < EppTestCase assert_nil response_xml.at_xpath('//domain:authInfo/domain:pw', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd') end - - def test_returns_not_found_error_when_domain_is_not_registered - assert DNS::DomainName.new('not-registered.test').not_registered? - - request_xml = <<-XML - - - - - - not-registered.test - - - - - XML - - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - - assert_epp_response :object_does_not_exist - end end \ No newline at end of file diff --git a/test/integration/epp/domain/transfer/base_test.rb b/test/integration/epp/domain/transfer/base_test.rb deleted file mode 100644 index 5c15ae881..000000000 --- a/test/integration/epp/domain/transfer/base_test.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'test_helper' - -class EppDomainTransferBaseTest < EppTestCase - def test_non_existent_domain - request_xml = <<-XML - - - - - - non-existent.test - - any - - - - - - XML - - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } - - assert_epp_response :object_does_not_exist - end -end diff --git a/test/models/epp/response/result/code_test.rb b/test/models/epp/response/result/code_test.rb index 2ee0f013f..556ff17ef 100644 --- a/test/models/epp/response/result/code_test.rb +++ b/test/models/epp/response/result/code_test.rb @@ -47,6 +47,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase object_association_prohibits_operation: 2305, parameter_value_policy_error: 2306, data_management_policy_violation: 2308, + command_failed: 2400, authentication_error_server_closing_connection: 2501, } assert_equal codes, Epp::Response::Result::Code.codes @@ -75,6 +76,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase 2305 => 'Object association prohibits operation', 2306 => 'Parameter value policy error', 2308 => 'Data management policy violation', + 2400 => 'Command failed', 2501 => 'Authentication error; server closing connection', } assert_equal descriptions, Epp::Response::Result::Code.default_descriptions From e01f412d767c34fb1b5b9ba99bf0576fb1da079e Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 14 Sep 2019 18:58:35 +0300 Subject: [PATCH 077/757] Fix EPP response code Fixes #686 --- app/controllers/epp/domains_controller.rb | 14 +++++++++++++- test/integration/epp/domain/transfer/query_test.rb | 3 +-- .../epp/domain/transfer/request_test.rb | 5 ++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 7a1dd2d8c..2f31f7e5e 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -182,7 +182,7 @@ module Epp end def transfer - authorize! :transfer, @domain, @password + authorize! :transfer, @domain action = params[:parsed_frame].css('transfer').first[:op] if @domain.non_transferable? @@ -194,6 +194,18 @@ module Epp return end + provided_transfer_code = params[:parsed_frame].css('authInfo pw').text + wrong_transfer_code = provided_transfer_code != @domain.transfer_code + + if wrong_transfer_code + epp_errors << { + code: '2202', + msg: 'Invalid authorization information', + } + handle_errors + return + end + @domain_transfer = @domain.transfer(params[:parsed_frame], action, current_user) if @domain.errors[:epp_errors].any? diff --git a/test/integration/epp/domain/transfer/query_test.rb b/test/integration/epp/domain/transfer/query_test.rb index e3bf7bdae..bd1293771 100644 --- a/test/integration/epp/domain/transfer/query_test.rb +++ b/test/integration/epp/domain/transfer/query_test.rb @@ -30,8 +30,7 @@ class EppDomainTransferQueryTest < EppTestCase post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } - # https://github.com/internetee/registry/issues/686 - assert_epp_response :authorization_error + assert_epp_response :invalid_authorization_information end def test_no_domain_transfer diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index 877076be7..6a1b5a9f1 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -115,10 +115,9 @@ class EppDomainTransferRequestTest < EppTestCase post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload - refute_equal @new_registrar, @domain.registrar - # https://github.com/internetee/registry/issues/686 - assert_epp_response :authorization_error + assert_epp_response :invalid_authorization_information + refute_equal @new_registrar, @domain.registrar end private From 220ac62a6624795c08cb28377d04ce8a1af734ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 20 Sep 2019 17:55:14 +0300 Subject: [PATCH 078/757] Update CHANGELOG.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bbb81642..9aa89c0bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +20.09.2019 +* Fixed error on domain transfer with invalid code [#686](https://github.com/internetee/registry/issues/686) +* EPP exceptions are now sent to Errbit [#539](https://github.com/internetee/registry/issues/539) +* Updated jquery-rails gem to 4.3.5 [#1322](https://github.com/internetee/registry/pull/1322) +* Added EPP renew tests [#1326](https://github.com/internetee/registry/pull/1326) + 17.09.2019 * Fixed error messages on deletind deletecandidate domains [#718](https://github.com/internetee/registry/issues/718) * Removed html2haml gem [#1316](https://github.com/internetee/registry/pull/1316) From 9e5fdbcf11f88858279aef0a879158117a2480f2 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 1 Oct 2019 12:43:10 +0300 Subject: [PATCH 079/757] Remove unused routes --- app/controllers/epp/errors_controller.rb | 5 ----- config/locales/en.yml | 1 - config/routes.rb | 4 ---- doc/controllers_complete.svg | 1 - lib/epp_constraint.rb | 2 +- 5 files changed, 1 insertion(+), 12 deletions(-) diff --git a/app/controllers/epp/errors_controller.rb b/app/controllers/epp/errors_controller.rb index 2711b5907..e4b179464 100644 --- a/app/controllers/epp/errors_controller.rb +++ b/app/controllers/epp/errors_controller.rb @@ -6,10 +6,5 @@ module Epp epp_errors << { code: params[:code], msg: params[:msg] } render_epp_response '/epp/error' end - - def not_found - epp_errors << { code: 2400, msg: t(:could_not_determine_object_type_check_xml_format_and_namespaces) } - render_epp_response '/epp/error' - end end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 9d89726b1..4804fc4ea 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -365,7 +365,6 @@ en: request_method: 'Request method' response_code: 'Response code' request_params: 'Request params' - could_not_determine_object_type_check_xml_format_and_namespaces: 'Could not determine object type. Check XML format and namespaces.' unknown_expiry_relative_pattern: 'Expiry relative must be compatible to ISO 8601' unknown_expiry_absolute_pattern: 'Expiry absolute must be compatible to ISO 8601' mutally_exclusive_params: 'Mutually exclusive parameters: %{params}' diff --git a/config/routes.rb b/config/routes.rb index ab72d0092..4b65087b5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -3,17 +3,13 @@ require_dependency 'epp_constraint' Rails.application.routes.draw do namespace(:epp, defaults: { format: :xml }) do match 'session/:action', controller: 'sessions', via: :all, constraints: EppConstraint.new(:session) - match 'session/pki/:action', controller: 'sessions', via: :all, constraints: EppConstraint.new(:session) post 'command/:action', controller: 'domains', constraints: EppConstraint.new(:domain) post 'command/:action', controller: 'contacts', constraints: EppConstraint.new(:contact) post 'command/poll', to: 'polls#poll', constraints: EppConstraint.new(:poll) post 'command/keyrelay', to: 'keyrelays#keyrelay', constraints: EppConstraint.new(:keyrelay) - post 'command/:command', to: 'errors#not_found', constraints: EppConstraint.new(:not_found) # fallback route - get 'error/:command', to: 'errors#error' - match "*command", to: 'errors#error', via: [:post, :get, :patch, :put, :delete] end mount Repp::API => '/' diff --git a/doc/controllers_complete.svg b/doc/controllers_complete.svg index 23ab7f9ec..acb402497 100644 --- a/doc/controllers_complete.svg +++ b/doc/controllers_complete.svg @@ -123,7 +123,6 @@ Epp::ErrorsController error -not_found _layout diff --git a/lib/epp_constraint.rb b/lib/epp_constraint.rb index c490254ed..ae69921d9 100644 --- a/lib/epp_constraint.rb +++ b/lib/epp_constraint.rb @@ -15,7 +15,7 @@ class EppConstraint request.params[:nokogiri_frame] ||= Nokogiri::XML(request.params[:raw_frame] || request.params[:frame]) request.params[:parsed_frame] ||= request.params[:nokogiri_frame].dup.remove_namespaces! - unless [:keyrelay, :poll, :session, :not_found].include?(@type) + unless [:keyrelay, :poll, :session].include?(@type) element = "//#{@type}:#{request.params[:action]}" return false if request.params[:nokogiri_frame].xpath("#{element}", OBJECT_TYPES[@type]).none? end From 7963bf9286ec1bf6596bee5a8909da349e7a7084 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 1 Oct 2019 16:27:49 +0300 Subject: [PATCH 080/757] Fix test --- test/integration/epp/base_test.rb | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/test/integration/epp/base_test.rb b/test/integration/epp/base_test.rb index eb02c42e8..a07ab767c 100644 --- a/test/integration/epp/base_test.rb +++ b/test/integration/epp/base_test.rb @@ -13,16 +13,9 @@ class EppBaseTest < EppTestCase constraints: EppConstraint.new(:poll) end - any_valid_epp_request_xml = <<-XML - - - - - XML - begin assert_difference 'ApiLog::EppLog.count' do - post '/epp/command/internal_error', { frame: any_valid_epp_request_xml }, + post '/epp/command/internal_error', { frame: valid_request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :command_failed @@ -33,14 +26,13 @@ class EppBaseTest < EppTestCase end end - def test_invalid_request + def test_validates_request_xml invalid_xml = <<-XML XML - post '/epp/command/internal_error', { frame: invalid_xml }, - 'HTTP_COOKIE' => 'session=api_bestnames' + post valid_command_path, { frame: invalid_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :syntax_error end @@ -87,4 +79,19 @@ class EppBaseTest < EppTestCase assert_epp_response :authorization_error end + + private + + def valid_command_path + epp_command_poll_path + end + + def valid_request_xml + <<-XML + + + + + XML + end end From 1fb4cbd86fc67e2b231d8b767d857ae50b7d9b5c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 15 Sep 2019 21:13:59 +0300 Subject: [PATCH 081/757] Add test --- test/integration/epp/hello_test.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 test/integration/epp/hello_test.rb diff --git a/test/integration/epp/hello_test.rb b/test/integration/epp/hello_test.rb new file mode 100644 index 000000000..1ccb65ff0 --- /dev/null +++ b/test/integration/epp/hello_test.rb @@ -0,0 +1,17 @@ +require 'test_helper' + +class EppHelloTest < EppTestCase + def test_anonymous_user_is_able_to_access + request_xml = <<-XML + + + + + XML + + get '/epp/session/hello', { frame: request_xml }, 'HTTP_COOKIE' => 'session=non-existent' + + response_xml = Nokogiri::XML(response.body) + assert_equal 'EPP server (EIS)', response_xml.at_css('greeting > svID').text + end +end From 11306bedfd4de0d082ba27e987ddb7945a6ba98a Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 4 Oct 2019 19:04:53 +0300 Subject: [PATCH 082/757] Update fixtures --- test/fixtures/dns/zones.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/fixtures/dns/zones.yml b/test/fixtures/dns/zones.yml index b826c9ef4..4f493a149 100644 --- a/test/fixtures/dns/zones.yml +++ b/test/fixtures/dns/zones.yml @@ -2,3 +2,10 @@ one: origin: test + ttl: 1 + refresh: 1 + retry: 1 + expire: 1 + minimum_ttl: 1 + email: admin@registry.test + master_nameserver: ns.test From f29d000b682e1a75bed7c6c7d79b1499489515f8 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 7 Oct 2019 14:15:26 +0300 Subject: [PATCH 083/757] Update EPP spec --- doc/epp/contact.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/epp/contact.md b/doc/epp/contact.md index fd8ce602c..1aa49c2b5 100644 --- a/doc/epp/contact.md +++ b/doc/epp/contact.md @@ -31,7 +31,7 @@ More info: https://en.wikipedia.org/wiki/Latin_script_in_Unicode 0-1 State or province 0-1 Postal code 1 Country code, 2 letters uppercase, in ISO_3166-1 alpha 2 - 1 Phone number in format \+ddd.d+ + 1 Phone number in E.164 format (e.g. +372.12345) 0 Fax is not supported and must be blank or missing 1 E-mail 1 @@ -66,7 +66,7 @@ More info: https://en.wikipedia.org/wiki/Latin_script_in_Unicode 0-1 State or province 0-1 Postal code 1 Country code, 2 letters uppercase, in ISO_3166-1 alpha 2 - 0-1 Phone number in format \+ddd.d+ + 0-1 Phone number in E.164 format (e.g. +372.12345) 0 Fax is not supported and must be blank or missing 0-1 E-mail 0-1 Required if registrar is not the owner of the contact. From 518b386dc749150892b0c840a2473147e73d0c02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 7 Oct 2019 15:05:41 +0300 Subject: [PATCH 084/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9aa89c0bd..60c93bfa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +07.10.2019 +* Clarified reference to proper phone nr format in EPP spec [#1343](https://github.com/internetee/registry/pull/1343) + 20.09.2019 * Fixed error on domain transfer with invalid code [#686](https://github.com/internetee/registry/issues/686) * EPP exceptions are now sent to Errbit [#539](https://github.com/internetee/registry/issues/539) From 54577b530be90446f08ab55c7fa06b9edb472949 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 2 Oct 2019 12:21:25 +0300 Subject: [PATCH 085/757] Remove specs --- spec/api/repp/contact_v1_spec.rb | 50 -- .../admin/billing/prices/edit_spec.rb | 25 - .../admin/billing/prices/expire_spec.rb | 25 - .../admin/billing/prices/list_spec.rb | 33 - .../features/admin/billing/prices/new_spec.rb | 37 - spec/features/admin/dns/zones/edit_spec.rb | 29 - spec/features/admin/dns/zones/new_spec.rb | 39 - spec/features/admin/settings/create_spec.rb | 13 - .../registrar/contacts/delete_spec.rb | 50 -- spec/features/registrar/contacts/list_spec.rb | 15 - spec/features/registrar/domains/new_spec.rb | 14 - spec/features/registrar/domains/renew_spec.rb | 18 - .../features/registrar/ip_restriction_spec.rb | 17 - spec/features/registrar/linked_users_spec.rb | 17 - spec/jobs/domain_expire_email_job_spec.rb | 43 - ...egistrant_change_expired_email_job_spec.rb | 40 - spec/lib/validators/e164.rb | 29 - spec/lib/validators/email_validator_spec.rb | 23 - spec/lib/validators/iso31661_alpha2.rb | 17 - spec/lib/validators/iso8601.rb | 17 - spec/models/account_activity_spec.rb | 13 - spec/models/account_spec.rb | 13 - spec/models/admin_user_spec.rb | 22 - spec/models/api_user_spec.rb | 114 --- .../authorization/restricted_ip_spec.rb | 98 --- spec/models/billing/price_spec.rb | 180 ----- .../concerns/billing/price/expirable_spec.rb | 55 -- .../concerns/domain/activatable_spec.rb | 68 -- spec/models/concerns/domain/expirable_spec.rb | 65 -- spec/models/contact/contact_phone_spec.rb | 33 - spec/models/contact/ident_spec.rb | 227 ------ spec/models/contact_spec.rb | 414 ---------- spec/models/depp/domain_spec.rb | 9 - spec/models/dns/zone_spec.rb | 102 --- spec/models/dnskey_spec.rb | 102 --- spec/models/domain_contact_spec.rb | 95 --- spec/models/domain_cron_spec.rb | 41 - spec/models/domain_spec.rb | 744 ------------------ spec/models/epp/domain_spec.rb | 29 - spec/models/epp_contact_spec.rb | 32 - spec/models/keyrelay_spec.rb | 77 -- spec/models/legal_document_spec.rb | 68 -- spec/models/registrant_verification_spec.rb | 59 -- spec/models/setting_spec.rb | 60 -- spec/models/white_ip_spec.rb | 53 -- spec/presenters/domain_presenter_spec.rb | 98 --- spec/presenters/registrant_presenter_spec.rb | 81 -- spec/presenters/registrar_presenter_spec.rb | 34 - spec/presenters/user_presenter_spec.rb | 16 - .../admin/billing/prices/create_spec.rb | 51 -- .../admin/billing/prices/expire_spec.rb | 22 - .../admin/billing/prices/update_spec.rb | 71 -- spec/requests/admin/dns/zones/create_spec.rb | 36 - spec/requests/admin/dns/zones/update_spec.rb | 40 - spec/requests/admin/settings/create_spec.rb | 35 - spec/requests/admin/zonefiles/create_spec.rb | 14 - .../requests/epp/contact/create/ident_spec.rb | 286 ------- .../requests/epp/contact/create/phone_spec.rb | 38 - spec/requests/epp/contact/create_spec.rb | 126 --- spec/requests/epp/contact/info_spec.rb | 60 -- spec/requests/epp/contact/shared/phone.rb | 28 - .../requests/epp/contact/update/ident_spec.rb | 195 ----- .../requests/epp/contact/update/phone_spec.rb | 33 - spec/requests/epp/contact/update_spec.rb | 108 --- .../epp/domain/create/account_balance_spec.rb | 68 -- .../epp/domain/create/default_period_spec.rb | 60 -- .../domain/create/optional_nameserver_spec.rb | 110 --- .../requests/epp/domain/create/period_spec.rb | 109 --- spec/requests/epp/domain/create/price_spec.rb | 67 -- .../domain/create/required_nameserver_spec.rb | 100 --- .../epp/domain/renew/account_balance_spec.rb | 92 --- .../epp/domain/renew/default_period_spec.rb | 56 -- .../epp/domain/renew/expire_time_spec.rb | 89 --- .../epp/domain/renew/max_expire_time_spec.rb | 92 --- spec/requests/epp/domain/renew/period_spec.rb | 94 --- spec/requests/epp/domain/renew/price_spec.rb | 68 -- .../epp/domain/update/nameserver_add_spec.rb | 95 --- .../domain/update/nameserver_remove_spec.rb | 108 --- .../registrant_change/same_as_current_spec.rb | 215 ----- .../update/registrant_change/verified_spec.rb | 199 ----- .../requests/epp/domain/update/status_spec.rb | 40 - .../requests/registrar/ip_restriction_spec.rb | 87 -- spec/requests/registrar/linked_users_spec.rb | 68 -- .../domain_delete_confirms_routing_spec.rb | 9 - .../domain_update_confirms_routing_spec.rb | 9 - spec/services/registrant_change_spec.rb | 20 - spec/support/capybara.rb | 6 - spec/support/database_cleaner.rb | 30 - spec/support/devise.rb | 3 - spec/support/features/session_helpers.rb | 26 - spec/support/macros/capybara.rb | 5 - spec/support/matchers/alias_attribute.rb | 9 - spec/support/paper_trail.rb | 1 - spec/support/requests/epp_helpers.rb | 7 - spec/support/requests/session_helpers.rb | 11 - spec/support/settings.rb | 28 - .../contact/ident/mismatch_validator_spec.rb | 13 - .../billing/prices/_form.html.erb_spec.rb | 22 - .../admin/dns/zones/index.html.erb_spec.rb | 40 - .../views/admin/domains/edit.html.erb_spec.rb | 25 - .../registrar/contacts/_form.haml_spec.rb | 45 -- .../form/_legal_document.haml_spec.rb | 18 - .../registrar/contacts/show.haml_spec.rb | 36 - .../registrar/domains/_form.haml_spec.rb | 23 - .../views/shared_examples/money_form_field.rb | 11 - test/fixtures/billing/prices.yml | 4 +- test/fixtures/users.yml | 1 + test/integration/admin_area/zones_test.rb | 27 + .../epp/contact/create/base_test.rb | 89 ++- .../epp/contact/update/base_test.rb | 94 ++- .../epp/domain/create/base_test.rb | 231 +++++- .../epp/domain/create/reserved_test.rb | 131 --- .../epp/domain/create/transfer_code_test.rb | 62 -- .../epp/domain/domain_update_test.rb | 52 -- .../epp/domain/update/base_test.rb | 295 +++++++ test/models/admin_user_test.rb | 142 ++++ test/models/api_user_test.rb | 55 +- test/models/billing/price_test.rb | 106 +++ test/models/contact/ident_test.rb | 128 +++ test/models/contact_test.rb | 155 +++- test/models/dns/zone_test.rb | 132 ++++ test/models/domain_test.rb | 344 +++++++- test/models/white_ip_test.rb | 54 ++ test/system/admin_area/prices_test.rb | 47 ++ test/system/admin_area/settings_test.rb | 13 + test/system/admin_area/zones_test.rb | 46 ++ test/system/registrar_area/base_test.rb | 33 + 127 files changed, 1954 insertions(+), 7197 deletions(-) delete mode 100644 spec/api/repp/contact_v1_spec.rb delete mode 100644 spec/features/admin/billing/prices/edit_spec.rb delete mode 100644 spec/features/admin/billing/prices/expire_spec.rb delete mode 100644 spec/features/admin/billing/prices/list_spec.rb delete mode 100644 spec/features/admin/billing/prices/new_spec.rb delete mode 100644 spec/features/admin/dns/zones/edit_spec.rb delete mode 100644 spec/features/admin/dns/zones/new_spec.rb delete mode 100644 spec/features/admin/settings/create_spec.rb delete mode 100644 spec/features/registrar/contacts/delete_spec.rb delete mode 100644 spec/features/registrar/contacts/list_spec.rb delete mode 100644 spec/features/registrar/domains/new_spec.rb delete mode 100644 spec/features/registrar/domains/renew_spec.rb delete mode 100644 spec/features/registrar/ip_restriction_spec.rb delete mode 100644 spec/features/registrar/linked_users_spec.rb delete mode 100644 spec/jobs/domain_expire_email_job_spec.rb delete mode 100644 spec/jobs/registrant_change_expired_email_job_spec.rb delete mode 100644 spec/lib/validators/e164.rb delete mode 100644 spec/lib/validators/email_validator_spec.rb delete mode 100644 spec/lib/validators/iso31661_alpha2.rb delete mode 100644 spec/lib/validators/iso8601.rb delete mode 100644 spec/models/account_activity_spec.rb delete mode 100644 spec/models/account_spec.rb delete mode 100644 spec/models/admin_user_spec.rb delete mode 100644 spec/models/api_user_spec.rb delete mode 100644 spec/models/authorization/restricted_ip_spec.rb delete mode 100644 spec/models/billing/price_spec.rb delete mode 100644 spec/models/concerns/billing/price/expirable_spec.rb delete mode 100644 spec/models/concerns/domain/activatable_spec.rb delete mode 100644 spec/models/concerns/domain/expirable_spec.rb delete mode 100644 spec/models/contact/contact_phone_spec.rb delete mode 100644 spec/models/contact/ident_spec.rb delete mode 100644 spec/models/contact_spec.rb delete mode 100644 spec/models/depp/domain_spec.rb delete mode 100644 spec/models/dns/zone_spec.rb delete mode 100644 spec/models/dnskey_spec.rb delete mode 100644 spec/models/domain_contact_spec.rb delete mode 100644 spec/models/domain_cron_spec.rb delete mode 100644 spec/models/domain_spec.rb delete mode 100644 spec/models/epp/domain_spec.rb delete mode 100644 spec/models/epp_contact_spec.rb delete mode 100644 spec/models/keyrelay_spec.rb delete mode 100644 spec/models/legal_document_spec.rb delete mode 100644 spec/models/registrant_verification_spec.rb delete mode 100644 spec/models/setting_spec.rb delete mode 100644 spec/models/white_ip_spec.rb delete mode 100644 spec/presenters/domain_presenter_spec.rb delete mode 100644 spec/presenters/registrant_presenter_spec.rb delete mode 100644 spec/presenters/registrar_presenter_spec.rb delete mode 100644 spec/presenters/user_presenter_spec.rb delete mode 100644 spec/requests/admin/billing/prices/create_spec.rb delete mode 100644 spec/requests/admin/billing/prices/expire_spec.rb delete mode 100644 spec/requests/admin/billing/prices/update_spec.rb delete mode 100644 spec/requests/admin/dns/zones/create_spec.rb delete mode 100644 spec/requests/admin/dns/zones/update_spec.rb delete mode 100644 spec/requests/admin/settings/create_spec.rb delete mode 100644 spec/requests/admin/zonefiles/create_spec.rb delete mode 100644 spec/requests/epp/contact/create/ident_spec.rb delete mode 100644 spec/requests/epp/contact/create/phone_spec.rb delete mode 100644 spec/requests/epp/contact/create_spec.rb delete mode 100644 spec/requests/epp/contact/info_spec.rb delete mode 100644 spec/requests/epp/contact/shared/phone.rb delete mode 100644 spec/requests/epp/contact/update/ident_spec.rb delete mode 100644 spec/requests/epp/contact/update/phone_spec.rb delete mode 100644 spec/requests/epp/contact/update_spec.rb delete mode 100644 spec/requests/epp/domain/create/account_balance_spec.rb delete mode 100644 spec/requests/epp/domain/create/default_period_spec.rb delete mode 100644 spec/requests/epp/domain/create/optional_nameserver_spec.rb delete mode 100644 spec/requests/epp/domain/create/period_spec.rb delete mode 100644 spec/requests/epp/domain/create/price_spec.rb delete mode 100644 spec/requests/epp/domain/create/required_nameserver_spec.rb delete mode 100644 spec/requests/epp/domain/renew/account_balance_spec.rb delete mode 100644 spec/requests/epp/domain/renew/default_period_spec.rb delete mode 100644 spec/requests/epp/domain/renew/expire_time_spec.rb delete mode 100644 spec/requests/epp/domain/renew/max_expire_time_spec.rb delete mode 100644 spec/requests/epp/domain/renew/period_spec.rb delete mode 100644 spec/requests/epp/domain/renew/price_spec.rb delete mode 100644 spec/requests/epp/domain/update/nameserver_add_spec.rb delete mode 100644 spec/requests/epp/domain/update/nameserver_remove_spec.rb delete mode 100644 spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb delete mode 100644 spec/requests/epp/domain/update/registrant_change/verified_spec.rb delete mode 100644 spec/requests/epp/domain/update/status_spec.rb delete mode 100644 spec/requests/registrar/ip_restriction_spec.rb delete mode 100644 spec/requests/registrar/linked_users_spec.rb delete mode 100644 spec/routing/registrant/domain_delete_confirms_routing_spec.rb delete mode 100644 spec/routing/registrant/domain_update_confirms_routing_spec.rb delete mode 100644 spec/services/registrant_change_spec.rb delete mode 100644 spec/support/capybara.rb delete mode 100644 spec/support/database_cleaner.rb delete mode 100644 spec/support/devise.rb delete mode 100644 spec/support/features/session_helpers.rb delete mode 100644 spec/support/macros/capybara.rb delete mode 100644 spec/support/matchers/alias_attribute.rb delete mode 100644 spec/support/paper_trail.rb delete mode 100644 spec/support/requests/epp_helpers.rb delete mode 100644 spec/support/requests/session_helpers.rb delete mode 100644 spec/support/settings.rb delete mode 100644 spec/validators/contact/ident/mismatch_validator_spec.rb delete mode 100644 spec/views/admin/billing/prices/_form.html.erb_spec.rb delete mode 100644 spec/views/admin/dns/zones/index.html.erb_spec.rb delete mode 100644 spec/views/admin/domains/edit.html.erb_spec.rb delete mode 100644 spec/views/registrar/contacts/_form.haml_spec.rb delete mode 100644 spec/views/registrar/contacts/form/_legal_document.haml_spec.rb delete mode 100644 spec/views/registrar/contacts/show.haml_spec.rb delete mode 100644 spec/views/registrar/domains/_form.haml_spec.rb delete mode 100644 spec/views/shared_examples/money_form_field.rb create mode 100644 test/integration/admin_area/zones_test.rb delete mode 100644 test/integration/epp/domain/create/reserved_test.rb delete mode 100644 test/integration/epp/domain/create/transfer_code_test.rb delete mode 100644 test/integration/epp/domain/domain_update_test.rb create mode 100644 test/integration/epp/domain/update/base_test.rb create mode 100644 test/models/admin_user_test.rb create mode 100644 test/models/billing/price_test.rb create mode 100644 test/models/contact/ident_test.rb create mode 100644 test/models/dns/zone_test.rb create mode 100644 test/models/white_ip_test.rb create mode 100644 test/system/admin_area/prices_test.rb create mode 100644 test/system/admin_area/settings_test.rb create mode 100644 test/system/admin_area/zones_test.rb create mode 100644 test/system/registrar_area/base_test.rb diff --git a/spec/api/repp/contact_v1_spec.rb b/spec/api/repp/contact_v1_spec.rb deleted file mode 100644 index 77ce38d2e..000000000 --- a/spec/api/repp/contact_v1_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -require 'rails_helper' - -RSpec.describe Repp::ContactV1, db: true do - let(:user) { create(:api_user, registrar: registrar) } - let(:registrar) { create(:registrar) } - - describe '/contacts' do - let(:returned_attributes) { HashWithIndifferentAccess.new(JSON.parse(response.body)['contacts'].first).keys } - subject(:address_included) { Contact.address_attribute_names.any? { |attr| returned_attributes.include?(attr.to_s) } } - - before do - Grape::Endpoint.before_each do |endpoint| - allow(endpoint).to receive(:current_user).and_return(user) - end - - registrar.contacts << create(:contact) - end - - it 'responds with success' do - get '/repp/v1/contacts', { limit: 1, details: true }, { 'HTTP_AUTHORIZATION' => http_auth_key } - expect(response).to have_http_status(:success) - end - - context 'when address processing is enabled' do - before do - expect(Contact).to receive(:address_processing?).and_return(true) - get '/repp/v1/contacts', { limit: 1, details: true }, { 'HTTP_AUTHORIZATION' => http_auth_key } - end - - it 'returns contact address' do - expect(address_included).to be_truthy - end - end - - context 'when address processing is disabled' do - before do - expect(Contact).to receive(:address_processing?).and_return(false) - get '/repp/v1/contacts', { limit: 1, details: true }, { 'HTTP_AUTHORIZATION' => http_auth_key } - end - - it 'does not return contact address' do - expect(address_included).to be_falsy - end - end - end - - def http_auth_key - ActionController::HttpAuthentication::Basic.encode_credentials(user.username, user.plain_text_password) - end -end diff --git a/spec/features/admin/billing/prices/edit_spec.rb b/spec/features/admin/billing/prices/edit_spec.rb deleted file mode 100644 index 8ef87b9a0..000000000 --- a/spec/features/admin/billing/prices/edit_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Editing price in admin area', settings: false do - given!(:price) { create(:effective_price) } - - background do - sign_in_to_admin_area - end - - scenario 'updates price' do - visit admin_prices_path - open_form - submit_form - - expect(page).to have_text(t('admin.billing.prices.update.updated')) - end - - def open_form - find('.edit-price-btn').click - end - - def submit_form - click_link_or_button t('admin.billing.prices.form.update_btn') - end -end diff --git a/spec/features/admin/billing/prices/expire_spec.rb b/spec/features/admin/billing/prices/expire_spec.rb deleted file mode 100644 index 9a835f09c..000000000 --- a/spec/features/admin/billing/prices/expire_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Expiring price in admin area', settings: false do - given!(:price) { create(:effective_price) } - - background do - sign_in_to_admin_area - end - - scenario 'expires price' do - visit admin_prices_path - open_edit_form - expire - - expect(page).to have_text(t('admin.billing.prices.expire.expired')) - end - - def open_edit_form - find('.edit-price-btn').click - end - - def expire - click_link_or_button t('admin.billing.prices.edit.expire_btn') - end -end diff --git a/spec/features/admin/billing/prices/list_spec.rb b/spec/features/admin/billing/prices/list_spec.rb deleted file mode 100644 index 95ebcb975..000000000 --- a/spec/features/admin/billing/prices/list_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Viewing prices in admin area', settings: false do - given!(:effective_price) { create(:effective_price) } - given!(:expired_price) { create(:expired_price) } - - background do - sign_in_to_admin_area - end - - describe 'search' do - context 'when status is not selected' do - scenario 'shows effective prices' do - visit admin_prices_path - expect(page).to have_css('.price', count: 1) - end - end - - context 'when status is given' do - scenario 'filters by given status' do - visit admin_prices_path - select Admin::Billing::PricesController.default_status.capitalize, from: 'search_status' - submit_search_form - - expect(page).to have_css('.price', count: 1) - end - end - - def submit_search_form - find('.price-search-form-search-btn').click - end - end -end diff --git a/spec/features/admin/billing/prices/new_spec.rb b/spec/features/admin/billing/prices/new_spec.rb deleted file mode 100644 index 9d11938bb..000000000 --- a/spec/features/admin/billing/prices/new_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'New price in admin area', settings: false do - given!(:zone) { create(:zone, origin: 'test') } - - background do - sign_in_to_admin_area - end - - scenario 'it creates new price' do - open_list - open_form - fill_form - submit_form - - expect(page).to have_text(t('admin.billing.prices.create.created')) - end - - def open_list - click_link_or_button t('admin.base.menu.prices') - end - - def open_form - click_link_or_button t('admin.billing.prices.index.new_btn') - end - - def fill_form - select 'test', from: 'price_zone_id' - select Billing::Price.operation_categories.first, from: 'price_operation_category' - select '3 months', from: 'price_duration' - fill_in 'price_price', with: '1' - end - - def submit_form - click_link_or_button t('admin.billing.prices.form.create_btn') - end -end diff --git a/spec/features/admin/dns/zones/edit_spec.rb b/spec/features/admin/dns/zones/edit_spec.rb deleted file mode 100644 index 8b61683ce..000000000 --- a/spec/features/admin/dns/zones/edit_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Editing zone in admin area', settings: false do - given!(:zone) { create(:zone) } - - background do - sign_in_to_admin_area - end - - scenario 'updates zone' do - visit admin_zones_url - open_form - submit_form - - expect(page).to have_text(t('admin.dns.zones.update.updated')) - end - - def open_list - click_link_or_button t('admin.base.menu.zones') - end - - def open_form - click_link_or_button 'admin-edit-zone-btn' - end - - def submit_form - click_link_or_button t('admin.dns.zones.form.update_btn') - end -end diff --git a/spec/features/admin/dns/zones/new_spec.rb b/spec/features/admin/dns/zones/new_spec.rb deleted file mode 100644 index 78fd05195..000000000 --- a/spec/features/admin/dns/zones/new_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'New zone in admin area', settings: false do - background do - sign_in_to_admin_area - end - - scenario 'it creates new zone' do - open_list - open_form - fill_form - submit_form - - expect(page).to have_text(t('admin.dns.zones.create.created')) - end - - def open_list - click_link_or_button t('admin.base.menu.zones') - end - - def open_form - click_link_or_button t('admin.dns.zones.index.new_btn') - end - - def fill_form - fill_in 'zone_origin', with: 'test' - fill_in 'zone_ttl', with: '1' - fill_in 'zone_refresh', with: '1' - fill_in 'zone_retry', with: '1' - fill_in 'zone_expire', with: '1' - fill_in 'zone_minimum_ttl', with: '1' - fill_in 'zone_email', with: 'test@test.com' - fill_in 'zone_master_nameserver', with: 'test.test' - end - - def submit_form - click_link_or_button t('admin.dns.zones.form.create_btn') - end -end diff --git a/spec/features/admin/settings/create_spec.rb b/spec/features/admin/settings/create_spec.rb deleted file mode 100644 index d30e93e8e..000000000 --- a/spec/features/admin/settings/create_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Admin settings' do - background do - sign_in_to_admin_area - end - - it 'saves settings' do - visit admin_settings_path - click_link_or_button 'Save' - expect(page).to have_text(t('admin.settings.create.saved')) - end -end diff --git a/spec/features/registrar/contacts/delete_spec.rb b/spec/features/registrar/contacts/delete_spec.rb deleted file mode 100644 index d0169ad54..000000000 --- a/spec/features/registrar/contacts/delete_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -require 'rails_helper' - -class FakeDeppContact - include ActiveModel::Model - - def id - 'test' - end - - def name - 'test' - end - - def persisted? - true - end - - def password - 'test' - end - - def delete - true - end -end - -RSpec.feature 'Contact deletion in registrar area' do - given!(:registrar) { create(:registrar) } - given!(:contact) { create(:contact, registrar: registrar) } - - background do - allow(Depp::Contact).to receive(:find_by_id).and_return(FakeDeppContact.new) - allow(Depp::Contact).to receive(:new).and_return(FakeDeppContact.new) - sign_in_to_registrar_area(user: create(:api_user_with_unlimited_balance, registrar: registrar)) - end - - it 'deletes contact' do - visit registrar_contacts_url - click_link_or_button 'Delete' - confirm - - expect(page).to have_text('Destroyed') - end - - private - - def confirm - click_link_or_button 'Delete' - end -end diff --git a/spec/features/registrar/contacts/list_spec.rb b/spec/features/registrar/contacts/list_spec.rb deleted file mode 100644 index 96f1f2c98..000000000 --- a/spec/features/registrar/contacts/list_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Contact list', settings: false do - given!(:registrar) { create(:registrar) } - given!(:contact) { create(:contact, registrar: registrar) } - - background do - sign_in_to_registrar_area(user: create(:api_user_with_unlimited_balance, registrar: registrar)) - end - - it 'is visible' do - visit registrar_contacts_path - expect(page).to have_css('.contacts') - end -end diff --git a/spec/features/registrar/domains/new_spec.rb b/spec/features/registrar/domains/new_spec.rb deleted file mode 100644 index 4dd1d85d5..000000000 --- a/spec/features/registrar/domains/new_spec.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'New domain in registrar area', settings: false do - background do - sign_in_to_registrar_area - end - - it 'has default period' do - visit registrar_domains_path - click_link_or_button t('new') - - expect(page).to have_field('domain_period', with: Depp::Domain.default_period) - end -end diff --git a/spec/features/registrar/domains/renew_spec.rb b/spec/features/registrar/domains/renew_spec.rb deleted file mode 100644 index 1d6ab0a7e..000000000 --- a/spec/features/registrar/domains/renew_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Renew domain in registrar area' do - given!(:registrar) { create(:registrar) } - given!(:user) { create(:api_user, registrar: registrar) } - given!(:domain) { create(:domain, registrar: registrar) } - - background do - sign_in_to_registrar_area(user: user) - end - - it 'has default period' do - visit registrar_domains_path - click_link_or_button t('renew') - - expect(page).to have_field('period', with: Depp::Domain.default_period) - end -end diff --git a/spec/features/registrar/ip_restriction_spec.rb b/spec/features/registrar/ip_restriction_spec.rb deleted file mode 100644 index 264c45283..000000000 --- a/spec/features/registrar/ip_restriction_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Registrar area IP restriction', settings: false do - before do - @original_registrar_ip_whitelist_enabled = Setting.registrar_ip_whitelist_enabled - end - - after do - Setting.registrar_ip_whitelist_enabled = @original_registrar_ip_whitelist_enabled - end - - scenario 'notifies the user if his IP is not allowed' do - Setting.registrar_ip_whitelist_enabled = true - visit registrar_root_path - expect(page).to have_text('Access denied from IP 127.0.0.1') - end -end diff --git a/spec/features/registrar/linked_users_spec.rb b/spec/features/registrar/linked_users_spec.rb deleted file mode 100644 index aa1e3785b..000000000 --- a/spec/features/registrar/linked_users_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'rails_helper' - -RSpec.feature 'Registrar area linked users', settings: false do - given!(:current_user) { create(:api_user_with_unlimited_balance, id: 1, identity_code: 'test') } - given!(:linked_user) { create(:api_user_with_unlimited_balance, id: 2, identity_code: 'test', - username: 'new-user-name') } - - background do - sign_in_to_registrar_area(user: current_user) - end - - scenario 'switches current user to a linked one' do - visit registrar_account_path - click_link_or_button 'switch-current-user-2-btn' - expect(page).to have_text('You are now signed in as a user "new-user-name"') - end -end diff --git a/spec/jobs/domain_expire_email_job_spec.rb b/spec/jobs/domain_expire_email_job_spec.rb deleted file mode 100644 index a25999b77..000000000 --- a/spec/jobs/domain_expire_email_job_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -require 'rails_helper' - -RSpec.describe DomainExpireEmailJob do - describe '#run' do - let(:domain) { instance_double(Domain) } - - before :example do - expect(Domain).to receive(:find).and_return(domain) - end - - after :example do - domain_id = 1 - described_class.enqueue(domain_id) - end - - context 'when domain is expired' do - let(:message) { instance_double(ActionMailer::MessageDelivery) } - - before :example do - allow(domain).to receive_messages( - registrar: 'registrar', - registered?: false, - primary_contact_emails: %w(test@test.com test@test.com)) - end - - it 'sends email' do - expect(DomainExpireMailer).to receive(:expired).with(domain: domain, registrar: 'registrar') - .and_return(message) - expect(message).to receive(:deliver_now) - end - end - - context 'when domain is registered' do - before :example do - allow(domain).to receive(:registered?).and_return(true) - end - - it 'does not send email' do - expect(DomainExpireMailer).to_not receive(:expired) - end - end - end -end diff --git a/spec/jobs/registrant_change_expired_email_job_spec.rb b/spec/jobs/registrant_change_expired_email_job_spec.rb deleted file mode 100644 index 1486417ea..000000000 --- a/spec/jobs/registrant_change_expired_email_job_spec.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'rails_helper' - -RSpec.describe RegistrantChangeExpiredEmailJob do - describe '#run' do - let(:domain) { instance_double(Domain, - id: 1, - name: 'test.com', - new_registrant_email: 'new-registrant@test.com', - registrar: 'registrar', - registrant: 'registrant') - } - let(:message) { instance_double(ActionMailer::MessageDelivery) } - - before :example do - expect(Domain).to receive(:find).and_return(domain) - end - - after :example do - domain_id = 1 - described_class.enqueue(domain_id) - end - - it 'creates log record' do - log_message = 'Send RegistrantChangeMailer#expired email for domain test.com (#1) to new-registrant@test.com' - - allow(RegistrantChangeMailer).to receive(:expired).and_return(message) - allow(message).to receive(:deliver_now) - - expect(Rails.logger).to receive(:info).with(log_message) - end - - it 'sends email' do - expect(RegistrantChangeMailer).to receive(:expired).with(domain: domain, - registrar: 'registrar', - registrant: 'registrant') - .and_return(message) - expect(message).to receive(:deliver_now) - end - end -end diff --git a/spec/lib/validators/e164.rb b/spec/lib/validators/e164.rb deleted file mode 100644 index bfb4914a3..000000000 --- a/spec/lib/validators/e164.rb +++ /dev/null @@ -1,29 +0,0 @@ -# https://en.wikipedia.org/wiki/E.164 - -RSpec.shared_examples 'e164' do - describe 'validation' do - it 'rejects invalid format' do - model.send("#{attribute}=", '+.1') - model.validate - expect(model.errors).to be_added(attribute, :invalid) - end - - it 'rejects longer than max length' do - model.send("#{attribute}=", '1' * 18) - model.validate - expect(model.errors).to be_added(attribute, :too_long, count: 17) - end - - it 'accepts valid format' do - model.send("#{attribute}=", '+123.4') - model.validate - expect(model.errors).to_not be_added(attribute, :invalid) - end - - it 'accepts max length' do - model.send("#{attribute}=", '1' * 17) - model.validate - expect(model.errors).to_not be_added(attribute, :too_long, count: 17) - end - end -end diff --git a/spec/lib/validators/email_validator_spec.rb b/spec/lib/validators/email_validator_spec.rb deleted file mode 100644 index ecaadc8a7..000000000 --- a/spec/lib/validators/email_validator_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'spec_helper' - -RSpec.describe EmailValidator do - describe '#valid?' do - subject(:valid) { described_class.new(email).valid? } - - context 'when email is valid' do - let(:email) { 'test@test.com' } - - it 'returns truthy' do - expect(valid).to be_truthy - end - end - - context 'when email is invalid' do - let(:email) { 'invalid' } - - it 'returns falsey' do - expect(valid).to be_falsey - end - end - end -end diff --git a/spec/lib/validators/iso31661_alpha2.rb b/spec/lib/validators/iso31661_alpha2.rb deleted file mode 100644 index 618a68cfb..000000000 --- a/spec/lib/validators/iso31661_alpha2.rb +++ /dev/null @@ -1,17 +0,0 @@ -# https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 - -RSpec.shared_examples 'iso31661_alpha2' do - describe 'validation' do - it 'rejects invalid' do - model.send("#{attribute}=", 'invalid') - model.validate - expect(model.errors).to be_added(attribute, :invalid_iso31661_alpha2) - end - - it 'accepts valid' do - model.send("#{attribute}=", 'US') - model.validate - expect(model.errors).to_not be_added(attribute, :invalid_iso31661_alpha2) - end - end -end diff --git a/spec/lib/validators/iso8601.rb b/spec/lib/validators/iso8601.rb deleted file mode 100644 index 78d8f2c4a..000000000 --- a/spec/lib/validators/iso8601.rb +++ /dev/null @@ -1,17 +0,0 @@ -# https://en.wikipedia.org/wiki/ISO_8601 - -RSpec.shared_examples 'iso8601' do - describe 'validation' do - it 'rejects invalid' do - model.send("#{attribute}=", '2010-07-0') - model.validate - expect(model.errors).to be_added(attribute, :invalid_iso8601_date) - end - - it 'accepts valid' do - model.send("#{attribute}=", '2010-07-05') - model.validate - expect(model.errors).to_not be_added(attribute, :invalid_iso8601_date) - end - end -end diff --git a/spec/models/account_activity_spec.rb b/spec/models/account_activity_spec.rb deleted file mode 100644 index 59e88c98b..000000000 --- a/spec/models/account_activity_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rails_helper' - -RSpec.describe AccountActivity do - describe 'account validation', db: false do - subject(:account_activity) { described_class.new } - - it 'rejects absent' do - account_activity.account = nil - account_activity.validate - expect(account_activity.errors).to have_key(:account) - end - end -end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb deleted file mode 100644 index 46cef0b09..000000000 --- a/spec/models/account_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rails_helper' - -RSpec.describe Account do - describe 'registrar validation', db: false do - subject(:account) { described_class.new } - - it 'rejects absent' do - account.registrar = nil - account.validate - expect(account.errors).to have_key(:registrar) - end - end -end diff --git a/spec/models/admin_user_spec.rb b/spec/models/admin_user_spec.rb deleted file mode 100644 index 1cb8b5b12..000000000 --- a/spec/models/admin_user_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -require 'rails_helper' - -RSpec.describe AdminUser do - context 'with valid attributes' do - before do - @admin_user = create(:admin_user) - end - - it 'should require password confirmation when changing password' do - @admin_user.valid?.should == true - @admin_user.password = 'not confirmed' - @admin_user.valid? - @admin_user.errors.full_messages.should match_array(["Password confirmation doesn't match Password"]) - end - end - - describe '::min_password_length' do - it 'returns minimum password length' do - expect(described_class.min_password_length).to eq(8) - end - end -end diff --git a/spec/models/api_user_spec.rb b/spec/models/api_user_spec.rb deleted file mode 100644 index e27cc8771..000000000 --- a/spec/models/api_user_spec.rb +++ /dev/null @@ -1,114 +0,0 @@ -require 'rails_helper' - -RSpec.describe ApiUser do - context 'with invalid attribute' do - before do - @api_user = ApiUser.new - end - - it 'should not be valid' do - @api_user.valid? - @api_user.errors.full_messages.should match_array([ - "Password Password is missing", - "Password is too short (minimum is #{ApiUser.min_password_length} characters)", - "Registrar Registrar is missing", - "Username Username is missing", - "Roles is missing" - ]) - end - - it 'should be active by default' do - @api_user.active.should == true - end - end - - context 'with valid attributes' do - before do - @api_user = create(:api_user) - end - - it 'should be valid' do - @api_user.valid? - @api_user.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @api_user = create(:api_user) - @api_user.valid? - @api_user.errors.full_messages.should match_array([]) - end - end - - describe '::min_password_length', db: false do - it 'returns minimum password length' do - expect(described_class.min_password_length).to eq(6) - end - end - - describe '#linked_users' do - it 'returns users with the same identity code' do - api_user = create(:api_user, id: 1, identity_code: 'test') - create(:api_user, id: 2, identity_code: 'test') - - expect(api_user.linked_users.ids).to include(2) - end - - it 'does not return users with another identity code' do - api_user = create(:api_user, id: 1, identity_code: 'test') - create(:api_user, id: 2, identity_code: 'another') - - expect(api_user.linked_users.ids).to_not include(2) - end - - it 'does not return itself' do - api_user = create(:api_user) - expect(api_user.linked_users).to be_empty - end - - it 'returns none if identity code is absent' do - api_user = create(:api_user, identity_code: nil) - create(:api_user, identity_code: nil) - - expect(api_user.linked_users).to be_empty - end - - it 'returns none if identity code is empty' do - api_user = create(:api_user, identity_code: '') - create(:api_user, identity_code: '') - - expect(api_user.linked_users).to be_empty - end - end - - describe '#linked_with?', db: false do - it 'returns true if identity codes match' do - api_user = described_class.new(identity_code: 'test') - another_api_user = described_class.new(identity_code: 'test') - - expect(api_user.linked_with?(another_api_user)).to be true - end - - it 'returns false if identity codes do not match' do - api_user = described_class.new(identity_code: 'test') - another_api_user = described_class.new(identity_code: 'another-test') - - expect(api_user.linked_with?(another_api_user)).to be false - end - end - - describe '#login', db: false do - it 'is alias to #username' do - user = described_class.new(username: 'test-username') - expect(user.login).to eq('test-username') - end - end - - describe '#registrar_name', db: false do - it 'delegates to registrar' do - registrar = Registrar.new(name: 'test name') - user = described_class.new(registrar: registrar) - - expect(user.registrar_name).to eq('test name') - end - end -end diff --git a/spec/models/authorization/restricted_ip_spec.rb b/spec/models/authorization/restricted_ip_spec.rb deleted file mode 100644 index b432d46e4..000000000 --- a/spec/models/authorization/restricted_ip_spec.rb +++ /dev/null @@ -1,98 +0,0 @@ -require 'rails_helper' - -RSpec.describe Authorization::RestrictedIP do - describe '::enabled?', db: true, settings: false do - before do - @original_registrar_ip_whitelist_enabled = Setting.registrar_ip_whitelist_enabled - end - - after do - Setting.registrar_ip_whitelist_enabled = @original_registrar_ip_whitelist_enabled - end - - context 'when "registrar_ip_whitelist_enabled" is true' do - before do - Setting.registrar_ip_whitelist_enabled = true - end - - specify do - expect(described_class).to be_enabled - end - end - - context 'when "registrar_ip_whitelist_enabled" is false' do - specify do - expect(described_class).to_not be_enabled - end - end - end - - describe '#can_access_registrar_area?', db: true do - let(:registrar) { create(:registrar) } - subject(:allowed) { described_class.new('127.0.0.1').can_access_registrar_area?(registrar) } - - context 'when enabled' do - before do - allow(described_class).to receive(:enabled?).and_return(true) - end - - context 'when ip is whitelisted', db: true do - let!(:white_ip) { create(:white_ip, registrar: registrar, ipv4: '127.0.0.1', interfaces: [WhiteIp::REGISTRAR]) } - - specify do - expect(allowed).to be true - end - end - - context 'when ip is not whitelisted' do - specify do - expect(allowed).to be false - end - end - end - - context 'when disabled' do - before do - allow(described_class).to receive(:enabled?).and_return(false) - end - - specify do - expect(allowed).to be true - end - end - end - - describe '#can_access_registrar_area_sign_in_page?' do - subject(:allowed) { described_class.new('127.0.0.1').can_access_registrar_area_sign_in_page? } - - context 'when enabled' do - before do - allow(described_class).to receive(:enabled?).and_return(true) - end - - context 'when ip is whitelisted', db: true do - let!(:white_ip) { create(:white_ip, ipv4: '127.0.0.1', interfaces: [WhiteIp::REGISTRAR]) } - - specify do - expect(allowed).to be true - end - end - - context 'when ip is not whitelisted' do - specify do - expect(allowed).to be false - end - end - end - - context 'when disabled' do - before do - allow(described_class).to receive(:enabled?).and_return(false) - end - - specify do - expect(allowed).to be true - end - end - end -end diff --git a/spec/models/billing/price_spec.rb b/spec/models/billing/price_spec.rb deleted file mode 100644 index 2854fb6b6..000000000 --- a/spec/models/billing/price_spec.rb +++ /dev/null @@ -1,180 +0,0 @@ -require 'rails_helper' - -RSpec.describe Billing::Price do - it { is_expected.to monetize(:price) } - it { is_expected.to alias_attribute(:effect_time, :valid_from) } - it { is_expected.to alias_attribute(:expire_time, :valid_to) } - - describe '::operation_categories', db: false do - it 'returns operation categories' do - categories = %w[create renew] - expect(described_class.operation_categories).to eq(categories) - end - end - - describe '::durations', db: false do - it 'returns durations' do - durations = [ - '3 mons', - '6 mons', - '9 mons', - '1 year', - '2 years', - '3 years', - '4 years', - '5 years', - '6 years', - '7 years', - '8 years', - '9 years', - '10 years', - ] - - expect(described_class.durations).to eq(durations) - end - end - - describe '::statuses', db: false do - it 'returns statuses' do - expect(described_class.statuses).to eq(%w[upcoming effective expired]) - end - end - - describe '::upcoming' do - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - - create(:price, id: 1, effect_time: Time.zone.parse('05.07.2010 00:00')) - create(:price, id: 2, effect_time: Time.zone.parse('05.07.2010 00:01')) - end - - it 'returns upcoming' do - expect(described_class.upcoming.ids).to eq([2]) - end - end - - describe '::effective' do - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - - create(:price, id: 1, effect_time: '05.07.2010 00:01', expire_time: '05.07.2010 00:02') - create(:price, id: 2, effect_time: '05.07.2010 00:00', expire_time: '05.07.2010 00:01') - create(:price, id: 3, effect_time: '05.07.2010 00:00', expire_time: nil) - create(:price, id: 4, effect_time: '04.07.2010', expire_time: '04.07.2010 23:59') - end - - it 'returns effective' do - expect(described_class.effective.ids).to eq([2, 3]) - end - end - - describe 'zone validation', db: false do - subject(:price) { described_class.new } - - it 'rejects absent' do - price.zone = nil - price.validate - expect(price.errors).to have_key(:zone) - end - end - - describe 'price validation', db: false do - subject(:price) { described_class.new } - - it 'rejects absent' do - price.price = nil - price.validate - expect(price.errors).to have_key(:price) - end - - it 'rejects negative' do - price.price = -1 - price.validate - expect(price.errors).to have_key(:price) - end - - it 'accepts zero' do - price.price = 0 - price.validate - expect(price.errors).to_not have_key(:price) - end - - it 'accepts greater than zero' do - price.price = 1 - price.validate - expect(price.errors).to_not have_key(:price) - end - - it 'accepts fraction' do - price.price = "1#{I18n.t('number.currency.format.separator')}5" - price.validate - expect(price.errors).to_not have_key(:price) - end - end - - describe 'duration validation', db: false do - subject(:price) { described_class.new } - - it 'rejects absent' do - price.duration = nil - price.validate - expect(price.errors).to have_key(:duration) - end - - it 'rejects invalid' do - price.duration = 'invalid' - price.validate - expect(price.errors).to have_key(:duration) - end - - it 'accepts valid' do - price.duration = described_class.durations.first - price.validate - expect(price.errors).to_not have_key(:duration) - end - end - - describe 'operation category validation', db: false do - subject(:price) { described_class.new } - - it 'rejects absent' do - price.operation_category = nil - price.validate - expect(price.errors).to have_key(:operation_category) - end - - it 'rejects invalid' do - price.operation_category = 'invalid' - price.validate - expect(price.errors).to have_key(:operation_category) - end - - it 'accepts valid' do - price.operation_category = described_class.operation_categories.first - price.validate - expect(price.errors).to_not have_key(:operation_category) - end - end - - describe '#name', db: false do - let(:price) { described_class.new } - - before :example do - allow(price).to receive(:operation_category).and_return('category') - allow(price).to receive(:zone_name).and_return('zone') - end - - it 'returns operation_category and zone name' do - expect(price.name).to eq('category zone') - end - end - - describe '#zone_name', db: false do - let(:price) { described_class.new(zone: zone) } - let(:zone) { build_stubbed(:zone, origin: 'test') } - - it 'returns zone name' do - expect(price.zone_name).to eq('test') - end - end -end diff --git a/spec/models/concerns/billing/price/expirable_spec.rb b/spec/models/concerns/billing/price/expirable_spec.rb deleted file mode 100644 index 2180af432..000000000 --- a/spec/models/concerns/billing/price/expirable_spec.rb +++ /dev/null @@ -1,55 +0,0 @@ -require 'rails_helper' - -RSpec.describe Billing::Price do - describe '::expired' do - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - - create(:price, id: 1, expire_time: Time.zone.parse('04.07.2010 23:59')) - create(:price, id: 2, expire_time: Time.zone.parse('05.07.2010 00:00')) - create(:price, id: 3, expire_time: Time.zone.parse('05.07.2010 00:01')) - end - - it 'returns prices with expire time in the past ' do - expect(described_class.expired.ids).to eq([1]) - end - end - - describe '#expire', db: false do - let(:price) { described_class.new(expire_time: Time.zone.parse('06.07.2010')) } - - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - end - - it 'expires price' do - expect { price.expire }.to change { price.expired? }.from(false).to(true) - end - end - - describe '#expired?', db: false do - subject(:expired) { domain.expired? } - - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - end - - context 'when expire time is in the past' do - let(:domain) { described_class.new(expire_time: Time.zone.parse('04.07.2010 23:59')) } - - specify { expect(expired).to be true } - end - - context 'when expire time is now' do - let(:domain) { described_class.new(expire_time: Time.zone.parse('05.07.2010 00:00')) } - - specify { expect(expired).to be false } - end - - context 'when expire time is in the future' do - let(:domain) { described_class.new(expire_time: Time.zone.parse('05.07.2010 00:01')) } - - specify { expect(expired).to be false } - end - end -end diff --git a/spec/models/concerns/domain/activatable_spec.rb b/spec/models/concerns/domain/activatable_spec.rb deleted file mode 100644 index aeb5b0bfd..000000000 --- a/spec/models/concerns/domain/activatable_spec.rb +++ /dev/null @@ -1,68 +0,0 @@ -require 'rails_helper' - -RSpec.describe Domain, db: false do - describe '#active?' do - context 'when :statuses does not contain :inactive' do - let(:domain) { described_class.new(statuses: []) } - - it 'returns true' do - expect(domain.active?).to be true - end - end - - context 'when :statuses contains :inactive' do - let(:domain) { described_class.new(statuses: [DomainStatus::INACTIVE]) } - - it 'returns false' do - expect(domain.active?).to be false - end - end - end - - describe '#inactive?' do - context 'when :statuses contains :inactive' do - let(:domain) { described_class.new(statuses: [DomainStatus::INACTIVE]) } - - it 'returns true' do - expect(domain.inactive?).to be true - end - end - - context 'when :statuses does not contain :inactive' do - let(:domain) { described_class.new(statuses: []) } - - it 'returns false' do - expect(domain.inactive?).to be false - end - end - end - - describe '#activate' do - let(:domain) { described_class.new(statuses: [DomainStatus::INACTIVE]) } - - it 'activates domain' do - domain.activate - expect(domain).to be_active - end - end - - describe '#deactivate' do - context 'when active' do - let(:domain) { described_class.new } - - it 'deactivates domain' do - domain.deactivate - expect(domain).to be_inactive - end - end - - context 'when inactive' do - let(:domain) { described_class.new(statuses: [DomainStatus::INACTIVE]) } - - it 'does not add :inactive status' do - domain.deactivate - expect(domain.statuses).to eq([DomainStatus::INACTIVE]) - end - end - end -end diff --git a/spec/models/concerns/domain/expirable_spec.rb b/spec/models/concerns/domain/expirable_spec.rb deleted file mode 100644 index 242d9818a..000000000 --- a/spec/models/concerns/domain/expirable_spec.rb +++ /dev/null @@ -1,65 +0,0 @@ -require 'rails_helper' - -RSpec.describe Domain, db: false do - it { is_expected.to alias_attribute(:expire_time, :valid_to) } - - describe '::expired', db: true do - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - - create(:zone, origin: 'ee') - - create(:domain, id: 1, expire_time: Time.zone.parse('04.07.2010 23:59')) - create(:domain, id: 2, expire_time: Time.zone.parse('05.07.2010 00:00')) - create(:domain, id: 3, expire_time: Time.zone.parse('05.07.2010 00:01')) - end - - it 'returns expired domains' do - expect(described_class.expired.ids).to eq([1, 2]) - end - end - - describe '#registered?' do - let(:domain) { described_class.new } - - context 'when not expired' do - before :example do - expect(domain).to receive(:expired?).and_return(false) - end - - specify { expect(domain).to be_registered } - end - - context 'when expired' do - before :example do - expect(domain).to receive(:expired?).and_return(true) - end - - specify { expect(domain).to_not be_registered } - end - end - - describe '#expired?' do - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - end - - context 'when :expire_time is in the past' do - let(:domain) { described_class.new(expire_time: Time.zone.parse('04.07.2010 23:59')) } - - specify { expect(domain).to be_expired } - end - - context 'when :expire_time is now' do - let(:domain) { described_class.new(expire_time: Time.zone.parse('05.07.2010 00:00')) } - - specify { expect(domain).to be_expired } - end - - context 'when :expire_time is in the future' do - let(:domain) { described_class.new(expire_time: Time.zone.parse('05.07.2010 00:01')) } - - specify { expect(domain).to_not be_expired } - end - end -end diff --git a/spec/models/contact/contact_phone_spec.rb b/spec/models/contact/contact_phone_spec.rb deleted file mode 100644 index cc1ecbec0..000000000 --- a/spec/models/contact/contact_phone_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'rails_helper' -require 'lib/validators/e164' - -RSpec.describe Contact do - let(:contact) { described_class.new } - - describe 'phone', db: false do - it_behaves_like 'e164' do - let(:model) { contact } - let(:attribute) { :phone } - end - end - - describe 'phone validation', db: false do - it 'rejects absent' do - contact.phone = nil - contact.validate - expect(contact.errors).to be_added(:phone, :blank) - end - - it 'rejects all zeros in country code' do - contact.phone = '+000.1' - contact.validate - expect(contact.errors).to be_added(:phone, :invalid) - end - - it 'rejects all zeros in subscriber number' do - contact.phone = '+123.0' - contact.validate - expect(contact.errors).to be_added(:phone, :invalid) - end - end -end diff --git a/spec/models/contact/ident_spec.rb b/spec/models/contact/ident_spec.rb deleted file mode 100644 index d26f76d0f..000000000 --- a/spec/models/contact/ident_spec.rb +++ /dev/null @@ -1,227 +0,0 @@ -require 'active_model' -require 'lib/validators/iso31661_alpha2' -require 'lib/validators/iso8601' - -RSpec.describe Contact::Ident, db: false do - let(:ident) { described_class.new } - - describe 'country code' do - it_behaves_like 'iso31661_alpha2' do - let(:model) { ident } - let(:attribute) { :country_code } - end - end - - describe 'code validation' do - it 'rejects absent' do - ident.code = nil - ident.validate - expect(ident.errors).to be_added(:code, :blank) - end - - context 'when type is :birthday' do - let(:ident) { described_class.new(type: 'birthday') } - - it_behaves_like 'iso8601' do - let(:model) { ident } - let(:attribute) { :code } - end - end - - context 'when type is not :birthday' do - let(:ident) { described_class.new(type: 'priv') } - - it 'accepts any' do - ident.code = '%123456789%' - ident.validate - expect(ident.errors).to_not include(:code) - end - end - - context 'when country code is EE' do - context 'when type is :priv' do - let(:ident) { described_class.new(country_code: 'EE', type: 'priv') } - - it 'rejects invalid' do - ident.code = 'invalid' - ident.validate - expect(ident.errors).to be_added(:code, :invalid_national_id, country: 'Estonia') - end - - it 'accepts valid' do - ident.code = '47101010033' - ident.validate - expect(ident.errors).to_not be_added(:code, :invalid_national_id, country: 'Estonia') - end - end - - context 'when ident type is :org' do - let(:ident) { described_class.new(country_code: 'EE', type: 'org') } - - it 'rejects invalid' do - ident.code = '1' * 7 - ident.validate - expect(ident.errors).to be_added(:code, :invalid_reg_no, country: 'Estonia') - end - - it 'accepts valid length' do - ident.code = '1' * 8 - ident.validate - expect(ident.errors).to_not be_added(:code, :invalid_reg_no, country: 'Estonia') - end - end - end - - context 'when ident country code is not EE' do - let(:ident) { described_class.new(country_code: 'US') } - - it 'accepts any' do - ident.code = 'test-123456789' - ident.validate - expect(ident.errors).to_not include(:code) - end - end - - it 'translates :invalid_national_id error message' do - expect(ident.errors.generate_message(:code, :invalid_national_id, country: 'Germany')) - .to eq('does not conform to national identification number format of Germany') - end - - it 'translates :invalid_reg_no error message' do - expect(ident.errors.generate_message(:code, :invalid_reg_no, country: 'Germany')) - .to eq('does not conform to registration number format of Germany') - end - end - - describe 'type validation' do - before do - allow(described_class).to receive(:types).and_return(%w(valid)) - end - - it 'rejects absent' do - ident.type = nil - ident.validate - expect(ident.errors).to be_added(:type, :blank) - end - - it 'rejects invalid' do - ident.type = 'invalid' - ident.validate - expect(ident.errors).to be_added(:type, :inclusion) - end - - it 'accepts valid' do - ident.type = 'valid' - ident.validate - expect(ident.errors).to_not be_added(:type, :inclusion) - end - end - - describe 'country code validation' do - it 'rejects absent' do - ident.country_code = nil - ident.validate - expect(ident.errors).to be_added(:country_code, :blank) - end - end - - describe 'mismatch validation' do - let(:ident) { described_class.new(type: 'test', country_code: 'DE') } - - before do - mismatches = [Contact::Ident::MismatchValidator::Mismatch.new('test', Country.new('DE'))] - allow(Contact::Ident::MismatchValidator).to receive(:mismatches).and_return(mismatches) - end - - it 'rejects mismatched' do - ident.validate - expect(ident.errors).to be_added(:base, :mismatch, type: 'test', country: 'Germany') - end - - it 'accepts matched' do - ident.validate - expect(ident.errors).to_not be_added(:base, :mismatch, type: 'another-test', country: 'Germany') - end - - it 'translates :mismatch error message' do - expect(ident.errors.generate_message(:base, :mismatch, type: 'test', country: 'Germany')) - .to eq('Ident type "test" is invalid for Germany') - end - end - - describe '::types' do - it 'returns types' do - types = %w[ - org - priv - birthday - ] - - expect(described_class.types).to eq(types) - end - end - - describe '#birthday?' do - context 'when type is birthday' do - subject(:ident) { described_class.new(type: 'birthday') } - it { is_expected.to be_birthday } - end - - context 'when type is not birthday' do - subject(:ident) { described_class.new(type: 'priv') } - it { is_expected.to_not be_birthday } - end - end - - describe '#national_id?' do - context 'when type is priv' do - subject(:ident) { described_class.new(type: 'priv') } - it { is_expected.to be_national_id } - end - - context 'when type is not' do - subject(:ident) { described_class.new(type: 'org') } - it { is_expected.to_not be_national_id } - end - end - - describe '#reg_no?' do - context 'when type is birthday' do - subject(:ident) { described_class.new(type: 'org') } - it { is_expected.to be_reg_no } - end - - context 'when type is not birthday' do - subject(:ident) { described_class.new(type: 'priv') } - it { is_expected.to_not be_reg_no } - end - end - - describe '#country' do - let(:ident) { described_class.new(country_code: 'US') } - - it 'returns country' do - expect(ident.country).to eq(Country.new('US')) - end - end - - describe '#==' do - let(:ident) { described_class.new(code: 'test', type: 'test', country_code: 'US') } - - context 'when code, type and country code are the same' do - let(:another_ident) { described_class.new(code: 'test', type: 'test', country_code: 'US') } - - it 'returns true' do - expect(ident).to eq(another_ident) - end - end - - context 'when code, type and country code are not the same' do - let(:another_ident) { described_class.new(code: 'another-test', type: 'test', country_code: 'US') } - - it 'returns false' do - expect(ident).to_not eq(another_ident) - end - end - end -end diff --git a/spec/models/contact_spec.rb b/spec/models/contact_spec.rb deleted file mode 100644 index 52469b28f..000000000 --- a/spec/models/contact_spec.rb +++ /dev/null @@ -1,414 +0,0 @@ -require 'rails_helper' - -RSpec.describe Contact do - before :example do - create(:zone, origin: 'ee') - end - - context 'with invalid attribute' do - before :example do - @contact = Contact.new - end - - it 'should not have creator' do - @contact.creator.should == nil - end - - it 'should not have updater' do - @contact.updator.should == nil - end - - it 'should not accept long code' do - @contact.code = 'verylongcode' * 100 - @contact.valid? - @contact.errors[:code].should == ['Contact code is too long, max 100 characters'] - end - - it 'should not allow double status' do - contact = described_class.new(statuses: %w(ok ok)) - - contact.validate - - expect(contact.statuses).to eq(%w(ok)) - end - - it 'should have no related domain descriptions' do - @contact.related_domain_descriptions.should == {} - end - - it 'should fully validate email syntax for new records' do - @contact.email = 'not@correct' - @contact.valid? - @contact.errors[:email].should == ['Email is invalid'] - end - - it 'should have ident updated because the logic itself is dedicated for legacy contacts ' do - @contact.ident_updated_at.should_not == nil - end - end - - context 'with valid attributes' do - before :example do - @contact = create(:contact) - end - - it 'should not overwrite code' do - old_code = @contact.code - @contact.code = 'CID:REG1:should-not-overwrite-old-code-12345' - @contact.save.should == true - @contact.code.should == old_code - end - - it 'should have ok status by default' do - @contact.statuses.should == %w(ok) - end - - it 'should not remove ok status after save' do - @contact.statuses.should == %w(ok) - @contact.save - @contact.statuses.should == %w(ok) - end - - it 'should remove ok status when other non linked status present' do - contact = create(:contact) - contact.statuses = [Contact::SERVER_UPDATE_PROHIBITED] - contact.statuses.should == [Contact::SERVER_UPDATE_PROHIBITED] # temp test - contact.save - contact.statuses.should == [Contact::SERVER_UPDATE_PROHIBITED] - end - - it 'should have code' do - registrar = create(:registrar, code: 'registrarcode') - - contact = build(:contact, registrar: registrar, code: 'contactcode') - contact.generate_code - contact.save! - - expect(contact.code).to eq('REGISTRARCODE:CONTACTCODE') - end - - it 'should save status notes' do - contact = create(:contact) - contact.statuses = ['serverDeleteProhibited', 'serverUpdateProhibited'] - contact.status_notes_array = [nil, 'update manually turned off'] - contact.status_notes['serverDeleteProhibited'].should == nil - contact.status_notes['serverUpdateProhibited'].should == 'update manually turned off' - contact.status_notes['someotherstatus'].should == nil - end - - it 'should have ident already updated because the logic itself is only for legacy contacts' do - @contact.ident_updated_at.should_not == nil - end - - it 'should have not update ident updated at when initializing old contact' do - # creating a legacy contact - contact = create(:contact) - contact.update_column(:ident_updated_at, nil) - - Contact.find(contact.id).ident_updated_at.should == nil - end - - context 'as birthday' do - before do - @domain = create(:domain) - end - - it 'should have related domain descriptions hash' do - contact = @domain.registrant - contact.reload # somehow it registrant_domains are empty? - contact.related_domain_descriptions.should == { "#{@domain.name}" => [:registrant] } - end - - it 'should have related domain descriptions hash when find directly' do - contact = @domain.registrant - Contact.find(contact.id).related_domain_descriptions.should == { "#{@domain.name}" => [:registrant] } - end - - it 'should have related domain descriptions hash' do - contact = @domain.contacts.first - contact.related_domain_descriptions.should == { "#{@domain.name}" => [:admin] } - end - - it 'should fully validate email syntax for old records' do - old = @contact.email - @contact.email = 'legacy@support-not-correct' - @contact.valid? - @contact.errors[:email].should == ['Email is invalid'] - @contact.email = old - end - end - - context 'with callbacks' do - context 'after create' do - it 'should not allow to use same code' do - registrar = create(:registrar, code: 'FIXED') - - create(:contact, - registrar: registrar, - code: 'FIXED:new-code') - @contact = build(:contact, - registrar: registrar, - code: 'FIXED:new-code') - - @contact.validate - - expect(@contact.errors).to have_key(:code) - end - - it 'should allow supported code format' do - @contact = build(:contact, code: 'CID:REG1:12345', registrar: create(:registrar, code: 'FIXED')) - @contact.valid? - @contact.errors.full_messages.should == [] - end - - it 'should not allow unsupported characters in code' do - @contact = build(:contact, code: 'unsupported!ÄÖÜ~?', registrar: create(:registrar, code: 'FIXED')) - @contact.valid? - @contact.errors.full_messages.should == ['Code is invalid'] - end - - it 'should generate code if empty code is given' do - @contact = build(:contact, code: '') - @contact.generate_code - @contact.save! - @contact.code.should_not == '' - end - - it 'should not ignore empty spaces as code and generate new one' do - @contact = build(:contact, code: ' ', registrar: create(:registrar, code: 'FIXED')) - @contact.generate_code - @contact.valid?.should == true - @contact.code.should =~ /FIXED:..../ - end - end - end - end -end - -describe Contact, '.destroy_orphans' do - before do - create(:zone, origin: 'ee') - @contact_1 = create(:contact, code: 'asd12') - @contact_2 = create(:contact, code: 'asd13') - end - - it 'destroys orphans' do - Contact.find_orphans.count.should == 2 - Contact.destroy_orphans - Contact.find_orphans.count.should == 0 - end - - it 'should find one orphan' do - create(:domain, registrant: Registrant.find(@contact_1.id)) - Contact.find_orphans.count.should == 1 - Contact.find_orphans.last.should == @contact_2 - end - - it 'should find no orphans' do - create(:domain, registrant: Registrant.find(@contact_1.id), admin_contacts: [@contact_2]) - cc = Contact.count - Contact.find_orphans.count.should == 0 - Contact.destroy_orphans - Contact.count.should == cc - end -end - -RSpec.describe Contact do - it { is_expected.to alias_attribute(:kind, :ident_type) } - - describe '::emails' do - before :example do - expect(described_class).to receive(:pluck).with(:email).and_return('emails') - end - - it 'returns emails' do - expect(described_class.emails).to eq('emails') - end - end - - describe '::address_processing?' do - before do - Setting.address_processing = 'test' - end - - it 'returns setting value' do - expect(described_class.address_processing?).to eq('test') - end - end - - describe '::address_attribute_names', db: false do - it 'returns address attributes' do - attributes = %w( - city - street - zip - country_code - state - ) - expect(described_class.address_attribute_names).to eq(attributes) - end - end - - describe 'registrar validation', db: false do - let(:contact) { described_class.new } - - it 'rejects absent' do - contact.registrar = nil - contact.validate - expect(contact.errors).to have_key(:registrar) - end - end - - describe 'address validation', db: false do - let(:contact) { described_class.new } - subject(:errors) { contact.errors } - - required_attributes = %i(street city zip country_code) - - context 'when address processing is enabled' do - before do - allow(described_class).to receive(:address_processing?).and_return(true) - end - - required_attributes.each do |attr_name| - it "rejects absent #{attr_name}" do - contact.send("#{attr_name}=", nil) - contact.validate - expect(errors).to have_key(attr_name) - end - end - end - - context 'when address processing is disabled' do - before do - allow(described_class).to receive(:address_processing?).and_return(false) - end - - required_attributes.each do |attr_name| - it "accepts absent #{attr_name}" do - contact.send("#{attr_name}=", nil) - contact.validate - expect(errors).to_not have_key(attr_name) - end - end - end - end - - describe 'country code validation', db: false do - let(:contact) { described_class.new(country_code: 'test') } - - it 'rejects invalid' do - contact.country_code = 'invalid' - contact.validate - expect(contact.errors).to have_key(:country_code) - end - end - - describe 'identifier validation', db: false do - let(:contact) { described_class.new } - - it 'rejects invalid' do - ident = Contact::Ident.new - ident.validate - contact.identifier = ident - contact.validate - - expect(contact.errors).to be_added(:identifier, :invalid) - end - - it 'accepts valid' do - ident = Contact::Ident.new(code: 'test', type: 'priv', country_code: 'US') - ident.validate - contact.identifier = ident - contact.validate - - expect(contact.errors).to_not be_added(:identifier, :invalid) - end - end - - describe '#remove_address' do - let(:contact) { described_class.new(city: 'test', - street: 'test', - zip: 'test', - country_code: 'test', - state: 'test') - } - subject(:address_removed) { contact.attributes.slice(*described_class.address_attribute_names).compact.empty? } - - it 'removes address attributes' do - contact.remove_address - expect(address_removed).to be_truthy - end - end - - describe '#reg_no' do - subject(:reg_no) { contact.reg_no } - - context 'when contact is legal entity' do - let(:contact) { build_stubbed(:contact_legal_entity, ident: '1234') } - - specify { expect(reg_no).to eq('1234') } - end - - context 'when contact is private entity' do - let(:contact) { build_stubbed(:contact_private_entity, ident: '1234') } - - specify { expect(reg_no).to be_nil } - end - end - - describe '#id_code' do - context 'when contact is private entity' do - let(:contact) { build_stubbed(:contact_private_entity, ident: '1234') } - - specify { expect(contact.id_code).to eq('1234') } - end - - context 'when contact is legal entity' do - let(:contact) { build_stubbed(:contact_legal_entity, ident: '1234') } - - specify { expect(contact.id_code).to be_nil } - end - end - - describe '#ident_country' do - let(:contact) { described_class.new(ident_country_code: 'US') } - - it 'returns ident country' do - expect(contact.ident_country).to eq(Country.new('US')) - end - end - - describe '#domain_names_with_roles' do - let(:contact) { create(:registrant) } - subject(:domain_names) { contact.domain_names_with_roles } - - it 'returns associated domains with roles' do - domain = create(:domain, registrant: contact, name: 'test.com') - domain.admin_domain_contacts << create(:admin_domain_contact, contact: contact) - domain.tech_domain_contacts << create(:tech_domain_contact, contact: contact) - - contact.reload - - expect(domain_names).to eq({ 'test.com' => %i[registrant admin_domain_contact tech_domain_contact].to_set }) - end - - it 'returns unique roles' do - domain = create(:domain, name: 'test.com') - 2.times { domain.admin_domain_contacts << create(:admin_domain_contact, contact: contact) } - - contact.reload - - expect(domain_names).to eq({ 'test.com' => %i[admin_domain_contact].to_set }) - end - end - - it 'normalizes ident country code', db: false do - contact = described_class.new - - contact.ident_country_code = 'ee' - contact.validate - - expect(contact.ident_country_code).to eq('EE') - end -end diff --git a/spec/models/depp/domain_spec.rb b/spec/models/depp/domain_spec.rb deleted file mode 100644 index c780e6a00..000000000 --- a/spec/models/depp/domain_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'rails_helper' - -RSpec.describe Depp::Domain do - describe '::default_period', db: false, settings: false do - it 'returns default period' do - expect(described_class.default_period).to eq('1y') - end - end -end diff --git a/spec/models/dns/zone_spec.rb b/spec/models/dns/zone_spec.rb deleted file mode 100644 index a5d7861e6..000000000 --- a/spec/models/dns/zone_spec.rb +++ /dev/null @@ -1,102 +0,0 @@ -require 'rails_helper' - -RSpec.describe DNS::Zone do - describe '::origins' do - before :example do - expect(described_class).to receive(:pluck).with(:origin).and_return('origins') - end - - it 'returns origins' do - expect(described_class.origins).to eq('origins') - end - end - - describe 'validation' do - let(:zone) { described_class.new } - - required_attributes = %i[ - origin - ttl - refresh - retry - expire - minimum_ttl - email - master_nameserver - ] - - required_attributes.each do |attr_name| - it "rejects absent #{attr_name}", db: false do - zone.send("#{attr_name}=", nil) - zone.validate - expect(zone.errors).to have_key(attr_name) - end - end - - integer_attributes = %i[ - ttl - refresh - retry - expire - minimum_ttl - ] - - integer_attributes.each do |attr_name| - it "rejects non-integer #{attr_name}", db: false do - zone.send("#{attr_name}=", 'test') - zone.validate - expect(zone.errors).to have_key(attr_name) - end - - it "accepts integer #{attr_name}", db: false do - zone.send("#{attr_name}=", '1') - zone.validate - expect(zone.errors).to_not have_key(attr_name) - end - end - end - - describe '#used?', db: false do - let!(:zone) { described_class.new } - - context 'when domain uses zone' do - before :example do - allow(Domain).to receive(:uses_zone?).and_return(true) - end - - specify { expect(zone).to be_used } - end - - context 'when domain does not use zone' do - before :example do - allow(Domain).to receive(:uses_zone?).and_return(false) - end - - specify { expect(zone).to_not be_used } - end - end - - describe 'deletion', settings: false do - let!(:zone) { create(:zone) } - - context 'when zone is unused' do - before :example do - allow(zone).to receive(:used?).and_return(false) - end - - it 'is allowed' do - expect { zone.destroy }.to change { described_class.count }.from(1).to(0) - end - end - - context 'when zone is used' do - before :example do - allow(zone).to receive(:used?).and_return(true) - end - - it 'is disallowed' do - expect { zone.destroy }.to_not change { described_class.count } - end - end - end -end diff --git a/spec/models/dnskey_spec.rb b/spec/models/dnskey_spec.rb deleted file mode 100644 index d21968214..000000000 --- a/spec/models/dnskey_spec.rb +++ /dev/null @@ -1,102 +0,0 @@ -require 'rails_helper' - -describe Dnskey do - before :example do - Setting.ds_algorithm = 2 - Setting.ds_data_allowed = true - Setting.ds_data_with_key_allowed = true - Setting.key_data_allowed = true - - Setting.dnskeys_min_count = 0 - Setting.dnskeys_max_count = 9 - Setting.ns_min_count = 2 - Setting.ns_max_count = 11 - - Setting.transfer_wait_time = 0 - - Setting.admin_contacts_min_count = 1 - Setting.admin_contacts_max_count = 10 - Setting.tech_contacts_min_count = 0 - Setting.tech_contacts_max_count = 10 - - Setting.client_side_status_editing_enabled = true - - create(:zone, origin: 'ee') - end - - context 'with invalid attribute' do - before :example do - @dnskey = Dnskey.new - end - - it 'should not be valid' do - @dnskey.valid? - @dnskey.errors.full_messages.should match_array([ - ]) - end - end - - context 'with valid attributes' do - before :example do - @dnskey = create(:dnskey, - alg: 8, - flags: 257, - protocol: 3, - public_key: 'AwEAAaOf5+lz3ftsL+0CCvfJbhUF/NVsNh8BKo61oYs5fXVbuWDiH872 '\ - 'LC8uKDO92TJy7Q4TF9XMAKMMlf1GMAxlRspD749SOCTN00sqfWx1OMTu '\ - 'a28L1PerwHq7665oDJDKqR71btcGqyLKhe2QDvCdA0mENimF1NudX1BJ '\ - 'DDFi6oOZ0xE/0CuveB64I3ree7nCrwLwNs56kXC4LYoX3XdkOMKiJLL/ '\ - 'MAhcxXa60CdZLoRtTEW3z8/oBq4hEAYMCNclpbd6y/exScwBxFTdUfFk '\ - 'KsdNcmvai1lyk9vna0WQrtpYpHKMXvY9LFHaJxCOLR4umfeQ42RuTd82 lqfU6ClMeXs=', - ds_digest_type: 2) - end - - it 'should be valid' do - @dnskey.valid? - @dnskey.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @dnskey = create(:dnskey) - @dnskey.valid? - @dnskey.errors.full_messages.should match_array([]) - end - - it 'generates correct DS digest and DS key tag for ria.ee' do - d = create(:domain, name: 'ria.ee', dnskeys: [@dnskey]) - dk = d.dnskeys.last - - dk.generate_digest - dk.ds_digest.should == '0B62D1BC64EFD1EE652FB102BDF1011BF514CCD9A1A0CFB7472AEA3B01F38C92' - dk.ds_key_tag.should == '30607' - end - - it 'generates correct DS digest and DS key tag for emta.ee' do - d = create(:domain, name: 'emta.ee', dnskeys: [@dnskey]) - - dk = d.dnskeys.last - - pk = 'AwEAAfB9jK8rj/FAdE3t9bYXiTLpelwlgUyxbHEtvMvhdxs+yHv0h9fE '\ - '710u94LPAeVmXumT6SZPsoo+ALKdmTexkcU9DGQvb2+sPfModBKM/num '\ - 'rScUw1FBe3HwRa9SqQpgpnCjIt0kEVKHAQdLOP86YznSA9uHAg9TTJuT '\ - 'LkUtgtmwNAVFr6/mG+smE1v5NbxPccsFwVTA/T1IyaI4Z48VGCP2WNro '\ - 'R7P6vet1gWhssirnnVYnur8DwWuMJ89o/HjzXeiEGUB8k5SOX+//67FN '\ - 'm8Zs+1ObuAfY8xAHe0L5bxluEbh1T1ARp41QX77EMKVbkcSj7nuBeY8H '\ - 'KiN8HsTvmZyDbRAQQaAJi68qOXsUIoQcpn89PoNoc60F7WlueA6ExSGX '\ - 'KMWIH6nfLXFgidoZ6HxteyUUnZbHEdULjpAoCRuUDjjUnUgFS7eRANfw '\ - 'RCcu9aLziMDp4UU61zVjtmQ7xn3G2W2+2ycqn/vEl/yFyBmHZ+7stpoC '\ - 'd6NTZUn4/ellYSm9lx/vaXdPSinARpYMWtU79Hu/VRifaCQjYkBGAMwK '\ - 'DshX4yJPjza/bqo0XV4WHj1szDFHe0tLN7g1Ojwtf5FR0zyHU3FN9uUa '\ - 'y8a+dowd/fqOQA1jXR04g2PIfFYe0VudCEpmxSV9YDoqjghHeIKUX7Jn '\ - 'KiHL5gk404S5a/Bv' - - dk.public_key = pk - - dk.save - dk.ds_digest.should == 'D7045D3C2EF7332409A132D935C8E2834A2AAB769B35BC370FA68C9445398288' - dk.ds_key_tag.should == '31051' - - dk.public_key.should == pk - end - end -end diff --git a/spec/models/domain_contact_spec.rb b/spec/models/domain_contact_spec.rb deleted file mode 100644 index f5476c49b..000000000 --- a/spec/models/domain_contact_spec.rb +++ /dev/null @@ -1,95 +0,0 @@ -require 'rails_helper' - -describe DomainContact do - before :example do - @api_user = create(:domain_contact) - end - - context 'with invalid attribute' do - before :example do - @domain_contact = DomainContact.new - end - - it 'should not be valid' do - @domain_contact.valid? - @domain_contact.errors.full_messages.should match_array([ - "Contact Contact was not found" - ]) - end - - it 'should not have creator' do - @domain_contact.creator.should == nil - end - - it 'should not have updater' do - @domain_contact.updator.should == nil - end - - it 'should not have any name' do - @domain_contact.name.should == '' - end - end - - context 'with valid attributes' do - before :example do - @domain_contact = create(:domain_contact, type: 'TechDomainContact') - end - - it 'should be valid' do - @domain_contact.valid? - @domain_contact.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @domain_contact = create(:domain_contact) - @domain_contact.valid? - @domain_contact.errors.full_messages.should match_array([]) - end - - it 'should have Tech name' do - @domain_contact.name.should == 'Tech' - end - end - - context 'with valid attributes with tech domain contact' do - before :example do - @domain_contact = create(:tech_domain_contact) - end - - it 'should be valid' do - @domain_contact.valid? - @domain_contact.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @domain_contact = create(:tech_domain_contact) - @domain_contact.valid? - @domain_contact.errors.full_messages.should match_array([]) - end - - it 'should have Tech name' do - @domain_contact.name.should == 'Tech' - end - end - - context 'with valid attributes with admin domain contact' do - before :example do - @domain_contact = create(:admin_domain_contact) - end - - it 'should be valid' do - @domain_contact.valid? - @domain_contact.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @domain_contact = create(:admin_domain_contact) - @domain_contact.valid? - @domain_contact.errors.full_messages.should match_array([]) - end - - it 'should have Tech name' do - @domain_contact.name.should == 'Admin' - end - end -end diff --git a/spec/models/domain_cron_spec.rb b/spec/models/domain_cron_spec.rb deleted file mode 100644 index 0d25e375b..000000000 --- a/spec/models/domain_cron_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -require 'rails_helper' - -RSpec.describe DomainCron do - it 'should expire domains' do - create(:zone, origin: 'ee') - @domain = create(:domain) - - Setting.expire_warning_period = 1 - Setting.redemption_grace_period = 1 - - described_class.start_expire_period - @domain.statuses.include?(DomainStatus::EXPIRED).should == false - - old_valid_to = Time.zone.now - 10.days - @domain.valid_to = old_valid_to - @domain.save - - described_class.start_expire_period - @domain.reload - @domain.statuses.include?(DomainStatus::EXPIRED).should == true - - described_class.start_expire_period - @domain.reload - @domain.statuses.include?(DomainStatus::EXPIRED).should == true - end - - it 'should start redemption grace period' do - create(:zone, origin: 'ee') - @domain = create(:domain) - - old_valid_to = Time.zone.now - 10.days - @domain.valid_to = old_valid_to - @domain.statuses = [DomainStatus::EXPIRED] - @domain.outzone_at, @domain.delete_date = nil, nil - @domain.save - - described_class.start_expire_period - @domain.reload - @domain.statuses.include?(DomainStatus::EXPIRED).should == true - end -end diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb deleted file mode 100644 index ac424bcbe..000000000 --- a/spec/models/domain_spec.rb +++ /dev/null @@ -1,744 +0,0 @@ -require 'rails_helper' - -RSpec.describe Domain do - before :example do - Setting.ds_algorithm = 2 - Setting.ds_data_allowed = true - Setting.ds_data_with_key_allowed = true - Setting.key_data_allowed = true - - Setting.dnskeys_min_count = 0 - Setting.dnskeys_max_count = 9 - Setting.ns_min_count = 2 - Setting.ns_max_count = 11 - - Setting.transfer_wait_time = 0 - - Setting.admin_contacts_min_count = 1 - Setting.admin_contacts_max_count = 10 - Setting.tech_contacts_min_count = 0 - Setting.tech_contacts_max_count = 10 - - Setting.client_side_status_editing_enabled = true - - create(:zone, origin: 'ee') - create(:zone, origin: 'pri.ee') - create(:zone, origin: 'med.ee') - create(:zone, origin: 'fie.ee') - create(:zone, origin: 'com.ee') - end - - context 'with invalid attribute' do - before :example do - @domain = Domain.new - end - - it 'should not have whois body' do - @domain.whois_record.should == nil - end - - it 'should not be registrant update confirm ready' do - @domain.registrant_update_confirmable?('123').should == false - end - - it 'should not have pending update' do - @domain.pending_update?.should == false - end - - it 'should allow pending update' do - @domain.pending_update_prohibited?.should == false - end - - it 'should not have pending delete' do - @domain.pending_delete?.should == false - end - - it 'should allow pending delete' do - @domain.pending_delete_prohibited?.should == false - end - end - - context 'with valid attributes' do - before :example do - @domain = create(:domain) - end - - it 'should be valid' do - @domain.valid? - @domain.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @domain = create(:domain) - @domain.valid? - @domain.errors.full_messages.should match_array([]) - end - - it 'should validate uniqueness of tech contacts' do - same_contact = create(:contact, code: 'same_contact') - domain = create(:domain) - domain.tech_contacts << same_contact - domain.tech_contacts << same_contact - domain.valid? - domain.errors.full_messages.should match_array(["Tech domain contacts is invalid"]) - end - - it 'should validate uniqueness of tech contacts' do - same_contact = create(:contact, code: 'same_contact') - domain = create(:domain) - domain.admin_contacts << same_contact - domain.admin_contacts << same_contact - domain.valid? - domain.errors.full_messages.should match_array(["Admin domain contacts is invalid"]) - end - - it 'should have whois body by default' do - @domain.whois_record.present?.should == true - end - - it 'should have whois json by default' do - @domain.whois_record.json.present?.should == true - end - - it 'should not be registrant update confirm ready' do - @domain.registrant_update_confirmable?('123').should == false - end - - it 'should expire domains' do - Setting.expire_warning_period = 1 - Setting.redemption_grace_period = 1 - - DomainCron.start_expire_period - @domain.statuses.include?(DomainStatus::EXPIRED).should == false - - old_valid_to = Time.zone.now - 10.days - @domain.valid_to = old_valid_to - @domain.save - - DomainCron.start_expire_period - @domain.reload - @domain.statuses.include?(DomainStatus::EXPIRED).should == true - - DomainCron.start_expire_period - @domain.reload - @domain.statuses.include?(DomainStatus::EXPIRED).should == true - end - - it 'should start redemption grace period' do - old_valid_to = Time.zone.now - 10.days - @domain.valid_to = old_valid_to - @domain.statuses = [DomainStatus::EXPIRED] - @domain.outzone_at, @domain.delete_date = nil, nil - @domain.save - - DomainCron.start_expire_period - @domain.reload - @domain.statuses.include?(DomainStatus::EXPIRED).should == true - end - - context 'with time period settings' do - before :example do - @save_days_to_renew = Setting.days_to_renew_domain_before_expire - @save_warning_period = Setting.expire_warning_period - @save_grace_period = Setting.redemption_grace_period - end - - after :all do - Setting.days_to_renew_domain_before_expire = @save_days_to_renew - Setting.expire_warning_period = @save_warning_period - Setting.redemption_grace_period = @save_grace_period - end - - before :example do - @domain.valid? - end - - context 'with no renewal limit, renew anytime' do - before do - Setting.days_to_renew_domain_before_expire = 0 - end - - it 'should always renew with no policy' do - @domain.renewable?.should be true - end - - it 'should not allow to renew after force delete' do - Setting.redemption_grace_period = 1 - @domain.schedule_force_delete - @domain.renewable?.should be false - end - end - - context 'with renew policy' do - before :example do - @policy = 30 - Setting.days_to_renew_domain_before_expire = @policy - end - - it 'should not allow renew before policy' do - @domain.valid_to = Time.zone.now.beginning_of_day + @policy.days * 2 - @domain.renewable?.should be false - end - - context 'ready to renew' do - before { @domain.valid_to = Time.zone.now + (@policy - 2).days } - - it 'should allow renew' do - @domain.renewable?.should be true - end - - it 'should not allow to renew after force delete' do - Setting.redemption_grace_period = 1 - @domain.schedule_force_delete - @domain.renewable?.should be false - end - end - end - end - - it 'should set pending update' do - @domain.statuses = DomainStatus::OK # restore - @domain.save - @domain.pending_update?.should == false - - @domain.set_pending_update - @domain.pending_update?.should == true - @domain.statuses = DomainStatus::OK # restore - end - - it 'should not set pending update' do - @domain.statuses = DomainStatus::OK # restore - @domain.statuses << DomainStatus::CLIENT_UPDATE_PROHIBITED - @domain.save - - @domain.set_pending_update.should == nil # not updated - @domain.pending_update?.should == false - @domain.statuses = DomainStatus::OK # restore - end - - it 'should set pending delete' do - @domain.nameservers.build(attributes_for(:nameserver)) - @domain.nameservers.build(attributes_for(:nameserver)) - - @domain.statuses = DomainStatus::OK # restore - @domain.save - @domain.pending_delete?.should == false - - @domain.set_pending_delete - @domain.save - @domain.statuses.should == ['pendingDelete', 'serverHold'] - @domain.pending_delete?.should == true - @domain.statuses = ['serverManualInzone'] - @domain.save - @domain.set_pending_delete - @domain.statuses.sort.should == ['pendingDelete', 'serverManualInzone'].sort - @domain.statuses = DomainStatus::OK # restore - end - - it 'should not set pending delele' do - @domain.statuses = DomainStatus::OK # restore - @domain.pending_delete?.should == false - @domain.statuses << DomainStatus::CLIENT_DELETE_PROHIBITED - @domain.save - - @domain.set_pending_delete.should == nil - - @domain.pending_delete?.should == false - @domain.statuses = DomainStatus::OK # restore - end - - it 'should notify registrar' do - text = 'Registrant confirmed domain update: testpollmessage123.ee' - domain = create(:domain, name: 'testpollmessage123.ee') - domain.notify_registrar(:poll_pending_update_confirmed_by_registrant) - domain.registrar.notifications.first.text.should == text - end - - context 'about registrant update confirm' do - before :example do - @domain.registrant_verification_token = 123 - @domain.registrant_verification_asked_at = Time.zone.now - @domain.statuses << DomainStatus::PENDING_UPDATE - end - - it 'should be registrant update confirm ready' do - @domain.registrant_update_confirmable?('123').should == true - end - - it 'should not be registrant update confirm ready when token does not match' do - @domain.registrant_update_confirmable?('wrong-token').should == false - end - - it 'should not be registrant update confirm ready when no correct status' do - @domain.statuses = [] - @domain.registrant_update_confirmable?('123').should == false - end - end - - context 'about registrant update confirm when domain is invalid' do - before :example do - @domain.registrant_verification_token = 123 - @domain.registrant_verification_asked_at = Time.zone.now - @domain.statuses << DomainStatus::PENDING_UPDATE - end - - it 'should be registrant update confirm ready' do - @domain.registrant_update_confirmable?('123').should == true - end - - it 'should not be registrant update confirm ready when token does not match' do - @domain.registrant_update_confirmable?('wrong-token').should == false - end - - it 'should not be registrant update confirm ready when no correct status' do - @domain.statuses = [] - @domain.registrant_update_confirmable?('123').should == false - end - end - end - - it 'validates domain name' do - d = create(:domain) - expect(d.name).to_not be_nil - - invalid = [ - 'a.ee', "#{'a' * 64}.ee", 'ab.eu', 'test.ab.ee', '-test.ee', '-test-.ee', - 'test-.ee', 'te--st.ee', 'õ.pri.ee', 'www.ab.ee', 'test.eu', ' .ee', 'a b.ee', - 'Ž .ee', 'test.edu.ee' - ] - - invalid.each do |x| - expect(build(:domain, name: x).valid?).to be false - end - - valid = [ - 'ab.ee', "#{'a' * 63}.ee", 'te-s-t.ee', 'jäääär.ee', 'päike.pri.ee', - 'õigus.com.ee', 'õäöü.fie.ee', 'test.med.ee', 'žä.ee', ' ŽŠ.ee ' - ] - - valid.each do |x| - expect(build(:domain, name: x).valid?).to be true - end - - invalid_punycode = ['xn--geaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-4we.pri.ee'] - - invalid_punycode.each do |x| - expect(build(:domain, name: x).valid?).to be false - end - - valid_punycode = ['xn--ge-uia.pri.ee', 'xn--geaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-9te.pri.ee'] - - valid_punycode.each do |x| - expect(build(:domain, name: x).valid?).to be true - end - end - - it 'should not create zone origin domain' do - d = build(:domain, name: 'ee') - d.save.should == false - expect(d.errors.full_messages).to include('Data management policy violation: Domain name is blocked [name]') - - d = build(:domain, name: 'bla') - d.save.should == false - expect(d.errors.full_messages).to include('Domain name Domain name is invalid') - end - - it 'downcases domain' do - d = Domain.new(name: 'TesT.Ee') - expect(d.name).to eq('test.ee') - expect(d.name_puny).to eq('test.ee') - expect(d.name_dirty).to eq('test.ee') - end - - it 'should be valid when name length is exatly 63 in characters' do - d = create(:domain, name: "#{'a' * 63}.ee") - d.valid? - d.errors.full_messages.should == [] - end - - it 'should not be valid when name length is longer than 63 characters' do - d = build(:domain, name: "#{'a' * 64}.ee") - d.valid? - d.errors.full_messages.should match_array([ - "Domain name Domain name is invalid", - "Puny label Domain name is too long (maximum is 63 characters)" - ]) - end - - it 'should not be valid when name length is longer than 63 characters' do - d = build(:domain, - name: "xn--4caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.ee") - d.valid? - d.errors.full_messages.should match_array([ - "Domain name Domain name is invalid", - "Puny label Domain name is too long (maximum is 63 characters)" - ]) - end - - it 'should be valid when name length is 63 characters' do - d = build(:domain, - name: "õäöüšžõäöüšžõäöüšžõäöüšžõäöüšžõäöüšžõäöüšžab123.pri.ee") - d.valid? - d.errors.full_messages.should match_array([ - ]) - end - - it 'should not be valid when name length is longer than 63 punycode characters' do - d = build(:domain, name: "#{'ä' * 63}.ee") - d.valid? - d.errors.full_messages.should == [ - "Puny label Domain name is too long (maximum is 63 characters)" - ] - end - - it 'should not be valid when name length is longer than 63 punycode characters' do - d = build(:domain, name: "#{'ä' * 64}.ee") - d.valid? - d.errors.full_messages.should match_array([ - "Domain name Domain name is invalid", - "Puny label Domain name is too long (maximum is 63 characters)" - ]) - end - - it 'should not be valid when name length is longer than 63 punycode characters' do - d = build(:domain, name: "#{'ä' * 63}.pri.ee") - d.valid? - d.errors.full_messages.should match_array([ - "Puny label Domain name is too long (maximum is 63 characters)" - ]) - end - - it 'should be valid when punycode name length is not longer than 63' do - d = build(:domain, name: "#{'ä' * 53}.pri.ee") - d.valid? - d.errors.full_messages.should == [] - end - - it 'should be valid when punycode name length is not longer than 63' do - d = build(:domain, name: "#{'ä' * 57}.ee") - d.valid? - d.errors.full_messages.should == [] - end - - it 'should not be valid when name length is one pynicode' do - d = build(:domain, name: "xn--4ca.ee") - d.valid? - d.errors.full_messages.should == ["Domain name Domain name is invalid"] - end - - it 'should not be valid with at character' do - d = build(:domain, name: 'dass@sf.ee') - d.valid? - d.errors.full_messages.should == ["Domain name Domain name is invalid"] - end - - it 'should not be valid with invalid characters' do - d = build(:domain, name: '@ba)s(?ä_:-df.ee') - d.valid? - d.errors.full_messages.should == ["Domain name Domain name is invalid"] - end - - it 'should be valid when name length is two pynicodes' do - d = build(:domain, name: "xn--4caa.ee") - d.valid? - d.errors.full_messages.should == [] - end - - it 'should be valid when name length is two pynicodes' do - d = build(:domain, name: "xn--4ca0b.ee") - d.valid? - d.errors.full_messages.should == [] - end - - it 'does not create a reserved domain' do - create(:reserved_domain, name: 'test.ee') - - domain = build(:domain, name: 'test.ee') - domain.validate - - expect(domain.errors[:base]).to include('Required parameter missing; reserved>pw element required for reserved domains') - end - - it 'manages statuses automatically' do - d = build(:domain) - - d.nameservers.build(attributes_for(:nameserver)) - d.nameservers.build(attributes_for(:nameserver)) - - d.save! - - expect(d.statuses.count).to eq(1) - expect(d.statuses.first).to eq(DomainStatus::OK) - - d.period = 2 - d.save - - d.reload - expect(d.statuses.count).to eq(1) - expect(d.statuses.first).to eq(DomainStatus::OK) - - d.statuses << DomainStatus::CLIENT_DELETE_PROHIBITED - d.save - - d.reload - - expect(d.statuses.count).to eq(1) - expect(d.statuses.first).to eq(DomainStatus::CLIENT_DELETE_PROHIBITED) - end -end - -RSpec.describe Domain do - it { is_expected.to alias_attribute(:on_hold_time, :outzone_at) } - it { is_expected.to alias_attribute(:outzone_time, :outzone_at) } - - describe 'registrar validation', db: false do - let(:domain) { described_class.new } - - it 'rejects absent' do - domain.registrar = nil - domain.validate - expect(domain.errors).to have_key(:registrar) - end - end - - describe 'registrant validation', db: false do - let(:domain) { described_class.new } - - it 'rejects absent' do - domain.registrant = nil - domain.validate - expect(domain.errors).to have_key(:registrant) - end - end - - describe 'period validation', db: false do - let(:domain) { described_class.new } - - it 'rejects absent' do - domain.period = nil - domain.validate - expect(domain.errors).to have_key(:period) - end - - it 'rejects fractional' do - domain.period = 1.1 - domain.validate - expect(domain.errors).to have_key(:period) - end - - it 'accepts integer' do - domain.period = 1 - domain.validate - expect(domain.errors).to_not have_key(:period) - end - end - - describe 'admin contact count validation' do - let(:domain) { described_class.new } - - before :example do - Setting.admin_contacts_min_count = 1 - Setting.admin_contacts_max_count = 2 - end - - it 'rejects less than min' do - domain.validate - expect(domain.errors).to have_key(:admin_domain_contacts) - end - - it 'rejects more than max' do - (Setting.admin_contacts_max_count + 1).times { domain.admin_domain_contacts << build(:admin_domain_contact) } - domain.validate - expect(domain.errors).to have_key(:admin_domain_contacts) - end - - it 'accepts min' do - Setting.admin_contacts_min_count.times { domain.admin_domain_contacts << build(:admin_domain_contact) } - domain.validate - expect(domain.errors).to_not have_key(:admin_domain_contacts) - end - - it 'accepts max' do - Setting.admin_contacts_max_count.times { domain.admin_domain_contacts << build(:admin_domain_contact) } - domain.validate - expect(domain.errors).to_not have_key(:admin_domain_contacts) - end - end - - describe 'nameserver validation', db: true do - let(:domain) { described_class.new(name: 'whatever.test') } - - it 'rejects less than min' do - Setting.ns_min_count = 2 - domain.nameservers.build(attributes_for(:nameserver)) - domain.validate - expect(domain.errors).to have_key(:nameservers) - end - - it 'rejects more than max' do - Setting.ns_min_count = 1 - Setting.ns_max_count = 1 - domain.nameservers.build(attributes_for(:nameserver)) - domain.nameservers.build(attributes_for(:nameserver)) - domain.validate - expect(domain.errors).to have_key(:nameservers) - end - - it 'accepts min' do - Setting.ns_min_count = 1 - domain.nameservers.build(attributes_for(:nameserver)) - domain.validate - expect(domain.errors).to_not have_key(:nameservers) - end - - it 'accepts max' do - Setting.ns_min_count = 1 - Setting.ns_max_count = 2 - domain.nameservers.build(attributes_for(:nameserver)) - domain.nameservers.build(attributes_for(:nameserver)) - domain.validate - expect(domain.errors).to_not have_key(:nameservers) - end - - context 'when nameserver is optional' do - before :example do - allow(Domain).to receive(:nameserver_required?).and_return(false) - end - - it 'rejects less than min' do - Setting.ns_min_count = 2 - domain.nameservers.build(attributes_for(:nameserver)) - domain.validate - expect(domain.errors).to have_key(:nameservers) - end - - it 'accepts absent' do - domain.validate - expect(domain.errors).to_not have_key(:nameservers) - end - end - - context 'when nameserver is required' do - before :example do - allow(Domain).to receive(:nameserver_required?).and_return(true) - end - - it 'rejects absent' do - domain.validate - expect(domain.errors).to have_key(:nameservers) - end - end - end - - describe '::nameserver_required?' do - before do - Setting.nameserver_required = 'test' - end - - it 'returns setting value' do - expect(described_class.nameserver_required?).to eq('test') - end - end - - describe '::expire_warning_period', db: true do - before :example do - Setting.expire_warning_period = 1 - end - - it 'returns expire warning period' do - expect(described_class.expire_warning_period).to eq(1.day) - end - end - - describe '::redemption_grace_period', db: true do - before :example do - Setting.redemption_grace_period = 1 - end - - it 'returns redemption grace period' do - expect(described_class.redemption_grace_period).to eq(1.day) - end - end - - describe '#set_server_hold' do - let(:domain) { described_class.new } - - before :example do - travel_to Time.zone.parse('05.07.2010') - domain.set_server_hold - end - - it 'sets corresponding status' do - expect(domain.statuses).to include(DomainStatus::SERVER_HOLD) - end - - it 'sets :outzone_at to now' do - expect(domain.outzone_at).to eq(Time.zone.parse('05.07.2010')) - end - end - - describe '#set_graceful_expired' do - let(:domain) { described_class.new } - - before :example do - expect(described_class).to receive(:expire_warning_period).and_return(1.day) - expect(described_class).to receive(:redemption_grace_period).and_return(2.days) - expect(domain).to receive(:valid_to).and_return(Time.zone.parse('05.07.2010 10:30')) - - domain.set_graceful_expired - end - - it 'sets :outzone_at to :valid_to + expire warning period' do - expect(domain.outzone_at).to eq(Time.zone.parse('06.07.2010 10:30')) - end - - it 'sets :delete_date to :outzone_at + redemption grace period' do - expect(domain.delete_date).to eq(Date.parse('08.07.2010')) - end - end - - describe '::outzone_candidates', db: true do - before :example do - travel_to Time.zone.parse('05.07.2010 00:00') - - create(:zone, origin: 'ee') - - create(:domain, id: 1, outzone_time: Time.zone.parse('04.07.2010 23:59')) - create(:domain, id: 2, outzone_time: Time.zone.parse('05.07.2010 00:00')) - create(:domain, id: 3, outzone_time: Time.zone.parse('05.07.2010 00:01')) - end - - it 'returns domains with outzone time in the past' do - expect(described_class.outzone_candidates.ids).to eq([1]) - end - end - - describe '::uses_zone?', db: true do - let!(:zone) { create(:zone, origin: 'domain.tld') } - - context 'when zone is used' do - let!(:domain) { create(:domain, name: 'test.domain.tld') } - specify { expect(described_class.uses_zone?(zone)).to be true } - end - - context 'when zone is unused' do - specify { expect(described_class.uses_zone?(zone)).to be false } - end - end - - describe '#new_registrant_email' do - let(:domain) { described_class.new(pending_json: { new_registrant_email: 'test@test.com' }) } - - it 'returns new registrant\'s email' do - expect(domain.new_registrant_email).to eq('test@test.com') - end - end - - describe '#new_registrant_id' do - let(:domain) { described_class.new(pending_json: { new_registrant_id: 1 }) } - - it 'returns new registrant\'s id' do - expect(domain.new_registrant_id).to eq(1) - end - end -end diff --git a/spec/models/epp/domain_spec.rb b/spec/models/epp/domain_spec.rb deleted file mode 100644 index 402305527..000000000 --- a/spec/models/epp/domain_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'rails_helper' - -RSpec.describe Epp::Domain, db: false do - describe '::new_from_epp' do - let(:domain_blueprint) { described_class.new } - subject(:domain) { described_class.new_from_epp(nil, nil) } - - before :example do - travel_to Time.zone.parse('05.07.2010') - - domain_blueprint.period = 1 - domain_blueprint.period_unit = 'y' - - expect(described_class).to receive(:new).and_return(domain_blueprint) - expect(domain_blueprint).to receive(:attrs_from).and_return({}) - expect(domain_blueprint).to receive(:attach_default_contacts) - end - - describe 'domain' do - it 'has :registered_at set to now' do - expect(domain.registered_at).to eq(Time.zone.parse('05.07.2010')) - end - - it 'has :valid_to set to the beginning of next day after :registered_at' do - expect(domain.valid_to).to eq(Time.zone.parse('06.07.2011 00:00')) - end - end - end -end diff --git a/spec/models/epp_contact_spec.rb b/spec/models/epp_contact_spec.rb deleted file mode 100644 index 401a63cc6..000000000 --- a/spec/models/epp_contact_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -require 'rails_helper' - -describe Epp::Contact, '.check_availability' do - before do - create(:contact, code: 'asd12') - create(:contact, code: 'asd13') - end - - it 'should return array if argument is string' do - response = Epp::Contact.check_availability('asd12') - response.class.should == Array - response.length.should == 1 - end - - it 'should return in_use and available codes' do - code = Contact.first.code - code_ = Contact.last.code - - response = Epp::Contact.check_availability([code, code_, 'asd14']) - response.class.should == Array - response.length.should == 3 - - response[0][:avail].should == 0 - response[0][:code].should == code - - response[1][:avail].should == 0 - response[1][:code].should == code_ - - response[2][:avail].should == 1 - response[2][:code].should == 'asd14' - end -end diff --git a/spec/models/keyrelay_spec.rb b/spec/models/keyrelay_spec.rb deleted file mode 100644 index fc388dfed..000000000 --- a/spec/models/keyrelay_spec.rb +++ /dev/null @@ -1,77 +0,0 @@ -require 'rails_helper' - -describe Keyrelay do - before :example do - Setting.ds_algorithm = 2 - Setting.ds_data_allowed = true - Setting.ds_data_with_key_allowed = true - Setting.key_data_allowed = true - - Setting.dnskeys_min_count = 0 - Setting.dnskeys_max_count = 9 - Setting.ns_min_count = 2 - Setting.ns_max_count = 11 - - Setting.transfer_wait_time = 0 - - Setting.admin_contacts_min_count = 1 - Setting.admin_contacts_max_count = 10 - Setting.tech_contacts_min_count = 0 - Setting.tech_contacts_max_count = 10 - - Setting.client_side_status_editing_enabled = true - - create(:zone, origin: 'ee') - end - - context 'with invalid attribute' do - before :example do - @keyrelay = Keyrelay.new - end - - it 'should not be valid' do - @keyrelay.valid? - @keyrelay.errors.full_messages.should match_array([ - "Auth info pw Password is missing", - "Domain is missing", - "Key data alg Algorithm is missing", - "Key data flags Flag is missing", - "Key data protocol Protocol is missing", - "Key data public key Public key is missing", - "Only one parameter allowed: relative or absolute" - ]) - end - end - - context 'with valid attributes' do - before :example do - @keyrelay = create(:keyrelay) - end - - it 'should be valid' do - @keyrelay.valid? - @keyrelay.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @keyrelay = create(:keyrelay) - @keyrelay.valid? - @keyrelay.errors.full_messages.should match_array([]) - end - - it 'is in pending status' do - @keyrelay.status.should == 'pending' - end - end - - it 'is in expired status' do - kr = create(:keyrelay, pa_date: Time.zone.now - 2.weeks) - expect(kr.status).to eq('expired') - end - - it 'does not accept invalid relative expiry' do - kr = build(:keyrelay, expiry_relative: 'adf') - expect(kr.save).to eq(false) - expect(kr.errors[:expiry_relative].first).to eq('Expiry relative must be compatible to ISO 8601') - end -end diff --git a/spec/models/legal_document_spec.rb b/spec/models/legal_document_spec.rb deleted file mode 100644 index 03c83bc89..000000000 --- a/spec/models/legal_document_spec.rb +++ /dev/null @@ -1,68 +0,0 @@ -require 'rails_helper' - -describe LegalDocument do - context 'tasks' do - it 'make files uniq' do - create(:zone, origin: 'ee') - create(:zone, origin: 'pri.ee') - create(:zone, origin: 'med.ee') - create(:zone, origin: 'fie.ee') - create(:zone, origin: 'com.ee') - LegalDocument.explicitly_write_file = true - PaperTrail.enabled = true - - domain = create(:domain) - domain2 = create(:domain) - legals = [] - legals << original = domain.legal_documents.create!(body: Base64.encode64('S' * 4.kilobytes)) - legals << copy = domain.legal_documents.create!(body: Base64.encode64('S' * 4.kilobytes)) - legals << skipping_as_different_domain = domain2.legal_documents.create!(body: Base64.encode64('S' * 4.kilobytes)) - legals << skipping_as_different = domain.legal_documents.create!(body: Base64.encode64('D' * 4.kilobytes)) - legals << skipping_as_no_checksum = domain.legal_documents.create!(checksum: nil, body: Base64.encode64('S' * 4.kilobytes)) - legals << skipping_as_no_checksum2 = domain.legal_documents.create!(checksum: "", body: Base64.encode64('S' * 4.kilobytes)) - legals << registrant_copy = domain.registrant.legal_documents.create!(body: Base64.encode64('S' * 4.kilobytes)) - legals << registrant_skipping_as_different = domain.registrant.legal_documents.create!(body: Base64.encode64('Q' * 4.kilobytes)) - legals << tech_copy = domain.tech_contacts.first.legal_documents.create!(body: Base64.encode64('S' * 4.kilobytes)) - legals << tech_skipping_as_different = domain.tech_contacts.first.legal_documents.create!(body: Base64.encode64('W' * 4.kilobytes)) - legals << admin_copy = domain.admin_contacts.first.legal_documents.create!(body: Base64.encode64('S' * 4.kilobytes)) - legals << admin_skipping_as_different = domain.admin_contacts.first.legal_documents.create!(body: Base64.encode64('E' * 4.kilobytes)) - legals << new_second_tech_contact = domain2.tech_contacts.first.legal_documents.create!(body: Base64.encode64('S' * 4.kilobytes)) - domain.tech_contacts << domain2.tech_contacts.first - - - # writing nesting to history - domain.update(updated_at: Time.now) - domain2.update(updated_at: Time.now) - domain.reload - - skipping_as_no_checksum.update_columns(checksum: nil) - skipping_as_no_checksum2.update_columns(checksum: "") - skipping_as_no_checksum.reload - skipping_as_no_checksum2.reload - skipping_as_no_checksum.path.should_not == skipping_as_no_checksum2.path - - skipping_as_no_checksum.checksum.should == nil - skipping_as_no_checksum2.checksum.should == "" - original.checksum.should == copy.checksum - original.checksum.should_not == skipping_as_different.checksum - domain.tech_contacts.count.should == 2 - - LegalDocument.remove_duplicates - LegalDocument.remove_duplicates - LegalDocument.remove_duplicates - legals.each(&:reload) - - skipping_as_no_checksum.path.should_not be(skipping_as_no_checksum2.path) - original.path.should_not == skipping_as_different.path - original.path.should_not == skipping_as_different_domain.path - original.path.should_not == registrant_skipping_as_different.path - original.path.should_not == tech_skipping_as_different.path - original.path.should_not == admin_skipping_as_different.path - original.path.should == copy.path - original.path.should == registrant_copy.path - - skipping_as_different_domain.path.should_not == new_second_tech_contact.path - end - end - -end diff --git a/spec/models/registrant_verification_spec.rb b/spec/models/registrant_verification_spec.rb deleted file mode 100644 index 6438fda84..000000000 --- a/spec/models/registrant_verification_spec.rb +++ /dev/null @@ -1,59 +0,0 @@ -require 'rails_helper' - -describe RegistrantVerification do - before :example do - Setting.ds_algorithm = 2 - Setting.ds_data_allowed = true - Setting.ds_data_with_key_allowed = true - Setting.key_data_allowed = true - - Setting.dnskeys_min_count = 0 - Setting.dnskeys_max_count = 9 - Setting.ns_min_count = 2 - Setting.ns_max_count = 11 - - Setting.transfer_wait_time = 0 - - Setting.admin_contacts_min_count = 1 - Setting.admin_contacts_max_count = 10 - Setting.tech_contacts_min_count = 0 - Setting.tech_contacts_max_count = 10 - - Setting.client_side_status_editing_enabled = true - - create(:zone, origin: 'ee') - end - context 'with invalid attribute' do - before :example do - @registrant_verification = RegistrantVerification.new - end - - it 'should not be valid' do - @registrant_verification.valid? - @registrant_verification.errors.full_messages.should match_array([ - "Domain name is missing", - "Verification token is missing", - "Action is missing", - "Action type is missing", - "Domain is missing" - ]) - end - end - - context 'with valid attributes' do - before :example do - @registrant_verification = create(:registrant_verification) - end - - it 'should be valid' do - @registrant_verification.valid? - @registrant_verification.errors.full_messages.should match_array([]) - end - - it 'should be valid twice' do - @registrant_verification = create(:registrant_verification) - @registrant_verification.valid? - @registrant_verification.errors.full_messages.should match_array([]) - end - end -end diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb deleted file mode 100644 index fd392c6d2..000000000 --- a/spec/models/setting_spec.rb +++ /dev/null @@ -1,60 +0,0 @@ -require 'rails_helper' - -RSpec.describe Setting do - describe 'integer_settings', db: false do - it 'returns integer settings' do - settings = %i[ - admin_contacts_min_count - admin_contacts_max_count - tech_contacts_min_count - tech_contacts_max_count - orphans_contacts_in_months - ds_digest_type - dnskeys_min_count - dnskeys_max_count - ns_min_count - ns_max_count - transfer_wait_time - invoice_number_min - invoice_number_max - days_to_keep_invoices_active - days_to_keep_overdue_invoices_active - days_to_renew_domain_before_expire - expire_warning_period - redemption_grace_period - expire_pending_confirmation - ] - - expect(described_class.integer_settings).to eq(settings) - end - end - - describe 'float_settings', db: false do - it 'returns float settings' do - settings = %i[ - registry_vat_prc - minimum_deposit - ] - - expect(described_class.float_settings).to eq(settings) - end - end - - describe 'boolean_settings', db: false do - it 'returns boolean settings' do - settings = %i[ - ds_data_allowed - key_data_allowed - client_side_status_editing_enabled - registrar_ip_whitelist_enabled - api_ip_whitelist_enabled - request_confrimation_on_registrant_change_enabled - request_confirmation_on_domain_deletion_enabled - nameserver_required - address_processing - ] - - expect(described_class.boolean_settings).to eq(settings) - end - end -end diff --git a/spec/models/white_ip_spec.rb b/spec/models/white_ip_spec.rb deleted file mode 100644 index fa28991f1..000000000 --- a/spec/models/white_ip_spec.rb +++ /dev/null @@ -1,53 +0,0 @@ -require 'rails_helper' - -describe WhiteIp do - context 'with invalid attribute' do - before :all do - @white_ip = WhiteIp.new - end - - it 'is not valid' do - @white_ip.valid? - @white_ip.errors.full_messages.should match_array([ - 'IPv4 or IPv6 must be present' - ]) - end - - it 'returns an error with invalid ips' do - @white_ip.ipv4 = 'bla' - @white_ip.ipv6 = 'bla' - - @white_ip.valid? - @white_ip.errors[:ipv4].should == ['is invalid'] - @white_ip.errors[:ipv6].should == ['is invalid'] - end - end - - describe '#include_ip?' do - context 'when given ip v4 exists' do - before do - create(:white_ip, ipv4: '127.0.0.1') - end - - specify do - expect(described_class.include_ip?('127.0.0.1')).to be true - end - end - - context 'when given ip v6 exists' do - before do - create(:white_ip, ipv6: '::1') - end - - specify do - expect(described_class.include_ip?('::1')).to be true - end - end - - context 'when given ip does not exists', db: false do - specify do - expect(described_class.include_ip?('127.0.0.1')).to be false - end - end - end -end diff --git a/spec/presenters/domain_presenter_spec.rb b/spec/presenters/domain_presenter_spec.rb deleted file mode 100644 index 2a1b1bc45..000000000 --- a/spec/presenters/domain_presenter_spec.rb +++ /dev/null @@ -1,98 +0,0 @@ -require 'rails_helper' - -RSpec.describe DomainPresenter do - let(:presenter) { described_class.new(domain: domain, view: view) } - - describe '#expire_time' do - let(:domain) { instance_double(Domain, expire_time: Time.zone.parse('05.07.2010')) } - - it 'returns localized time' do - expect(view).to receive(:l).with(Time.zone.parse('05.07.2010')).and_return('expire time') - expect(presenter.expire_time).to eq('expire time') - end - end - - describe '#expire_date' do - let(:domain) { instance_double(Domain, expire_time: Time.zone.parse('05.07.2010')) } - - it 'returns localized date' do - expect(view).to receive(:l).with(Time.zone.parse('05.07.2010'), format: :date).and_return('expire date') - expect(presenter.expire_date).to eq('expire date') - end - end - - describe '#on_hold_date' do - subject(:on_hold_date) { presenter.on_hold_date } - - context 'when present' do - let(:domain) { instance_double(Domain, on_hold_time: '05.07.2010') } - - it 'returns localized date' do - expect(view).to receive(:l).with('05.07.2010', format: :date).and_return('on hold date') - expect(on_hold_date).to eq('on hold date') - end - end - - context 'when absent' do - let(:domain) { instance_double(Domain, on_hold_time: nil) } - - specify { expect(on_hold_date).to be_nil } - end - end - - describe '#delete_date' do - subject(:delete_date) { presenter.delete_date } - - context 'when present' do - let(:domain) { instance_double(Domain, delete_date: '05.07.2010') } - - it 'returns localized date' do - expect(view).to receive(:l).with('05.07.2010').and_return('delete date') - expect(delete_date).to eq('delete date') - end - end - - context 'when absent' do - let(:domain) { instance_double(Domain, delete_date: nil) } - - specify { expect(delete_date).to be_nil } - end - end - - describe '#force_delete_date' do - subject(:force_delete_date) { presenter.force_delete_date } - - context 'when present' do - let(:domain) { instance_double(Domain, force_delete_date: '05.07.2010', force_delete_scheduled?: true) } - - it 'returns localized date' do - expect(view).to receive(:l).with('05.07.2010').and_return('delete date') - expect(force_delete_date).to eq('delete date') - end - end - - context 'when absent' do - let(:domain) { instance_double(Domain, force_delete_date: nil, force_delete_scheduled?: false) } - - specify { expect(force_delete_date).to be_nil } - end - end - - domain_delegatable_attributes = %i( - name - transfer_code - registrant - registrant_id - ) - - domain_delegatable_attributes.each do |attribute_name| - describe "##{attribute_name}" do - let(:domain) { instance_spy(Domain) } - - it 'delegates to domain' do - presenter.send(attribute_name) - expect(domain).to have_received(attribute_name) - end - end - end -end diff --git a/spec/presenters/registrant_presenter_spec.rb b/spec/presenters/registrant_presenter_spec.rb deleted file mode 100644 index 224a0504f..000000000 --- a/spec/presenters/registrant_presenter_spec.rb +++ /dev/null @@ -1,81 +0,0 @@ -require 'rails_helper' - -RSpec.describe RegistrantPresenter do - let(:registrant) { instance_double(Registrant) } - let(:presenter) { described_class.new(registrant: registrant, view: view) } - - describe '#country' do - let(:country) { instance_double(Country) } - - before :example do - allow(registrant).to receive(:country).and_return(country) - end - - it 'returns country name in current locale by default' do - expect(country).to receive(:translation).with(I18n.locale).and_return('test country') - expect(presenter.country).to eq('test country') - end - - it 'returns country name in given locale' do - expect(country).to receive(:translation).with(:de).and_return('test country') - expect(presenter.country(locale: :de)).to eq('test country') - end - end - - describe '#ident_country' do - let(:ident_country) { instance_double(Country) } - - before :example do - allow(registrant).to receive(:ident_country).and_return(ident_country) - end - - it 'returns country name in current locale by default' do - expect(ident_country).to receive(:translation).with(I18n.locale).and_return('test country') - expect(presenter.ident_country).to eq('test country') - end - - it 'returns country name in given locale' do - expect(ident_country).to receive(:translation).with(:de).and_return('test country') - expect(presenter.ident_country(locale: :de)).to eq('test country') - end - end - - describe '#domain_names_with_roles' do - before :example do - roles = %i[registrant admin_domain_contact tech_domain_contact] - allow(registrant).to receive(:domain_names_with_roles) - .and_return({ 'test.com' => roles, - 'test.org' => %i[registrant] }) - end - - it 'returns domain names with unique roles in current locale by default' do - text = "test.com (Registrant, Administrative contact, Technical contact)" \ - "\ntest.org (Registrant)" - expect(presenter.domain_names_with_roles).to eq(text) - end - end - - registrant_delegatable_attributes = %i( - name - ident - phone - email - priv? - street - city - state - zip - id_code - reg_no - linked? - ) - - registrant_delegatable_attributes.each do |attr_name| - describe "##{attr_name}" do - it 'delegates to registrant' do - expect(registrant).to receive(attr_name).and_return('test') - expect(presenter.send(attr_name)).to eq('test') - end - end - end -end diff --git a/spec/presenters/registrar_presenter_spec.rb b/spec/presenters/registrar_presenter_spec.rb deleted file mode 100644 index 8c0196c51..000000000 --- a/spec/presenters/registrar_presenter_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -require 'rails_helper' - -RSpec.describe RegistrarPresenter do - let(:registrar) { instance_double(Registrar) } - let(:presenter) { described_class.new(registrar: registrar, view: view) } - - describe '#name' do - it 'returns name' do - expect(registrar).to receive(:name).and_return('test name') - expect(presenter.name).to eq('test name') - end - end - - describe '#email' do - it 'returns email' do - expect(registrar).to receive(:email).and_return('test email') - expect(presenter.email).to eq('test email') - end - end - - describe '#phone' do - it 'returns phone' do - expect(registrar).to receive(:phone).and_return('test phone') - expect(presenter.phone).to eq('test phone') - end - end - - describe '#website' do - it 'returns website' do - expect(registrar).to receive(:website).and_return('test') - expect(presenter.website).to eq('test') - end - end -end diff --git a/spec/presenters/user_presenter_spec.rb b/spec/presenters/user_presenter_spec.rb deleted file mode 100644 index ba9e1673f..000000000 --- a/spec/presenters/user_presenter_spec.rb +++ /dev/null @@ -1,16 +0,0 @@ -require 'rails_helper' - -RSpec.describe UserPresenter do - let(:presenter) { described_class.new(user: user, view: view) } - - describe '#login_with_role' do - let(:user) { instance_double(ApiUser, - login: 'login', - roles: %w[role], - registrar_name: 'registrar') } - - it 'returns username with role and registrar' do - expect(presenter.login_with_role).to eq('login (role) - registrar') - end - end -end diff --git a/spec/requests/admin/billing/prices/create_spec.rb b/spec/requests/admin/billing/prices/create_spec.rb deleted file mode 100644 index 14fe63c08..000000000 --- a/spec/requests/admin/billing/prices/create_spec.rb +++ /dev/null @@ -1,51 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'admin price create', settings: false do - let!(:zone) { create(:zone, id: 1, origin: 'test') } - subject(:price) { Billing::Price.first } - - before :example do - sign_in_to_admin_area - end - - it 'creates new price' do - expect { post admin_prices_path, price: attributes_for(:price, zone_id: '1') } - .to change { Billing::Price.count }.from(0).to(1) - end - - it 'saves zone' do - post admin_prices_path, price: attributes_for(:price, zone_id: '1') - expect(price.zone_id).to eq(1) - end - - it 'saves operation category' do - post admin_prices_path, price: - attributes_for(:price, zone_id: '1', operation_category: Billing::Price.operation_categories.first) - expect(price.operation_category).to eq(Billing::Price.operation_categories.first) - end - - it 'saves duration in months' do - post admin_prices_path, price: attributes_for(:price, zone_id: '1', duration: '3 mons') - expect(price.duration).to eq('3 mons') - end - - it 'saves duration in years' do - post admin_prices_path, price: attributes_for(:price, zone_id: '1', duration: '1 year') - expect(price.duration).to eq('1 year') - end - - it 'saves valid_from' do - post admin_prices_path, price: attributes_for(:price, zone_id: '1', valid_from: '2010-07-06') - expect(price.valid_from).to eq(Time.zone.parse('06.07.2010')) - end - - it 'saves valid_to' do - post admin_prices_path, price: attributes_for(:price, zone_id: '1', valid_to: '2010-07-06') - expect(price.valid_to).to eq(Time.zone.parse('06.07.2010')) - end - - it 'redirects to :index' do - post admin_prices_path, price: attributes_for(:price, zone_id: '1') - expect(response).to redirect_to admin_prices_url - end -end diff --git a/spec/requests/admin/billing/prices/expire_spec.rb b/spec/requests/admin/billing/prices/expire_spec.rb deleted file mode 100644 index 79612bbc9..000000000 --- a/spec/requests/admin/billing/prices/expire_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'admin price expire', settings: false do - before :example do - sign_in_to_admin_area - end - - it 'expires price' do - price = create(:effective_price) - - expect { patch expire_admin_price_path(price); price.reload } - .to change { price.expired? }.from(false).to(true) - end - - it 'redirects to :index' do - price = create(:effective_price) - - patch expire_admin_price_path(price) - - expect(response).to redirect_to admin_prices_url - end -end diff --git a/spec/requests/admin/billing/prices/update_spec.rb b/spec/requests/admin/billing/prices/update_spec.rb deleted file mode 100644 index 0b8abcb83..000000000 --- a/spec/requests/admin/billing/prices/update_spec.rb +++ /dev/null @@ -1,71 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'admin price update', settings: false do - before :example do - sign_in_to_admin_area - end - - it 'updates zone' do - price = create(:price) - create(:zone, id: 2) - - patch admin_price_path(price), price: attributes_for(:price, zone_id: '2') - price.reload - - expect(price.zone_id).to eq(2) - end - - it 'updates operation category' do - price = create(:price, operation_category: Billing::Price.operation_categories.first) - - patch admin_price_path(price), - price: attributes_for(:price, operation_category: Billing::Price.operation_categories.second) - price.reload - - expect(price.operation_category).to eq(Billing::Price.operation_categories.second) - end - - it 'updates duration in months' do - price = create(:price, duration: '3 mons') - - patch admin_price_path(price), price: attributes_for(:price, duration: '6 mons') - price.reload - - expect(price.duration).to eq('6 mons') - end - - it 'updates duration in years' do - price = create(:price, duration: '1 year') - - patch admin_price_path(price), price: attributes_for(:price, duration: '2 years') - price.reload - - expect(price.duration).to eq('2 years') - end - - it 'updates valid_from' do - price = create(:price, valid_from: '2010-07-05') - - patch admin_price_path(price), price: attributes_for(:price, valid_from: '2010-07-06') - price.reload - - expect(price.valid_from).to eq(Time.zone.parse('06.07.2010')) - end - - it 'updates valid_to' do - price = create(:price, valid_to: '2010-07-05') - - patch admin_price_path(price), price: attributes_for(:price, valid_to: '2010-07-06') - price.reload - - expect(price.valid_to).to eq(Time.zone.parse('06.07.2010')) - end - - it 'redirects to :index' do - price = create(:price) - - patch admin_price_path(price), price: attributes_for(:price) - - expect(response).to redirect_to admin_prices_url - end -end diff --git a/spec/requests/admin/dns/zones/create_spec.rb b/spec/requests/admin/dns/zones/create_spec.rb deleted file mode 100644 index 898359ed2..000000000 --- a/spec/requests/admin/dns/zones/create_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'admin zone create', settings: false do - subject(:zone) { DNS::Zone.first } - - before :example do - sign_in_to_admin_area - end - - it 'creates new zone' do - expect { post admin_zones_path, zone: attributes_for(:zone) } - .to change { DNS::Zone.count }.from(0).to(1) - end - - text_attributes = %i[origin email master_nameserver ns_records a_records a4_records] - integer_attributes = %i[ttl refresh retry expire minimum_ttl] - - text_attributes.each do |attr_name| - it "saves #{attr_name}" do - post admin_zones_path, zone: attributes_for(:zone, attr_name => 'test') - expect(zone.send(attr_name)).to eq('test') - end - end - - integer_attributes.each do |attr_name| - it "saves #{attr_name}" do - post admin_zones_path, zone: attributes_for(:zone, attr_name => '1') - expect(zone.send(attr_name)).to eq(1) - end - end - - it 'redirects to :index' do - post admin_zones_path, zone: attributes_for(:zone) - expect(response).to redirect_to admin_zones_url - end -end diff --git a/spec/requests/admin/dns/zones/update_spec.rb b/spec/requests/admin/dns/zones/update_spec.rb deleted file mode 100644 index df0f4bab2..000000000 --- a/spec/requests/admin/dns/zones/update_spec.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'admin zone update', settings: false do - before :example do - sign_in_to_admin_area - end - - text_attributes = %i[origin email master_nameserver ns_records a_records a4_records] - integer_attributes = %i[ttl refresh retry expire minimum_ttl] - - text_attributes.each do |attr_name| - it "updates #{attr_name}" do - zone = create(:zone, attr_name => 'test') - - patch admin_zone_path(zone), zone: attributes_for(:zone, attr_name => 'new-test') - zone.reload - - expect(zone.send(attr_name)).to eq('new-test') - end - end - - integer_attributes.each do |attr_name| - it "updates #{attr_name}" do - zone = create(:zone, attr_name => '1') - - patch admin_zone_path(zone), zone: attributes_for(:zone, attr_name => '2') - zone.reload - - expect(zone.send(attr_name)).to eq(2) - end - end - - it 'redirects to :index' do - zone = create(:zone) - - patch admin_zone_path(zone), zone: attributes_for(:zone) - - expect(response).to redirect_to admin_zones_url - end -end diff --git a/spec/requests/admin/settings/create_spec.rb b/spec/requests/admin/settings/create_spec.rb deleted file mode 100644 index c9e7e443d..000000000 --- a/spec/requests/admin/settings/create_spec.rb +++ /dev/null @@ -1,35 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'Admin settings saving' do - before do - sign_in_to_admin_area - end - - it 'saves integer setting' do - allow(Setting).to receive(:integer_settings) { %i[test_setting] } - post admin_settings_path, settings: { test_setting: '1' } - expect(Setting.test_setting).to eq(1) - end - - it 'saves float setting' do - allow(Setting).to receive(:float_settings) { %i[test_setting] } - post admin_settings_path, settings: { test_setting: '1.2' } - expect(Setting.test_setting).to eq(1.2) - end - - it 'saves boolean setting' do - allow(Setting).to receive(:boolean_settings) { %i[test_setting] } - post admin_settings_path, settings: { test_setting: 'true' } - expect(Setting.test_setting).to be true - end - - it 'saves string setting' do - post admin_settings_path, settings: { test_setting: 'test' } - expect(Setting.test_setting).to eq('test') - end - - it 'redirects to :index' do - post admin_settings_path, settings: { test: 'test' } - expect(response).to redirect_to admin_settings_path - end -end diff --git a/spec/requests/admin/zonefiles/create_spec.rb b/spec/requests/admin/zonefiles/create_spec.rb deleted file mode 100644 index e9dfb62c8..000000000 --- a/spec/requests/admin/zonefiles/create_spec.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'Admin area zone file generation', settings: false do - let!(:zone) { create(:zone, origin: 'com') } - - before do - sign_in_to_admin_area - end - - it 'generates new' do - post admin_zonefiles_path(origin: 'com') - expect(response).to be_success - end -end diff --git a/spec/requests/epp/contact/create/ident_spec.rb b/spec/requests/epp/contact/create/ident_spec.rb deleted file mode 100644 index 2de0e59a1..000000000 --- a/spec/requests/epp/contact/create/ident_spec.rb +++ /dev/null @@ -1,286 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP contact:create' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - - before do - Setting.address_processing = false - sign_in user - end - - context 'when all ident params are valid' do - let(:ident) { Contact.first.identifier } - let(:request_xml) { <<-XML - - - - - - - test - - +1.2 - test@test.com - - - - - test - - - - - XML - } - - it 'creates a contact' do - expect { request }.to change { Contact.count }.from(0).to(1) - end - - it 'saves ident type' do - request - expect(ident.type).to eq('priv') - end - - it 'saves ident country code' do - request - expect(ident.country_code).to eq('US') - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when code is blank' do - let(:request_xml) { <<-XML - - - - - - - test - - +1.2 - test@test.com - - - - - - - - - - XML - } - - it 'does not create a contact' do - expect { request }.to_not change { Contact.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:required_parameter_missing))).to be_truthy - end - end - - context 'when code is not valid national id' do - let(:request_xml) { <<-XML - - - - - - - test - - +1.2 - test@test.com - - - - - invalid - - - - - XML - } - - before do - country_specific_validations = { - Country.new('DE') => proc { false }, - } - - allow(Contact::Ident::NationalIdValidator).to receive(:country_specific_validations) - .and_return(country_specific_validations) - end - - it 'does not create a contact' do - expect { request }.to_not change { Contact.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy - end - end - - context 'when code is not valid registration number' do - let(:request_xml) { <<-XML - - - - - - - test - - +1.2 - test@test.com - - - - - invalid - - - - - XML - } - - before do - country_specific_formats = { - Country.new('DE') => /\Avalid\z/, - } - - allow(Contact::Ident::RegNoValidator).to receive(:country_specific_formats).and_return(country_specific_formats) - end - - it 'does not create a contact' do - expect { request }.to_not change { Contact.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy - end - end - - context 'when country code is absent' do - let(:request_xml) { <<-XML - - - - - - - test - - +1.2 - test@test.com - - - - - test - - - - - XML - } - - it 'does not create a contact' do - expect { request }.to_not change { Contact.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:required_parameter_missing))).to be_truthy - end - end - - context 'when country code is blank' do - let(:request_xml) { <<-XML - - - - - - - test - - +1.2 - test@test.com - - - - - test - - - - - XML - } - - it 'does not create a contact' do - expect { request }.to_not change { Contact.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:syntax_error))).to be_truthy - end - end - - context 'when mismatches' do - let(:request_xml) { <<-XML - - - - - - - test - - +1.2 - test@test.com - - - - - test - - - - - XML - } - - before do - mismatches = [ - Contact::Ident::MismatchValidator::Mismatch.new('priv', Country.new('DE')) - ] - allow(Contact::Ident::MismatchValidator).to receive(:mismatches).and_return(mismatches) - end - - it 'does not create a contact' do - expect { request }.to_not change { Contact.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy - end - end -end diff --git a/spec/requests/epp/contact/create/phone_spec.rb b/spec/requests/epp/contact/create/phone_spec.rb deleted file mode 100644 index fa340abf6..000000000 --- a/spec/requests/epp/contact/create/phone_spec.rb +++ /dev/null @@ -1,38 +0,0 @@ -require 'rails_helper' -require_relative '../shared/phone' - -RSpec.describe 'EPP contact:create' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let(:request_xml) { <<-XML - - - - - - - test - - #{phone} - test@test.com - - - - - 123456 - - - - - XML - } - - before do - sign_in user - allow(Contact).to receive(:address_processing?).and_return(false) - end - - include_examples 'EPP contact phone' -end diff --git a/spec/requests/epp/contact/create_spec.rb b/spec/requests/epp/contact/create_spec.rb deleted file mode 100644 index 3d461a041..000000000 --- a/spec/requests/epp/contact/create_spec.rb +++ /dev/null @@ -1,126 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP contact:create' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request_xml_with_address) { ' - - - - - - test name - - test street - test city - 12345 - US - - - +372.1234567 - test@example.com - - - - - 1234567 - dGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCg - - - - ABC-12345 - - ' - } - subject(:response_xml) { Nokogiri::XML(response.body) } - subject(:response_code) { response_xml.xpath('//xmlns:result').first['code'] } - subject(:response_description) { response_xml.css('result msg').text } - subject(:address_saved) { Contact.last.attributes.slice(*Contact.address_attribute_names).compact.any? } - - before do - sign_in user - end - - context 'when address processing is enabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(true) - end - - context 'with address' do - it 'returns epp code of 1000' do - post '/epp/command/create', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000') - end - - it 'returns epp description' do - post '/epp/command/create', { frame: request_xml_with_address}, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Command completed successfully') - end - - it 'saves address' do - post '/epp/command/create', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(address_saved).to be_truthy - end - end - end - - context 'when address processing is disabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(false) - end - - context 'with address' do - it 'returns epp code of 1100' do - post '/epp/command/create', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1100') - end - - it 'returns epp description' do - post '/epp/command/create', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Command completed successfully; Postal address data discarded') - end - - it 'does not save address' do - post '/epp/command/create', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(address_saved).to be_falsey - end - end - - context 'without address' do - let(:request_xml_without_address) { ' - - - - - - test name - - +372.1234567 - test@test.com - - - - - 123456 - dGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCg - - - - ABC-12345 - - ' - } - - it 'returns epp code of 1000' do - post '/epp/command/create', { frame: request_xml_without_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000') - end - - it 'returns epp description' do - post '/epp/command/create', { frame: request_xml_without_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Command completed successfully') - end - end - end -end diff --git a/spec/requests/epp/contact/info_spec.rb b/spec/requests/epp/contact/info_spec.rb deleted file mode 100644 index dcfbcbede..000000000 --- a/spec/requests/epp/contact/info_spec.rb +++ /dev/null @@ -1,60 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP contact:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request_xml) { ' - - - - - test - - - - ' - } - subject(:response_xml) { Nokogiri::XML(response.body) } - subject(:response_code) { response_xml.xpath('//xmlns:result').first['code'] } - subject(:address_count) { response_xml - .xpath('//contact:addr', contact: 'https://epp.tld.ee/schema/contact-ee-1.1.xsd') - .count } - - before do - sign_in user - create(:contact, code: 'TEST') - end - - context 'when address processing is enabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(true) - end - - it 'returns epp code of 1000' do - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000') - end - - it 'returns address' do - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(address_count).to_not be_zero - end - end - - context 'when address processing is disabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(false) - end - - it 'returns epp code of 1000' do - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000') - end - - it 'does not return address' do - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(address_count).to be_zero - end - end -end diff --git a/spec/requests/epp/contact/shared/phone.rb b/spec/requests/epp/contact/shared/phone.rb deleted file mode 100644 index 51a0a758c..000000000 --- a/spec/requests/epp/contact/shared/phone.rb +++ /dev/null @@ -1,28 +0,0 @@ -RSpec.shared_examples 'EPP contact phone' do - context 'when phone is valid' do - let(:phone) { '+123.4' } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when phone has invalid format' do - let(:phone) { '1234' } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy - end - end - - context 'when phone has only zeros' do - let(:phone) { '+000.0' } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_syntax_error))).to be_truthy - end - end -end diff --git a/spec/requests/epp/contact/update/ident_spec.rb b/spec/requests/epp/contact/update/ident_spec.rb deleted file mode 100644 index c8e1fe389..000000000 --- a/spec/requests/epp/contact/update/ident_spec.rb +++ /dev/null @@ -1,195 +0,0 @@ -require 'rails_helper' - -# https://github.com/internetee/registry/issues/576 - -RSpec.describe 'EPP contact:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:ident) { contact.identifier } - let(:request) { post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let(:request_xml) { <<-XML - - - - - - TEST - - - test - - - - - - - test - - - - - XML - } - - before do - sign_in user - end - - context 'when contact ident is valid' do - context 'when submitted ident matches current one' do - let!(:contact) { create(:contact, code: 'TEST', - ident: 'test', - ident_type: 'priv', - ident_country_code: 'US') } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when submitted ident does not match current one' do - let!(:contact) { create(:contact, code: 'TEST', - ident: 'another-test', - ident_type: 'priv', - ident_country_code: 'US') } - - it 'does not update code' do - expect do - request - contact.reload - end.to_not change { ident.code } - end - - it 'does not update type' do - expect do - request - contact.reload - end.to_not change { ident.type } - end - - it 'does not update country code' do - expect do - request - contact.reload - end.to_not change { ident.country_code } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:data_management_policy_violation))).to be_truthy - end - end - end - - context 'when contact ident is invalid' do - let(:contact) { build(:contact, code: 'TEST', ident: 'test', ident_type: nil, ident_country_code: nil) } - - before do - contact.save(validate: false) - end - - context 'when submitted ident is the same as current one' do - let(:request_xml) { <<-XML - - - - - - TEST - - - test - - - - - - - test - - - - - XML - } - - it 'does not update code' do - expect do - request - contact.reload - end.to_not change { ident.code } - end - - it 'updates type' do - request - contact.reload - expect(ident.type).to eq('priv') - end - - it 'updates country code' do - request - contact.reload - expect(ident.country_code).to eq('US') - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when submitted ident is different from current one' do - let(:request_xml) { <<-XML - - - - - - TEST - - - test - - - - - - - another-test - - - - - XML - } - - it 'does not update code' do - expect do - request - contact.reload - end.to_not change { ident.code } - end - - it 'does not update type' do - expect do - request - contact.reload - end.to_not change { ident.type } - end - - it 'does not update country code' do - expect do - request - contact.reload - end.to_not change { ident.country_code } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:data_management_policy_violation))).to be_truthy - end - end - end -end diff --git a/spec/requests/epp/contact/update/phone_spec.rb b/spec/requests/epp/contact/update/phone_spec.rb deleted file mode 100644 index 9955308b6..000000000 --- a/spec/requests/epp/contact/update/phone_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'rails_helper' -require_relative '../shared/phone' - -RSpec.describe 'EPP contact:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let!(:contact) { create(:contact, code: 'TEST') } - let(:request) { post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let(:request_xml) { <<-XML - - - - - - TEST - - #{phone} - - - - - - XML - } - - before do - sign_in user - allow(Contact).to receive(:address_processing?).and_return(false) - end - - include_examples 'EPP contact phone' -end diff --git a/spec/requests/epp/contact/update_spec.rb b/spec/requests/epp/contact/update_spec.rb deleted file mode 100644 index 9ac3a99bb..000000000 --- a/spec/requests/epp/contact/update_spec.rb +++ /dev/null @@ -1,108 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP contact:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request_xml_with_address) { ' - - - - - test - - - - test street - test city - 12345 - DE - - - - - - - - dGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCg - - - ABC-12345 - - ' - } - subject(:response_xml) { Nokogiri::XML(response.body) } - subject(:response_code) { response_xml.xpath('//xmlns:result').first['code'] } - subject(:response_description) { response_xml.css('result msg').text } - - before do - sign_in user - create(:contact, code: 'TEST') - end - - context 'when address processing is enabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(true) - end - - context 'with address' do - it 'returns epp code of 1000' do - post '/epp/command/update', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000') - end - - it 'returns epp description' do - post '/epp/command/update', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Command completed successfully') - end - end - end - - context 'when address processing is disabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(false) - end - - context 'with address' do - it 'returns epp code of 1100' do - post '/epp/command/update', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1100') - end - - it 'returns epp description' do - post '/epp/command/update', { frame: request_xml_with_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Command completed successfully; Postal address data discarded') - end - end - - context 'without address' do - let(:request_xml_without_address) { ' - - - - - test - - - - - dGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCgdGVzdCBmYWlsCg - - - ABC-12345 - - ' - } - - it 'returns epp code of 1000' do - post '/epp/command/update', { frame: request_xml_without_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000') - end - - it 'returns epp description' do - post '/epp/command/update', { frame: request_xml_without_address }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Command completed successfully') - end - end - end -end diff --git a/spec/requests/epp/domain/create/account_balance_spec.rb b/spec/requests/epp/domain/create/account_balance_spec.rb deleted file mode 100644 index d4acc7141..000000000 --- a/spec/requests/epp/domain/create/account_balance_spec.rb +++ /dev/null @@ -1,68 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:create', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:contact) { create(:contact, code: 'test') } - let!(:zone) { create(:zone, origin: 'test') } - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'create', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - let(:request_xml) { <<-XML - - - - - - test.test - test - - - - - #{valid_legal_document} - - - - - XML - } - - before :example do - travel_to Time.zone.parse('05.07.2010') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when account balance is sufficient' do - let!(:registrar) { create(:registrar_with_unlimited_balance) } - - it 'creates domain' do - expect { request }.to change { Domain.count }.from(0).to(1) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when account balance is not sufficient' do - let!(:registrar) { create(:registrar_with_zero_balance) } - - it 'does not create domain' do - expect { request }.to_not change { Domain.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/create/default_period_spec.rb b/spec/requests/epp/domain/create/default_period_spec.rb deleted file mode 100644 index a3a7c6f70..000000000 --- a/spec/requests/epp/domain/create/default_period_spec.rb +++ /dev/null @@ -1,60 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:create', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:contact) { create(:contact, code: 'test') } - let!(:zone) { create(:zone, origin: 'test') } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'create', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - let(:request_xml) { <<-XML - - - - - - test.test - test - - - - - #{valid_legal_document} - - - - - XML - } - - before :example do - travel_to Time.zone.parse('05.07.2010 10:30') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when period is absent' do - it 'creates domain' do - expect { request }.to change { Domain.count }.from(0).to(1) - end - - it 'uses default duration of 1 year' do - request - expire_time = (Time.zone.parse('05.07.2010') + 1.year + 1.day).beginning_of_day - expect(Domain.first.expire_time).to eq(expire_time) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/create/optional_nameserver_spec.rb b/spec/requests/epp/domain/create/optional_nameserver_spec.rb deleted file mode 100644 index 920deb14e..000000000 --- a/spec/requests/epp/domain/create/optional_nameserver_spec.rb +++ /dev/null @@ -1,110 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:create', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:contact) { create(:contact, code: 'test') } - let!(:zone) { create(:zone, origin: 'test') } - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'create', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - - before :example do - travel_to Time.zone.parse('05.07.2010') - sign_in user - end - - context 'when nameserver is optional' do - before :example do - allow(Domain).to receive(:nameserver_required?).and_return(false) - end - - context 'when minimum nameserver count requirement is not satisfied' do - let(:request_xml) { <<-XML - - - - - - test.test - 1 - - - ns.test.com - 192.168.1.1 - - - test - - - - - #{valid_legal_document} - - - - - XML - } - - before :example do - Setting.ns_min_count = 2 - end - - it 'does not create domain' do - expect { request }.to_not change { Domain.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:data_management_policy_violation))).to be_truthy - end - end - - context 'when nameserver is absent' do - let(:request_xml) { <<-XML - - - - - - test.test - 1 - test - - - - - #{valid_legal_document} - - - - - XML - } - - it 'creates new domain' do - expect { request }.to change { Domain.count }.from(0).to(1) - end - - describe 'new domain' do - it 'has status of inactive' do - request - expect(Domain.first.statuses).to include(DomainStatus::INACTIVE) - end - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - end -end diff --git a/spec/requests/epp/domain/create/period_spec.rb b/spec/requests/epp/domain/create/period_spec.rb deleted file mode 100644 index 7bd290852..000000000 --- a/spec/requests/epp/domain/create/period_spec.rb +++ /dev/null @@ -1,109 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:create', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:contact) { create(:contact, code: 'test') } - let!(:zone) { create(:zone, origin: 'test') } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - - before :example do - travel_to Time.zone.parse('05.07.2010 10:30') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when period is 3 months' do - let!(:price) { create(:price, - duration: '3 mons', - price: Money.from_amount(1), - operation_category: 'create', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - let(:request_xml) { <<-XML - - - - - - test.test - 3 - test - - - - - #{valid_legal_document} - - - - - XML - } - - - it 'creates domain' do - expect { request }.to change { Domain.count }.from(0).to(1) - end - - specify 'expire_time' do - request - expire_time = (Time.zone.parse('05.07.2010 10:30') + 3.months + 1.day).beginning_of_day - expect(Domain.first.expire_time).to eq(expire_time) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when period is 10 years' do - let!(:price) { create(:price, - duration: '10 years', - price: Money.from_amount(1), - operation_category: 'create', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - let(:request_xml) { <<-XML - - - - - - test.test - 10 - test - - - - - #{valid_legal_document} - - - - - XML - } - - it 'creates domain' do - expect { request }.to change { Domain.count }.from(0).to(1) - end - - specify 'expire_time' do - request - expire_time = (Time.zone.parse('05.07.2010 10:30') + 10.years + 1.day).beginning_of_day - expect(Domain.first.expire_time).to eq(expire_time) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/create/price_spec.rb b/spec/requests/epp/domain/create/price_spec.rb deleted file mode 100644 index 69f97633a..000000000 --- a/spec/requests/epp/domain/create/price_spec.rb +++ /dev/null @@ -1,67 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:create', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:contact) { create(:contact, code: 'test') } - let!(:zone) { create(:zone, origin: 'test') } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let(:request_xml) { <<-XML - - - - - - test.test - 1 - test - - - - - #{valid_legal_document} - - - - - XML - } - - before :example do - travel_to Time.zone.parse('05.07.2010') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when price is present' do - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'create', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - - it 'creates domain' do - expect { request }.to change { Domain.count }.from(0).to(1) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when price is absent' do - it 'does not create domain' do - expect { request }.to_not change { Domain.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/create/required_nameserver_spec.rb b/spec/requests/epp/domain/create/required_nameserver_spec.rb deleted file mode 100644 index 08b5208e1..000000000 --- a/spec/requests/epp/domain/create/required_nameserver_spec.rb +++ /dev/null @@ -1,100 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:create', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:contact) { create(:contact, code: 'test') } - let!(:zone) { create(:zone, origin: 'test') } - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'create', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - - before :example do - travel_to Time.zone.parse('05.07.2010') - sign_in user - end - - context 'when nameserver is required' do - before :example do - allow(Domain).to receive(:nameserver_required?).and_return(true) - Setting.ns_min_count = 1 - end - - context 'when minimum nameserver count requirement is satisfied' do - let(:request_xml) { <<-XML - - - - - - test.test - 1 - - - ns.test.com - 192.168.1.1 - - - test - - - - - #{valid_legal_document} - - - - - XML - } - - it 'creates new domain' do - expect { request }.to change { Domain.count }.from(0).to(1) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when nameservers are absent' do - let(:request_xml) { <<-XML - - - - - - test.test - 1 - test - - - - - #{valid_legal_document} - - - - - XML - } - - it 'does not create domain' do - expect { request }.to_not change { Domain.count } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:required_parameter_missing))).to be_truthy - end - end - end -end diff --git a/spec/requests/epp/domain/renew/account_balance_spec.rb b/spec/requests/epp/domain/renew/account_balance_spec.rb deleted file mode 100644 index 465469100..000000000 --- a/spec/requests/epp/domain/renew/account_balance_spec.rb +++ /dev/null @@ -1,92 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:renew' do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:zone) { create(:zone, origin: 'test') } - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'renew', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - - before :example do - Setting.days_to_renew_domain_before_expire = 0 - travel_to Time.zone.parse('05.07.2010') - sign_in user - end - - context 'when account balance is sufficient' do - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-05 - 1 - - - - - XML - } - - it 'renews domain' do - request - domain.reload - expect(domain.expire_time).to eq(Time.zone.parse('05.07.2011')) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when account balance is not sufficient' do - let!(:registrar) { create(:registrar_with_zero_balance) } - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-04 - 1 - - - - - XML - } - - it 'does not renew domain' do - request - domain.reload - expect(domain.expire_time).to eq(Time.zone.parse('05.07.2010')) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/renew/default_period_spec.rb b/spec/requests/epp/domain/renew/default_period_spec.rb deleted file mode 100644 index 623199cf4..000000000 --- a/spec/requests/epp/domain/renew/default_period_spec.rb +++ /dev/null @@ -1,56 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:renew', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:zone) { create(:zone, origin: 'test') } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'renew', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-05 - 1 - - - - - XML - } - - before :example do - travel_to Time.zone.parse('05.07.2010') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when period is absent' do - it 'renews domain for 1 year' do - request - domain.reload - expect(domain.expire_time).to eq(Time.zone.parse('05.07.2011')) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/renew/expire_time_spec.rb b/spec/requests/epp/domain/renew/expire_time_spec.rb deleted file mode 100644 index e4321386a..000000000 --- a/spec/requests/epp/domain/renew/expire_time_spec.rb +++ /dev/null @@ -1,89 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:renew' do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:zone) { create(:zone, origin: 'test') } - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'renew', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - - before :example do - Setting.days_to_renew_domain_before_expire = 0 - travel_to Time.zone.parse('05.07.2010') - sign_in user - end - - context 'when given expire time and current match' do - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-05 - 1 - - - - - XML - } - - it 'renews domain' do - request - domain.reload - expect(domain.expire_time).to eq(Time.zone.parse('05.07.2011')) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when given expire time and current do not match' do - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-04 - 1 - - - - - XML - } - - it 'does not renew domain' do - expect { request; domain.reload }.to_not change { domain.expire_time } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:parameter_value_policy_error))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/renew/max_expire_time_spec.rb b/spec/requests/epp/domain/renew/max_expire_time_spec.rb deleted file mode 100644 index 79362aa15..000000000 --- a/spec/requests/epp/domain/renew/max_expire_time_spec.rb +++ /dev/null @@ -1,92 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:renew' do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:zone) { create(:zone, origin: 'test') } - let!(:price) { create(:price, - duration: '10 years', - price: Money.from_amount(1), - operation_category: 'renew', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - subject(:response_xml) { Nokogiri::XML(response.body) } - subject(:response_code) { response_xml.xpath('//xmlns:result').first['code'] } - subject(:response_description) { response_xml.css('result msg').text } - - before :example do - travel_to Time.zone.parse('05.07.2010') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when domain can be renewed' do - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-05 - 10 - - - - - XML - } - - it 'returns epp code of 1000' do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000') - end - - it 'returns epp description' do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Command completed successfully') - end - end - - context 'when domain cannot be renewed' do - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2011')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2011-07-05 - 10 - - - - - XML - } - - it 'returns epp code of 2105' do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('2105') - end - - it 'returns epp description' do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_description).to eq('Object is not eligible for renewal; ' \ - 'Expiration date must be before 2021-07-05') - end - end -end diff --git a/spec/requests/epp/domain/renew/period_spec.rb b/spec/requests/epp/domain/renew/period_spec.rb deleted file mode 100644 index 0b2e6ed24..000000000 --- a/spec/requests/epp/domain/renew/period_spec.rb +++ /dev/null @@ -1,94 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:renew', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:zone) { create(:zone, origin: 'test') } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010 10:30')) - } - - before :example do - travel_to Time.zone.parse('05.07.2010') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when period is 3 months' do - let!(:price) { create(:price, - duration: '3 mons', - price: Money.from_amount(1), - operation_category: 'renew', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-05 - 3 - - - - - XML - } - - it 'renews domain for 3 months' do - request - domain.reload - expect(domain.expire_time).to eq(Time.zone.parse('05.10.2010 10:30')) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when period is 10 years' do - let!(:price) { create(:price, - duration: '10 years', - price: Money.from_amount(1), - operation_category: 'renew', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-05 - 10 - - - - - XML - } - - it 'renews domain for 10 years' do - request - domain.reload - expect(domain.expire_time).to eq(Time.zone.parse('05.07.2020 10:30')) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/renew/price_spec.rb b/spec/requests/epp/domain/renew/price_spec.rb deleted file mode 100644 index da2ad4022..000000000 --- a/spec/requests/epp/domain/renew/price_spec.rb +++ /dev/null @@ -1,68 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:renew', settings: false do - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:user) { create(:api_user_epp, registrar: registrar) } - let!(:zone) { create(:zone, origin: 'test') } - let!(:registrar) { create(:registrar_with_unlimited_balance) } - let!(:domain) { create(:domain, - registrar: registrar, - name: 'test.test', - expire_time: Time.zone.parse('05.07.2010 10:30')) - } - let(:request_xml) { <<-XML - - - - - - test.test - 2010-07-05 - 1 - - - - - XML - } - - before :example do - travel_to Time.zone.parse('05.07.2010') - Setting.days_to_renew_domain_before_expire = 0 - sign_in user - end - - context 'when price is present' do - let!(:price) { create(:price, - duration: '1 year', - price: Money.from_amount(1), - operation_category: 'renew', - valid_from: Time.zone.parse('05.07.2010'), - valid_to: Time.zone.parse('05.07.2010'), - zone: zone) - } - - it 'renews domain for 1 year' do - request - domain.reload - expect(domain.expire_time).to eq(Time.zone.parse('05.07.2011 10:30')) - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - end - - context 'when price is absent' do - it 'does not renew domain' do - expect { request; domain.reload }.to_not change { domain.expire_time } - end - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:billing_failure))).to be_truthy - end - end -end diff --git a/spec/requests/epp/domain/update/nameserver_add_spec.rb b/spec/requests/epp/domain/update/nameserver_add_spec.rb deleted file mode 100644 index ffad74176..000000000 --- a/spec/requests/epp/domain/update/nameserver_add_spec.rb +++ /dev/null @@ -1,95 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let!(:domain) { create(:domain, name: 'test.com') } - subject(:response_xml) { Nokogiri::XML(response.body) } - subject(:response_code) { response_xml.xpath('//xmlns:result').first['code'] } - subject(:response_description) { response_xml.css('result msg').text } - - before :example do - sign_in user - - allow(Domain).to receive(:nameserver_required?).and_return(false) - Setting.ns_min_count = 2 - Setting.ns_max_count = 3 - end - - context 'when nameserver count is less than minimum' do - let(:request_xml) { <<-XML - - - - - - test.com - - - - ns1.test.ee - - - - - - - - XML - } - - it 'returns epp code of 2308' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('2308'), "Expected EPP code of 2308, got #{response_code} (#{response_description})" - end - - it 'returns epp description' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - - description = 'Data management policy violation;' \ - " Nameserver count must be between #{Setting.ns_min_count}-#{Setting.ns_max_count}" \ - ' for active domains [nameservers]' - expect(response_description).to eq(description) - end - end - - context 'when nameserver count satisfies required minimum' do - let!(:domain) { create(:domain, name: 'test.com') } - let(:request_xml) { <<-XML - - - - - - test.com - - - - ns1.test.ee - - - ns2.test.ee - - - - - - - - XML - } - - it 'returns epp code of 1000' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000'), "Expected EPP code of 1000, got #{response_code} (#{response_description})" - end - - it 'removes inactive status' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - - domain = Domain.find_by(name: 'test.com') - expect(domain.statuses).to_not include(DomainStatus::INACTIVE) - end - end -end diff --git a/spec/requests/epp/domain/update/nameserver_remove_spec.rb b/spec/requests/epp/domain/update/nameserver_remove_spec.rb deleted file mode 100644 index 4fcaa61dc..000000000 --- a/spec/requests/epp/domain/update/nameserver_remove_spec.rb +++ /dev/null @@ -1,108 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - subject(:response_xml) { Nokogiri::XML(response.body) } - subject(:response_code) { response_xml.xpath('//xmlns:result').first['code'] } - subject(:response_description) { response_xml.css('result msg').text } - - before :example do - sign_in user - allow(Domain).to receive(:nameserver_required?).and_return(false) - end - - context 'when remaining nameserver count is less than required minimum' do - let!(:domain) { create(:domain, name: 'test.com') } - let(:request_xml) { <<-XML - - - - - - test.com - - - - ns1.test.ee - - - - - - - - XML - } - - before :example do - Setting.ns_min_count = 2 - Setting.ns_max_count = 3 - - domain.nameservers << create(:nameserver, hostname: 'ns1.test.ee') - domain.nameservers << create(:nameserver, hostname: 'ns2.test.ee') - end - - it 'returns epp code of 2308' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('2308'), "Expected EPP code of 2308, got #{response_code} (#{response_description})" - end - - it 'returns epp description' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - - description = 'Data management policy violation;' \ - " Nameserver count must be between #{Setting.ns_min_count}-#{Setting.ns_max_count}" \ - ' for active domains [nameservers]' - expect(response_description).to eq(description) - end - end - - context 'when all nameservers are removed' do - let!(:domain) { create(:domain, name: 'test.com') } - let(:request_xml) { <<-XML - - - - - - test.com - - - - ns1.test.ee - - - ns2.test.ee - - - - - - - - XML - } - - before :example do - domain.nameservers << create(:nameserver, hostname: 'ns1.test.ee') - domain.nameservers << create(:nameserver, hostname: 'ns2.test.ee') - domain.activate - domain.save! - end - - it 'returns epp code of 1000' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - expect(response_code).to eq('1000'), "Expected EPP code of 1000, got #{response_code} (#{response_description})" - end - - describe 'domain' do - it 'has status of inactive' do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" - domain = Domain.find_by(name: 'test.com') - expect(domain.statuses).to include(DomainStatus::INACTIVE) - end - end - end -end diff --git a/spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb b/spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb deleted file mode 100644 index bafe6fb0a..000000000 --- a/spec/requests/epp/domain/update/registrant_change/same_as_current_spec.rb +++ /dev/null @@ -1,215 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:domain) { create(:domain, name: 'test.com', registrant: registrant) } - - before :example do - sign_in user - end - - context 'when registrant change confirmation is enabled' do - before :example do - Setting.request_confrimation_on_registrant_change_enabled = true - end - - context 'when given registrant is the same as current one' do - let!(:registrant) { create(:registrant, code: 'TEST') } - let(:request_xml) { <<-XML - - - - - - test.com - - TEST - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - - it 'keeps same registrant' do - expect { request; domain.reload }.to_not change { domain.registrant.code } - end - - it 'does not ask for confirmation' do - request - domain.reload - expect(domain.registrant_verification_asked?).to be false - end - - it 'does not send confirmation and notice emails' do - expect { request }.to_not change { ActionMailer::Base.deliveries.count } - end - end - - context 'when given registrant is different than current one' do - let!(:registrant) { create(:registrant, code: 'OLD-CODE') } - let!(:new_registrant) { create(:registrant, code: 'NEW-CODE') } - let(:request_xml) { <<-XML - - - - - - test.com - - NEW-CODE - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully_action_pending))).to be_truthy - end - - it 'does not change registrant without confirmation' do - expect { request; domain.reload }.to_not change { domain.registrant.code } - end - - it 'asks for confirmation' do - request - domain.reload - expect(domain.registrant_verification_asked?).to be true - end - - it 'sets PENDING_UPDATE status' do - request - domain.reload - expect(domain.statuses).to include(DomainStatus::PENDING_UPDATE) - end - - it 'sends confirmation and notice emails' do - expect { request }.to change { ActionMailer::Base.deliveries.count }.by(2) - end - end - end - - context 'when registrant change confirmation is disabled' do - before :example do - Setting.request_confrimation_on_registrant_change_enabled = false - end - - context 'when given registrant is the same as current one' do - let!(:registrant) { create(:registrant, code: 'TEST') } - let(:request_xml) { <<-XML - - - - - - test.com - - TEST - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - - it 'keeps same registrant' do - expect { request; domain.reload }.to_not change { domain.registrant.code } - end - - it 'does not ask for confirmation' do - request - domain.reload - expect(domain.registrant_verification_asked?).to be false - end - - it 'does not send confirmation and notice emails' do - expect { request }.to_not change { ActionMailer::Base.deliveries.count } - end - end - - context 'when given registrant is different than current one' do - let!(:registrant) { create(:registrant, code: 'OLD-CODE') } - let!(:new_registrant) { create(:registrant, code: 'NEW-CODE') } - let(:request_xml) { <<-XML - - - - - - test.com - - NEW-CODE - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - - it 'changes registrant without confirmation' do - expect { request; domain.reload }.to change { domain.registrant.code }.from('OLD-CODE').to('NEW-CODE') - end - - it 'does not ask for confirmation' do - request - domain.reload - expect(domain.registrant_verification_asked?).to be false - end - - it 'does not set PENDING_UPDATE status' do - request - domain.reload - expect(domain.statuses).to_not include(DomainStatus::PENDING_UPDATE) - end - - it 'does not send confirmation and notice emails' do - expect { request }.to_not change { ActionMailer::Base.deliveries.count } - end - end - end -end diff --git a/spec/requests/epp/domain/update/registrant_change/verified_spec.rb b/spec/requests/epp/domain/update/registrant_change/verified_spec.rb deleted file mode 100644 index 8bb66e61c..000000000 --- a/spec/requests/epp/domain/update/registrant_change/verified_spec.rb +++ /dev/null @@ -1,199 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let!(:registrant) { create(:registrant, code: 'old-code') } - let!(:domain) { create(:domain, name: 'test.com', registrant: registrant) } - let!(:new_registrant) { create(:registrant, code: 'new-code') } - - before :example do - sign_in user - end - - context 'when registrant change confirmation is enabled' do - before :example do - Setting.request_confrimation_on_registrant_change_enabled = true - end - - context 'when verified' do - let(:request_xml) { <<-XML - - - - - - test.com - - new-code - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - - it 'changes registrant' do - expect { request; domain.reload }.to change { domain.registrant.code }.from('old-code').to('new-code') - end - - it 'does not send confirmation email' do - expect { request }.to_not change { ActionMailer::Base.deliveries.count } - end - - it 'does not set PENDING_UPDATE status to domain' do - request - domain.reload - expect(domain.statuses).to_not include(DomainStatus::PENDING_UPDATE) - end - end - - context 'when not verified' do - let(:request_xml) { <<-XML - - - - - - test.com - - new-code - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully_action_pending))).to be_truthy - end - - it 'does not change registrant' do - expect { request; domain.reload }.to_not change { domain.registrant.code } - end - - it 'sends confirmation and notice emails' do - expect { request }.to change { ActionMailer::Base.deliveries.count }.by(2) - end - - it 'sets PENDING_UPDATE status to domain' do - request - domain.reload - expect(domain.statuses).to include(DomainStatus::PENDING_UPDATE) - end - end - end - - context 'when registrant change confirmation is disabled' do - before :example do - Setting.request_confrimation_on_registrant_change_enabled = false - end - - context 'when verified' do - let(:request_xml) { <<-XML - - - - - - test.com - - new-code - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - - it 'changes registrant' do - expect { request; domain.reload }.to change { domain.registrant.code }.from('old-code').to('new-code') - end - - it 'does not send confirmation email' do - expect { request }.to_not change { ActionMailer::Base.deliveries.count } - end - - it 'does not set PENDING_UPDATE status to domain' do - request - domain.reload - expect(domain.statuses).to_not include(DomainStatus::PENDING_UPDATE) - end - end - - context 'when not verified' do - let(:request_xml) { <<-XML - - - - - - test.com - - new-code - - - - - - #{valid_legal_document} - - - - - XML - } - - specify do - request - expect(Epp::Response.xml(response.body).code?(Epp::Response::Result::Code.key(:completed_successfully))).to be_truthy - end - - it 'changes registrant' do - expect { request; domain.reload }.to change { domain.registrant.code }.from('old-code').to('new-code') - end - - it 'does not send confirmation email' do - expect { request }.to_not change { ActionMailer::Base.deliveries.count } - end - - it 'does not set PENDING_UPDATE status to domain' do - request - domain.reload - expect(domain.statuses).to_not include(DomainStatus::PENDING_UPDATE) - end - end - end -end diff --git a/spec/requests/epp/domain/update/status_spec.rb b/spec/requests/epp/domain/update/status_spec.rb deleted file mode 100644 index 19be7a960..000000000 --- a/spec/requests/epp/domain/update/status_spec.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'EPP domain:update' do - let(:registrar) { create(:registrar) } - let(:user) { create(:api_user_epp, registrar: registrar) } - let(:session_id) { create(:epp_session, user: user).session_id } - let(:request) { post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session_id}" } - let(:request_xml) { <<-XML - - - - - - test.com - - - - - XML - } - - before :example do - sign_in user - end - - context 'when domain has both SERVER_DELETE_PROHIBITED and PENDING_UPDATE statuses' do - let!(:domain) { create(:domain, - name: 'test.com', - statuses: [DomainStatus::SERVER_DELETE_PROHIBITED, - DomainStatus::PENDING_UPDATE]) - } - - it 'returns PENDING_UPDATE as domain status' do - request - status = Nokogiri::XML(response.body).at_xpath('//domain:status', - domain: 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').content - expect(status).to eq(DomainStatus::PENDING_UPDATE) - end - end -end diff --git a/spec/requests/registrar/ip_restriction_spec.rb b/spec/requests/registrar/ip_restriction_spec.rb deleted file mode 100644 index 49a04428a..000000000 --- a/spec/requests/registrar/ip_restriction_spec.rb +++ /dev/null @@ -1,87 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'Registrar area IP restriction', settings: false do - before do - @original_registrar_ip_whitelist_enabled_setting = Setting.registrar_ip_whitelist_enabled - end - - after do - Setting.registrar_ip_whitelist_enabled = @original_registrar_ip_whitelist_enabled_setting - end - - context 'when authenticated' do - before do - sign_in_to_registrar_area - end - - context 'when IP restriction is enabled' do - before do - Setting.registrar_ip_whitelist_enabled = true - end - - context 'when ip is allowed' do - let!(:white_ip) { create(:white_ip, - ipv4: '127.0.0.1', - registrar: controller.current_registrar_user.registrar, - interfaces: [WhiteIp::REGISTRAR]) } - - specify do - get registrar_root_url - expect(response).to be_success - end - end - - context 'when ip is not allowed' do - it 'signs the user out' do - get registrar_root_url - expect(controller.current_registrar_user).to be_nil - end - - it 'redirects to login url' do - get registrar_root_url - expect(response).to redirect_to(new_registrar_user_session_url) - end - end - end - - context 'when IP restriction is disabled' do - specify do - get registrar_root_url - expect(response).to be_success - end - end - end - - context 'when unauthenticated' do - context 'when IP restriction is enabled' do - before do - Setting.registrar_ip_whitelist_enabled = true - end - - context 'when ip is allowed' do - let!(:white_ip) { create(:white_ip, - ipv4: '127.0.0.1', - interfaces: [WhiteIp::REGISTRAR]) } - - specify do - get new_registrar_user_session_path - expect(response).to be_success - end - end - - context 'when ip is not allowed' do - specify do - get new_registrar_user_session_path - expect(response.body).to match "Access denied" - end - end - end - - context 'when IP restriction is disabled' do - specify do - get new_registrar_user_session_path - expect(response).to be_success - end - end - end -end diff --git a/spec/requests/registrar/linked_users_spec.rb b/spec/requests/registrar/linked_users_spec.rb deleted file mode 100644 index 05cf10600..000000000 --- a/spec/requests/registrar/linked_users_spec.rb +++ /dev/null @@ -1,68 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'Registrar area linked users', db: false do - describe 'user switch' do - context 'when user is authenticated', db: true do - let!(:current_user) { create(:api_user, id: 1, identity_code: 'code') } - - before do - sign_in current_user - end - - context 'when ip is allowed' do - let(:restricted_ip) { instance_double(Authorization::RestrictedIP, - can_access_registrar_area?: true) } - - before do - allow(Authorization::RestrictedIP).to receive(:new).and_return(restricted_ip) - end - - context 'when new user is linked' do - let!(:new_user) { create(:api_user, id: 2, identity_code: 'code') } - - it 'signs in as a new user' do - put '/registrar/current_user/switch/2', nil, { HTTP_REFERER: registrar_contacts_url } - follow_redirect! - expect(controller.current_registrar_user.id).to eq(2) - end - - it 'redirects back' do - put '/registrar/current_user/switch/2', nil, { HTTP_REFERER: 'http://previous.url' } - expect(response).to redirect_to('http://previous.url') - end - end - - context 'when new user is unlinked' do - let!(:new_user) { create(:api_user, id: 2, identity_code: 'another-code') } - - it 'throws exception' do - expect do - put '/registrar/current_user/switch/2', nil, { HTTP_REFERER: registrar_contacts_path } - end.to raise_error('Cannot switch to unlinked user') - end - end - end - - context 'when ip is not allowed' do - let(:restricted_ip) { instance_double(Authorization::RestrictedIP, - can_access_registrar_area?: false) } - - before do - allow(Authorization::RestrictedIP).to receive(:new).and_return(restricted_ip) - end - - specify do - put '/registrar/current_user/switch/2' - expect(response).to redirect_to(new_registrar_user_session_url) - end - end - end - - context 'when user is not authenticated' do - specify do - put '/registrar/current_user/switch/2' - expect(response).to redirect_to(new_registrar_user_session_url) - end - end - end -end diff --git a/spec/routing/registrant/domain_delete_confirms_routing_spec.rb b/spec/routing/registrant/domain_delete_confirms_routing_spec.rb deleted file mode 100644 index cf7691bb4..000000000 --- a/spec/routing/registrant/domain_delete_confirms_routing_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'rails_helper' - -RSpec.describe Registrant::DomainDeleteConfirmsController do - describe 'routing' do - it 'routes to #show' do - expect(get: '/registrant/domain_delete_confirms/1').to route_to('registrant/domain_delete_confirms#show', id: '1') - end - end -end diff --git a/spec/routing/registrant/domain_update_confirms_routing_spec.rb b/spec/routing/registrant/domain_update_confirms_routing_spec.rb deleted file mode 100644 index 9bc98c391..000000000 --- a/spec/routing/registrant/domain_update_confirms_routing_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'rails_helper' - -RSpec.describe Registrant::DomainUpdateConfirmsController do - describe 'routing' do - it 'routes to #show' do - expect(get: '/registrant/domain_update_confirms/1').to route_to('registrant/domain_update_confirms#show', id: '1') - end - end -end diff --git a/spec/services/registrant_change_spec.rb b/spec/services/registrant_change_spec.rb deleted file mode 100644 index 598874109..000000000 --- a/spec/services/registrant_change_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'rails_helper' - -RSpec.describe RegistrantChange do - describe '#confirm' do - let(:domain) { instance_double(Domain) } - let(:old_registrant) { instance_double(Registrant) } - let(:message) { instance_spy(ActionMailer::MessageDelivery) } - - before :example do - allow(RegistrantChangeMailer).to receive(:accepted) - .with(domain: domain, old_registrant: old_registrant) - .and_return(message) - described_class.new(domain: domain, old_registrant: old_registrant).confirm - end - - it 'notifies registrant' do - expect(message).to have_received(:deliver_now) - end - end -end diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb deleted file mode 100644 index 5434f1a84..000000000 --- a/spec/support/capybara.rb +++ /dev/null @@ -1,6 +0,0 @@ -require_relative 'macros/capybara' - -RSpec.configure do |config| - config.include CapybaraViewMacros, type: :view - config.include CapybaraViewMacros, type: :presenter -end diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb deleted file mode 100644 index 581f5ac7c..000000000 --- a/spec/support/database_cleaner.rb +++ /dev/null @@ -1,30 +0,0 @@ -RSpec.configure do |config| - db_connection_names = ActiveRecord::Base.configurations.keys.grep(/test/).map(&:to_sym).reverse - - config.before :suite do - DatabaseCleaner.strategy = :truncation - - db_connection_names.each do |connection_name| - ActiveRecord::Base.establish_connection(connection_name) - DatabaseCleaner[:active_record, connection: connection_name].strategy = :truncation - end - end - - config.before :example do |example| - if example.metadata[:db] - db_connection_names.each do |connection_name| - ActiveRecord::Base.establish_connection(connection_name) - DatabaseCleaner[:active_record, connection: connection_name].start - end - end - end - - config.after :example do |example| - if example.metadata[:db] - db_connection_names.each do |connection_name| - ActiveRecord::Base.establish_connection(connection_name) - DatabaseCleaner[:active_record, connection: connection_name].clean - end - end - end -end diff --git a/spec/support/devise.rb b/spec/support/devise.rb deleted file mode 100644 index 4dcb76759..000000000 --- a/spec/support/devise.rb +++ /dev/null @@ -1,3 +0,0 @@ -RSpec.configure do |config| - config.include Warden::Test::Helpers -end diff --git a/spec/support/features/session_helpers.rb b/spec/support/features/session_helpers.rb deleted file mode 100644 index 11724f420..000000000 --- a/spec/support/features/session_helpers.rb +++ /dev/null @@ -1,26 +0,0 @@ -module Features - module SessionHelpers - def sign_in_to_admin_area(user: create(:admin_user)) - visit new_admin_user_session_url - - fill_in 'admin_user[username]', with: user.username - fill_in 'admin_user[password]', with: user.password - - click_button 'Sign in' - end - - def sign_in_to_registrar_area(user: create(:api_user)) - visit new_registrar_user_session_url - - fill_in 'registrar_user_username', with: user.username - fill_in 'registrar_user_password', with: user.plain_text_password - - click_button 'Login' - end - - def sign_in_to_registrant_area - user = create(:registrant_user) - sign_in(user, scope: :user) - end - end -end diff --git a/spec/support/macros/capybara.rb b/spec/support/macros/capybara.rb deleted file mode 100644 index 0e9dbf7b0..000000000 --- a/spec/support/macros/capybara.rb +++ /dev/null @@ -1,5 +0,0 @@ -module CapybaraViewMacros - def page - Capybara::Node::Simple.new(rendered) - end -end diff --git a/spec/support/matchers/alias_attribute.rb b/spec/support/matchers/alias_attribute.rb deleted file mode 100644 index 93b4efbb0..000000000 --- a/spec/support/matchers/alias_attribute.rb +++ /dev/null @@ -1,9 +0,0 @@ -RSpec::Matchers.define :alias_attribute do |alias_name, original_name| - match do |actual| - actual.class.attribute_alias(alias_name) == original_name.to_s - end - - failure_message do |actual| - "expected #{actual.class.name} to alias attribute :#{alias_name} by :#{original_name}" - end -end diff --git a/spec/support/paper_trail.rb b/spec/support/paper_trail.rb deleted file mode 100644 index 7304b8b60..000000000 --- a/spec/support/paper_trail.rb +++ /dev/null @@ -1 +0,0 @@ -PaperTrail.whodunnit = 'autotest' diff --git a/spec/support/requests/epp_helpers.rb b/spec/support/requests/epp_helpers.rb deleted file mode 100644 index 1bdcd3075..000000000 --- a/spec/support/requests/epp_helpers.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Requests - module EPPHelpers - def valid_legal_document - Base64.encode64('a' * 5000) - end - end -end diff --git a/spec/support/requests/session_helpers.rb b/spec/support/requests/session_helpers.rb deleted file mode 100644 index 1a7b90138..000000000 --- a/spec/support/requests/session_helpers.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Requests - module SessionHelpers - def sign_in_to_admin_area(user: create(:admin_user)) - post admin_user_session_path, admin_user: { username: user.username, password: user.password } - end - - def sign_in_to_registrar_area(user: create(:api_user)) - post registrar_user_session_path, { registrar_user: { username: user.username, password: user.plain_text_password } } - end - end -end \ No newline at end of file diff --git a/spec/support/settings.rb b/spec/support/settings.rb deleted file mode 100644 index e39fea035..000000000 --- a/spec/support/settings.rb +++ /dev/null @@ -1,28 +0,0 @@ -RSpec.configure do |config| - config.before :example do |example| - if example.metadata[:db] && (example.metadata[:settings] != false) - create(:zone, origin: 'com') - - Setting.ds_algorithm = 2 - Setting.ds_data_allowed = true - Setting.ds_data_with_key_allowed = true - Setting.key_data_allowed = false - - Setting.dnskeys_min_count = 0 - Setting.dnskeys_max_count = 9 - - Setting.nameserver_required = false - Setting.ns_min_count = 2 - Setting.ns_max_count = 11 - - Setting.transfer_wait_time = 0 - - Setting.admin_contacts_min_count = 1 - Setting.admin_contacts_max_count = 10 - Setting.tech_contacts_min_count = 0 - Setting.tech_contacts_max_count = 10 - - Setting.client_side_status_editing_enabled = true - end - end -end diff --git a/spec/validators/contact/ident/mismatch_validator_spec.rb b/spec/validators/contact/ident/mismatch_validator_spec.rb deleted file mode 100644 index dfb30fe09..000000000 --- a/spec/validators/contact/ident/mismatch_validator_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rails_helper' - -RSpec.describe Contact::Ident::MismatchValidator do - describe '::mismatches' do - it 'returns mismatches' do - mismatches = [ - Contact::Ident::MismatchValidator::Mismatch.new('birthday', Country.new('EE')) - ] - - expect(described_class.mismatches).to eq(mismatches) - end - end -end diff --git a/spec/views/admin/billing/prices/_form.html.erb_spec.rb b/spec/views/admin/billing/prices/_form.html.erb_spec.rb deleted file mode 100644 index 2349a5d1e..000000000 --- a/spec/views/admin/billing/prices/_form.html.erb_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -require 'rails_helper' -require 'views/shared_examples/money_form_field' - -RSpec.describe 'admin/billing/prices/_form' do - let(:price) { build_stubbed(:price) } - - before :example do - without_partial_double_verification do - allow(view).to receive(:price).and_return(price) - allow(view).to receive(:zones).and_return([]) - allow(view).to receive(:operation_categories).and_return([]) - allow(view).to receive(:durations).and_return([]) - end - - stub_template '_form_errors.html.erb' => '' - end - - describe 'price' do - let(:field) { page.find('#price_price') } - it_behaves_like 'money form field' - end -end diff --git a/spec/views/admin/dns/zones/index.html.erb_spec.rb b/spec/views/admin/dns/zones/index.html.erb_spec.rb deleted file mode 100644 index e066ce79b..000000000 --- a/spec/views/admin/dns/zones/index.html.erb_spec.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'admin/dns/zones/index' do - let(:zones) { [] } - - before :example do - assign(:zones, zones) - stub_template '_zone.html.erb' => 'zone-row' - end - - it 'has title' do - render - expect(rendered).to have_text(t('admin.dns.zones.index.title')) - end - - context 'when zones are present' do - let(:zones) { [build_stubbed(:zone)] } - - it 'has zone row' do - render - expect(rendered).to have_text('zone-row') - end - - it 'has no :not_found message' do - render - expect(rendered).to_not have_text(not_found_message) - end - end - - context 'when zones are absent' do - it 'has :not_found message' do - render - expect(rendered).to have_text(not_found_message) - end - end - - def not_found_message - t('admin.dns.zones.index.not_found') - end -end diff --git a/spec/views/admin/domains/edit.html.erb_spec.rb b/spec/views/admin/domains/edit.html.erb_spec.rb deleted file mode 100644 index 3f74a1f2e..000000000 --- a/spec/views/admin/domains/edit.html.erb_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'admin/domains/edit' do - let(:domain) { build_stubbed(:domain) } - let(:domain_presenter) { DomainPresenter.new(domain: domain, view: view) } - - before :example do - allow(DomainPresenter).to receive(:new).and_return(domain_presenter) - - without_partial_double_verification do - allow(view).to receive(:force_delete_templates) - end - - assign(:domain, domain) - - stub_template '_form.html.erb' => '' - stub_template '_force_delete_dialog.html.erb' => '' - end - - it 'has force_delete_toggle_btn' do - expect(domain_presenter).to receive(:force_delete_toggle_btn).and_return('force_delete_toggle_btn') - render - expect(rendered).to have_content('force_delete_toggle_btn') - end -end diff --git a/spec/views/registrar/contacts/_form.haml_spec.rb b/spec/views/registrar/contacts/_form.haml_spec.rb deleted file mode 100644 index 4feead879..000000000 --- a/spec/views/registrar/contacts/_form.haml_spec.rb +++ /dev/null @@ -1,45 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'registrar/contacts/_form' do - let(:contact) { instance_spy(Depp::Contact) } - - before :example do - without_partial_double_verification do - allow(view).to receive(:f).and_return(ActionView::Helpers::FormBuilder.new(:contact, contact, view, {})) - end - - assign(:contact, contact) - - stub_template 'registrar/shared/_error_messages.haml' => '' - stub_template 'registrar/contacts/form/_general.html.haml' => '' - stub_template 'registrar/contacts/form/_address.html.haml' => 'address info' - stub_template 'registrar/contacts/form/_code.html.haml' => '' - stub_template 'registrar/contacts/form/_legal_document.html.haml' => '' - end - - context 'when address processing is enabled' do - before do - without_partial_double_verification do - allow(view).to receive(:address_processing?).and_return(true) - end - end - - it 'has address' do - render - expect(rendered).to have_text('address info') - end - end - - context 'when address processing is disabled' do - before do - without_partial_double_verification do - allow(view).to receive(:address_processing?).and_return(false) - end - end - - it 'has no address' do - render - expect(rendered).to_not have_text('address info') - end - end -end diff --git a/spec/views/registrar/contacts/form/_legal_document.haml_spec.rb b/spec/views/registrar/contacts/form/_legal_document.haml_spec.rb deleted file mode 100644 index 55ac79e9e..000000000 --- a/spec/views/registrar/contacts/form/_legal_document.haml_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'registrar/contacts/form/_legal_document' do - let(:contact) { instance_spy(Depp::Contact) } - - before :example do - without_partial_double_verification do - allow(view).to receive(:f).and_return(DefaultFormBuilder.new(:depp_contact, contact, view, {})) - end - - assign(:contact, contact) - end - - it 'has legal document' do - render - expect(rendered).to have_css('[name="depp_contact[legal_document]"]') - end -end diff --git a/spec/views/registrar/contacts/show.haml_spec.rb b/spec/views/registrar/contacts/show.haml_spec.rb deleted file mode 100644 index 666d151ff..000000000 --- a/spec/views/registrar/contacts/show.haml_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'registrar/contacts/show' do - let(:contact) { instance_spy(Depp::Contact, id: 1, name: 'test') } - - before do - assign(:contact, contact) - stub_template 'shared/_title.html.haml' => '' - stub_template 'registrar/contacts/partials/_general.html.haml' => '' - stub_template 'registrar/contacts/partials/_statuses.html.haml' => '' - stub_template 'registrar/contacts/partials/_domains.html.haml' => '' - stub_template 'registrar/contacts/partials/_address.html.haml' => 'address info' - end - - context 'when address processing is enabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(true) - end - - it 'has address' do - render - expect(rendered).to have_text('address info') - end - end - - context 'when address processing is disabled' do - before do - allow(Contact).to receive(:address_processing?).and_return(false) - end - - it 'has no address' do - render - expect(rendered).to_not have_text('address info') - end - end -end diff --git a/spec/views/registrar/domains/_form.haml_spec.rb b/spec/views/registrar/domains/_form.haml_spec.rb deleted file mode 100644 index 723ab081b..000000000 --- a/spec/views/registrar/domains/_form.haml_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'registrar/domains/_form' do - let(:domain) { instance_spy(Depp::Domain) } - - before :example do - without_partial_double_verification do - allow(view).to receive(:f).and_return(DefaultFormBuilder.new(:domain, domain, view, {})) - end - - assign(:domain, domain) - - stub_template 'registrar/domains/form/_general.html.haml' => '' - stub_template 'registrar/domains/form/_contacts.html.haml' => '' - stub_template 'registrar/domains/form/_nameservers.html.haml' => '' - stub_template 'registrar/domains/form/_dnskeys.html.haml' => '' - end - - it 'has legal document' do - render - expect(rendered).to have_css('[name="domain[legal_document]"]') - end -end diff --git a/spec/views/shared_examples/money_form_field.rb b/spec/views/shared_examples/money_form_field.rb deleted file mode 100644 index e169f5127..000000000 --- a/spec/views/shared_examples/money_form_field.rb +++ /dev/null @@ -1,11 +0,0 @@ -RSpec.shared_examples 'money form field' do - it 'has max length' do - render - expect(field[:maxlength]).to eq('255') - end - - it 'has money pattern' do - render - expect(field[:pattern]).to eq('^[0-9.,]+$') - end -end diff --git a/test/fixtures/billing/prices.yml b/test/fixtures/billing/prices.yml index 2237a72b4..24aa9f980 100644 --- a/test/fixtures/billing/prices.yml +++ b/test/fixtures/billing/prices.yml @@ -1,5 +1,5 @@ create_one_month: - duration: 1 month + duration: 3 mons price_cents: 100 operation_category: create valid_from: 2010-07-05 @@ -7,7 +7,7 @@ create_one_month: zone: one renew_one_month: - duration: 1 month + duration: 1 mons price_cents: 100 operation_category: renew valid_from: 2010-07-05 diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index 49508c0cf..c507a6b8a 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -19,6 +19,7 @@ api_goodnames: admin: username: test + email: test@registry.test encrypted_password: <%= Devise::Encryptor.digest(AdminUser, 'testtest') %> type: AdminUser country_code: US diff --git a/test/integration/admin_area/zones_test.rb b/test/integration/admin_area/zones_test.rb new file mode 100644 index 000000000..cf95aedc5 --- /dev/null +++ b/test/integration/admin_area/zones_test.rb @@ -0,0 +1,27 @@ +require 'test_helper' + +class AdminAreaZonesIntegrationTest < ApplicationIntegrationTest + setup do + @zone = dns_zones(:one) + sign_in users(:admin) + end + + def test_updates_zone + new_master_nameserver = 'new.test' + assert_not_equal new_master_nameserver, @zone.master_nameserver + + patch admin_zone_path(@zone), zone: { master_nameserver: new_master_nameserver } + @zone.reload + + assert_equal new_master_nameserver, @zone.master_nameserver + end + + def test_downloads_zone_file + post admin_zonefiles_path(origin: @zone.origin) + + assert_response :ok + assert_equal 'text/plain', response.headers['Content-Type'] + assert_equal 'attachment; filename="test.txt"', response.headers['Content-Disposition'] + assert_not_empty response.body + end +end diff --git a/test/integration/epp/contact/create/base_test.rb b/test/integration/epp/contact/create/base_test.rb index 891dea93a..68b30371a 100644 --- a/test/integration/epp/contact/create/base_test.rb +++ b/test/integration/epp/contact/create/base_test.rb @@ -1,7 +1,11 @@ require 'test_helper' class EppContactCreateBaseTest < EppTestCase - def test_creates_new_contact_with_minimum_required_parameters + def test_creates_new_contact_with_required_attributes + name = 'new' + email = 'new@registrar.test' + phone = '+1.2' + request_xml = <<-XML @@ -9,7 +13,76 @@ class EppContactCreateBaseTest < EppTestCase - New + #{name} + + #{phone} + #{email} + + + + + any + + + + + XML + + assert_difference 'Contact.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + + assert_epp_response :completed_successfully + contact = Contact.find_by(name: name) + assert_equal name, contact.name + assert_equal email, contact.email + assert_equal phone, contact.phone + assert_not_empty contact.code + end + + def test_respects_custom_code + name = 'new' + code = 'custom-id' + session = epp_sessions(:api_bestnames) + + request_xml = <<-XML + + + + + + #{code} + + #{name} + + +1.2 + any@any.test + + + + + any + + + + + XML + + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + + contact = Contact.find_by(name: name) + assert_equal "#{session.user.registrar.code}:#{code}".upcase, contact.code + end + + def test_fails_when_required_attributes_are_missing + request_xml = <<-XML + + + + + + + \s +123.4 new@inbox.test @@ -24,15 +97,9 @@ class EppContactCreateBaseTest < EppTestCase XML - assert_difference 'Contact.count' do + assert_no_difference 'Contact.count' do post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - - assert_epp_response :completed_successfully - contact = Contact.last - assert_not_empty contact.code - assert_equal 'New', contact.name - assert_equal 'new@inbox.test', contact.email - assert_equal '+123.4', contact.phone + assert_epp_response :required_parameter_missing end -end \ No newline at end of file +end diff --git a/test/integration/epp/contact/update/base_test.rb b/test/integration/epp/contact/update/base_test.rb index 2362a4469..7f76a310f 100644 --- a/test/integration/epp/contact/update/base_test.rb +++ b/test/integration/epp/contact/update/base_test.rb @@ -133,6 +133,98 @@ class EppContactUpdateBaseTest < EppTestCase assert_no_emails end + def test_non_existing_contact + assert_nil Contact.find_by(code: 'non-existing') + + request_xml = <<-XML + + + + + + non-existing + + + any + + + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :object_does_not_exist + end + + def test_ident_code_cannot_be_updated + new_ident_code = '12345' + assert_not_equal new_ident_code, @contact.ident + + # https://github.com/internetee/registry/issues/415 + @contact.update_columns(code: @contact.code.upcase) + + request_xml = <<-XML + + + + + + #{@contact.code} + + + + + + + + + #{new_ident_code} + + + + + XML + assert_no_changes -> { @contact.updated_at } do + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :data_management_policy_violation + end + + # https://github.com/internetee/registry/issues/576 + def test_ident_type_and_ident_country_code_can_be_updated_when_absent + @contact.update_columns(ident: 'test', ident_type: nil, ident_country_code: nil) + + # https://github.com/internetee/registry/issues/415 + @contact.update_columns(code: @contact.code.upcase) + + request_xml = <<-XML + + + + + + #{@contact.code} + + + + + + + + #{@contact.ident} + + + + + XML + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :completed_successfully + end + private def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) @@ -140,4 +232,4 @@ class EppContactUpdateBaseTest < EppTestCase assert_not_equal other_contact, contact Domain.update_all(registrant_id: other_contact) end -end \ No newline at end of file +end diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index e8787645f..43db1e53e 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -1,15 +1,20 @@ require 'test_helper' class EppDomainCreateBaseTest < EppTestCase - def test_domain_can_be_registered_with_required_attributes_only + def test_registers_new_domain_with_required_attributes + now = Time.zone.parse('2010-07-05') + travel_to now + name = "new.#{dns_zones(:one).origin}" + registrant = contacts(:john).becomes(Registrant) + request_xml = <<-XML - new.test - john-001 + #{name} + #{registrant.code} @@ -25,9 +30,223 @@ class EppDomainCreateBaseTest < EppTestCase post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end - domain = Domain.last - assert_equal 'new.test', domain.name - assert_equal contacts(:john).becomes(Registrant), domain.registrant assert_epp_response :completed_successfully + + domain = Domain.find_by(name: name) + assert_equal name, domain.name + assert_equal registrant, domain.registrant + assert_not_empty domain.transfer_code + + default_registration_period = 1.year + 1.day + assert_equal now + default_registration_period, domain.expire_time + end + + def test_registers_reserved_domain_with_registration_code + reserved_domain = reserved_domains(:one) + registration_code = reserved_domain.registration_code + + request_xml = <<-XML + + + + + + #{reserved_domain.name} + #{contacts(:john).code} + + + + + #{'test' * 2000} + + #{registration_code} + + + + + + XML + + assert_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :completed_successfully + + reserved_domain.reload + assert_not_equal registration_code, reserved_domain.registration_code + end + + def test_respects_custom_transfer_code + name = "new.#{dns_zones(:one).origin}" + transfer_code = 'custom-transfer-code' + + request_xml = <<-XML + + + + + + #{name} + #{contacts(:john).code} + + #{transfer_code} + + + + + + #{'test' * 2000} + + + + + XML + + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :completed_successfully + assert_equal transfer_code, Domain.find_by(name: name).transfer_code + end + + def test_blocked_domain_cannot_be_registered + blocked_domain = 'blocked.test' + assert BlockedDomain.find_by(name: blocked_domain) + + request_xml = <<-XML + + + + + + #{blocked_domain} + #{contacts(:john).code} + + + + + #{'test' * 2000} + + + + + XML + + assert_no_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :data_management_policy_violation + end + + def test_reserved_domain_cannot_be_registered_with_wrong_registration_code + request_xml = <<-XML + + + + + + #{reserved_domains(:one).name} + #{contacts(:john).code} + + + + + #{'test' * 2000} + + wrong + + + + + + XML + + assert_no_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :invalid_authorization_information + end + + def test_reserved_domain_cannot_be_registered_without_registration_code + reserved_domain = reserved_domains(:one) + + request_xml = <<-XML + + + + + + #{reserved_domain.name} + #{contacts(:john).code} + + + + + #{'test' * 2000} + + + + + XML + + assert_no_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :required_parameter_missing + end + + def test_insufficient_funds + session = epp_sessions(:api_bestnames) + session.user.registrar.accounts.first.update!(balance: 0) + + request_xml = <<-XML + + + + + + new.test + #{contacts(:john).code} + + + + + #{'test' * 2000} + + + + + XML + assert_no_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + end + assert_epp_response :billing_failure + end + + def test_no_price + assert_nil Billing::Price.find_by(duration: '2 months') + + request_xml = <<-XML + + + + + + new.test + 2 + john-001 + + + + + #{'test' * 2000} + + + + + XML + assert_no_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + assert_epp_response :billing_failure end end diff --git a/test/integration/epp/domain/create/reserved_test.rb b/test/integration/epp/domain/create/reserved_test.rb deleted file mode 100644 index 40e5be59d..000000000 --- a/test/integration/epp/domain/create/reserved_test.rb +++ /dev/null @@ -1,131 +0,0 @@ -require 'test_helper' - -class EppDomainCreateReservedTest < EppTestCase - setup do - @reserved_domain = reserved_domains(:one) - end - - def test_registers_reserved_domain_with_correct_registration_code - assert_equal 'reserved.test', @reserved_domain.name - assert_equal 'reserved-001', @reserved_domain.registration_code - - request_xml = <<-XML - - - - - - reserved.test - john-001 - - - - - #{'test' * 2000} - - reserved-001 - - - - - - XML - - assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - end - assert_epp_response :completed_successfully - end - - def test_registering_reserved_domain_regenerates_registration_code - assert_equal 'reserved.test', @reserved_domain.name - assert_equal 'reserved-001', @reserved_domain.registration_code - - request_xml = <<-XML - - - - - - reserved.test - john-001 - - - - - #{'test' * 2000} - - reserved-001 - - - - - - XML - - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - @reserved_domain.reload - - assert_not_equal 'reserved-001', @reserved_domain.registration_code - end - - def test_domain_cannot_be_registered_with_wrong_registration_code - assert_equal 'reserved.test', @reserved_domain.name - assert_equal 'reserved-001', @reserved_domain.registration_code - - request_xml = <<-XML - - - - - - reserved.test - john-001 - - - - - #{'test' * 2000} - - wrong - - - - - - XML - - assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - end - assert_epp_response :invalid_authorization_information - end - - def test_domain_cannot_be_registered_without_registration_code - assert_equal 'reserved.test', @reserved_domain.name - - request_xml = <<-XML - - - - - - reserved.test - john-001 - - - - - #{'test' * 2000} - - - - - XML - - assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - end - assert_epp_response :required_parameter_missing - end -end diff --git a/test/integration/epp/domain/create/transfer_code_test.rb b/test/integration/epp/domain/create/transfer_code_test.rb deleted file mode 100644 index 05c7d0bec..000000000 --- a/test/integration/epp/domain/create/transfer_code_test.rb +++ /dev/null @@ -1,62 +0,0 @@ -require 'test_helper' - -class EppDomainCreateTransferCodeTest < EppTestCase - setup do - travel_to Time.zone.parse('2010-07-05') - end - - def test_generates_default - request_xml = <<-XML - - - - - - brandnew.test - 1 - john-001 - - - - - #{'test' * 2000} - - - - - XML - - post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } - refute_empty Domain.find_by(name: 'brandnew.test').transfer_code - assert_epp_response :completed_successfully - end - - def test_honors_custom - request_xml = <<-XML - - - - - - brandnew.test - 1 - john-001 - - 1058ad73 - - - - - - #{'test' * 2000} - - - - - XML - - post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } - assert_equal '1058ad73', Domain.find_by(name: 'brandnew.test').transfer_code - assert_epp_response :completed_successfully - end -end diff --git a/test/integration/epp/domain/domain_update_test.rb b/test/integration/epp/domain/domain_update_test.rb deleted file mode 100644 index e36f5a4b7..000000000 --- a/test/integration/epp/domain/domain_update_test.rb +++ /dev/null @@ -1,52 +0,0 @@ -require 'test_helper' - -class EppDomainUpdateTest < EppTestCase - def setup - @domain = domains(:shop) - end - - def test_update_domain - request_xml = <<-XML - - - - - - shop.test - - - f0ff7d17b0 - - - - - - - XML - - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - @domain.reload - assert_equal 'f0ff7d17b0', @domain.transfer_code - assert_epp_response :completed_successfully - end - - def test_discarded_domain_cannot_be_updated - @domain.update!(statuses: [DomainStatus::DELETE_CANDIDATE]) - - request_xml = <<-XML - - - - - - shop.test - - - - - XML - - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - assert_epp_response :object_status_prohibits_operation - end -end diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb new file mode 100644 index 000000000..f085c67c5 --- /dev/null +++ b/test/integration/epp/domain/update/base_test.rb @@ -0,0 +1,295 @@ +require 'test_helper' + +class EppDomainUpdateBaseTest < EppTestCase + include ActionMailer::TestHelper + + def setup + @domain = domains(:shop) + ActionMailer::Base.deliveries.clear + end + + def test_update_domain + request_xml = <<-XML + + + + + + shop.test + + + f0ff7d17b0 + + + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + assert_equal 'f0ff7d17b0', @domain.transfer_code + assert_epp_response :completed_successfully + end + + def test_discarded_domain_cannot_be_updated + @domain.update!(statuses: [DomainStatus::DELETE_CANDIDATE]) + + request_xml = <<-XML + + + + + + shop.test + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + assert_epp_response :object_status_prohibits_operation + end + + def test_does_not_return_server_delete_prohibited_status_when_pending_update_status_is_set + @domain.update!(statuses: [DomainStatus::SERVER_DELETE_PROHIBITED, + DomainStatus::PENDING_UPDATE]) + request_xml = <<-XML + + + + + + #{@domain.name} + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :object_status_prohibits_operation + response_xml = Nokogiri::XML(response.body) + assert_equal DomainStatus::PENDING_UPDATE, response_xml.at_xpath('//domain:status', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text + end + + def test_requires_verification_from_current_registrant_when_provided_registrant_is_a_new_one + Setting.request_confrimation_on_registrant_change_enabled = true + new_registrant = contacts(:william).becomes(Registrant) + assert_not_equal new_registrant, @domain.registrant + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + #{'test' * 2000} + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + + assert_epp_response :completed_successfully_action_pending + assert_not_equal new_registrant, @domain.registrant + assert @domain.registrant_verification_asked? + assert_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_verification_and_notification_emails + end + + def test_requires_verification_from_current_registrant_when_not_yet_verified_by_registrar + Setting.request_confrimation_on_registrant_change_enabled = true + new_registrant = contacts(:william) + assert_not_equal new_registrant, @domain.registrant + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + #{'test' * 2000} + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + + assert_epp_response :completed_successfully_action_pending + assert_not_equal new_registrant, @domain.registrant + assert @domain.registrant_verification_asked? + assert_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_verification_and_notification_emails + end + + def test_skips_verification_when_provided_registrant_is_the_same_as_current_one + Setting.request_confrimation_on_registrant_change_enabled = true + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{@domain.registrant.code} + + + + + + #{'test' * 2000} + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + + assert_epp_response :completed_successfully + assert_not @domain.registrant_verification_asked? + refute_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_no_emails + end + + def test_skips_verification_when_disabled + Setting.request_confrimation_on_registrant_change_enabled = false + new_registrant = contacts(:william).becomes(Registrant) + assert_not_equal new_registrant, @domain.registrant + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + #{'test' * 2000} + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + + assert_epp_response :completed_successfully + assert_equal new_registrant, @domain.registrant + assert_not @domain.registrant_verification_asked? + refute_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_no_emails + end + + def test_skips_verification_from_current_registrant_when_already_verified_by_registrar + Setting.request_confrimation_on_registrant_change_enabled = true + new_registrant = contacts(:william).becomes(Registrant) + assert_not_equal new_registrant, @domain.registrant + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + #{'test' * 2000} + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + + assert_epp_response :completed_successfully + assert_equal new_registrant, @domain.registrant + assert_not @domain.registrant_verification_asked? + refute_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_no_emails + end + + def test_deactivates_domain_when_all_name_servers_are_removed + assert @domain.active? + assert_equal 2, @domain.nameservers.count + + request_xml = <<-XML + + + + + + #{@domain.name} + + + + #{nameservers(:shop_ns1).hostname} + + + #{nameservers(:shop_ns2).hostname} + + + + + + + + XML + + post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @domain.reload + + assert_epp_response :completed_successfully + assert @domain.inactive? + end + + private + + def assert_verification_and_notification_emails + assert_emails 2 + end +end diff --git a/test/models/admin_user_test.rb b/test/models/admin_user_test.rb new file mode 100644 index 000000000..aedc911bd --- /dev/null +++ b/test/models/admin_user_test.rb @@ -0,0 +1,142 @@ +require 'test_helper' + +class AdminUserTest < ActiveSupport::TestCase + def test_valid_user_fixture_is_valid + assert valid_user.valid?, proc { valid_user.errors.full_messages } + end + + def test_invalid_without_username + user = valid_user + user.username = '' + assert user.invalid? + end + + def test_invalid_without_password_and_password_confirmation_when_creating + user = valid_non_persisted_user + + user.password = '' + user.password_confirmation = '' + assert user.invalid? + + user.password = valid_password + user.password_confirmation = user.password + assert user.valid? + end + + def test_validates_password_format + user = valid_non_persisted_user + + user.password = 'a' * (Devise.password_length.min.pred) + user.password_confirmation = user.password + assert user.invalid? + + user.password = 'a' * (Devise.password_length.max.next) + user.password_confirmation = user.password + assert user.invalid? + + user.password = 'a' * Devise.password_length.min + user.password_confirmation = user.password + assert user.valid? + + user.password = 'a' * Devise.password_length.max + user.password_confirmation = user.password + assert user.valid? + end + + def test_requires_password_confirmation + user = valid_non_persisted_user + user.password = valid_password + + user.password_confirmation = '' + assert user.invalid? + + user.password_confirmation = 'another' + assert user.invalid? + + user.password_confirmation = user.password + assert user.valid?, proc { user.errors.full_messages } + end + + def test_invalid_without_email + user = valid_user + user.email = '' + assert user.invalid? + end + + def test_validates_email_format + user = valid_user + + user.email = 'invalid' + assert user.invalid? + + user.email = 'valid@registry.test' + assert user.valid? + end + + def test_invalid_when_email_is_already_taken + another_user = valid_user + user = valid_non_persisted_user + + user.email = another_user.email + assert user.invalid? + + user.email = 'new-user@registry.test' + assert user.valid?, proc { user.errors.full_messages } + end + + def test_invalid_without_country_code + user = valid_user + user.country_code = '' + assert user.invalid? + end + + def test_invalid_without_roles + user = valid_user + user.roles = [] + assert user.invalid? + end + + def test_valid_without_identity_code + user = valid_user + user.identity_code = '' + assert user.valid? + end + + def test_invalid_without_identity_code_when_country_code_is_estonia + user = valid_user + user.country_code = 'EE' + + user.identity_code = '' + + assert user.invalid? + end + + # https://en.wikipedia.org/wiki/National_identification_number#Estonia + def test_validates_identity_code_format_when_country_code_is_estonia + user = valid_user + user.country_code = 'EE' + + user.identity_code = '47101010030' + assert user.invalid? + + user.identity_code = '47101010033' + assert user.valid? + end + + private + + def valid_user + users(:admin) + end + + def valid_non_persisted_user + user = valid_user.dup + user.password = user.password_confirmation = valid_password + user.email = 'another@registry.test' + user + end + + def valid_password + 'a' * Devise.password_length.min + end +end diff --git a/test/models/api_user_test.rb b/test/models/api_user_test.rb index 12f434a49..20d655a9c 100644 --- a/test/models/api_user_test.rb +++ b/test/models/api_user_test.rb @@ -5,6 +5,53 @@ class ApiUserTest < ActiveSupport::TestCase @user = users(:api_bestnames) end + def test_valid_user_fixture_is_valid + assert valid_user.valid?, proc { valid_user.errors.full_messages } + end + + def test_invalid_without_username + user = valid_user + user.username = '' + assert user.invalid? + end + + def test_invalid_when_username_is_already_taken + user = valid_user + another_user = user.dup + + assert another_user.invalid? + + another_user.username = 'another' + assert another_user.valid? + end + + def test_invalid_without_password + user = valid_user + user.plain_text_password = '' + assert user.invalid? + end + + def test_validates_password_format + user = valid_user + min_length = ApiUser.min_password_length + + user.plain_text_password = 'a' * (min_length.pred) + assert user.invalid? + + user.plain_text_password = 'a' * min_length + assert user.valid? + end + + def test_invalid_without_roles + user = valid_user + user.roles = [] + assert user.invalid? + end + + def test_active_by_default + assert ApiUser.new.active? + end + def test_finds_user_by_id_card id_card = IdCard.new id_card.personal_code = 'one' @@ -15,4 +62,10 @@ class ApiUserTest < ActiveSupport::TestCase @user.update!(identity_code: 'another') assert_nil ApiUser.find_by_id_card(id_card) end -end \ No newline at end of file + + private + + def valid_user + users(:api_bestnames) + end +end diff --git a/test/models/billing/price_test.rb b/test/models/billing/price_test.rb new file mode 100644 index 000000000..ccef56910 --- /dev/null +++ b/test/models/billing/price_test.rb @@ -0,0 +1,106 @@ +require 'test_helper' + +class Billing::PriceTest < ActiveSupport::TestCase + setup do + @user = users(:api_bestnames) + end + + def test_valid_price_fixture_is_valid + assert valid_price.valid?, proc { valid_price.errors.full_messages } + end + + def test_invalid_without_price + price = valid_price + price.price = '' + assert price.invalid? + end + + def test_validates_price_format + price = valid_price + + price.price = -1 + assert price.invalid? + + price.price = 0 + assert price.valid?, proc { price.errors.full_messages } + + price.price = "1#{I18n.t('number.currency.format.separator')}1" + assert price.valid? + + price.price = 1 + assert price.valid? + end + + def test_invalid_without_effective_date + price = valid_price + price.valid_from = '' + assert price.invalid? + end + + def test_invalid_without_operation_category + price = valid_price + price.operation_category = '' + assert price.invalid? + end + + def test_validates_operation_category_format + price = valid_price + + price.operation_category = 'invalid' + assert price.invalid? + + price.operation_category = Billing::Price.operation_categories.first + assert price.valid? + end + + def test_invalid_without_duration + price = valid_price + price.duration = '' + assert price.invalid? + end + + def test_validates_duration_format + price = valid_price + + price.duration = 'invalid' + assert price.invalid? + + price.duration = Billing::Price.durations.first + assert price.valid? + end + + def test_returns_operation_categories + operation_categories = %w[create renew] + assert_equal operation_categories, Billing::Price.operation_categories + end + + def test_returns_durations + durations = [ + '3 mons', + '6 mons', + '9 mons', + '1 year', + '2 years', + '3 years', + '4 years', + '5 years', + '6 years', + '7 years', + '8 years', + '9 years', + '10 years', + ] + assert_equal durations, Billing::Price.durations + end + + def test_returns_statuses + statuses = %w[upcoming effective expired] + assert_equal statuses, Billing::Price.statuses + end + + private + + def valid_price + billing_prices(:create_one_month) + end +end diff --git a/test/models/contact/ident_test.rb b/test/models/contact/ident_test.rb new file mode 100644 index 000000000..cc1ea65e9 --- /dev/null +++ b/test/models/contact/ident_test.rb @@ -0,0 +1,128 @@ +require 'test_helper' + +class ContactIdentTest < ActiveSupport::TestCase + def test_valid_ident_is_valid + assert valid_ident.valid?, proc { valid_ident.errors.full_messages } + end + + def test_invalid_without_code + ident = valid_ident + ident.code = '' + assert ident.invalid? + end + + def test_validates_date_of_birth + ident = valid_ident + ident.type = 'birthday' + + ident.code = '2010-07-05' + assert ident.valid? + + ident.code = '2010-07-0' + assert ident.invalid? + end + + # https://en.wikipedia.org/wiki/National_identification_number#Estonia + def test_country_specific_national_id_format_validation + country = Country.new('EE') + ident = valid_ident + ident.type = 'priv' + ident.country_code = country.alpha2 + + ident.code = 'invalid' + assert ident.invalid? + assert_includes ident.errors.full_messages, "Code does not conform to national identification number format of #{country}" + + ident.code = '47101010033' + assert ident.valid? + + ident.country_code = 'US' + ident.code = 'any' + assert ident.valid? + end + + def test_country_specific_company_registration_number_format_validation + country = Country.new('EE') + ident = valid_ident + ident.type = 'org' + ident.country_code = country.alpha2 + allowed_length = 8 + + ident.code = '1' * allowed_length.pred + assert ident.invalid? + assert_includes ident.errors.full_messages, "Code does not conform to registration number format of #{country}" + + ident.code = '1' * allowed_length.next + assert ident.invalid? + + ident.code = '1' * allowed_length + assert ident.valid? + + ident.country_code = 'US' + ident.code = 'any' + assert ident.valid? + end + + def test_invalid_without_type + ident = valid_ident + ident.type = '' + assert ident.invalid? + end + + def test_validates_type + assert_not_includes Contact::Ident.types, 'invalid' + ident = valid_ident + ident.type = 'invalid' + + assert ident.invalid? + end + + def test_invalid_without_country_code + ident = valid_ident + ident.country_code = '' + assert ident.invalid? + end + + def test_validates_country_code_format + ident = valid_ident + + ident.country_code = 'invalid' + assert ident.invalid? + + ident.country_code = 'US' + assert ident.valid? + end + + def test_validates_for_mismatches + ident = valid_ident + mismatch = Contact::Ident::MismatchValidator.mismatches.first + ident.type = mismatch.type + ident.country_code = mismatch.country.alpha2 + + assert ident.invalid? + assert_includes ident.errors.full_messages, %(Ident type "#{ident.type}" is invalid for #{ident.country}) + end + + def test_returns_types + assert_equal %w[org priv birthday], Contact::Ident.types + end + + def test_returns_country + country_code = 'US' + ident = Contact::Ident.new(country_code: country_code) + assert_equal Country.new(country_code), ident.country + end + + def test_equality + assert_equal Contact::Ident.new(code: 'code', type: 'type', country_code: 'US'), + Contact::Ident.new(code: 'code', type: 'type', country_code: 'US') + assert_not_equal Contact::Ident.new(code: 'code', type: 'type', country_code: 'US'), + Contact::Ident.new(code: 'code', type: 'type', country_code: 'GB') + end + + private + + def valid_ident + Contact::Ident.new(code: '1234', type: 'priv', country_code: 'US') + end +end diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 9c05e9d1d..8a2301395 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -5,8 +5,8 @@ class ContactTest < ActiveSupport::TestCase @contact = contacts(:john) end - def test_valid_fixture_is_valid - assert @contact.valid?, proc { @contact.errors.full_messages } + def test_valid_contact_fixture_is_valid + assert valid_contact.valid?, proc { valid_contact.errors.full_messages } end def test_invalid_fixture_is_invalid @@ -21,30 +21,106 @@ class ContactTest < ActiveSupport::TestCase assert_equal 'org', Contact::ORG end - def test_invalid_without_email - @contact.email = '' - assert @contact.invalid? + def test_invalid_without_name + contact = valid_contact + contact.name = '' + assert contact.invalid? end - def test_email_format_validation - @contact.email = 'invalid' - assert @contact.invalid? + def test_validates_code_format + contact = valid_contact.dup + max_length = 100 - @contact.email = 'test@bestmail.test' - assert @contact.valid? + contact.code = '!invalid' + assert contact.invalid? + + contact.code = 'a' * max_length.next + assert contact.invalid? + + contact.code = 'foo:bar' + assert contact.valid? + + contact.code = 'a' * max_length + assert contact.valid? + end + + def test_invalid_when_code_is_already_taken + another_contact = valid_contact + contact = another_contact.dup + + contact.code = another_contact.code + assert contact.invalid? + + contact.regenerate_code + assert contact.valid? + end + + def test_invalid_without_email + contact = valid_contact + contact.email = '' + assert contact.invalid? + end + + def test_validates_email_format + contact = valid_contact + + contact.email = 'invalid' + assert contact.invalid? + + contact.email = 'valid@registrar.test' + assert contact.valid? end def test_invalid_without_phone - @contact.email = '' - assert @contact.invalid? + contact = valid_contact + contact.phone = '' + assert contact.invalid? end - def test_phone_format_validation - @contact.phone = '+123.' - assert @contact.invalid? + # https://en.wikipedia.org/wiki/E.164 + def test_validates_phone_format + contact = valid_contact - @contact.phone = '+123.4' - assert @contact.valid? + contact.phone = '+.1' + assert contact.invalid? + + contact.phone = '+123.' + assert contact.invalid? + + contact.phone = '+1.123456789123456' + assert contact.invalid? + + contact.phone = '+134.1234567891234' + assert contact.invalid? + + contact.phone = '+000.1' + assert contact.invalid? + + contact.phone = '+123.0' + assert contact.invalid? + + contact.phone = '+1.2' + assert contact.valid? + + contact.phone = '+123.4' + assert contact.valid? + + contact.phone = '+1.12345678912345' + assert contact.valid? + + contact.phone = '+134.123456789123' + assert contact.valid? + end + + def test_valid_without_address_when_address_processing_id_disabled + contact = valid_contact + + contact.street = '' + contact.city = '' + contact.zip = '' + contact.country_code = '' + + assert contact.valid? end def test_address @@ -133,6 +209,45 @@ class ContactTest < ActiveSupport::TestCase assert_not @contact.deletable? end + def test_normalizes_country_code + contact = Contact.new(country_code: 'us') + contact.validate + assert_equal 'US', contact.country_code + end + + def test_normalizes_ident_country_code + contact = Contact.new(ident_country_code: 'us') + contact.validate + assert_equal 'US', contact.ident_country_code + end + + def test_generates_code + contact = Contact.new(registrar: registrars(:bestnames)) + assert_nil contact.code + + contact.generate_code + + assert_not_empty contact.code + end + + def test_prohibits_code_change + assert_no_changes -> { @contact.code } do + @contact.code = 'new' + @contact.save! + @contact.reload + end + end + + def test_removes_duplicate_statuses + contact = Contact.new(statuses: %w[ok ok]) + assert_equal %w[ok], contact.statuses + end + + def test_default_status + contact = Contact.new + assert_equal %w[ok], contact.statuses + end + private def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) @@ -146,4 +261,8 @@ class ContactTest < ActiveSupport::TestCase DomainContact.delete_all contacts(:john) end -end \ No newline at end of file + + def valid_contact + contacts(:john) + end +end diff --git a/test/models/dns/zone_test.rb b/test/models/dns/zone_test.rb new file mode 100644 index 000000000..c18f9592a --- /dev/null +++ b/test/models/dns/zone_test.rb @@ -0,0 +1,132 @@ +require 'test_helper' + +class DNS::ZoneTest < ActiveSupport::TestCase + def test_valid_zone_fixture_is_valid + assert valid_zone.valid?, proc { valid_zone.errors.full_messages } + end + + def test_invalid_without_origin + zone = valid_zone + zone.origin = '' + assert zone.invalid? + end + + def test_invalid_when_origin_is_already_taken + zone = valid_zone + another_zone = zone.dup + assert another_zone.invalid? + end + + def test_invalid_without_ttl + zone = valid_zone + zone.ttl = '' + assert zone.invalid? + end + + def test_validates_ttl_format + zone = valid_zone + + zone.ttl = 'text' + assert zone.invalid? + + zone.ttl = '1.1' + assert zone.invalid? + + zone.ttl = '1' + assert zone.valid? + end + + def test_invalid_without_refresh + zone = valid_zone + zone.refresh = '' + assert zone.invalid? + end + + def test_validates_refresh_format + zone = valid_zone + + zone.refresh = 'text' + assert zone.invalid? + + zone.refresh = '1.1' + assert zone.invalid? + + zone.refresh = '1' + assert zone.valid? + end + + def test_invalid_without_retry + zone = valid_zone + zone.retry = '' + assert zone.invalid? + end + + def test_validates_retry_format + zone = valid_zone + + zone.retry = 'text' + assert zone.invalid? + + zone.retry = '1.1' + assert zone.invalid? + + zone.retry = '1' + assert zone.valid? + end + + def test_invalid_without_expire + zone = valid_zone + zone.expire = '' + assert zone.invalid? + end + + def test_validates_expire_format + zone = valid_zone + + zone.expire = 'text' + assert zone.invalid? + + zone.expire = '1.1' + assert zone.invalid? + + zone.expire = '1' + assert zone.valid? + end + + def test_invalid_without_minimum_ttl + zone = valid_zone + zone.minimum_ttl = '' + assert zone.invalid? + end + + def test_validates_minimum_ttl_format + zone = valid_zone + + zone.minimum_ttl = 'text' + assert zone.invalid? + + zone.minimum_ttl = '1.1' + assert zone.invalid? + + zone.minimum_ttl = '1' + assert zone.valid? + end + + def test_invalid_without_email + zone = valid_zone + zone.email = '' + assert zone.invalid? + end + + def test_invalid_without_master_nameserver + zone = valid_zone + zone.master_nameserver = '' + assert zone.invalid? + end + + private + + def valid_zone + dns_zones(:one) + end +end diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 98baa084a..4cbcda0b7 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -3,16 +3,271 @@ require 'test_helper' class DomainTest < ActiveSupport::TestCase setup do @domain = domains(:shop) + + @original_nameserver_required = Setting.nameserver_required + @original_min_admin_contact_count = Setting.admin_contacts_min_count + @original_max_admin_contact_count = Setting.admin_contacts_max_count + @original_min_tech_contact_count = Setting.tech_contacts_min_count + @original_max_tech_contact_count = Setting.tech_contacts_max_count end - def test_valid_fixture_is_valid - assert @domain.valid? + teardown do + Setting.nameserver_required = @original_nameserver_required + Setting.admin_contacts_min_count = @original_min_admin_contact_count + Setting.admin_contacts_max_count = @original_max_admin_contact_count + Setting.tech_contacts_min_count = @original_min_tech_contact_count + Setting.tech_contacts_max_count = @original_max_tech_contact_count + end + + def test_valid_domain_is_valid + assert valid_domain.valid?, proc { valid_domain.errors.full_messages } end def test_invalid_fixture_is_invalid assert domains(:invalid).invalid? end + # https://www.internet.ee/domeenid/ee-domeenireeglid#domeeninimede-registreerimine + def test_validates_name_format + assert_equal dns_zones(:one).origin, 'test' + domain = valid_domain + subdomain_min_length = 2 + subdomain_max_length = 63 + + domain.name = '!invalid' + assert domain.invalid? + + domain.name = 'aa--a.test' + assert domain.invalid? + + domain.name = '-example.test' + assert domain.invalid? + + domain.name = 'example-.test' + assert domain.invalid? + + domain.name = "#{'a' * subdomain_min_length.pred}.test" + assert domain.invalid? + + domain.name = "#{'a' * subdomain_max_length.next}.test" + assert domain.invalid? + + domain.name = 'рф.test' + assert domain.invalid? + + domain.name = "#{'a' * subdomain_min_length}.test" + assert domain.valid? + + domain.name = "#{'a' * subdomain_max_length}.test" + assert domain.valid? + + domain.name = 'example-1-2.test' + assert domain.valid? + + domain.name = 'EXAMPLE.test' + assert domain.valid? + + domain.name = 'äõöüšž.test' + assert domain.valid? + + domain.name = 'xn--mnchen-3ya.test' + assert domain.valid? + end + + def test_invalid_when_name_is_already_taken + Setting.admin_contacts_min_count = Setting.tech_contacts_min_count = 0 + another_domain = valid_domain + domain = another_domain.dup + + domain.name = another_domain.name + assert domain.invalid? + + domain.name = "new.#{dns_zones(:one).origin}" + assert domain.valid?, proc { domain.errors.full_messages } + end + + def test_invalid_when_name_is_zone + name = dns_zones(:one).origin + domain = valid_domain + + domain.name = name + + assert domain.invalid? + assert_includes domain.errors.full_messages, 'Data management policy violation:' \ + ' Domain name is blocked [name]' + end + + def test_invalid_without_transfer_code + domain = valid_domain + domain.transfer_code = '' + assert domain.invalid? + end + + def test_invalid_when_domain_is_reserved + reserved_domain = reserved_domains(:one) + domain = valid_domain.dup + domain.name = reserved_domain.name + + assert domain.invalid? + assert_includes domain.errors.full_messages, 'Required parameter missing; reserved>' \ + 'pw element required for reserved domains' + end + + def test_invalid_without_registration_period + domain = valid_domain + domain.period = '' + assert domain.invalid? + end + + def test_validates_registration_period_format + domain = valid_domain + + domain.period = 'invalid' + assert domain.invalid? + + domain.period = 1.1 + assert domain.invalid? + + domain.period = 1 + assert domain.valid? + end + + def test_invalid_when_the_same_admin_contact_is_linked_twice + domain = valid_domain + contact = contacts(:john) + + domain.admin_contacts << contact + domain.admin_contacts << contact + + assert domain.invalid? + end + + def test_invalid_when_the_same_tech_contact_is_linked_twice + domain = valid_domain + contact = contacts(:john) + + domain.tech_contacts << contact + domain.tech_contacts << contact + + assert domain.invalid? + end + + def test_validates_name_server_count_when_name_servers_are_required + nameserver_attributes = nameservers(:shop_ns1).dup.attributes + domain = valid_domain + Setting.nameserver_required = true + min_count = 1 + max_count = 2 + Setting.ns_min_count = min_count + Setting.ns_max_count = max_count + + domain.nameservers.clear + min_count.times { domain.nameservers.build(nameserver_attributes) } + assert domain.valid?, proc { domain.errors.full_messages } + + domain.nameservers.clear + max_count.times do |i| + domain.nameservers.build(nameserver_attributes.merge(hostname: "ns#{i}.test")) + end + assert domain.valid?, proc { domain.errors.full_messages } + + domain.nameservers.clear + assert domain.invalid? + + domain.nameservers.clear + max_count.next.times do |i| + domain.nameservers.build(nameserver_attributes.merge(hostname: "ns#{i}.test")) + end + assert domain.invalid? + end + + def test_valid_without_name_servers_when_they_are_optional + domain = valid_domain + domain.nameservers.clear + Setting.nameserver_required = false + Setting.ns_min_count = 1 + + assert domain.valid? + end + + def test_validates_admin_contact_count + domain_contact_attributes = domain_contacts(:shop_jane).dup.attributes + domain = valid_domain + min_count = 1 + max_count = 2 + Setting.admin_contacts_min_count = min_count + Setting.admin_contacts_max_count = max_count + + domain.admin_domain_contacts.clear + min_count.times { domain.admin_domain_contacts.build(domain_contact_attributes) } + assert domain.valid?, proc { domain.errors.full_messages } + + domain.admin_domain_contacts.clear + max_count.times { domain.admin_domain_contacts.build(domain_contact_attributes) } + assert domain.valid?, proc { domain.errors.full_messages } + + domain.admin_domain_contacts.clear + assert domain.invalid? + + domain.admin_domain_contacts.clear + max_count.next.times { domain.admin_domain_contacts.build(domain_contact_attributes) } + assert domain.invalid? + end + + def test_validates_tech_contact_count + domain_contact_attributes = domain_contacts(:shop_william).dup.attributes + domain = valid_domain + min_count = 1 + max_count = 2 + Setting.tech_contacts_min_count = min_count + Setting.tech_contacts_max_count = max_count + + domain.tech_domain_contacts.clear + min_count.times { domain.tech_domain_contacts.build(domain_contact_attributes) } + assert domain.valid?, proc { domain.errors.full_messages } + + domain.tech_domain_contacts.clear + max_count.times { domain.tech_domain_contacts.build(domain_contact_attributes) } + assert domain.valid?, proc { domain.errors.full_messages } + + domain.tech_domain_contacts.clear + assert domain.invalid? + + domain.tech_domain_contacts.clear + max_count.next.times { domain.tech_domain_contacts.build(domain_contact_attributes) } + assert domain.invalid? + end + + def test_outzone_candidates_scope_returns_records_with_outzone_at_in_the_past + travel_to Time.zone.parse('2010-07-05 08:00:00') + domain1 = domains(:shop) + domain1.update!(outzone_at: Time.zone.parse('2010-07-05 07:59:59')) + domain2 = domains(:airport) + domain2.update!(outzone_at: Time.zone.parse('2010-07-05 08:00:00')) + domain3 = domains(:library) + domain3.update!(outzone_at: Time.zone.parse('2010-07-05 08:00:01')) + Domain.connection.disable_referential_integrity do + Domain.delete_all("id NOT IN (#{[domain1.id, domain2.id, domain3.id].join(',')})") + end + + assert_equal [domain1.id], Domain.outzone_candidates.ids + end + + def test_expired_scope_returns_records_with_valid_to_in_the_past + travel_to Time.zone.parse('2010-07-05 08:00:00') + domain1 = domains(:shop) + domain1.update!(valid_to: Time.zone.parse('2010-07-05 07:59:59')) + domain2 = domains(:airport) + domain2.update!(valid_to: Time.zone.parse('2010-07-05 08:00:00')) + domain3 = domains(:library) + domain3.update!(valid_to: Time.zone.parse('2010-07-05 08:00:01')) + Domain.connection.disable_referential_integrity do + Domain.delete_all("id NOT IN (#{[domain1.id, domain2.id, domain3.id].join(',')})") + end + + assert_equal [domain1.id, domain2.id], Domain.expired.ids + end + def test_domain_name domain = Domain.new(name: 'shop.test') assert_equal 'shop.test', domain.domain_name.to_s @@ -79,4 +334,87 @@ class DomainTest < ActiveSupport::TestCase assert_equal %w[john@inbox.test william@inbox.test].sort, @domain.primary_contact_emails.sort end -end \ No newline at end of file + + def test_normalizes_name + unnormalized_name = ' Foo.test ' + domain = Domain.new(name: unnormalized_name) + + assert_equal 'foo.test', domain.name + assert_equal 'foo.test', domain.name_puny + assert_equal unnormalized_name, domain.name_dirty + end + + def test_converts_name_to_punycode + domain = Domain.new(name: 'münchen.test') + assert_equal 'xn--mnchen-3ya.test', domain.name_puny + end + + def test_returns_new_registrant_id + id = 1 + domain = Domain.new(pending_json: { new_registrant_id: id }) + + assert_equal id, domain.new_registrant_id + end + + def test_returns_new_registrant_email + email = 'john@inbox.test' + domain = Domain.new(pending_json: { new_registrant_email: email }) + + assert_equal email, domain.new_registrant_email + end + + def test_expiration + now = Time.zone.parse('2010-07-05 08:00:00') + travel_to now + domain = Domain.new + + domain.valid_to = now + 1.second + assert domain.registered? + assert_not domain.expired? + + domain.valid_to = now + assert domain.expired? + assert_not domain.registered? + + domain.valid_to = now - 1.second + assert domain.expired? + assert_not domain.registered? + end + + def test_activation + domain = inactive_domain + + assert domain.inactive? + assert_not domain.active? + + domain.activate + + assert domain.active? + assert_not domain.inactive? + end + + def test_deactivation + domain = @domain + + assert domain.active? + assert_not domain.inactive? + + domain.deactivate + + assert domain.inactive? + assert_not domain.active? + end + + private + + def valid_domain + domains(:shop) + end + + def inactive_domain + Setting.nameserver_required = true + domain = @domain + domain.update!(statuses: [DomainStatus::INACTIVE]) + domain + end +end diff --git a/test/models/white_ip_test.rb b/test/models/white_ip_test.rb new file mode 100644 index 000000000..607887730 --- /dev/null +++ b/test/models/white_ip_test.rb @@ -0,0 +1,54 @@ +require 'test_helper' + +class WhiteIpTest < ActiveSupport::TestCase + def test_either_ipv4_or_ipv6_is_required + white_ip = valid_white_ip + + white_ip.ipv4 = '' + white_ip.ipv6 = '' + assert white_ip.invalid? + assert_includes white_ip.errors.full_messages, 'IPv4 or IPv6 must be present' + + white_ip.ipv4 = valid_ipv4 + white_ip.ipv6 = '' + assert white_ip.valid? + + white_ip.ipv4 = '' + white_ip.ipv6 = valid_ipv6 + assert white_ip.valid? + end + + def test_validates_ipv4_format + white_ip = valid_white_ip + + white_ip.ipv4 = 'invalid' + assert white_ip.invalid? + + white_ip.ipv4 = valid_ipv4 + assert white_ip.valid? + end + + def test_validates_ipv6_format + white_ip = valid_white_ip + + white_ip.ipv6 = 'invalid' + assert white_ip.invalid? + + white_ip.ipv6 = valid_ipv6 + assert white_ip.valid? + end + + private + + def valid_white_ip + white_ips(:one) + end + + def valid_ipv4 + '192.0.2.1' + end + + def valid_ipv6 + '2001:db8::1' + end +end diff --git a/test/system/admin_area/prices_test.rb b/test/system/admin_area/prices_test.rb new file mode 100644 index 000000000..dbb91966a --- /dev/null +++ b/test/system/admin_area/prices_test.rb @@ -0,0 +1,47 @@ +require 'application_system_test_case' + +class AdminAreaPricesTest < ApplicationSystemTestCase + setup do + sign_in users(:admin) + @price = billing_prices(:create_one_month) + end + + def test_adds_new_price_with_required_attributes + effective_date = Date.parse('2010-07-06') + assert_nil Billing::Price.find_by(valid_from: effective_date) + + visit admin_prices_url + click_on 'New price' + + select dns_zones(:one).origin, from: 'Zone' + select Billing::Price.operation_categories.first, from: 'Operation category' + select '3 months', from: 'Duration' + fill_in 'Price', with: '1' + fill_in 'Valid from', with: effective_date + click_on 'Create price' + + assert_text 'Price has been created' + assert_text I18n.localize(effective_date) + end + + def test_changes_price + new_effective_date = Date.parse('2010-07-06') + assert_not_equal new_effective_date, @price.valid_from + + visit admin_prices_url + find('.edit-price-btn').click + fill_in 'Valid from', with: new_effective_date + click_on 'Update price' + + assert_text 'Price has been updated' + assert_text I18n.localize(new_effective_date) + end + + def test_expires_price + visit admin_prices_url + find('.edit-price-btn').click + click_on 'Expire' + + assert_text 'Price has been expired' + end +end diff --git a/test/system/admin_area/settings_test.rb b/test/system/admin_area/settings_test.rb new file mode 100644 index 000000000..0097381d9 --- /dev/null +++ b/test/system/admin_area/settings_test.rb @@ -0,0 +1,13 @@ +require 'application_system_test_case' + +class AdminAreaSettingsTest < ApplicationSystemTestCase + setup do + sign_in users(:admin) + end + + def test_saves_settings + visit admin_settings_url + click_link_or_button 'Save' + assert_text 'Settings have been successfully updated' + end +end diff --git a/test/system/admin_area/zones_test.rb b/test/system/admin_area/zones_test.rb new file mode 100644 index 000000000..d7ad9d690 --- /dev/null +++ b/test/system/admin_area/zones_test.rb @@ -0,0 +1,46 @@ +require 'application_system_test_case' + +class AdminAreaZonesTest < ApplicationSystemTestCase + setup do + sign_in users(:admin) + @zone = dns_zones(:one) + end + + def test_creates_new_zone_with_required_attributes + origin = 'com.test' + assert_nil DNS::Zone.find_by(origin: origin) + + visit admin_zones_url + click_on 'New zone' + + fill_in 'Origin', with: origin + fill_in 'Ttl', with: '1' + fill_in 'Refresh', with: '1' + fill_in 'Retry', with: '1' + fill_in 'Expire', with: '1' + fill_in 'Minimum ttl', with: '1' + fill_in 'Email', with: 'new.registry.test' + fill_in 'Master nameserver', with: 'any.test' + click_on 'Create zone' + + assert_text 'Zone has been created' + assert_text origin + end + + def test_changes_zone + new_email = 'new@registry.test' + assert_not_equal new_email, @zone.email + + visit admin_zones_url + click_on 'admin-edit-zone-btn' + fill_in 'Email', with: new_email + click_on 'Update zone' + + assert_text 'Zone has been updated' + end + + def test_origin_is_not_editable + visit edit_admin_zone_url(@zone) + assert_no_field 'Origin' + end +end diff --git a/test/system/registrar_area/base_test.rb b/test/system/registrar_area/base_test.rb new file mode 100644 index 000000000..35b64df69 --- /dev/null +++ b/test/system/registrar_area/base_test.rb @@ -0,0 +1,33 @@ +require 'application_system_test_case' + +class RegistrarAreaBaseTestTest < ApplicationSystemTestCase + def test_user_cannot_access_without_ip_address_being_whitelisted + Setting.registrar_ip_whitelist_enabled = true + WhiteIp.delete_all + + visit new_registrar_user_session_url + + assert_text 'Access denied from IP 127.0.0.1' + assert_no_button 'Login' + end + + def test_user_can_access_when_ip_is_whitelisted + white_ips(:one).update!(ipv4: '127.0.0.1', interfaces: [WhiteIp::REGISTRAR]) + Setting.registrar_ip_whitelist_enabled = true + + visit new_registrar_user_session_url + + assert_no_text 'Access denied from IP 127.0.0.1' + assert_button 'Login' + end + + def test_user_can_access_when_ip_is_not_whitelisted_and_whitelist_is_disabled + Setting.registrar_ip_whitelist_enabled = false + WhiteIp.delete_all + + visit new_registrar_user_session_url + + assert_no_text 'Access denied from IP 127.0.0.1' + assert_button 'Login' + end +end From aeee87ea75b5a37a61722beddbc2257b176331f9 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 3 Oct 2019 15:12:26 +0300 Subject: [PATCH 086/757] Remove `factory_bot_rails` gem --- Gemfile | 1 - Gemfile.lock | 6 ---- spec/factories/account.rb | 8 ----- spec/factories/account_activity.rb | 6 ---- spec/factories/admin_domain_contact.rb | 5 --- spec/factories/admin_user.rb | 10 ------ spec/factories/api_user.rb | 23 ------------- spec/factories/billing/price.rb | 18 ----------- spec/factories/contact.rb | 39 ----------------------- spec/factories/dns/zone.rb | 12 ------- spec/factories/dnskey.rb | 15 --------- spec/factories/domain.rb | 15 --------- spec/factories/domain_contact.rb | 5 --- spec/factories/epp_session.rb | 6 ---- spec/factories/keyrelay.rb | 12 ------- spec/factories/nameserver.rb | 7 ---- spec/factories/registrant.rb | 10 ------ spec/factories/registrant_user.rb | 5 --- spec/factories/registrant_verification.rb | 9 ------ spec/factories/registrar.rb | 26 --------------- spec/factories/reserved_domain.rb | 5 --- spec/factories/tech_domain_contact.rb | 5 --- spec/factories/white_ip.rb | 5 --- spec/factory_lint_spec.rb | 15 --------- spec/support/factory_bot.rb | 3 -- test/test_helper.rb | 2 -- 26 files changed, 273 deletions(-) delete mode 100644 spec/factories/account.rb delete mode 100644 spec/factories/account_activity.rb delete mode 100644 spec/factories/admin_domain_contact.rb delete mode 100644 spec/factories/admin_user.rb delete mode 100644 spec/factories/api_user.rb delete mode 100644 spec/factories/billing/price.rb delete mode 100644 spec/factories/contact.rb delete mode 100644 spec/factories/dns/zone.rb delete mode 100644 spec/factories/dnskey.rb delete mode 100644 spec/factories/domain.rb delete mode 100644 spec/factories/domain_contact.rb delete mode 100644 spec/factories/epp_session.rb delete mode 100644 spec/factories/keyrelay.rb delete mode 100644 spec/factories/nameserver.rb delete mode 100644 spec/factories/registrant.rb delete mode 100644 spec/factories/registrant_user.rb delete mode 100644 spec/factories/registrant_verification.rb delete mode 100644 spec/factories/registrar.rb delete mode 100644 spec/factories/reserved_domain.rb delete mode 100644 spec/factories/tech_domain_contact.rb delete mode 100644 spec/factories/white_ip.rb delete mode 100644 spec/factory_lint_spec.rb delete mode 100644 spec/support/factory_bot.rb diff --git a/Gemfile b/Gemfile index 0a7d8e7f3..3e4d79449 100644 --- a/Gemfile +++ b/Gemfile @@ -89,7 +89,6 @@ group :development do end group :development, :test do - gem 'factory_bot_rails' gem 'capybara' gem 'rspec-rails', '~> 3.6' gem 'selenium-webdriver' diff --git a/Gemfile.lock b/Gemfile.lock index c0c82c9e9..aaae2e0f7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -176,11 +176,6 @@ GEM equalizer (0.0.11) erubis (2.7.0) execjs (2.7.0) - factory_bot (4.8.2) - activesupport (>= 3.0.0) - factory_bot_rails (4.8.2) - factory_bot (~> 4.8.2) - railties (>= 3.0.0) ffi (1.9.25) figaro (1.1.1) thor (~> 0.14) @@ -458,7 +453,6 @@ DEPENDENCIES e_invoice! epp (= 1.5.0)! epp-xml (= 1.1.0)! - factory_bot_rails figaro (= 1.1.1) grape haml diff --git a/spec/factories/account.rb b/spec/factories/account.rb deleted file mode 100644 index 4407b1f86..000000000 --- a/spec/factories/account.rb +++ /dev/null @@ -1,8 +0,0 @@ -FactoryBot.define do - factory :account do - account_type Account::CASH - balance 1 - currency 'EUR' - registrar - end -end diff --git a/spec/factories/account_activity.rb b/spec/factories/account_activity.rb deleted file mode 100644 index b5dd348f2..000000000 --- a/spec/factories/account_activity.rb +++ /dev/null @@ -1,6 +0,0 @@ -FactoryBot.define do - factory :account_activity do - sum 1.0 - account - end -end diff --git a/spec/factories/admin_domain_contact.rb b/spec/factories/admin_domain_contact.rb deleted file mode 100644 index bdfb193e3..000000000 --- a/spec/factories/admin_domain_contact.rb +++ /dev/null @@ -1,5 +0,0 @@ -FactoryBot.define do - factory :admin_domain_contact, parent: :domain_contact, class: AdminDomainContact do - - end -end diff --git a/spec/factories/admin_user.rb b/spec/factories/admin_user.rb deleted file mode 100644 index 8f948062d..000000000 --- a/spec/factories/admin_user.rb +++ /dev/null @@ -1,10 +0,0 @@ -FactoryBot.define do - factory :admin_user do - username 'test' - sequence(:email) { |n| "test#{n}@test.com" } - password 'a' * AdminUser.min_password_length - password_confirmation { password } - country_code 'de' - roles ['admin'] - end -end diff --git a/spec/factories/api_user.rb b/spec/factories/api_user.rb deleted file mode 100644 index 01ba0f8da..000000000 --- a/spec/factories/api_user.rb +++ /dev/null @@ -1,23 +0,0 @@ -FactoryBot.define do - factory :api_user do - sequence(:username) { |n| "test#{n}" } - plain_text_password 'a' * ApiUser.min_password_length - roles ['super'] - registrar - - factory :api_user_epp do - roles %w(epp static_registrant) - end - - factory :api_user_with_unlimited_balance do - transient do - registrar false - end - - after :build do |api_user, evaluator| - registrar = (evaluator.registrar || create(:registrar_with_unlimited_balance)) - api_user.registrar = registrar - end - end - end -end diff --git a/spec/factories/billing/price.rb b/spec/factories/billing/price.rb deleted file mode 100644 index 4d44cf6a1..000000000 --- a/spec/factories/billing/price.rb +++ /dev/null @@ -1,18 +0,0 @@ -FactoryBot.define do - factory :price, class: Billing::Price do - price Money.from_amount(1) - valid_from Time.zone.parse('05.07.2010') - valid_to Time.zone.parse('05.07.2010') - duration '1 year' - operation_category Billing::Price.operation_categories.first - zone - - factory :effective_price do - expire_time { Time.zone.now + 1.day } - end - - factory :expired_price do - expire_time { Time.zone.now - 1.day } - end - end -end diff --git a/spec/factories/contact.rb b/spec/factories/contact.rb deleted file mode 100644 index 7e7a9a6a2..000000000 --- a/spec/factories/contact.rb +++ /dev/null @@ -1,39 +0,0 @@ -FactoryBot.define do - factory :contact do - name 'test' - sequence(:code) { |n| "test#{n}" } - phone '+123.456789' - email 'test@test.com' - street 'test' - city 'test' - zip 12345 - country_code 'EE' - ident '37605030299' - ident_type 'priv' - ident_country_code 'EE' - registrar - - factory :contact_private_entity do - ident_type 'priv' - end - - factory :contact_legal_entity do - ident_type 'org' - ident '12345678' # valid reg no for .ee - end - - factory :contact_with_address do - street 'test' - city 'test' - zip 12345 - country_code 'EE' - end - - factory :contact_without_address do - street nil - city nil - zip nil - country_code nil - end - end -end diff --git a/spec/factories/dns/zone.rb b/spec/factories/dns/zone.rb deleted file mode 100644 index e88a3f2fe..000000000 --- a/spec/factories/dns/zone.rb +++ /dev/null @@ -1,12 +0,0 @@ -FactoryBot.define do - factory :zone, class: DNS::Zone do - sequence(:origin) { |n| "test#{n}" } - ttl 1 - refresh 1 - add_attribute :retry, 1 - expire 1 - minimum_ttl 1 - email 'test.test' - master_nameserver 'test.test' - end -end diff --git a/spec/factories/dnskey.rb b/spec/factories/dnskey.rb deleted file mode 100644 index 4dbf0a788..000000000 --- a/spec/factories/dnskey.rb +++ /dev/null @@ -1,15 +0,0 @@ -FactoryBot.define do - factory :dnskey do - alg Dnskey::ALGORITHMS.first - flags Dnskey::FLAGS.first - protocol Dnskey::PROTOCOLS.first - ds_digest_type 2 - public_key 'AwEAAaOf5+lz3ftsL+0CCvfJbhUF/NVsNh8BKo61oYs5fXVbuWDiH872 '\ - 'LC8uKDO92TJy7Q4TF9XMAKMMlf1GMAxlRspD749SOCTN00sqfWx1OMTu '\ - 'a28L1PerwHq7665oDJDKqR71btcGqyLKhe2QDvCdA0mENimF1NudX1BJ '\ - 'DDFi6oOZ0xE/0CuveB64I3ree7nCrwLwNs56kXC4LYoX3XdkOMKiJLL/ '\ - 'MAhcxXa60CdZLoRtTEW3z8/oBq4hEAYMCNclpbd6y/exScwBxFTdUfFk '\ - 'KsdNcmvai1lyk9vna0WQrtpYpHKMXvY9LFHaJxCOLR4umfeQ42RuTd82 lqfU6ClMeXs=' - domain - end -end diff --git a/spec/factories/domain.rb b/spec/factories/domain.rb deleted file mode 100644 index 39ad2240d..000000000 --- a/spec/factories/domain.rb +++ /dev/null @@ -1,15 +0,0 @@ -FactoryBot.define do - factory :domain do - sequence(:name) { |n| "test#{n}.com" } - period 1 - period_unit 'y' # Year - valid_to Time.zone.parse('2010-07-05') - registrar - registrant - - after :build do |domain| - domain.admin_domain_contacts << FactoryBot.build(:admin_domain_contact) - domain.tech_domain_contacts << FactoryBot.build(:tech_domain_contact) - end - end -end diff --git a/spec/factories/domain_contact.rb b/spec/factories/domain_contact.rb deleted file mode 100644 index caf964ed3..000000000 --- a/spec/factories/domain_contact.rb +++ /dev/null @@ -1,5 +0,0 @@ -FactoryBot.define do - factory :domain_contact do - contact - end -end diff --git a/spec/factories/epp_session.rb b/spec/factories/epp_session.rb deleted file mode 100644 index 296368a92..000000000 --- a/spec/factories/epp_session.rb +++ /dev/null @@ -1,6 +0,0 @@ -FactoryBot.define do - factory :epp_session do - sequence(:session_id) { |n| "test#{n}" } - association :user, factory: :api_user - end -end diff --git a/spec/factories/keyrelay.rb b/spec/factories/keyrelay.rb deleted file mode 100644 index 4587af999..000000000 --- a/spec/factories/keyrelay.rb +++ /dev/null @@ -1,12 +0,0 @@ -FactoryBot.define do - factory :keyrelay do - pa_date { Time.zone.now } - expiry_relative 'P1W' - key_data_public_key 'abc' - key_data_flags 0 - key_data_protocol 3 - key_data_alg 3 - auth_info_pw 'abc' - domain - end -end diff --git a/spec/factories/nameserver.rb b/spec/factories/nameserver.rb deleted file mode 100644 index ee0a7f987..000000000 --- a/spec/factories/nameserver.rb +++ /dev/null @@ -1,7 +0,0 @@ -FactoryBot.define do - factory :nameserver do - sequence(:hostname) { |n| "ns.test#{n}.ee" } - ipv4 '192.168.1.1' - domain - end -end diff --git a/spec/factories/registrant.rb b/spec/factories/registrant.rb deleted file mode 100644 index f21fbe7c4..000000000 --- a/spec/factories/registrant.rb +++ /dev/null @@ -1,10 +0,0 @@ -FactoryBot.define do - factory :registrant, parent: :contact, class: Registrant do - name 'test' - - factory :registrant_private_entity, class: Registrant, parent: :contact_private_entity - factory :registrant_legal_entity, class: Registrant, parent: :contact_legal_entity - factory :registrant_with_address, class: Registrant, parent: :contact_with_address - factory :registrant_without_address, class: Registrant, parent: :contact_without_address - end -end diff --git a/spec/factories/registrant_user.rb b/spec/factories/registrant_user.rb deleted file mode 100644 index 29d0a2479..000000000 --- a/spec/factories/registrant_user.rb +++ /dev/null @@ -1,5 +0,0 @@ -FactoryBot.define do - factory :registrant_user do - - end -end diff --git a/spec/factories/registrant_verification.rb b/spec/factories/registrant_verification.rb deleted file mode 100644 index 5ecc81fa5..000000000 --- a/spec/factories/registrant_verification.rb +++ /dev/null @@ -1,9 +0,0 @@ -FactoryBot.define do - factory :registrant_verification do - sequence(:domain_name) { |i| "domain#{i}.ee" } - domain - verification_token '123' - action 'confirmed' - action_type 'registrant_change' - end -end diff --git a/spec/factories/registrar.rb b/spec/factories/registrar.rb deleted file mode 100644 index 2bc945900..000000000 --- a/spec/factories/registrar.rb +++ /dev/null @@ -1,26 +0,0 @@ -FactoryBot.define do - factory :registrar do - sequence(:name) { |n| "test#{n}" } - sequence(:code) { |n| "test#{n}" } - sequence(:reg_no) { |n| "test#{n}" } - email 'test@test.com' - address_street 'test' - address_city 'test' - address_country_code 'US' - accounting_customer_code 'test' - language 'en' - sequence(:reference_no) { |n| "1234#{n}" } - - factory :registrar_with_unlimited_balance do - after :create do |registrar| - create(:account, registrar: registrar, balance: 1_000_000) - end - end - - factory :registrar_with_zero_balance do - after :create do |registrar| - create(:account, registrar: registrar, balance: 0) - end - end - end -end diff --git a/spec/factories/reserved_domain.rb b/spec/factories/reserved_domain.rb deleted file mode 100644 index 54d3c61df..000000000 --- a/spec/factories/reserved_domain.rb +++ /dev/null @@ -1,5 +0,0 @@ -FactoryBot.define do - factory :reserved_domain do - sequence(:name) { |i| "domain#{i}.ee" } - end -end diff --git a/spec/factories/tech_domain_contact.rb b/spec/factories/tech_domain_contact.rb deleted file mode 100644 index b3b3f0564..000000000 --- a/spec/factories/tech_domain_contact.rb +++ /dev/null @@ -1,5 +0,0 @@ -FactoryBot.define do - factory :tech_domain_contact, parent: :domain_contact, class: TechDomainContact do - - end -end diff --git a/spec/factories/white_ip.rb b/spec/factories/white_ip.rb deleted file mode 100644 index f2b46711c..000000000 --- a/spec/factories/white_ip.rb +++ /dev/null @@ -1,5 +0,0 @@ -FactoryBot.define do - factory :white_ip do - ipv4 '127.0.0.1' - end -end diff --git a/spec/factory_lint_spec.rb b/spec/factory_lint_spec.rb deleted file mode 100644 index 8d6386f2f..000000000 --- a/spec/factory_lint_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -require_relative 'rails_helper' - -RSpec.describe 'FactoryBot', db: true do - before :example do - allow(Contact).to receive(:address_processing?).and_return(false) - end - - it 'lints factories' do - factories_to_lint = FactoryBot.factories.reject do |factory| - %i(reserved_domain).include?(factory.name) || factory.name.to_s =~ /^domain/ # Ignore the ones with domain_name validator - end - - FactoryBot.lint factories_to_lint - end -end diff --git a/spec/support/factory_bot.rb b/spec/support/factory_bot.rb deleted file mode 100644 index c7890e49c..000000000 --- a/spec/support/factory_bot.rb +++ /dev/null @@ -1,3 +0,0 @@ -RSpec.configure do |config| - config.include FactoryBot::Syntax::Methods -end diff --git a/test/test_helper.rb b/test/test_helper.rb index c250837c1..9159ff2e3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -29,8 +29,6 @@ CompanyRegister::Client = CompanyRegisterClientStub EInvoice.provider = EInvoice::Providers::TestProvider.new class ActiveSupport::TestCase - include FactoryBot::Syntax::Methods - ActiveRecord::Migration.check_pending! fixtures :all From 3fb6ccc67c0913e2b51c120fe0709748e480d3a2 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 3 Oct 2019 15:15:34 +0300 Subject: [PATCH 087/757] Remove `rspec-rails` gem --- .codeclimate.yml | 1 - .travis.yml | 1 - Gemfile | 1 - Gemfile.lock | 9 ----- bin/rspec | 16 --------- config/application.rb | 3 -- spec/rails_helper.rb | 64 ------------------------------------ spec/spec_helper.rb | 76 ------------------------------------------- 8 files changed, 171 deletions(-) delete mode 100755 bin/rspec delete mode 100644 spec/rails_helper.rb delete mode 100644 spec/spec_helper.rb diff --git a/.codeclimate.yml b/.codeclimate.yml index ec9b25820..5a9b41ea7 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -38,7 +38,6 @@ exclude_patterns: - "lib/tasks/import.rake" - "lib/tasks/legal_doc.rake" - "lib/tasks/whois.rake" - - "spec/" - "test/" - "vendor/" - "CHANGELOG.md" diff --git a/.travis.yml b/.travis.yml index 60b453f63..460122e12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,6 @@ before_script: - "chmod +x ./cc-test-reporter" - "./cc-test-reporter before-build" script: - - "bundle exec rspec" - "bundle exec rake test" after_script: - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT" diff --git a/Gemfile b/Gemfile index 3e4d79449..d855cb751 100644 --- a/Gemfile +++ b/Gemfile @@ -90,7 +90,6 @@ end group :development, :test do gem 'capybara' - gem 'rspec-rails', '~> 3.6' gem 'selenium-webdriver' # debug diff --git a/Gemfile.lock b/Gemfile.lock index aaae2e0f7..8673577c9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -336,14 +336,6 @@ GEM rspec-mocks (3.6.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.6.0) - rspec-rails (3.6.0) - actionpack (>= 3.0) - activesupport (>= 3.0) - railties (>= 3.0) - rspec-core (~> 3.6.0) - rspec-expectations (~> 3.6.0) - rspec-mocks (~> 3.6.0) - rspec-support (~> 3.6.0) rspec-support (3.6.0) rubyzip (1.2.2) safe_yaml (1.0.5) @@ -477,7 +469,6 @@ DEPENDENCIES rails-settings-cached (= 0.7.2) ransack (= 1.5.1) rest-client - rspec-rails (~> 3.6) sass-rails (= 5.0.6) sdoc (= 0.4.1) select2-rails (= 3.5.9.3) diff --git a/bin/rspec b/bin/rspec deleted file mode 100755 index 8bc84617e..000000000 --- a/bin/rspec +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env ruby -# -# This file was generated by Bundler. -# -# The application 'rspec' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -require 'pathname' -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', - Pathname.new(__FILE__).realpath) - -require 'rubygems' -require 'bundler/setup' - -load Gem.bin_path('rspec-core', 'rspec') diff --git a/config/application.rb b/config/application.rb index 3c747b4b3..d02c6e9d0 100644 --- a/config/application.rb +++ b/config/application.rb @@ -76,9 +76,6 @@ module DomainNameRegistry config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true - # Override "spec/mailers/previews" that RSpec sets - config.action_mailer.preview_path = "#{Rails.root}/test/mailers/previews" - config.action_mailer.smtp_settings = { address: ENV['smtp_address'], port: ENV['smtp_port'], diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb deleted file mode 100644 index 85a9832e9..000000000 --- a/spec/rails_helper.rb +++ /dev/null @@ -1,64 +0,0 @@ -ENV['RAILS_ENV'] ||= 'test' -require 'spec_helper' -require File.expand_path('../../config/environment', __FILE__) -require 'rspec/rails' -require 'paper_trail/frameworks/rspec' -require 'money-rails/test_helpers' -require 'support/requests/session_helpers' -require 'support/requests/epp_helpers' -require 'support/features/session_helpers' -require 'support/matchers/alias_attribute' - -require 'support/capybara' -require 'support/devise' -require 'support/factory_bot' -require 'support/database_cleaner' -require 'support/paper_trail' -require 'support/settings' - -ActiveRecord::Migration.maintain_test_schema! -Setting.registry_country_code = 'US' - -RSpec.configure do |config| - config.include ActionView::TestCase::Behavior, type: :presenter - config.include ActiveSupport::Testing::TimeHelpers - config.include Requests::SessionHelpers, type: :request - config.include Features::SessionHelpers, type: :feature - config.include AbstractController::Translation, type: :request - config.include AbstractController::Translation, type: :feature - config.include AbstractController::Translation, type: :mailer - config.include Requests::EPPHelpers, epp: true - config.include Devise::Test::IntegrationHelpers, type: :feature - config.include Devise::Test::IntegrationHelpers, type: :request - - config.define_derived_metadata(file_path: %r[/spec/features/]) do |metadata| - metadata[:db] = true if metadata[:db].nil? - end - - config.define_derived_metadata(file_path: %r[/spec/models/]) do |metadata| - metadata[:db] = true if metadata[:db].nil? - end - - config.define_derived_metadata(file_path: %r[/spec/presenters/]) do |metadata| - metadata[:type] = :presenter - end - - config.define_derived_metadata(file_path: %r[/spec/requests/]) do |metadata| - metadata[:db] = true if metadata[:db].nil? - end - - config.define_derived_metadata(file_path: %r[/spec/requests/epp/]) do |metadata| - metadata[:epp] = true if metadata[:epp].nil? - end - - config.define_derived_metadata(file_path: %r[/spec/api/]) do |metadata| - metadata[:type] = :request - end - - config.use_transactional_fixtures = false - config.infer_spec_type_from_file_location! - - config.expect_with :rspec do |c| - c.syntax = [:should, :expect] - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb deleted file mode 100644 index f10463346..000000000 --- a/spec/spec_helper.rb +++ /dev/null @@ -1,76 +0,0 @@ -if ENV['COVERAGE'] - require 'simplecov' - SimpleCov.command_name 'spec' -end - -require 'webmock/rspec' -WebMock.disable_net_connect!(allow_localhost: true) - -RSpec.configure do |config| - # rspec-expectations config goes here. You can use an alternate - # assertion/expectation library such as wrong or the stdlib/minitest - # assertions if you prefer. - config.expect_with :rspec do |expectations| - # This option will default to `true` in RSpec 4. It makes the `description` - # and `failure_message` of custom matchers include text for helper methods - # defined using `chain`, e.g.: - # be_bigger_than(2).and_smaller_than(4).description - # # => "be bigger than 2 and smaller than 4" - # ...rather than: - # # => "be bigger than 2" - expectations.include_chain_clauses_in_custom_matcher_descriptions = true - end - - config.mock_with :rspec do |mocks| - mocks.verify_partial_doubles = true - end - - # The settings below are suggested to provide a good initial experience - # with RSpec, but feel free to customize to your heart's content. -=begin - # These two settings work together to allow you to limit a spec run - # to individual examples or groups you care about by tagging them with - # `:focus` metadata. When nothing is tagged with `:focus`, all examples - # get run. - config.filter_run :focus - config.run_all_when_everything_filtered = true - - # Limits the available syntax to the non-monkey patched syntax that is recommended. - # For more details, see: - # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax - # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ - # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching - config.disable_monkey_patching! - - # This setting enables warnings. It's recommended, but in some cases may - # be too noisy due to issues in dependencies. - config.warnings = true - - # Many RSpec users commonly either run the entire suite or an individual - # file, and it's useful to allow more verbose output when running an - # individual spec file. - if config.files_to_run.one? - # Use the documentation formatter for detailed output, - # unless a formatter has already been configured - # (e.g. via a command-line flag). - config.default_formatter = 'doc' - end - - # Print the 10 slowest examples and example groups at the - # end of the spec run, to help surface which specs are running - # particularly slow. - config.profile_examples = 10 - - # Run specs in random order to surface order dependencies. If you find an - # order dependency and want to debug it, you can fix the order by providing - # the seed, which is printed after each run. - # --seed 1234 - config.order = :random - - # Seed global randomization in this process using the `--seed` CLI option. - # Setting this allows you to use `--seed` to deterministically reproduce - # test failures related to randomization by passing the same `--seed` value - # as the one that triggered the failure. - Kernel.srand config.seed -=end -end From f4378b2489cbff3589142f4a5bad493311ae630d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 3 Oct 2019 15:49:20 +0300 Subject: [PATCH 088/757] Inline `simplecov` gem config --- .simplecov | 8 -------- test/test_helper.rb | 9 ++++++++- 2 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 .simplecov diff --git a/.simplecov b/.simplecov deleted file mode 100644 index 737a1945c..000000000 --- a/.simplecov +++ /dev/null @@ -1,8 +0,0 @@ -SimpleCov.start 'rails' do - add_filter '/app/models/legacy/' - add_filter '/app/models/version/' - add_filter '/lib/action_controller/' - add_filter '/lib/core_ext/' - add_filter '/lib/daemons/' - add_filter '/lib/gem_ext/' -end \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb index 9159ff2e3..361a1cab8 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,13 @@ if ENV['COVERAGE'] require 'simplecov' - SimpleCov.command_name 'test' + SimpleCov.start 'rails' do + add_filter '/app/models/legacy/' + add_filter '/app/models/version/' + add_filter '/lib/action_controller/' + add_filter '/lib/core_ext/' + add_filter '/lib/daemons/' + add_filter '/lib/gem_ext/' + end end ENV['RAILS_ENV'] ||= 'test' From 474e27d32510d04f651924ca7c75b964032903ff Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 8 Oct 2019 11:41:10 +0300 Subject: [PATCH 089/757] Fix condition of buyer_url display in invoice pdf --- app/views/invoice/pdf.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/invoice/pdf.haml b/app/views/invoice/pdf.haml index 19778ec43..88d2c7bab 100644 --- a/app/views/invoice/pdf.haml +++ b/app/views/invoice/pdf.haml @@ -207,7 +207,7 @@ %dt= t(:phone) %dd= @invoice.buyer_phone - - if @invoice.buyer_phone.present? + - if @invoice.buyer_url.present? %dt= t(:url) %dd= @invoice.buyer_url From 0d1e00b64946126d3eaef2874bed2c77999eb800 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 8 Oct 2019 11:43:12 +0300 Subject: [PATCH 090/757] Remove extra whitespace chars from pdf.haml --- app/views/invoice/pdf.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/invoice/pdf.haml b/app/views/invoice/pdf.haml index 88d2c7bab..0e059c58c 100644 --- a/app/views/invoice/pdf.haml +++ b/app/views/invoice/pdf.haml @@ -174,14 +174,14 @@ %dt= t(:payment_term) %dd Prepayment - + %dt= t(:invoice_number) %dd= @invoice.number - if @invoice.description.present? %dt= t(:description) %dd=@invoice.description - + %dt= Invoice.human_attribute_name :reference_no %dd= @invoice.reference_no From 164e0bcb1b2d914f88bb9ba568a58eafb3d80c6b Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 8 Oct 2019 12:06:18 +0300 Subject: [PATCH 091/757] Remove unused columns from users table Fixes #264 --- db/migrate/20191008024334_remove_csr_crt_from_users.rb | 6 ++++++ db/structure.sql | 4 ++-- doc/models_complete.svg | 8 -------- 3 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20191008024334_remove_csr_crt_from_users.rb diff --git a/db/migrate/20191008024334_remove_csr_crt_from_users.rb b/db/migrate/20191008024334_remove_csr_crt_from_users.rb new file mode 100644 index 000000000..42c0d965b --- /dev/null +++ b/db/migrate/20191008024334_remove_csr_crt_from_users.rb @@ -0,0 +1,6 @@ +class RemoveCsrCrtFromUsers < ActiveRecord::Migration + def change + remove_column :users, :csr, :text + remove_column :users, :crt, :text + end +end \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 0dcb19643..3b5a6a55f 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2215,8 +2215,6 @@ CREATE TABLE public.users ( country_code character varying, registrar_id integer, active boolean, - csr text, - crt text, type character varying, registrant_ident character varying, encrypted_password character varying DEFAULT ''::character varying NOT NULL, @@ -4837,3 +4835,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190811202711'); INSERT INTO schema_migrations (version) VALUES ('20190811205406'); +INSERT INTO schema_migrations (version) VALUES ('20191008024334'); + diff --git a/doc/models_complete.svg b/doc/models_complete.svg index 644822637..c5fe1e899 100644 --- a/doc/models_complete.svg +++ b/doc/models_complete.svg @@ -54,8 +54,6 @@ country_code :string registrar_id :integer active :boolean -csr :text -crt :text type :string registrant_ident :string encrypted_password :string @@ -582,8 +580,6 @@ country_code :string registrar_id :integer active :boolean -csr :text -crt :text type :string registrant_ident :string encrypted_password :string @@ -1733,8 +1729,6 @@ country_code :string registrar_id :integer active :boolean -csr :text -crt :text type :string registrant_ident :string encrypted_password :string @@ -2057,8 +2051,6 @@ country_code :string registrar_id :integer active :boolean -csr :text -crt :text type :string registrant_ident :string encrypted_password :string From 3755af40b114fa277a874b8ab585a567d1e49518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 8 Oct 2019 16:43:12 +0300 Subject: [PATCH 092/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60c93bfa6..1c6108aac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +08.10.2019 +* Removed unused epp routes [#1335](https://github.com/internetee/registry/pull/1335) + 07.10.2019 * Clarified reference to proper phone nr format in EPP spec [#1343](https://github.com/internetee/registry/pull/1343) From 30efc6ad8a072e1c7f3083e93580e7c9010c1328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 8 Oct 2019 16:46:34 +0300 Subject: [PATCH 093/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c6108aac..ef689c9b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 08.10.2019 * Removed unused epp routes [#1335](https://github.com/internetee/registry/pull/1335) +* Removed Rspec and coverted specs to tests [#1336](https://github.com/internetee/registry/pull/1336) 07.10.2019 * Clarified reference to proper phone nr format in EPP spec [#1343](https://github.com/internetee/registry/pull/1343) From 34dac438e77b69a206a63c7bec3e0b2771b68ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 8 Oct 2019 16:50:09 +0300 Subject: [PATCH 094/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef689c9b3..a2d96cf15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ 08.10.2019 * Removed unused epp routes [#1335](https://github.com/internetee/registry/pull/1335) * Removed Rspec and coverted specs to tests [#1336](https://github.com/internetee/registry/pull/1336) +* Added test for EPP hello request [#1337](https://github.com/internetee/registry/pull/1337) 07.10.2019 * Clarified reference to proper phone nr format in EPP spec [#1343](https://github.com/internetee/registry/pull/1343) From 6ee68d5a36ca200ee7cca530389d596257694eeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 8 Oct 2019 17:30:18 +0300 Subject: [PATCH 095/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2d96cf15..e303ea613 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * Removed unused epp routes [#1335](https://github.com/internetee/registry/pull/1335) * Removed Rspec and coverted specs to tests [#1336](https://github.com/internetee/registry/pull/1336) * Added test for EPP hello request [#1337](https://github.com/internetee/registry/pull/1337) +* Removed unused csr and crt columns from user table [#264](https://github.com/internetee/registry/issues/264) 07.10.2019 * Clarified reference to proper phone nr format in EPP spec [#1343](https://github.com/internetee/registry/pull/1343) From 34f0a0a74e8b3d668224a303d084285036c12d2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2019 19:17:58 +0300 Subject: [PATCH 096/757] Bump rubyzip from 1.2.2 to 1.3.0 (#1349) Bumps [rubyzip](https://github.com/rubyzip/rubyzip) from 1.2.2 to 1.3.0. - [Release notes](https://github.com/rubyzip/rubyzip/releases) - [Changelog](https://github.com/rubyzip/rubyzip/blob/master/Changelog.md) - [Commits](https://github.com/rubyzip/rubyzip/compare/v1.2.2...v1.3.0) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8673577c9..c56fb00b8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -337,7 +337,7 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.6.0) rspec-support (3.6.0) - rubyzip (1.2.2) + rubyzip (1.3.0) safe_yaml (1.0.5) sass (3.4.23) sass-rails (5.0.6) From ca6fac5195941d36703ed6006f59758ea19c52e2 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 8 Oct 2019 19:29:01 +0300 Subject: [PATCH 097/757] Fixes CVE-2018-1000544 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e303ea613..85e4197ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * Removed Rspec and coverted specs to tests [#1336](https://github.com/internetee/registry/pull/1336) * Added test for EPP hello request [#1337](https://github.com/internetee/registry/pull/1337) * Removed unused csr and crt columns from user table [#264](https://github.com/internetee/registry/issues/264) +* Bump rubyzip from 1.2.2 to 1.3.0 [#1349](https://github.com/internetee/registry/pull/1349) 07.10.2019 * Clarified reference to proper phone nr format in EPP spec [#1343](https://github.com/internetee/registry/pull/1343) From 96ebaa6c8a77c7ff7fe9a49d7aa39618fc7596cc Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 9 Oct 2019 11:39:23 +0300 Subject: [PATCH 098/757] Update readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d85fdfebc..774e35331 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ Domain Registry =============== [![Build Status](https://travis-ci.org/internetee/registry.svg?branch=master)](https://travis-ci.org/internetee/registry) -[![Code Climate](https://codeclimate.com/github/internetee/registry/badges/gpa.svg)](https://codeclimate.com/github/internetee/registry) -[![Test Coverage](https://codeclimate.com/github/internetee/registry/badges/coverage.svg)](https://codeclimate.com/github/internetee/registry/coverage) +[![Maintainability](https://api.codeclimate.com/v1/badges/a91e4ae502a6c5245160/maintainability)](https://codeclimate.com/github/internetee/registry/maintainability) +[![Test Coverage](https://api.codeclimate.com/v1/badges/a91e4ae502a6c5245160/test_coverage)](https://codeclimate.com/github/internetee/registry/test_coverage) [![Documentation Status](https://readthedocs.org/projects/eeregistry/badge/?version=latest)](http://docs.internet.ee/en/latest/?badge=latest) Full stack top-level domain (TLD) management. From 7fcab05e514404f16ca60ec12c76e2422ffb5144 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 9 Oct 2019 15:52:20 +0300 Subject: [PATCH 099/757] Clean up settings after tests --- test/integration/api/domain_transfers_test.rb | 5 +++++ .../api/v1/registrant/contacts/update_test.rb | 4 ++-- test/integration/epp/domain/delete/base_test.rb | 4 ++-- test/integration/epp/domain/update/base_test.rb | 9 ++++++++- .../integration/registrar_area/sign_in/id_card_test.rb | 7 +++++-- test/models/deposit_test.rb | 8 +++----- test/models/domain_cron_test.rb | 5 +++++ test/models/registrar_test.rb | 10 +++++++--- test/models/registry_test.rb | 10 ++++++++++ test/models/whois/record_test.rb | 4 ++-- test/services/overdue_invoice_canceller_test.rb | 5 +++++ test/system/admin_area/registrars_test.rb | 5 +++++ test/system/registrant_area/contacts/update_test.rb | 4 ++-- test/system/registrar_area/base_test.rb | 8 ++++++++ .../registrar_area/billing/balance_top_up_test.rb | 8 +++++--- 15 files changed, 74 insertions(+), 22 deletions(-) diff --git a/test/integration/api/domain_transfers_test.rb b/test/integration/api/domain_transfers_test.rb index 12c8351f6..7cd0874c1 100644 --- a/test/integration/api/domain_transfers_test.rb +++ b/test/integration/api/domain_transfers_test.rb @@ -4,9 +4,14 @@ class APIDomainTransfersTest < ApplicationIntegrationTest setup do @domain = domains(:shop) @new_registrar = registrars(:goodnames) + @original_transfer_wait_time = Setting.transfer_wait_time Setting.transfer_wait_time = 0 # Auto-approval end + teardown do + Setting.transfer_wait_time = @original_transfer_wait_time + end + def test_returns_domain_transfers post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response 200 diff --git a/test/integration/api/v1/registrant/contacts/update_test.rb b/test/integration/api/v1/registrant/contacts/update_test.rb index d87b787f0..679ef36e1 100644 --- a/test/integration/api/v1/registrant/contacts/update_test.rb +++ b/test/integration/api/v1/registrant/contacts/update_test.rb @@ -5,14 +5,14 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest setup do @contact = contacts(:john) - @original_address_processing_setting = Setting.address_processing + @original_address_processing = Setting.address_processing @original_fax_enabled_setting = ENV['fax_enabled'] @user = users(:registrant) end teardown do - Setting.address_processing = @original_address_processing_setting + Setting.address_processing = @original_address_processing ENV['fax_enabled'] = @original_fax_enabled_setting end diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index a194e8ce2..2ee71fcc2 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -5,12 +5,12 @@ class EppDomainDeleteBaseTest < EppTestCase setup do @domain = domains(:shop) - @original_confirmation_setting = Setting.request_confirmation_on_domain_deletion_enabled + @original_domain_delete_confirmation = Setting.request_confirmation_on_domain_deletion_enabled ActionMailer::Base.deliveries.clear end teardown do - Setting.request_confirmation_on_domain_deletion_enabled = @original_confirmation_setting + Setting.request_confirmation_on_domain_deletion_enabled = @original_domain_delete_confirmation end def test_bypasses_domain_and_registrant_and_contacts_validation diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index f085c67c5..e68a62306 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -3,11 +3,18 @@ require 'test_helper' class EppDomainUpdateBaseTest < EppTestCase include ActionMailer::TestHelper - def setup + setup do @domain = domains(:shop) + @original_registrant_change_verification = + Setting.request_confrimation_on_registrant_change_enabled ActionMailer::Base.deliveries.clear end + teardown do + Setting.request_confrimation_on_registrant_change_enabled = + @original_registrant_change_verification + end + def test_update_domain request_xml = <<-XML diff --git a/test/integration/registrar_area/sign_in/id_card_test.rb b/test/integration/registrar_area/sign_in/id_card_test.rb index 750712f34..0a38e4105 100644 --- a/test/integration/registrar_area/sign_in/id_card_test.rb +++ b/test/integration/registrar_area/sign_in/id_card_test.rb @@ -3,6 +3,11 @@ require 'test_helper' class RegistrarAreaIdCardSignInTest < ApplicationIntegrationTest setup do @user = users(:api_bestnames) + @original_registrar_area_ip_whitelist = Setting.registrar_ip_whitelist_enabled + end + + teardown do + Setting.registrar_ip_whitelist_enabled = @original_registrar_area_ip_whitelist end def test_signs_in_a_user_when_id_card_owner_is_found @@ -39,8 +44,6 @@ class RegistrarAreaIdCardSignInTest < ApplicationIntegrationTest get registrar_root_path assert_redirected_to new_registrar_user_session_path - - Setting.registrar_ip_whitelist_enabled = false end def test_does_not_sign_in_a_user_when_certificate_is_absent diff --git a/test/models/deposit_test.rb b/test/models/deposit_test.rb index b7510b960..d8fc2d02a 100644 --- a/test/models/deposit_test.rb +++ b/test/models/deposit_test.rb @@ -5,14 +5,12 @@ class DepositTest < ActiveSupport::TestCase super @deposit = Deposit.new(registrar: registrars(:bestnames)) - @minimum_deposit = Setting.minimum_deposit + @original_minimum_deposit = Setting.minimum_deposit Setting.minimum_deposit = 1.00 end - def teardown - super - - Setting.minimum_deposit = @minimum_deposit + teardown do + Setting.minimum_deposit = @original_minimum_deposit end def test_validate_amount_cannot_be_lower_than_0_01 diff --git a/test/models/domain_cron_test.rb b/test/models/domain_cron_test.rb index 60cebc998..742bf2eaf 100644 --- a/test/models/domain_cron_test.rb +++ b/test/models/domain_cron_test.rb @@ -5,9 +5,14 @@ class DomainCronTest < ActiveSupport::TestCase setup do @domain = domains(:shop) + @original_expire_pending_confirmation = Setting.expire_pending_confirmation ActionMailer::Base.deliveries.clear end + teardown do + Setting.expire_pending_confirmation = @original_expire_pending_confirmation + end + def test_clean_expired_pendings_notifies_registrant_by_email Setting.expire_pending_confirmation = 0 @domain.update!(registrant_verification_asked_at: Time.zone.now, diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index ae68ebeea..eaed654ec 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -3,6 +3,13 @@ require 'test_helper' class RegistrarTest < ActiveSupport::TestCase setup do @registrar = registrars(:bestnames) + @original_default_language = Setting.default_language + @original_days_to_keep_invoices_active = Setting.days_to_keep_invoices_active + end + + teardown do + Setting.default_language = @original_default_language + Setting.days_to_keep_invoices_active = @original_days_to_keep_invoices_active end def test_valid_registrar_is_valid @@ -120,15 +127,12 @@ class RegistrarTest < ActiveSupport::TestCase def test_issues_new_invoice travel_to Time.zone.parse('2010-07-05') - @original_days_to_keep_invoices_active_setting = Setting.days_to_keep_invoices_active Setting.days_to_keep_invoices_active = 10 invoice = @registrar.issue_prepayment_invoice(100) assert_equal Date.parse('2010-07-05'), invoice.issue_date assert_equal Date.parse('2010-07-15'), invoice.due_date - - Setting.days_to_keep_invoices_active = @original_days_to_keep_invoices_active_setting end def test_issues_e_invoice_along_with_invoice diff --git a/test/models/registry_test.rb b/test/models/registry_test.rb index 5ec10ec9e..1fe6e9ef2 100644 --- a/test/models/registry_test.rb +++ b/test/models/registry_test.rb @@ -1,6 +1,16 @@ require 'test_helper' class RegistryTest < ActiveSupport::TestCase + setup do + @original_registry_vat_rate = Setting.registry_vat_prc + @original_registry_country_code = Setting.registry_country_code + end + + teardown do + Setting.registry_vat_prc = @original_registry_vat_rate + Setting.registry_country_code = @original_registry_country_code + end + def test_returns_current_registry Setting.registry_vat_prc = 0.2 Setting.registry_country_code = 'US' diff --git a/test/models/whois/record_test.rb b/test/models/whois/record_test.rb index 43707b186..5f2454105 100644 --- a/test/models/whois/record_test.rb +++ b/test/models/whois/record_test.rb @@ -7,12 +7,12 @@ class Whois::RecordTest < ActiveSupport::TestCase @whois_record = whois_records(:one) @auction = auctions(:one) - @original_disclaimer_setting = Setting.registry_whois_disclaimer + @original_disclaimer = Setting.registry_whois_disclaimer Setting.registry_whois_disclaimer = 'disclaimer' end teardown do - Setting.registry_whois_disclaimer = @original_disclaimer_setting + Setting.registry_whois_disclaimer = @original_disclaimer end def test_reads_disclaimer_setting diff --git a/test/services/overdue_invoice_canceller_test.rb b/test/services/overdue_invoice_canceller_test.rb index 6dd2ea3b4..debade3a9 100644 --- a/test/services/overdue_invoice_canceller_test.rb +++ b/test/services/overdue_invoice_canceller_test.rb @@ -3,6 +3,11 @@ require 'test_helper' class OverdueInvoiceCancellerTest < ActiveSupport::TestCase setup do @invoice = invoices(:one) + @original_days_to_keep_overdue_invoices_active = Setting.days_to_keep_overdue_invoices_active + end + + teardown do + Setting.days_to_keep_overdue_invoices_active = @original_days_to_keep_overdue_invoices_active end def test_default_delay diff --git a/test/system/admin_area/registrars_test.rb b/test/system/admin_area/registrars_test.rb index 0982fe624..570517078 100644 --- a/test/system/admin_area/registrars_test.rb +++ b/test/system/admin_area/registrars_test.rb @@ -5,9 +5,14 @@ class AdminRegistrarsSystemTest < ApplicationSystemTestCase setup do @registrar = registrars(:bestnames) + @original_default_language = Setting.default_language sign_in users(:admin) end + teardown do + Setting.default_language = @original_default_language + end + def test_creates_new_registrar assert_nil Registrar.find_by(name: 'Acme Ltd') diff --git a/test/system/registrant_area/contacts/update_test.rb b/test/system/registrant_area/contacts/update_test.rb index f56e117ed..a7cee049e 100644 --- a/test/system/registrant_area/contacts/update_test.rb +++ b/test/system/registrant_area/contacts/update_test.rb @@ -6,7 +6,7 @@ class RegistrantAreaContactUpdateTest < ApplicationIntegrationTest @contact = contacts(:john) sign_in users(:registrant) - @original_address_processing_setting = Setting.address_processing + @original_address_processing = Setting.address_processing @original_fax_enabled_setting = ENV['fax_enabled'] @original_registrant_api_base_url_setting = ENV['registrant_api_base_url'] @@ -14,7 +14,7 @@ class RegistrantAreaContactUpdateTest < ApplicationIntegrationTest end teardown do - Setting.address_processing = @original_address_processing_setting + Setting.address_processing = @original_address_processing ENV['fax_enabled'] = @original_fax_enabled_setting ENV['registrant_api_base_url'] = @original_registrant_api_base_url_setting end diff --git a/test/system/registrar_area/base_test.rb b/test/system/registrar_area/base_test.rb index 35b64df69..67b19a044 100644 --- a/test/system/registrar_area/base_test.rb +++ b/test/system/registrar_area/base_test.rb @@ -1,6 +1,14 @@ require 'application_system_test_case' class RegistrarAreaBaseTestTest < ApplicationSystemTestCase + setup do + @original_registrar_area_ip_whitelist = Setting.registrar_ip_whitelist_enabled + end + + teardown do + Setting.registrar_ip_whitelist_enabled = @original_registrar_area_ip_whitelist + end + def test_user_cannot_access_without_ip_address_being_whitelisted Setting.registrar_ip_whitelist_enabled = true WhiteIp.delete_all diff --git a/test/system/registrar_area/billing/balance_top_up_test.rb b/test/system/registrar_area/billing/balance_top_up_test.rb index 2614b8701..be378df97 100644 --- a/test/system/registrar_area/billing/balance_top_up_test.rb +++ b/test/system/registrar_area/billing/balance_top_up_test.rb @@ -3,10 +3,14 @@ require 'application_system_test_case' class BalanceTopUpTest < ApplicationSystemTestCase setup do sign_in users(:api_bestnames) + @original_registry_vat_rate = Setting.registry_vat_prc + end + + teardown do + Setting.registry_vat_prc = @original_registry_vat_rate end def test_creates_new_invoice - original_vat_prc = Setting.registry_vat_prc Setting.registry_vat_prc = 0.1 visit registrar_invoices_url @@ -22,7 +26,5 @@ class BalanceTopUpTest < ApplicationSystemTestCase assert_equal BigDecimal(10), invoice.vat_rate assert_equal BigDecimal('28.05'), invoice.total assert_text 'Please pay the following invoice' - - Setting.registry_vat_prc = original_vat_prc end end From 53a7dab7eb7c5f7759ec316760da7d94f3ac040d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 9 Oct 2019 17:20:24 +0300 Subject: [PATCH 100/757] Fix sporadic test failures --- test/models/domain_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 4cbcda0b7..194a10d72 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -265,7 +265,7 @@ class DomainTest < ActiveSupport::TestCase Domain.delete_all("id NOT IN (#{[domain1.id, domain2.id, domain3.id].join(',')})") end - assert_equal [domain1.id, domain2.id], Domain.expired.ids + assert_equal [domain1.id, domain2.id].sort, Domain.expired.ids.sort end def test_domain_name From ba33f5740ea1d7ae832c33d2e33fc446734592e0 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 4 Oct 2019 13:28:25 +0300 Subject: [PATCH 101/757] Add database constraints --- ...hange_reserved_domains_name_to_not_null.rb | 5 + ...d_reserved_domains_name_uniq_constraint.rb | 13 + ...change_blocked_domains_name_to_not_null.rb | 5 + ...dd_blocked_domains_name_uniq_constraint.rb | 13 + db/migrate/20191004154844_add_constraints.rb | 19 + .../20191005162437_add_constraints_part_ii.rb | 6 + ...20191007123000_add_constraints_part_iii.rb | 7 + db/structure.sql | 491 ++++++++++-------- test/fixtures/domains.yml | 7 + .../system/admin_area/domain_versions_test.rb | 4 +- 10 files changed, 345 insertions(+), 225 deletions(-) create mode 100644 db/migrate/20191004095229_change_reserved_domains_name_to_not_null.rb create mode 100644 db/migrate/20191004103144_add_reserved_domains_name_uniq_constraint.rb create mode 100644 db/migrate/20191004105643_change_blocked_domains_name_to_not_null.rb create mode 100644 db/migrate/20191004105732_add_blocked_domains_name_uniq_constraint.rb create mode 100644 db/migrate/20191004154844_add_constraints.rb create mode 100644 db/migrate/20191005162437_add_constraints_part_ii.rb create mode 100644 db/migrate/20191007123000_add_constraints_part_iii.rb diff --git a/db/migrate/20191004095229_change_reserved_domains_name_to_not_null.rb b/db/migrate/20191004095229_change_reserved_domains_name_to_not_null.rb new file mode 100644 index 000000000..74ca0235b --- /dev/null +++ b/db/migrate/20191004095229_change_reserved_domains_name_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeReservedDomainsNameToNotNull < ActiveRecord::Migration + def change + change_column_null :reserved_domains, :name, false + end +end diff --git a/db/migrate/20191004103144_add_reserved_domains_name_uniq_constraint.rb b/db/migrate/20191004103144_add_reserved_domains_name_uniq_constraint.rb new file mode 100644 index 000000000..81202d28a --- /dev/null +++ b/db/migrate/20191004103144_add_reserved_domains_name_uniq_constraint.rb @@ -0,0 +1,13 @@ +class AddReservedDomainsNameUniqConstraint < ActiveRecord::Migration + def up + execute <<-SQL + ALTER TABLE reserved_domains ADD CONSTRAINT uniq_reserved_domains_name UNIQUE (name); + SQL + end + + def down + execute <<-SQL + ALTER TABLE reserved_domains DROP CONSTRAINT uniq_reserved_domains_name; + SQL + end +end diff --git a/db/migrate/20191004105643_change_blocked_domains_name_to_not_null.rb b/db/migrate/20191004105643_change_blocked_domains_name_to_not_null.rb new file mode 100644 index 000000000..ef5fbf5cf --- /dev/null +++ b/db/migrate/20191004105643_change_blocked_domains_name_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeBlockedDomainsNameToNotNull < ActiveRecord::Migration + def change + change_column_null :blocked_domains, :name, false + end +end diff --git a/db/migrate/20191004105732_add_blocked_domains_name_uniq_constraint.rb b/db/migrate/20191004105732_add_blocked_domains_name_uniq_constraint.rb new file mode 100644 index 000000000..7542831f9 --- /dev/null +++ b/db/migrate/20191004105732_add_blocked_domains_name_uniq_constraint.rb @@ -0,0 +1,13 @@ +class AddBlockedDomainsNameUniqConstraint < ActiveRecord::Migration + def up + execute <<-SQL + ALTER TABLE blocked_domains ADD CONSTRAINT uniq_blocked_domains_name UNIQUE (name); + SQL + end + + def down + execute <<-SQL + ALTER TABLE blocked_domains DROP CONSTRAINT uniq_blocked_domains_name; + SQL + end +end diff --git a/db/migrate/20191004154844_add_constraints.rb b/db/migrate/20191004154844_add_constraints.rb new file mode 100644 index 000000000..4da2a50e3 --- /dev/null +++ b/db/migrate/20191004154844_add_constraints.rb @@ -0,0 +1,19 @@ +class AddConstraints < ActiveRecord::Migration + def change + change_column_null :registrant_verifications, :domain_name, false + change_column_null :registrant_verifications, :verification_token, false + change_column_null :registrant_verifications, :action, false + change_column_null :registrant_verifications, :domain_id, false + change_column_null :registrant_verifications, :action_type, false + add_foreign_key :registrant_verifications, :domains + + change_column_null :zones, :origin, false + change_column_null :zones, :ttl, false + change_column_null :zones, :refresh, false + change_column_null :zones, :retry, false + change_column_null :zones, :expire, false + change_column_null :zones, :minimum_ttl, false + change_column_null :zones, :email, false + change_column_null :zones, :master_nameserver, false + end +end diff --git a/db/migrate/20191005162437_add_constraints_part_ii.rb b/db/migrate/20191005162437_add_constraints_part_ii.rb new file mode 100644 index 000000000..eb7d289e8 --- /dev/null +++ b/db/migrate/20191005162437_add_constraints_part_ii.rb @@ -0,0 +1,6 @@ +class AddConstraintsPartIi < ActiveRecord::Migration + def change + change_column_null :white_ips, :registrar_id, false + add_foreign_key :white_ips, :registrars + end +end diff --git a/db/migrate/20191007123000_add_constraints_part_iii.rb b/db/migrate/20191007123000_add_constraints_part_iii.rb new file mode 100644 index 000000000..dae4bb83b --- /dev/null +++ b/db/migrate/20191007123000_add_constraints_part_iii.rb @@ -0,0 +1,7 @@ +class AddConstraintsPartIii < ActiveRecord::Migration + def change + change_column_null :domains, :name, false + change_column_null :domains, :name_puny, false + change_column_null :domains, :name_dirty, false + end +end diff --git a/db/structure.sql b/db/structure.sql index 3b5a6a55f..cd2066037 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -295,7 +295,7 @@ SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -335,7 +335,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -371,7 +371,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -403,7 +403,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -436,7 +436,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -472,7 +472,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -516,7 +516,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -525,7 +525,7 @@ CREATE TABLE public.blocked_domains ( updated_at timestamp without time zone, creator_str character varying, updator_str character varying, - name character varying + name character varying NOT NULL ); @@ -549,7 +549,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -587,7 +587,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -645,7 +645,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -680,7 +680,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -721,7 +721,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -759,7 +759,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -796,12 +796,12 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( id integer NOT NULL, - name character varying, + name character varying NOT NULL, registrar_id integer NOT NULL, registered_at timestamp without time zone, valid_to timestamp without time zone NOT NULL, @@ -809,8 +809,8 @@ CREATE TABLE public.domains ( transfer_code character varying NOT NULL, created_at timestamp without time zone, updated_at timestamp without time zone, - name_dirty character varying, - name_puny character varying, + name_dirty character varying NOT NULL, + name_puny character varying NOT NULL, period integer, period_unit character varying(1), creator_str character varying, @@ -854,7 +854,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -886,7 +886,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -923,7 +923,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -992,7 +992,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.keyrelays ( @@ -1035,7 +1035,7 @@ ALTER SEQUENCE public.keyrelays_id_seq OWNED BY public.keyrelays.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -1070,7 +1070,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -1108,7 +1108,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1146,7 +1146,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1184,7 +1184,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1222,7 +1222,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1260,7 +1260,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1298,7 +1298,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1336,7 +1336,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1375,7 +1375,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1413,7 +1413,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1451,7 +1451,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1489,7 +1489,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1527,7 +1527,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1565,7 +1565,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_keyrelays ( @@ -1603,7 +1603,7 @@ ALTER SEQUENCE public.log_keyrelays_id_seq OWNED BY public.log_keyrelays.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1641,7 +1641,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1679,7 +1679,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1717,7 +1717,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1755,7 +1755,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1793,7 +1793,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1831,7 +1831,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1869,7 +1869,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -1907,7 +1907,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -1945,7 +1945,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -1983,7 +1983,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -2025,18 +2025,18 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( id integer NOT NULL, - domain_name character varying, - verification_token character varying, + domain_name character varying NOT NULL, + verification_token character varying NOT NULL, created_at timestamp without time zone, updated_at timestamp without time zone, - action character varying, - domain_id integer, - action_type character varying + action character varying NOT NULL, + domain_id integer NOT NULL, + action_type character varying NOT NULL ); @@ -2060,7 +2060,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -2113,7 +2113,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -2123,7 +2123,7 @@ CREATE TABLE public.reserved_domains ( creator_str character varying, updator_str character varying, legacy_id integer, - name character varying, + name character varying NOT NULL, password character varying NOT NULL ); @@ -2148,7 +2148,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -2157,7 +2157,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2193,7 +2193,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2245,7 +2245,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2280,12 +2280,12 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( id integer NOT NULL, - registrar_id integer, + registrar_id integer NOT NULL, ipv4 character varying, ipv6 character varying, interfaces character varying[], @@ -2316,7 +2316,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2351,19 +2351,19 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( id integer NOT NULL, - origin character varying, - ttl integer, - refresh integer, - retry integer, - expire integer, - minimum_ttl integer, - email character varying, - master_nameserver character varying, + origin character varying NOT NULL, + ttl integer NOT NULL, + refresh integer NOT NULL, + retry integer NOT NULL, + expire integer NOT NULL, + minimum_ttl integer NOT NULL, + email character varying NOT NULL, + master_nameserver character varying NOT NULL, created_at timestamp without time zone, updated_at timestamp without time zone, creator_str character varying, @@ -2765,7 +2765,7 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2773,7 +2773,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -2781,7 +2781,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -2789,7 +2789,7 @@ ALTER TABLE ONLY public.actions -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2797,7 +2797,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -2805,7 +2805,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -2813,7 +2813,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2821,7 +2821,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -2829,7 +2829,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2837,7 +2837,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -2845,7 +2845,7 @@ ALTER TABLE ONLY public.directos -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -2853,7 +2853,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -2861,7 +2861,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -2869,7 +2869,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2877,7 +2877,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -2885,7 +2885,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -2893,7 +2893,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -2901,7 +2901,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.keyrelays @@ -2909,7 +2909,7 @@ ALTER TABLE ONLY public.keyrelays -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -2917,7 +2917,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -2925,7 +2925,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -2933,7 +2933,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -2941,7 +2941,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -2949,7 +2949,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -2957,7 +2957,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -2965,7 +2965,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -2973,7 +2973,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -2981,7 +2981,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -2989,7 +2989,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -2997,7 +2997,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -3005,7 +3005,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -3013,7 +3013,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -3021,7 +3021,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_keyrelays @@ -3029,7 +3029,7 @@ ALTER TABLE ONLY public.log_keyrelays -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -3037,7 +3037,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -3045,7 +3045,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -3053,7 +3053,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -3061,7 +3061,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -3069,7 +3069,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -3077,7 +3077,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -3085,7 +3085,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3093,7 +3093,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -3101,7 +3101,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -3109,7 +3109,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -3117,7 +3117,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -3125,7 +3125,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3133,7 +3133,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3141,7 +3141,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -3149,7 +3149,15 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.blocked_domains + ADD CONSTRAINT uniq_blocked_domains_name UNIQUE (name); + + +-- +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3157,7 +3165,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3165,7 +3173,15 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.reserved_domains + ADD CONSTRAINT uniq_reserved_domains_name UNIQUE (name); + + +-- +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3173,7 +3189,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3181,7 +3197,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3189,7 +3205,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3197,7 +3213,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3205,7 +3221,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3213,7 +3229,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3221,7 +3237,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3229,7 +3245,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3237,7 +3253,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3245,7 +3261,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3253,7 +3269,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3261,7 +3277,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3269,7 +3285,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3277,595 +3293,595 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_blocked_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_blocked_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_blocked_domains_on_name ON public.blocked_domains USING btree (name); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_accepter_id ON public.keyrelays USING btree (accepter_id); -- --- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_domain_id ON public.keyrelays USING btree (domain_id); -- --- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_requester_id ON public.keyrelays USING btree (requester_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_item_type_and_item_id ON public.log_keyrelays USING btree (item_type, item_id); -- --- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_whodunnit ON public.log_keyrelays USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); @@ -3919,6 +3935,14 @@ ALTER TABLE ONLY public.invoices ADD CONSTRAINT fk_rails_242b91538b FOREIGN KEY (buyer_id) REFERENCES public.registrars(id); +-- +-- Name: fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.white_ips + ADD CONSTRAINT fk_rails_36cff3de9c FOREIGN KEY (registrar_id) REFERENCES public.registrars(id); + + -- -- Name: fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -4023,6 +4047,14 @@ ALTER TABLE ONLY public.account_activities ADD CONSTRAINT fk_rails_d2cc3c2fa9 FOREIGN KEY (price_id) REFERENCES public.prices(id); +-- +-- Name: fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.registrant_verifications + ADD CONSTRAINT fk_rails_f41617a0e9 FOREIGN KEY (domain_id) REFERENCES public.domains(id); + + -- -- Name: invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -4835,5 +4867,18 @@ INSERT INTO schema_migrations (version) VALUES ('20190811202711'); INSERT INTO schema_migrations (version) VALUES ('20190811205406'); -INSERT INTO schema_migrations (version) VALUES ('20191008024334'); +INSERT INTO schema_migrations (version) VALUES ('20191004095229'); +INSERT INTO schema_migrations (version) VALUES ('20191004103144'); + +INSERT INTO schema_migrations (version) VALUES ('20191004105643'); + +INSERT INTO schema_migrations (version) VALUES ('20191004105732'); + +INSERT INTO schema_migrations (version) VALUES ('20191004154844'); + +INSERT INTO schema_migrations (version) VALUES ('20191005162437'); + +INSERT INTO schema_migrations (version) VALUES ('20191007123000'); + +INSERT INTO schema_migrations (version) VALUES ('20191008024334'); diff --git a/test/fixtures/domains.yml b/test/fixtures/domains.yml index bbf5ced40..87059e68a 100644 --- a/test/fixtures/domains.yml +++ b/test/fixtures/domains.yml @@ -1,5 +1,6 @@ shop: name: shop.test + name_puny: shop.test name_dirty: shop.test registrar: bestnames registrant: john @@ -15,6 +16,7 @@ shop: airport: name: airport.test + name_puny: airport.test name_dirty: airport.test registrar: bestnames registrant: john @@ -26,6 +28,7 @@ airport: library: name: library.test + name_puny: library.test name_dirty: library.test registrar: bestnames registrant: acme_ltd @@ -37,6 +40,7 @@ library: metro: name: metro.test + name_puny: metro.test name_dirty: metro.test registrar: goodnames registrant: jack @@ -48,6 +52,7 @@ metro: hospital: name: hospital.test + name_puny: hospital.test name_dirty: hospital.test registrar: goodnames registrant: john @@ -59,6 +64,8 @@ hospital: invalid: name: invalid.test + name_puny: invalid.test + name_dirty: invalid.test transfer_code: 1438d6 valid_to: <%= Time.zone.parse('2010-07-05').utc.to_s(:db) %> registrar: bestnames diff --git a/test/system/admin_area/domain_versions_test.rb b/test/system/admin_area/domain_versions_test.rb index b4e3daec8..73db8d707 100644 --- a/test/system/admin_area/domain_versions_test.rb +++ b/test/system/admin_area/domain_versions_test.rb @@ -21,9 +21,9 @@ class DomainVersionsTest < ApplicationSystemTestCase INSERT INTO contacts (id, code, email, auth_info, registrar_id) VALUES (54, 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', #{@registrar.id}); - INSERT INTO domains (id, registrar_id, valid_to, registrant_id, + INSERT INTO domains (id, name, name_puny, name_dirty, registrar_id, valid_to, registrant_id, transfer_code) - VALUES (54, #{@registrar.id}, '2018-06-23T12:14:02.732+03:00', 54, 'transfer_code'); + VALUES (54, 'any.test', 'any.test', 'any.test', #{@registrar.id}, '2018-06-23T12:14:02.732+03:00', 54, 'transfer_code'); INSERT INTO log_domains (item_type, item_id, event, whodunnit, object, object_changes, created_at, session, children) From c4dd204bb1ddf1817953fb83b7c5e5a79227284f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 4 Oct 2019 14:03:25 +0300 Subject: [PATCH 102/757] Remove duplicate index --- ...10234_remove_blocked_domains_name_index.rb | 5 + db/structure.sql | 418 +++++++++--------- 2 files changed, 212 insertions(+), 211 deletions(-) create mode 100644 db/migrate/20191004110234_remove_blocked_domains_name_index.rb diff --git a/db/migrate/20191004110234_remove_blocked_domains_name_index.rb b/db/migrate/20191004110234_remove_blocked_domains_name_index.rb new file mode 100644 index 000000000..04dd0c1fb --- /dev/null +++ b/db/migrate/20191004110234_remove_blocked_domains_name_index.rb @@ -0,0 +1,5 @@ +class RemoveBlockedDomainsNameIndex < ActiveRecord::Migration + def change + remove_index :blocked_domains, name: 'index_blocked_domains_on_name' + end +end diff --git a/db/structure.sql b/db/structure.sql index cd2066037..3382e9984 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -295,7 +295,7 @@ SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -335,7 +335,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -371,7 +371,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -403,7 +403,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -436,7 +436,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -472,7 +472,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -516,7 +516,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -549,7 +549,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -587,7 +587,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -645,7 +645,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -680,7 +680,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -721,7 +721,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -759,7 +759,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -796,7 +796,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( @@ -854,7 +854,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -886,7 +886,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -923,7 +923,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -992,7 +992,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.keyrelays ( @@ -1035,7 +1035,7 @@ ALTER SEQUENCE public.keyrelays_id_seq OWNED BY public.keyrelays.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -1070,7 +1070,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -1108,7 +1108,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1146,7 +1146,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1184,7 +1184,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1222,7 +1222,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1260,7 +1260,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1298,7 +1298,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1336,7 +1336,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1375,7 +1375,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1413,7 +1413,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1451,7 +1451,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1489,7 +1489,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1527,7 +1527,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1565,7 +1565,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_keyrelays ( @@ -1603,7 +1603,7 @@ ALTER SEQUENCE public.log_keyrelays_id_seq OWNED BY public.log_keyrelays.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1641,7 +1641,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1679,7 +1679,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1717,7 +1717,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1755,7 +1755,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1793,7 +1793,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1831,7 +1831,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1869,7 +1869,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -1907,7 +1907,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -1945,7 +1945,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -1983,7 +1983,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -2025,7 +2025,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( @@ -2060,7 +2060,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -2113,7 +2113,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -2148,7 +2148,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -2157,7 +2157,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2193,7 +2193,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2245,7 +2245,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2280,7 +2280,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( @@ -2316,7 +2316,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2351,7 +2351,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( @@ -2765,7 +2765,7 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2773,7 +2773,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -2781,7 +2781,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -2789,7 +2789,7 @@ ALTER TABLE ONLY public.actions -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2797,7 +2797,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -2805,7 +2805,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -2813,7 +2813,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2821,7 +2821,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -2829,7 +2829,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2837,7 +2837,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -2845,7 +2845,7 @@ ALTER TABLE ONLY public.directos -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -2853,7 +2853,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -2861,7 +2861,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -2869,7 +2869,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2877,7 +2877,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -2885,7 +2885,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -2893,7 +2893,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -2901,7 +2901,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.keyrelays @@ -2909,7 +2909,7 @@ ALTER TABLE ONLY public.keyrelays -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -2917,7 +2917,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -2925,7 +2925,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -2933,7 +2933,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -2941,7 +2941,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -2949,7 +2949,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -2957,7 +2957,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -2965,7 +2965,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -2973,7 +2973,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -2981,7 +2981,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -2989,7 +2989,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -2997,7 +2997,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -3005,7 +3005,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -3013,7 +3013,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -3021,7 +3021,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_keyrelays @@ -3029,7 +3029,7 @@ ALTER TABLE ONLY public.log_keyrelays -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -3037,7 +3037,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -3045,7 +3045,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -3053,7 +3053,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -3061,7 +3061,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -3069,7 +3069,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -3077,7 +3077,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -3085,7 +3085,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3093,7 +3093,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -3101,7 +3101,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -3109,7 +3109,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -3117,7 +3117,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -3125,7 +3125,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3133,7 +3133,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3141,7 +3141,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -3149,7 +3149,7 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -3157,7 +3157,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3165,7 +3165,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3173,7 +3173,7 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3181,7 +3181,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3189,7 +3189,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3197,7 +3197,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3205,7 +3205,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3213,7 +3213,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3221,7 +3221,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3229,7 +3229,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3237,7 +3237,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3245,7 +3245,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3253,7 +3253,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3261,7 +3261,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3269,7 +3269,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3277,7 +3277,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3285,7 +3285,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3293,595 +3293,588 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_blocked_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_blocked_domains_on_name ON public.blocked_domains USING btree (name); - - --- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_accepter_id ON public.keyrelays USING btree (accepter_id); -- --- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_domain_id ON public.keyrelays USING btree (domain_id); -- --- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_keyrelays_on_requester_id ON public.keyrelays USING btree (requester_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_item_type_and_item_id ON public.log_keyrelays USING btree (item_type, item_id); -- --- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_keyrelays_on_whodunnit ON public.log_keyrelays USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); @@ -4875,6 +4868,8 @@ INSERT INTO schema_migrations (version) VALUES ('20191004105643'); INSERT INTO schema_migrations (version) VALUES ('20191004105732'); +INSERT INTO schema_migrations (version) VALUES ('20191004110234'); + INSERT INTO schema_migrations (version) VALUES ('20191004154844'); INSERT INTO schema_migrations (version) VALUES ('20191005162437'); @@ -4882,3 +4877,4 @@ INSERT INTO schema_migrations (version) VALUES ('20191005162437'); INSERT INTO schema_migrations (version) VALUES ('20191007123000'); INSERT INTO schema_migrations (version) VALUES ('20191008024334'); + From d1d484bc0cbc82be34693eff433f179161b6d2ed Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Thu, 10 Oct 2019 01:21:30 +0300 Subject: [PATCH 103/757] remove checks of displayed variables, as requested in: https://github.com/internetee/registry/pull/1346#discussion_r332424910 --- app/views/invoice/pdf.haml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/invoice/pdf.haml b/app/views/invoice/pdf.haml index 0e059c58c..20159f804 100644 --- a/app/views/invoice/pdf.haml +++ b/app/views/invoice/pdf.haml @@ -195,23 +195,23 @@ %dt= t(:reg_no) %dd= @invoice.buyer_reg_no - - if @invoice.buyer_address.present? + - @invoice.buyer_address.present? %dt= t(:address) %dd= @invoice.buyer_address - - if @invoice.buyer_country.present? + - @invoice.buyer_country.present? %dt= t(:country) %dd= @invoice.buyer_country - - if @invoice.buyer_phone.present? + - @invoice.buyer_phone.present? %dt= t(:phone) %dd= @invoice.buyer_phone - - if @invoice.buyer_url.present? + - @invoice.buyer_url.present? %dt= t(:url) %dd= @invoice.buyer_url - - if @invoice.buyer_email.present? + - @invoice.buyer_email.present? %dt= t(:email) %dd= @invoice.buyer_email From 52dc69d545b24fa4b37458750af64b7d9bf27ed8 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Thu, 10 Oct 2019 01:24:05 +0300 Subject: [PATCH 104/757] remove all conditions from view var display --- app/views/invoice/pdf.haml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/views/invoice/pdf.haml b/app/views/invoice/pdf.haml index 20159f804..e04fb3a73 100644 --- a/app/views/invoice/pdf.haml +++ b/app/views/invoice/pdf.haml @@ -195,23 +195,18 @@ %dt= t(:reg_no) %dd= @invoice.buyer_reg_no - - @invoice.buyer_address.present? %dt= t(:address) %dd= @invoice.buyer_address - - @invoice.buyer_country.present? %dt= t(:country) %dd= @invoice.buyer_country - - @invoice.buyer_phone.present? %dt= t(:phone) %dd= @invoice.buyer_phone - - @invoice.buyer_url.present? %dt= t(:url) %dd= @invoice.buyer_url - - @invoice.buyer_email.present? %dt= t(:email) %dd= @invoice.buyer_email From aac098ccba488e9bca8f1950bf17d1676beccede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 10 Oct 2019 12:12:32 +0300 Subject: [PATCH 105/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85e4197ce..0d530ea2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +10.10.2019 +* Added DB constraints for reserved and blocked tables [#1338](https://github.com/internetee/registry/pull/1338) + 08.10.2019 * Removed unused epp routes [#1335](https://github.com/internetee/registry/pull/1335) * Removed Rspec and coverted specs to tests [#1336](https://github.com/internetee/registry/pull/1336) From bbaad1619fa523888a36083dfde20f9b5806efed Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 10 Oct 2019 13:33:17 +0300 Subject: [PATCH 106/757] Remove unused rake task --- .codeclimate.yml | 2 - app/models/legacy/contact.rb | 9 - app/models/legacy/db.rb | 14 - app/models/legacy/dnskey.rb | 8 - app/models/legacy/domain.rb | 16 - app/models/legacy/domain_contact_map.rb | 7 - app/models/legacy/domain_history.rb | 7 - app/models/legacy/enum_object_state.rb | 5 - app/models/legacy/host.rb | 7 - app/models/legacy/host_ipaddr_map.rb | 5 - app/models/legacy/invoice.rb | 5 - app/models/legacy/nsset.rb | 9 - app/models/legacy/nsset_contact_map.rb | 5 - app/models/legacy/object.rb | 11 - app/models/legacy/object_history.rb | 12 - app/models/legacy/object_registry.rb | 8 - app/models/legacy/object_state.rb | 81 --- app/models/legacy/registrar.rb | 12 - app/models/legacy/registrar_acl.rb | 5 - app/models/legacy/zone_ns.rb | 5 - lib/tasks/import.rake | 783 ------------------------ test/test_helper.rb | 1 - 22 files changed, 1017 deletions(-) delete mode 100644 app/models/legacy/contact.rb delete mode 100644 app/models/legacy/db.rb delete mode 100644 app/models/legacy/dnskey.rb delete mode 100644 app/models/legacy/domain.rb delete mode 100644 app/models/legacy/domain_contact_map.rb delete mode 100644 app/models/legacy/domain_history.rb delete mode 100644 app/models/legacy/enum_object_state.rb delete mode 100644 app/models/legacy/host.rb delete mode 100644 app/models/legacy/host_ipaddr_map.rb delete mode 100644 app/models/legacy/invoice.rb delete mode 100644 app/models/legacy/nsset.rb delete mode 100644 app/models/legacy/nsset_contact_map.rb delete mode 100644 app/models/legacy/object.rb delete mode 100644 app/models/legacy/object_history.rb delete mode 100644 app/models/legacy/object_registry.rb delete mode 100644 app/models/legacy/object_state.rb delete mode 100644 app/models/legacy/registrar.rb delete mode 100644 app/models/legacy/registrar_acl.rb delete mode 100644 app/models/legacy/zone_ns.rb delete mode 100644 lib/tasks/import.rake diff --git a/.codeclimate.yml b/.codeclimate.yml index 5a9b41ea7..ff9270452 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -22,7 +22,6 @@ plugins: enabled: true channel: rubocop-0-58 exclude_patterns: - - "app/models/legacy/" - "app/models/version/" - "bin/" - "config/" @@ -35,7 +34,6 @@ exclude_patterns: - "lib/tasks/bootstrap.rake" - "lib/tasks/db.rake" - "lib/tasks/documents.rake" - - "lib/tasks/import.rake" - "lib/tasks/legal_doc.rake" - "lib/tasks/whois.rake" - "test/" diff --git a/app/models/legacy/contact.rb b/app/models/legacy/contact.rb deleted file mode 100644 index 04f8c34a4..000000000 --- a/app/models/legacy/contact.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Legacy - class Contact < Db - self.table_name = :contact - belongs_to :object_registry, foreign_key: :id - belongs_to :object, foreign_key: :id - - has_one :object_state, -> { where('valid_to IS NULL') }, foreign_key: :object_id - end -end diff --git a/app/models/legacy/db.rb b/app/models/legacy/db.rb deleted file mode 100644 index 1cb635b3b..000000000 --- a/app/models/legacy/db.rb +++ /dev/null @@ -1,14 +0,0 @@ -module Legacy - class Db < ActiveRecord::Base - self.abstract_class = true - begin - establish_connection :fred - rescue ActiveRecord::AdapterNotSpecified => e - logger.info "Legacy 'fred' database support is currently disabled because #{e}" - end - - def readonly? - true - end - end -end diff --git a/app/models/legacy/dnskey.rb b/app/models/legacy/dnskey.rb deleted file mode 100644 index 3fa47f48b..000000000 --- a/app/models/legacy/dnskey.rb +++ /dev/null @@ -1,8 +0,0 @@ -module Legacy - class Dnskey < Db - self.table_name = :dnskey - - belongs_to :object_registry, foreign_key: :id - belongs_to :object, foreign_key: :id - end -end diff --git a/app/models/legacy/domain.rb b/app/models/legacy/domain.rb deleted file mode 100644 index d0a05d178..000000000 --- a/app/models/legacy/domain.rb +++ /dev/null @@ -1,16 +0,0 @@ -module Legacy - class Domain < Db - self.table_name = :domain - - belongs_to :object_registry, foreign_key: :id - belongs_to :object, foreign_key: :id - belongs_to :nsset, foreign_key: :nsset - # belongs_to :registrant, foreign_key: :registrant, primary_key: :legacy_id, class_name: '::Contact' - - has_many :object_states, -> { where('valid_to IS NULL') }, foreign_key: :object_id - has_many :dnskeys, foreign_key: :keysetid, primary_key: :keyset - has_many :domain_contact_maps, foreign_key: :domainid - has_many :nsset_contact_maps, foreign_key: :nssetid, primary_key: :nsset - has_many :domain_histories, foreign_key: :id - end -end diff --git a/app/models/legacy/domain_contact_map.rb b/app/models/legacy/domain_contact_map.rb deleted file mode 100644 index 4e645ed7f..000000000 --- a/app/models/legacy/domain_contact_map.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Legacy - class DomainContactMap < Db - self.table_name = :domain_contact_map - - # belongs_to :contact, foreign_key: :contactid, primary_key: :legacy_id, class_name: '::Contact' - end -end diff --git a/app/models/legacy/domain_history.rb b/app/models/legacy/domain_history.rb deleted file mode 100644 index 234585ac3..000000000 --- a/app/models/legacy/domain_history.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Legacy - class DomainHistory < Db - self.table_name = :domain_history - - belongs_to :domain, foreign_key: :id - end -end diff --git a/app/models/legacy/enum_object_state.rb b/app/models/legacy/enum_object_state.rb deleted file mode 100644 index 00a096890..000000000 --- a/app/models/legacy/enum_object_state.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Legacy - class EnumObjectState < Db - self.table_name = :enum_object_states - end -end diff --git a/app/models/legacy/host.rb b/app/models/legacy/host.rb deleted file mode 100644 index 4c4eeab09..000000000 --- a/app/models/legacy/host.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Legacy - class Host < Db - self.table_name = :host - - has_many :host_ipaddr_maps, foreign_key: :hostid - end -end diff --git a/app/models/legacy/host_ipaddr_map.rb b/app/models/legacy/host_ipaddr_map.rb deleted file mode 100644 index a4dc2f14e..000000000 --- a/app/models/legacy/host_ipaddr_map.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Legacy - class HostIpaddrMap < Db - self.table_name = :host_ipaddr_map - end -end diff --git a/app/models/legacy/invoice.rb b/app/models/legacy/invoice.rb deleted file mode 100644 index 15441d89e..000000000 --- a/app/models/legacy/invoice.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Legacy - class Invoice < Db - self.table_name = :invoice - end -end diff --git a/app/models/legacy/nsset.rb b/app/models/legacy/nsset.rb deleted file mode 100644 index 515e9f9a9..000000000 --- a/app/models/legacy/nsset.rb +++ /dev/null @@ -1,9 +0,0 @@ -module Legacy - class Nsset < Db - self.table_name = :nsset - - belongs_to :object, foreign_key: :id - belongs_to :object_registry, foreign_key: :id - has_many :hosts, foreign_key: :nssetid - end -end diff --git a/app/models/legacy/nsset_contact_map.rb b/app/models/legacy/nsset_contact_map.rb deleted file mode 100644 index f7e0a105b..000000000 --- a/app/models/legacy/nsset_contact_map.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Legacy - class NssetContactMap < Db - self.table_name = :nsset_contact_map - end -end diff --git a/app/models/legacy/object.rb b/app/models/legacy/object.rb deleted file mode 100644 index 04218cd09..000000000 --- a/app/models/legacy/object.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Legacy - class Object < Db - self.table_name = :object - belongs_to :registrar, foreign_key: :upid, primary_key: :legacy_id, class_name: '::Registrar' - - def self.instance_method_already_implemented?(method_name) - return true if method_name == 'update' - super - end - end -end diff --git a/app/models/legacy/object_history.rb b/app/models/legacy/object_history.rb deleted file mode 100644 index 35115b4d5..000000000 --- a/app/models/legacy/object_history.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Legacy - class ObjectHistory < Db - self.table_name = :object_history - - belongs_to :object_registry, foreign_key: :historyid - - def self.instance_method_already_implemented?(method_name) - return true if method_name == 'update' - super - end - end -end diff --git a/app/models/legacy/object_registry.rb b/app/models/legacy/object_registry.rb deleted file mode 100644 index 96a6fc6e6..000000000 --- a/app/models/legacy/object_registry.rb +++ /dev/null @@ -1,8 +0,0 @@ -module Legacy - class ObjectRegistry < Db - self.table_name = :object_registry - self.inheritance_column = nil - belongs_to :registrar, foreign_key: :crid, primary_key: :legacy_id, class_name: '::Registrar' - belongs_to :object_history, foreign_key: :historyid - end -end diff --git a/app/models/legacy/object_state.rb b/app/models/legacy/object_state.rb deleted file mode 100644 index 379d4d175..000000000 --- a/app/models/legacy/object_state.rb +++ /dev/null @@ -1,81 +0,0 @@ -module Legacy - class ObjectState < Db - self.table_name = :object_state - - # legacy values. Just for log - # 2 => "serverRenewProhibited", - # 5 => "serverOutzoneManual", - # 6 => "serverInzoneManual", - # 7 => "serverBlocked", - # 8 => "expirationWarning", - # 9 => "expired", - # 10 => "unguarded", - # 11 => "validationWarning1", - # 12 => "validationWarning2", - # 13 => "notValidated", - # 14 => "nssetMissing", - # 15 => "outzone", - # 18 => "serverRegistrantChangeProhibited", - # 19 => "deleteWarning", - # 20 => "outzoneUnguarded", - # 1 => "serverDeleteProhibited", - # 3 => "serverTransferProhibited", - # 4 => "serverUpdateProhibited", - # 16 => "linked", - # 17 => "deleteCandidate", - # 21 => "forceDelete" - - # new values - STATE_NAMES = { - 2 => "serverRenewProhibited", - 5 => "serverHold", - 6 => "serverManualInzone", - # 7 => "serverBlocked", - 9 => "expired", - # 11 => "validationWarning1", - # 13 => "notValidated", - 14 => "inactive", - 15 => "serverHold", - 18 => "serverRegistrantChangeProhibited", - 1 => "serverDeleteProhibited", - 3 => "serverTransferProhibited", - 4 => "serverUpdateProhibited", - 16 => "linked", - 17 => "deleteCandidate", # grupistaatus - 21 => "serverForceDelete" # grupistaatus - }.freeze - - - def name - STATE_NAMES[state_id] - end - - def desc - map = { - 1 => "Delete prohibited", - 2 => "Registration renew prohibited", - 3 => "Sponsoring registrar change prohibited", - 4 => "Update prohibited", - 7 => "Domain blocked", - 8 => "Expires within 30 days", - 9 => "Expired", - 10 => "Domain is 30 days after expiration", - 11 => "Validation of domain expire in 30 days", - 12 => "Validation of domain expire in 15 days", - 13 => "Domain not validated", - 14 => "Domain has not associated nsset", - 15 => "Domain is not generated into zone", - 16 => "Has relation to other records in registry", - 17 => "Object is going to be deleted", - 18 => "Registrant change prohibited", - 19 => "Domain will be deleted in 11 days", - 20 => "Domain is out of zone after 30 days from expiration", - 21 => "Domain is forced to delete", - 5 => "Domain is administratively kept out of zone", - 6 => "Domain is administratively kept in zone" - } - - map[state_id] - end - end -end diff --git a/app/models/legacy/registrar.rb b/app/models/legacy/registrar.rb deleted file mode 100644 index a0a0c251d..000000000 --- a/app/models/legacy/registrar.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Legacy - class Registrar < Db - self.table_name = :registrar - - has_many :invoices, foreign_key: :registrarid - has_many :acl, foreign_key: :registrarid, class_name: "Legacy::RegistrarAcl" - - def account_balance - invoices.sum(:credit) - end - end -end diff --git a/app/models/legacy/registrar_acl.rb b/app/models/legacy/registrar_acl.rb deleted file mode 100644 index 711d8a2d6..000000000 --- a/app/models/legacy/registrar_acl.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Legacy - class RegistrarAcl < Db - self.table_name = :registraracl - end -end diff --git a/app/models/legacy/zone_ns.rb b/app/models/legacy/zone_ns.rb deleted file mode 100644 index f430e1b11..000000000 --- a/app/models/legacy/zone_ns.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Legacy - class ZoneNs < Db - self.table_name = :zone_ns - end -end diff --git a/lib/tasks/import.rake b/lib/tasks/import.rake deleted file mode 100644 index ebd40a65e..000000000 --- a/lib/tasks/import.rake +++ /dev/null @@ -1,783 +0,0 @@ -namespace :import do - # README - # - # 1) ESTABLISH CONNECTION TO FRED DATABASE - # ---------------------------------------- - # - # Add 'fred' database connection settings to config/database.yml - # Example config: - # - # fred: - # host: localhost - # adapter: postgresql - # encoding: unicode - # pool: 5 - # username: fred - # password: fred - # - # Verify you have correctly connected to fred database: - # Open Rails console: - # - # cd your_registry_deploy_path/current/ - # RAILS_ENV=production bundle exec rails c - # in console: Legacy::Contact.last - # in console: exit - # - # In console you should get Last Legacy::Contact object. - # If you get any errors, scroll up and read first lines - # to figure out what went wrong to connect to fred database. - # - # - # 2) START IMPORT - # --------------- - # - # Import scrip does not write anything to fred database. - # Script is implemented this way, you can run it multiple times - # in case you need it. However already imported object are - # not reimported, thus if some object has been updated meanwhile - # in fred database, those updates will be missed and thous should - # be carried over manually. All new object in fred will be - # imported in multiple import script runs. - # - # Start all import: - # - # cd your_registry_deploy_path/current/ - # RAILS_ENV=production bundle exec rails import:all - # - # If you wish to import one by one, please follow individual import order - # from task 'Import all' tasks in this script. - - desc 'Import all' - task all: :environment do - Rake::Task['import:registrars'].invoke - Rake::Task['import:users'].invoke - Rake::Task['import:contacts'].invoke - Rake::Task['import:reserved'].invoke - Rake::Task['import:domains'].invoke - Rake::Task['import:zones'].invoke - end - - desc 'Import registrars' - task registrars: :environment do - start = Time.zone.now.to_f - puts '-----> Importing registrars...' - - registrars = [] - existing_ids = Registrar.pluck(:legacy_id) - user = "rake-#{`whoami`.strip} #{ARGV.join ' '}" - count = 0 - - Legacy::Registrar.all.each do |x| - next if existing_ids.include?(x.id) - count += 1 - - registrars << Registrar.new({ - name: x.organization.try(:strip).presence || x.name.try(:strip).presence || x.handle.try(:strip).presence, - reg_no: x.ico.try(:strip), - vat_no: x.dic.try(:strip), - phone: x.telephone.try(:strip), - email: x.email.try(:strip), - billing_email: x.billing_address.try(:strip), - country_code: x.country.try(:strip), - state: x.stateorprovince.try(:strip), - city: x.city.try(:strip), - street: x.street1.try(:strip), - zip: x.postalcode.try(:strip), - url: x.url.try(:strip), - accounting_customer_code: x.directo_handle.try(:strip), - legacy_id: x.id, - creator_str: user, - updator_str: user, - code: x.handle.upcase - }) - end - - Registrar.import registrars, validate: false - - puts "-----> Generating reference numbers" - - Registrar.all.each do |x| - x.save(validate: false) - end - - puts "-----> Creating accounts numbers" - - Registrar.all.each do |x| - next if x.cash_account - x.accounts.create(account_type: Account::CASH, currency: 'EUR') - x.save(validate: false) - - lr = Legacy::Registrar.find(x.legacy_id) - x.cash_account.account_activities << AccountActivity.new({ - sum: lr.account_balance, - currency: 'EUR', - description: 'Transfer from legacy system' - }) - - x.cash_account.save - end - - puts "-----> Imported #{count} new registrars in #{(Time.zone.now.to_f - start).round(2)} seconds" - end - - desc 'Import users' - task users: :environment do - start = Time.zone.now.to_f - puts "-----> Importing users and IP's..." - - id_users = [] - users = [] - ips = [] - temp = [] - - existing_ids = ApiUser.pluck(:legacy_id) - existing_ips = WhiteIp.pluck(:ipv4) - - Legacy::Registrar.all.each do |x| - - x.acl.all.each do |y| - - next if existing_ids.include?(y.id) - - if y.try(:cert) != 'pki' - - if y.try(:cert) == 'idkaart' - id_users << ApiUser.new({ - username: y.try(:password) ? y.try(:password) : y.try(:password), - plain_text_password: ('a'..'z').to_a.shuffle.first(8).join, - identity_code: y.try(:password) ? y.try(:password) : y.try(:password), - registrar_id: Registrar.find_by(legacy_id: x.try(:id)).try(:id), - roles: ['billing'], - legacy_id: y.try(:id) - }) - else - temp << ApiUser.new({ - username: x.handle.try(:strip), - plain_text_password: y.try(:password) ? y.try(:password) : ('a'..'z').to_a.shuffle.first(8).join, - registrar_id: Registrar.find_by(legacy_id: x.try(:id)).try(:id), - roles: ['epp'], - legacy_id: y.try(:id) - }) - end - end - temp = temp.reverse!.uniq{|u| u.username } - end - users = temp - - x.acl.all.each do |y| - next if existing_ips.include?(y.ipaddr) - if !y.ipaddr.nil? && y.ipaddr != '' - - y.ipaddr.split(',').each do |ip| - ips << WhiteIp.new({ - registrar_id: Registrar.find_by(legacy_id: x.try(:id)).try(:id), - ipv4: ip, - interfaces: ['api', 'registrar'] - }) - - end - end - end - end - - ApiUser.import id_users, validate: false - ApiUser.import users, validate: false - - if ips - WhiteIp.import ips, validate: false - end - - puts "-----> Imported #{id_users.count} billing users and #{users.count} epp users" - puts "-----> Imported #{ips.count} white IP's in #{(Time.zone.now.to_f - start).round(2)} seconds" - - end - - desc 'Import contacts' - task contacts: :environment do - start = Time.zone.now.to_f - puts '-----> Importing contacts...' - - # 1;"RC";"born number" # not used - # 2;"OP";"identity card number" -> priv - # 3;"PASS";"passwport" -> - # 4;"ICO";"organization identification number" - # 5;"MPSV";"social system identification" # not used - # 6;"BIRTHDAY";"day of birth" - - ident_type_map = { - 2 => Contact::PRIV, - 3 => Contact::PASSPORT, - 4 => Contact::ORG, - 6 => Contact::BIRTHDAY - } - - contact_columns = %w( - code - phone - email - fax - created_at - updated_at - ident - ident_type - auth_info - name - registrar_id - creator_str - updator_str - legacy_id - street - city - zip - state - country_code - statuses - ) - - contacts = [] - existing_contact_ids = Contact.pluck(:legacy_id) - count = 0 - - Legacy::Contact.includes(:object_registry, :object, object_registry: :registrar) - .find_each(batch_size: 10000).with_index do |x, index| - - next if existing_contact_ids.include?(x.id) - count += 1 - - if 4 == x.ssntype - name = x.organization.try(:strip).presence || x.name.try(:strip).presence - else - name = x.name.try(:strip).presence || x.organization.try(:strip).presence - end - - begin - contacts << [ - x.object_registry.name.try(:strip), - x.telephone.try(:strip), - [x.email.try(:strip), x.notifyemail.try(:strip)].uniq.select(&:present?).join(', '), - x.fax.try(:strip), - x.object_registry.try(:crdate), - x.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update), - x.ssn.try(:strip), - ident_type_map[x.ssntype], - x.object.authinfopw.try(:strip), - name, - Registrar.find_by(legacy_id: x.object.try(:clid)).try(:id), - x.object_registry.try(:registrar).try(:name), - x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), - x.id, - [x.street1.try(:strip), x.street2.try(:strip), x.street3.try(:strip)].compact.join(", "), - x.city.try(:strip), - x.postalcode.try(:strip), - x.stateorprovince.try(:strip), - x.country.try(:strip), - [x.object_state.try(:name), Contact::OK].compact - ] - - if contacts.size % 10000 == 0 - Contact.import contact_columns, contacts, {validate: false, timestamps: false} - contacts = [] - end - rescue => e - puts "ERROR on index #{index}" - puts e - end - end - - Contact.import contact_columns, contacts, {validate: false, timestamps: false} - puts "-----> Imported #{count} new contacts in #{(Time.zone.now.to_f - start).round(2)} seconds" - end - - desc 'Import reserved' - task reserved: :environment do - start = Time.zone.now.to_f - puts '-----> Importing reserved domains...' - - reserved_domains = [] - count = 0 - - existing_ids = ReservedDomain.pluck(:legacy_id) - - Legacy::Domain.includes( - :object_registry, - :object - ).find_each(batch_size: 1000).with_index do |x, index| - - next if existing_ids.include?(x.id) || Registrar.find_by(legacy_id: x.object.try(:clid)).try(:name) != 'eedirect' - count += 1 - - reserved_domains << ReservedDomain.new({ - created_at: x.object_registry.try(:crdate), - updated_at: x.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update), - creator_str: x.object_registry.try(:registrar).try(:name), - updator_str: x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), - names: '"' + x.object_registry.name.try(:strip) + '"=>"' + SecureRandom.hex + '"', - legacy_id: x.id - }) - - if index % 1000 == 0 && index != 0 - ReservedDomain.import reserved_domains, {validate: false, timestamps: false} - reserved_domains = [] - end - end - ReservedDomain.import reserved_domains, {validate: false, timestamps: false} - puts "-----> Imported #{count} new reserved domains in #{(Time.zone.now.to_f - start).round(2)} seconds" - end - - desc 'Import domains' - task domains: :environment do - start = Time.zone.now.to_f - puts '-----> Importing domains...' - - domain_columns = %w( - name - registrar_id - registered_at - valid_to - transfer_code - created_at - updated_at - name_dirty - name_puny - period - period_unit - creator_str - updator_str - legacy_id - legacy_registrar_id - legacy_registrant_id - statuses - ) - - domain_contact_columns = %w( - type - creator_str - updator_str - legacy_domain_id - legacy_contact_id - ) - - domain_status_columns = %w( - description - value - creator_str - updator_str - legacy_domain_id - ) - - nameserver_columns = %w( - hostname - ipv4 - ipv6 - creator_str - updator_str - legacy_domain_id - created_at - updated_at - ) - - dnskey_columns = %w( - flags - protocol - alg - public_key - creator_str - updator_str - legacy_domain_id - updated_at - ) - - domains, nameservers, dnskeys, domain_contacts = [], [], [], [] - existing_domain_ids = Domain.pluck(:legacy_id) - user = "rake-#{`whoami`.strip} #{ARGV.join ' '}" - count = 0 - - Legacy::Domain.includes( - :object_registry, - :object, - :nsset, - :object_states, - :dnskeys, - :domain_contact_maps, - nsset: { hosts: :host_ipaddr_maps } - ).find_each(batch_size: 10000).with_index do |x, index| - next if existing_domain_ids.include?(x.id) || Registrar.find_by(legacy_id: x.object.try(:clid)).try(:name) == 'eedirect' - count += 1 - - begin - # domain statuses - domain_statuses = [] - x.object_states.each do |state| - next if state.name.blank? - domain_statuses << state.name - end - - # OK status is default - domain_statuses << DomainStatus::OK if domain_statuses.empty? - - domains << [ - x.object_registry.name.try(:strip), - Registrar.find_by(legacy_id: x.object.try(:clid)).try(:id), - x.object_registry.try(:crdate), - x.object_registry.try(:crdate), - x.exdate, - x.object.authinfopw.try(:strip), - x.object_registry.try(:crdate), - x.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update), - x.object_registry.name.try(:strip), - SimpleIDN.to_ascii(x.object_registry.name.try(:strip)), - 1, - 'y', - x.object_registry.try(:registrar).try(:name), - x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), - x.id, - x.object_registry.try(:crid), - x.registrant, - domain_statuses - ] - - # admin contacts - x.domain_contact_maps.each do |dc| - domain_contacts << [ - 'AdminDomainContact', - x.object_registry.try(:registrar).try(:name), - x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), - x.id, - dc.contactid - ] - end - - # tech contacts - x.nsset_contact_maps.each do |dc| - domain_contacts << [ - 'TechDomainContact', - x.object_registry.try(:registrar).try(:name), - x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), - x.id, - dc.contactid - ] - end - - # nameservers - nsset = x.nsset - nsset.hosts.each do |host| - ip_maps = host.host_ipaddr_maps - ips = { - ipv4: [], - ipv6: [], - } - ip_maps.each do |ip_map| - next unless ip_map.ipaddr - ips[:ipv4] << ip_map.ipaddr.to_s.strip if ip_map.ipaddr.ipv4? - ips[:ipv6] << ip_map.ipaddr.to_s.strip if ip_map.ipaddr.ipv6? - end - - nameservers << [ - host.fqdn.try(:strip), - ips[:ipv4], - ips[:ipv6], - x.object_registry.try(:registrar).try(:name), - x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), - x.id, - nsset.object_registry.try(:crdate), - nsset.object_registry.try(:object_history).read_attribute(:update).nil? ? nsset.object_registry.try(:crdate) : nsset.object_registry.try(:object_history).read_attribute(:update) - ] - end if x.nsset && x.nsset.hosts - - x.dnskeys.each do |key| - dnskeys << [ - key.flags, - key.protocol, - key.alg, - key.key, - x.object_registry.try(:registrar).try(:name), - x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), - x.id, - key.object_registry.try(:object_history).read_attribute(:update).nil? ? key.try(:crdate)||Time.zone.now : key.object_registry.try(:object_history).read_attribute(:update) - ] - end - - if index % 10000 == 0 && index != 0 - Domain.import domain_columns, domains, {validate: false, timestamps: false} - Nameserver.import nameserver_columns, nameservers, {validate: false, timestamps: false} - Dnskey.import dnskey_columns, dnskeys, {validate: false, timestamps: false} - DomainContact.import domain_contact_columns, domain_contacts, validate: false # created_at is taken from contact at the bottom - domains, nameservers, dnskeys, domain_contacts = [], [], [], [] - end - rescue => e - puts "ERROR on index #{index}" - puts e - end - end - - Domain.import domain_columns, domains, {validate: false, timestamps: false} - Nameserver.import nameserver_columns, nameservers, {validate: false, timestamps: false} - Dnskey.import dnskey_columns, dnskeys, {validate: false, timestamps: false} - DomainContact.import domain_contact_columns, domain_contacts, validate: false - - puts '-----> Updating relations...' - - # registrant - ActiveRecord::Base.connection.execute( - "UPDATE domains "\ - "SET registrant_id = contacts.id "\ - "FROM contacts "\ - "WHERE contacts.legacy_id = legacy_registrant_id "\ - "AND legacy_registrant_id IS NOT NULL "\ - "AND registrant_id IS NULL" - ) - - # registrar - ActiveRecord::Base.connection.execute( - "UPDATE domains "\ - "SET registrar_id = registrars.id "\ - "FROM registrars "\ - "WHERE registrars.legacy_id = legacy_registrar_id "\ - "AND legacy_registrar_id IS NOT NULL "\ - "AND registrar_id IS NULL" - ) - - # contacts - ActiveRecord::Base.connection.execute( - "UPDATE domain_contacts "\ - "SET contact_id = contacts.id, "\ - "updated_at = contacts.updated_at, "\ - "created_at = contacts.created_at "\ - "FROM contacts "\ - "WHERE contacts.legacy_id = legacy_contact_id "\ - "AND legacy_contact_id IS NOT NULL "\ - "AND contact_id IS NULL" - ) - - ActiveRecord::Base.connection.execute( - "UPDATE domain_contacts "\ - "SET domain_id = domains.id "\ - "FROM domains "\ - "WHERE domains.legacy_id = legacy_domain_id "\ - "AND legacy_domain_id IS NOT NULL "\ - "AND domain_id IS NULL" - ) - - # nameservers - ActiveRecord::Base.connection.execute( - "UPDATE nameservers "\ - "SET domain_id = domains.id "\ - "FROM domains "\ - "WHERE domains.legacy_id = legacy_domain_id "\ - "AND legacy_domain_id IS NOT NULL "\ - "AND domain_id IS NULL" - ) - - # dnskeys - ActiveRecord::Base.connection.execute( - "UPDATE dnskeys "\ - "SET domain_id = domains.id "\ - "FROM domains "\ - "WHERE domains.legacy_id = legacy_domain_id "\ - "AND legacy_domain_id IS NOT NULL "\ - "AND domain_id IS NULL" - ) - - puts '-----> Generating dnskey digests...' - - Dnskey.all.each do |ds| - ds.generate_digest - ds.generate_ds_key_tag - ds.save(validate: false) - end - - puts "-----> Imported #{count} new domains in #{(Time.zone.now.to_f - start).round(2)} seconds" - end - - desc 'Import zones' - task zones: :environment do - start = Time.zone.now.to_f - puts '-----> Importing zones...' - - ns_records, a_records, a4_records = parse_zone_ns_data('ee', 1) - - DNS::Zone.create!({ - origin: 'ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # edu.ee - ns_records, a_records, a4_records = parse_zone_ns_data('edu.ee', 6) - - DNS::Zone.create!({ - origin: 'edu.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # aip.ee - ns_records, a_records, a4_records = parse_zone_ns_data('aip.ee', 9) - - DNS::Zone.create!({ - origin: 'aip.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # org.ee - ns_records, a_records, a4_records = parse_zone_ns_data('org.ee', 10) - - DNS::Zone.create!({ - origin: 'org.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # pri.ee - ns_records, a_records, a4_records = parse_zone_ns_data('pri.ee', 2) - - DNS::Zone.create!({ - origin: 'pri.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # med.ee - ns_records, a_records, a4_records = parse_zone_ns_data('med.ee', 3) - - DNS::Zone.create!({ - origin: 'med.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # fie.ee - ns_records, a_records, a4_records = parse_zone_ns_data('fie.ee', 4) - - DNS::Zone.create!({ - origin: 'fie.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # com.ee - ns_records, a_records, a4_records = parse_zone_ns_data('com.ee', 5) - - DNS::Zone.create!({ - origin: 'com.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # gov.ee - ns_records, a_records, a4_records = parse_zone_ns_data('gov.ee', 7) - - DNS::Zone.create!({ - origin: 'gov.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - # riik.ee - ns_records, a_records, a4_records = parse_zone_ns_data('riik.ee', 8) - - DNS::Zone.create!({ - origin: 'riik.ee', - ttl: 43200, - refresh: 3600, - retry: 900, - expire: 1209600, - minimum_ttl: 3600, - email: 'hostmaster.eestiinternet.ee', - master_nameserver: 'ns.tld.ee', - ns_records: ns_records, - a_records: a_records, - a4_records: a4_records - }) - - puts "-----> Imported zones in #{(Time.zone.now.to_f - start).round(2)} seconds" - end -end - -def parse_zone_ns_data(domain, zone) - ns_records = '' - a_records = '' - a4_records = '' - Legacy::ZoneNs.where(zone: zone).each do |x| - ipv4 = x.addrs.select { |addr| addr.ipv4? }.first - ipv6 = x.addrs.select { |addr| addr.ipv6? }.first - - ns_records += "#{domain}. IN NS #{x.fqdn}.\n" - a_records += "#{x.fqdn}. IN A #{ipv4}\n" if ipv4.present? - a4_records += "#{x.fqdn}. IN AAAA #{ipv6}\n" if ipv6.present? - end - [ns_records.strip, a_records.strip, a4_records.strip] -end diff --git a/test/test_helper.rb b/test/test_helper.rb index 361a1cab8..8af9a8cd6 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,7 +1,6 @@ if ENV['COVERAGE'] require 'simplecov' SimpleCov.start 'rails' do - add_filter '/app/models/legacy/' add_filter '/app/models/version/' add_filter '/lib/action_controller/' add_filter '/lib/core_ext/' From ce5ac9b2128d994c6b6081a383bc1a3e544979a6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 10 Oct 2019 13:34:00 +0300 Subject: [PATCH 107/757] Remove `activerecord-import` gem --- Gemfile | 4 ---- Gemfile.lock | 3 --- 2 files changed, 7 deletions(-) diff --git a/Gemfile b/Gemfile index d855cb751..fbc43c0c0 100644 --- a/Gemfile +++ b/Gemfile @@ -68,10 +68,6 @@ gem 'uuidtools', '2.1.5' # For unique IDs (used by the epp gem) gem 'que', '0.10.0' gem 'daemons-rails', '1.2.1' gem 'que-web', '0.4.0' - -# for importing legacy db -gem 'activerecord-import', '0.7.0' # for inserting dummy data - gem 'pdfkit' gem 'jquery-ui-rails', '5.0.5' gem 'active_model-errors_details' # Backport from Rails 5, https://github.com/rails/rails/pull/18322 diff --git a/Gemfile.lock b/Gemfile.lock index c56fb00b8..6fe1cabd2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -89,8 +89,6 @@ GEM activemodel (= 4.2.11.1) activesupport (= 4.2.11.1) arel (~> 6.0) - activerecord-import (0.7.0) - activerecord (>= 3.0) activesupport (4.2.11.1) i18n (~> 0.7) minitest (~> 5.1) @@ -425,7 +423,6 @@ PLATFORMS DEPENDENCIES active_model-errors_details - activerecord-import (= 0.7.0) airbrake autodoc bootstrap-sass (~> 3.4) From 4010cb5a97e4a323cd50898a32173cc4672f01c3 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 6 Oct 2019 14:05:09 +0300 Subject: [PATCH 108/757] Fix mailer preview --- test/mailers/previews/contact_mailer_preview.rb | 5 +++-- .../previews/registrant_change_mailer_preview.rb | 12 ++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/test/mailers/previews/contact_mailer_preview.rb b/test/mailers/previews/contact_mailer_preview.rb index 1e00ef673..e2da0c899 100644 --- a/test/mailers/previews/contact_mailer_preview.rb +++ b/test/mailers/previews/contact_mailer_preview.rb @@ -6,8 +6,9 @@ class ContactMailerPreview < ActionMailer::Preview EXISTS(SELECT 1 FROM domain_contacts WHERE domain_contacts.contact_id = contacts.id)') - contact = contact.where.not(email: nil, country_code: nil, code: nil).first + contact = contact.where.not(email: nil, country_code: nil, ident_country_code: nil, code: nil) + .take ContactMailer.email_changed(contact: contact, old_email: 'old@inbox.test') end -end \ No newline at end of file +end diff --git a/test/mailers/previews/registrant_change_mailer_preview.rb b/test/mailers/previews/registrant_change_mailer_preview.rb index dec948fe6..ac3dab2a9 100644 --- a/test/mailers/previews/registrant_change_mailer_preview.rb +++ b/test/mailers/previews/registrant_change_mailer_preview.rb @@ -1,7 +1,11 @@ class RegistrantChangeMailerPreview < ActionMailer::Preview def initialize - @domain = Domain.first - @new_registrant = Registrant.where.not(email: nil, country_code: nil).first + @domain = Domain.joins(:registrant).where.not({ contacts: { email: nil, + country_code: nil, + ident_country_code: nil } }).take + @new_registrant = Registrant.where.not(email: nil, + country_code: nil, + ident_country_code: nil).take super end @@ -21,7 +25,7 @@ class RegistrantChangeMailerPreview < ActionMailer::Preview def accepted RegistrantChangeMailer.accepted(domain: @domain, - old_registrant: @domain.registrar) + old_registrant: @domain.registrant) end def rejected @@ -35,4 +39,4 @@ class RegistrantChangeMailerPreview < ActionMailer::Preview registrar: @domain.registrar, registrant: @domain.registrant) end -end \ No newline at end of file +end From 6a14b7424c6dceef6e396c8c7461f46a4ebeb8a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 11 Oct 2019 11:41:15 +0300 Subject: [PATCH 109/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d530ea2b..f4ae9b6dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +11.10.2019 +* Fixed mailer previews for couple email templates [#1342](https://github.com/internetee/registry/pull/1342) + 10.10.2019 * Added DB constraints for reserved and blocked tables [#1338](https://github.com/internetee/registry/pull/1338) From 6b1493f333e0f37c7b8fff4512ea73fb36aed69c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 11 Oct 2019 11:52:28 +0300 Subject: [PATCH 110/757] Update `ransack` gem --- Gemfile | 3 ++- Gemfile.lock | 21 +++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index d855cb751..2171d0693 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,8 @@ gem 'figaro', '1.1.1' # model related gem 'pg', '0.19.0' -gem 'ransack', '1.5.1' # for searching +# 1.8 is for Rails < 5.0 +gem 'ransack', '~> 1.8' gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 gem 'paper_trail', '~> 4.0' diff --git a/Gemfile.lock b/Gemfile.lock index c56fb00b8..08490fe39 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -218,7 +218,7 @@ GEM activesupport (>= 3.0.0) keystores (0.4.0) libxml-ruby (3.0.0) - loofah (2.2.3) + loofah (2.3.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -232,7 +232,7 @@ GEM rake mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.11.3) + minitest (5.12.2) monetize (1.9.0) money (~> 6.12) money (6.12.0) @@ -258,8 +258,6 @@ GEM request_store (~> 1.1) pdfkit (0.8.4.1) pg (0.19.0) - polyamorous (1.3.1) - activerecord (>= 3.0) pry (0.10.1) coderay (~> 1.1.0) method_source (~> 0.8.1) @@ -296,8 +294,8 @@ GEM activesupport (>= 4.2.0, < 5.0) nokogiri (~> 1.6) rails-deprecated_sanitizer (>= 1.0.1) - rails-html-sanitizer (1.2.0) - loofah (~> 2.2, >= 2.2.2) + rails-html-sanitizer (1.3.0) + loofah (~> 2.3) rails-settings-cached (0.7.2) rails (>= 4.2.0) railties (4.2.11.1) @@ -306,12 +304,11 @@ GEM rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (12.3.3) - ransack (1.5.1) - actionpack (>= 3.0) - activerecord (>= 3.0) - activesupport (>= 3.0) + ransack (1.8.10) + actionpack (>= 3.0, < 5.2) + activerecord (>= 3.0, < 5.2) + activesupport (>= 3.0, < 5.2) i18n - polyamorous (~> 1.1) rbtree3 (0.5.0) rdoc (4.3.0) regexp_parser (1.5.1) @@ -467,7 +464,7 @@ DEPENDENCIES railroady (= 1.3.0) rails (= 4.2.11.1) rails-settings-cached (= 0.7.2) - ransack (= 1.5.1) + ransack (~> 1.8) rest-client sass-rails (= 5.0.6) sdoc (= 0.4.1) From 8a167c47288a09d60cf2b43dff58b6f0bdd72cb5 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 11 Oct 2019 12:13:18 +0300 Subject: [PATCH 111/757] Reorganize tests --- .../registrar_area/invoices/payment_callback_test.rb | 4 ++-- .../registrar_area/invoices/payment_return_test.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename test/{system => integration}/registrar_area/invoices/payment_callback_test.rb (95%) rename test/{system => integration}/registrar_area/invoices/payment_return_test.rb (97%) diff --git a/test/system/registrar_area/invoices/payment_callback_test.rb b/test/integration/registrar_area/invoices/payment_callback_test.rb similarity index 95% rename from test/system/registrar_area/invoices/payment_callback_test.rb rename to test/integration/registrar_area/invoices/payment_callback_test.rb index 620c4a245..985b93914 100644 --- a/test/system/registrar_area/invoices/payment_callback_test.rb +++ b/test/integration/registrar_area/invoices/payment_callback_test.rb @@ -1,6 +1,6 @@ -require 'application_system_test_case' +require 'test_helper' -class PaymentCallbackTest < ApplicationSystemTestCase +class PaymentCallbackTest < ApplicationIntegrationTest def setup super diff --git a/test/system/registrar_area/invoices/payment_return_test.rb b/test/integration/registrar_area/invoices/payment_return_test.rb similarity index 97% rename from test/system/registrar_area/invoices/payment_return_test.rb rename to test/integration/registrar_area/invoices/payment_return_test.rb index 63e83a4b0..b6317a0d0 100644 --- a/test/system/registrar_area/invoices/payment_return_test.rb +++ b/test/integration/registrar_area/invoices/payment_return_test.rb @@ -1,6 +1,6 @@ -require 'application_system_test_case' +require 'test_helper' -class PaymentReturnTest < ApplicationSystemTestCase +class PaymentReturnTest < ApplicationIntegrationTest def setup super From 20acaa55bf12daf609fd90eaf1a773ab51808def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 11 Oct 2019 16:31:19 +0300 Subject: [PATCH 112/757] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4ae9b6dc..364583301 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ 11.10.2019 * Fixed mailer previews for couple email templates [#1342](https://github.com/internetee/registry/pull/1342) +* Updated ransack gem to 1.8 [#1357](https://github.com/internetee/registry/pull/1357) +* Removed old import rake task [#1355](https://github.com/internetee/registry/pull/1355) 10.10.2019 * Added DB constraints for reserved and blocked tables [#1338](https://github.com/internetee/registry/pull/1338) From ee8fbbc40cb1bf8ba5fc916ffe79ef70238ff55d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 12 Oct 2019 19:02:17 +0300 Subject: [PATCH 113/757] Remove deprecated Docker instruction --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b5871bfed..7e3b11d80 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ FROM internetee/ruby:2.4 -MAINTAINER maciej.szlosarczyk@internet.ee RUN mkdir -p /opt/webapps/app/tmp/pids WORKDIR /opt/webapps/app From cb3bf7ffdce7eeb458d07b6832e635cdd09e30f5 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 1 Oct 2019 15:21:08 +0300 Subject: [PATCH 114/757] List EPP routes explicitly --- config/routes.rb | 37 ++++++++++++++++--- test/integration/epp/base_test.rb | 6 +-- test/integration/epp/contact/base_test.rb | 2 +- .../epp/contact/check/base_test.rb | 8 ++-- .../epp/contact/create/base_test.rb | 6 +-- .../epp/contact/delete/base_test.rb | 4 +- .../integration/epp/contact/info/base_test.rb | 2 +- .../epp/contact/update/base_test.rb | 14 +++---- test/integration/epp/domain/base_test.rb | 2 +- .../epp/domain/check/auction_test.rb | 10 ++--- .../integration/epp/domain/check/base_test.rb | 16 ++++---- .../epp/domain/create/auction_idn_test.rb | 12 +++--- .../epp/domain/create/auction_test.rb | 14 +++---- .../epp/domain/create/base_test.rb | 16 ++++---- .../epp/domain/delete/base_test.rb | 14 +++---- test/integration/epp/domain/info/base_test.rb | 8 ++-- .../integration/epp/domain/renew/base_test.rb | 12 +++--- .../epp/domain/transfer/query_test.rb | 6 +-- .../epp/domain/transfer/request_test.rb | 26 ++++++------- .../epp/domain/update/base_test.rb | 18 ++++----- test/integration/epp/hello_test.rb | 2 +- .../integration/epp/login/credentials_test.rb | 4 +- .../epp/login/password_change_test.rb | 2 +- .../epp/login/session_limit_test.rb | 4 +- test/integration/epp/logout_test.rb | 8 ++-- test/integration/epp/poll_test.rb | 12 +++--- 26 files changed, 145 insertions(+), 120 deletions(-) diff --git a/config/routes.rb b/config/routes.rb index 4b65087b5..cbf4bfefc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,14 +1,39 @@ require_dependency 'epp_constraint' Rails.application.routes.draw do - namespace(:epp, defaults: { format: :xml }) do - match 'session/:action', controller: 'sessions', via: :all, constraints: EppConstraint.new(:session) + # https://github.com/internetee/epp_proxy#translation-of-epp-calls + namespace :epp do + constraints(EppConstraint.new(:session)) do + get 'session/hello', to: 'sessions#hello', as: 'hello' + post 'session/login', to: 'sessions#login', as: 'login' + post 'session/logout', to: 'sessions#logout', as: 'logout' + end - post 'command/:action', controller: 'domains', constraints: EppConstraint.new(:domain) - post 'command/:action', controller: 'contacts', constraints: EppConstraint.new(:contact) - post 'command/poll', to: 'polls#poll', constraints: EppConstraint.new(:poll) - post 'command/keyrelay', to: 'keyrelays#keyrelay', constraints: EppConstraint.new(:keyrelay) + constraints(EppConstraint.new(:contact)) do + controller('contacts') do + post 'command/create', action: 'create', as: :create + post 'command/update', action: 'update', as: :update + post 'command/info', action: 'info', as: :info + post 'command/check', action: 'check', as: :check + post 'command/transfer', action: 'transfer', as: :transfer + post 'command/renew', action: 'renew', as: :renew + post 'command/delete', action: 'delete', as: :delete + end + end + constraints(EppConstraint.new(:domain)) do + controller('domains') do + post 'command/create', action: 'create', as: nil + post 'command/update', action: 'update', as: nil + post 'command/info', action: 'info', as: nil + post 'command/check', action: 'check', as: nil + post 'command/transfer', action: 'transfer', as: nil + post 'command/renew', action: 'renew', as: nil + post 'command/delete', action: 'delete', as: nil + end + end + + post 'command/poll', to: 'polls#poll', as: 'poll', constraints: EppConstraint.new(:poll) get 'error/:command', to: 'errors#error' end diff --git a/test/integration/epp/base_test.rb b/test/integration/epp/base_test.rb index a07ab767c..6d8531870 100644 --- a/test/integration/epp/base_test.rb +++ b/test/integration/epp/base_test.rb @@ -50,7 +50,7 @@ class EppBaseTest < EppTestCase XML - post '/epp/command/info', { frame: xml_of_epp_command_that_requires_authentication }, + post epp_info_path, { frame: xml_of_epp_command_that_requires_authentication }, 'HTTP_COOKIE' => 'session=non-existent' assert_epp_response :authorization_error @@ -74,7 +74,7 @@ class EppBaseTest < EppTestCase XML - post '/epp/command/info', { frame: xml_of_epp_command_that_requires_authorization }, + post epp_info_path, { frame: xml_of_epp_command_that_requires_authorization }, 'HTTP_COOKIE' => "session=#{session.session_id}" assert_epp_response :authorization_error @@ -83,7 +83,7 @@ class EppBaseTest < EppTestCase private def valid_command_path - epp_command_poll_path + epp_poll_path end def valid_request_xml diff --git a/test/integration/epp/contact/base_test.rb b/test/integration/epp/contact/base_test.rb index c332e7b36..ef10fdb35 100644 --- a/test/integration/epp/contact/base_test.rb +++ b/test/integration/epp/contact/base_test.rb @@ -14,7 +14,7 @@ class EppContactBaseTest < EppTestCase XML - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :object_does_not_exist end diff --git a/test/integration/epp/contact/check/base_test.rb b/test/integration/epp/contact/check/base_test.rb index 03fa7aba8..4e630c94c 100644 --- a/test/integration/epp/contact/check/base_test.rb +++ b/test/integration/epp/contact/check/base_test.rb @@ -21,7 +21,7 @@ class EppContactCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -42,7 +42,7 @@ class EppContactCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '1', response_xml.at_xpath('//contact:id', contact: xml_schema)['avail'] @@ -65,7 +65,7 @@ class EppContactCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//contact:id', contact: xml_schema)['avail'] @@ -88,7 +88,7 @@ class EppContactCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal 3, response_xml.xpath('//contact:cd', contact: xml_schema).size diff --git a/test/integration/epp/contact/create/base_test.rb b/test/integration/epp/contact/create/base_test.rb index 68b30371a..1f749123c 100644 --- a/test/integration/epp/contact/create/base_test.rb +++ b/test/integration/epp/contact/create/base_test.rb @@ -29,7 +29,7 @@ class EppContactCreateBaseTest < EppTestCase XML assert_difference 'Contact.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :completed_successfully @@ -68,7 +68,7 @@ class EppContactCreateBaseTest < EppTestCase XML - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" contact = Contact.find_by(name: name) assert_equal "#{session.user.registrar.code}:#{code}".upcase, contact.code @@ -98,7 +98,7 @@ class EppContactCreateBaseTest < EppTestCase XML assert_no_difference 'Contact.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :required_parameter_missing end diff --git a/test/integration/epp/contact/delete/base_test.rb b/test/integration/epp/contact/delete/base_test.rb index 442d16a63..d8ce06c95 100644 --- a/test/integration/epp/contact/delete/base_test.rb +++ b/test/integration/epp/contact/delete/base_test.rb @@ -21,7 +21,7 @@ class EppContactDeleteBaseTest < EppTestCase XML assert_difference 'Contact.count', -1 do - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :completed_successfully end @@ -47,7 +47,7 @@ class EppContactDeleteBaseTest < EppTestCase XML assert_no_difference 'Contact.count' do - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :object_association_prohibits_operation end diff --git a/test/integration/epp/contact/info/base_test.rb b/test/integration/epp/contact/info/base_test.rb index d535d14d5..6bfcc896d 100644 --- a/test/integration/epp/contact/info/base_test.rb +++ b/test/integration/epp/contact/info/base_test.rb @@ -29,7 +29,7 @@ class EppContactInfoBaseTest < EppTestCase XML - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully diff --git a/test/integration/epp/contact/update/base_test.rb b/test/integration/epp/contact/update/base_test.rb index 7f76a310f..ad5e58862 100644 --- a/test/integration/epp/contact/update/base_test.rb +++ b/test/integration/epp/contact/update/base_test.rb @@ -37,7 +37,7 @@ class EppContactUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @contact.reload assert_epp_response :completed_successfully @@ -69,7 +69,7 @@ class EppContactUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_emails 1 end @@ -97,7 +97,7 @@ class EppContactUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_no_emails end @@ -128,7 +128,7 @@ class EppContactUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_no_emails end @@ -154,7 +154,7 @@ class EppContactUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :object_does_not_exist end @@ -188,7 +188,7 @@ class EppContactUpdateBaseTest < EppTestCase XML assert_no_changes -> { @contact.updated_at } do - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :data_management_policy_violation end @@ -220,7 +220,7 @@ class EppContactUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :completed_successfully end diff --git a/test/integration/epp/domain/base_test.rb b/test/integration/epp/domain/base_test.rb index b12fcf8da..125e173a7 100644 --- a/test/integration/epp/domain/base_test.rb +++ b/test/integration/epp/domain/base_test.rb @@ -14,7 +14,7 @@ class EppDomainBaseTest < EppTestCase XML - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :object_does_not_exist end diff --git a/test/integration/epp/domain/check/auction_test.rb b/test/integration/epp/domain/check/auction_test.rb index d52a65629..7b4dcb595 100644 --- a/test/integration/epp/domain/check/auction_test.rb +++ b/test/integration/epp/domain/check/auction_test.rb @@ -28,7 +28,7 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -52,7 +52,7 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -76,7 +76,7 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -100,7 +100,7 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -124,7 +124,7 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully diff --git a/test/integration/epp/domain/check/base_test.rb b/test/integration/epp/domain/check/base_test.rb index fc8eaaca0..bed7a5b2f 100644 --- a/test/integration/epp/domain/check/base_test.rb +++ b/test/integration/epp/domain/check/base_test.rb @@ -15,7 +15,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -36,7 +36,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -59,7 +59,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -80,7 +80,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -103,7 +103,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -126,7 +126,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -149,7 +149,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -172,7 +172,7 @@ class EppDomainCheckBaseTest < EppTestCase XML - post '/epp/command/check', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal 3, response_xml.xpath('//domain:cd', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').size diff --git a/test/integration/epp/domain/create/auction_idn_test.rb b/test/integration/epp/domain/create/auction_idn_test.rb index d4c49d66d..c5e9f840c 100644 --- a/test/integration/epp/domain/create/auction_idn_test.rb +++ b/test/integration/epp/domain/create/auction_idn_test.rb @@ -39,7 +39,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end refute Domain.where(name: @idn_auction.domain).exists? @@ -73,7 +73,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end refute Domain.where(name: @idn_auction.domain).exists? @@ -106,7 +106,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end refute Domain.where(name: @idn_auction.domain).exists? @@ -139,7 +139,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end refute Domain.where(name: @idn_auction.domain).exists? @@ -176,7 +176,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end @idn_auction.reload @@ -212,7 +212,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end @idn_auction.reload diff --git a/test/integration/epp/domain/create/auction_test.rb b/test/integration/epp/domain/create/auction_test.rb index 73104c0bb..863f473a7 100644 --- a/test/integration/epp/domain/create/auction_test.rb +++ b/test/integration/epp/domain/create/auction_test.rb @@ -31,7 +31,7 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :completed_successfully end @@ -68,7 +68,7 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :completed_successfully end @@ -100,7 +100,7 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end @auction.reload @@ -132,7 +132,7 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :required_parameter_missing end @@ -164,7 +164,7 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :invalid_authorization_information end @@ -195,7 +195,7 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :required_parameter_missing end @@ -222,7 +222,7 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :parameter_value_policy_error end diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index 43db1e53e..a5c1dac93 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -27,7 +27,7 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :completed_successfully @@ -68,7 +68,7 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :completed_successfully @@ -102,7 +102,7 @@ class EppDomainCreateBaseTest < EppTestCase XML - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :completed_successfully assert_equal transfer_code, Domain.find_by(name: name).transfer_code @@ -132,7 +132,7 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :data_management_policy_violation end @@ -161,7 +161,7 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :invalid_authorization_information end @@ -189,7 +189,7 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :required_parameter_missing end @@ -217,7 +217,7 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" end assert_epp_response :billing_failure end @@ -245,7 +245,7 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :billing_failure end diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index 2ee71fcc2..0a70afe2e 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -34,7 +34,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_includes Domain.find_by(name: 'invalid.test').statuses, DomainStatus::PENDING_DELETE_CONFIRMATION assert_epp_response :completed_successfully_action_pending end @@ -62,7 +62,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' end assert_epp_response :object_status_prohibits_operation end @@ -89,7 +89,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert @domain.registrant_verification_asked? @@ -120,7 +120,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_not @domain.registrant_verification_asked? @@ -151,7 +151,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_not @domain.registrant_verification_asked? @@ -176,7 +176,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :required_parameter_missing end @@ -203,7 +203,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post '/epp/command/delete', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :object_status_prohibits_operation end diff --git a/test/integration/epp/domain/info/base_test.rb b/test/integration/epp/domain/info/base_test.rb index fd90177ca..041c39cf3 100644 --- a/test/integration/epp/domain/info/base_test.rb +++ b/test/integration/epp/domain/info/base_test.rb @@ -21,7 +21,7 @@ class EppDomainInfoBaseTest < EppTestCase XML - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -49,7 +49,7 @@ class EppDomainInfoBaseTest < EppTestCase XML - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) assert_equal '65078d5', response_xml.at_xpath('//domain:authInfo/domain:pw', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -76,7 +76,7 @@ class EppDomainInfoBaseTest < EppTestCase XML - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_goodnames' + post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_goodnames' response_xml = Nokogiri::XML(response.body) assert_equal '65078d5', response_xml.at_xpath('//domain:authInfo/domain:pw', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -99,7 +99,7 @@ class EppDomainInfoBaseTest < EppTestCase XML - post '/epp/command/info', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_goodnames' + post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_goodnames' response_xml = Nokogiri::XML(response.body) assert_nil response_xml.at_xpath('//domain:authInfo/domain:pw', diff --git a/test/integration/epp/domain/renew/base_test.rb b/test/integration/epp/domain/renew/base_test.rb index 537e697c9..6c11f826e 100644 --- a/test/integration/epp/domain/renew/base_test.rb +++ b/test/integration/epp/domain/renew/base_test.rb @@ -24,7 +24,7 @@ class EppDomainRenewBaseTest < EppTestCase XML - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' domain.reload assert_epp_response :completed_successfully @@ -50,7 +50,7 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' domain.reload end assert_epp_response :object_status_prohibits_operation @@ -77,7 +77,7 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post '/epp/command/renew', { frame: request_xml }, + post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" domain.reload end @@ -105,7 +105,7 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_difference -> { domain.valid_to } do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => + post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" domain.reload end @@ -132,7 +132,7 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' domain.reload end assert_epp_response :billing_failure @@ -158,7 +158,7 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' domain.reload end assert_epp_response :parameter_value_policy_error diff --git a/test/integration/epp/domain/transfer/query_test.rb b/test/integration/epp/domain/transfer/query_test.rb index bd1293771..11e59d5ba 100644 --- a/test/integration/epp/domain/transfer/query_test.rb +++ b/test/integration/epp/domain/transfer/query_test.rb @@ -2,7 +2,7 @@ require 'test_helper' class EppDomainTransferQueryTest < EppTestCase def test_returns_domain_transfer_details - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } xml_doc = Nokogiri::XML(response.body) assert_epp_response :completed_successfully assert_equal 'shop.test', xml_doc.xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -28,14 +28,14 @@ class EppDomainTransferQueryTest < EppTestCase XML - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :invalid_authorization_information end def test_no_domain_transfer domains(:shop).transfers.delete_all - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_does_not_exist end diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index 6a1b5a9f1..caa068999 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -13,24 +13,24 @@ class EppDomainTransferRequestTest < EppTestCase end def test_transfers_domain_at_once - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } assert_epp_response :completed_successfully end def test_creates_new_domain_transfer assert_difference -> { @domain.transfers.size } do - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_approves_automatically_if_auto_approval_is_enabled - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } assert_equal 'serverApproved', Nokogiri::XML(response.body).xpath('//domain:trStatus', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text end def test_assigns_new_registrar - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload assert_equal @new_registrar, @domain.registrar end @@ -38,7 +38,7 @@ class EppDomainTransferRequestTest < EppTestCase def test_regenerates_transfer_code @old_transfer_code = @domain.transfer_code - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload refute_equal @domain.transfer_code, @old_transfer_code @@ -48,31 +48,31 @@ class EppDomainTransferRequestTest < EppTestCase @old_registrar = @domain.registrar assert_difference -> { @old_registrar.notifications.count } do - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_duplicates_registrant_admin_and_tech_contacts assert_difference -> { @new_registrar.contacts.size }, 3 do - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_reuses_identical_contact - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } assert_equal 1, @new_registrar.contacts.where(name: 'William').size end def test_saves_legal_document assert_difference -> { @domain.legal_documents(true).size } do - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_non_transferable_domain @domain.update!(statuses: [DomainStatus::SERVER_TRANSFER_PROHIBITED]) - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } domains(:shop).reload assert_equal registrars(:bestnames), domains(:shop).registrar @@ -82,7 +82,7 @@ class EppDomainTransferRequestTest < EppTestCase def test_discarded_domain_cannot_be_transferred @domain.update!(statuses: [DomainStatus::DELETE_CANDIDATE]) - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload assert_equal registrars(:bestnames), @domain.registrar @@ -91,7 +91,7 @@ class EppDomainTransferRequestTest < EppTestCase def test_same_registrar assert_no_difference -> { @domain.transfers.size } do - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :use_error end @@ -113,7 +113,7 @@ class EppDomainTransferRequestTest < EppTestCase XML - post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload assert_epp_response :invalid_authorization_information diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index e68a62306..29fc1b875 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -34,7 +34,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_equal 'f0ff7d17b0', @domain.transfer_code assert_epp_response :completed_successfully @@ -56,7 +56,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :object_status_prohibits_operation end @@ -76,7 +76,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :object_status_prohibits_operation response_xml = Nokogiri::XML(response.body) @@ -109,7 +109,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_epp_response :completed_successfully_action_pending @@ -145,7 +145,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_epp_response :completed_successfully_action_pending @@ -179,7 +179,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_epp_response :completed_successfully @@ -214,7 +214,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_epp_response :completed_successfully @@ -250,7 +250,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_epp_response :completed_successfully @@ -287,7 +287,7 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post '/epp/command/update', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' @domain.reload assert_epp_response :completed_successfully diff --git a/test/integration/epp/hello_test.rb b/test/integration/epp/hello_test.rb index 1ccb65ff0..c7d5356c2 100644 --- a/test/integration/epp/hello_test.rb +++ b/test/integration/epp/hello_test.rb @@ -9,7 +9,7 @@ class EppHelloTest < EppTestCase XML - get '/epp/session/hello', { frame: request_xml }, 'HTTP_COOKIE' => 'session=non-existent' + get epp_hello_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=non-existent' response_xml = Nokogiri::XML(response.body) assert_equal 'EPP server (EIS)', response_xml.at_css('greeting > svID').text diff --git a/test/integration/epp/login/credentials_test.rb b/test/integration/epp/login/credentials_test.rb index a9275e8e8..8ce6adcf2 100644 --- a/test/integration/epp/login/credentials_test.rb +++ b/test/integration/epp/login/credentials_test.rb @@ -24,7 +24,7 @@ class EppLoginCredentialsTest < EppTestCase XML - post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } assert EppSession.find_by(session_id: 'new_session_id') assert_equal users(:api_bestnames), EppSession.find_by(session_id: 'new_session_id').user assert_epp_response :completed_successfully @@ -57,7 +57,7 @@ class EppLoginCredentialsTest < EppTestCase XML - post '/epp/session/login', { frame: request_xml }, 'HTTP_COOKIE' => 'session=any_random_string' + post epp_login_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=any_random_string' assert_epp_response :authentication_error_server_closing_connection end diff --git a/test/integration/epp/login/password_change_test.rb b/test/integration/epp/login/password_change_test.rb index 69cda0d6a..5e557be81 100644 --- a/test/integration/epp/login/password_change_test.rb +++ b/test/integration/epp/login/password_change_test.rb @@ -25,7 +25,7 @@ class EppLoginPasswordChangeTest < EppTestCase XML - post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } assert_equal 'new-password', users(:api_bestnames).plain_text_password assert_epp_response :completed_successfully end diff --git a/test/integration/epp/login/session_limit_test.rb b/test/integration/epp/login/session_limit_test.rb index a3db4f145..79c0a8384 100644 --- a/test/integration/epp/login/session_limit_test.rb +++ b/test/integration/epp/login/session_limit_test.rb @@ -14,7 +14,7 @@ class EppLoginSessionLimitTest < EppTestCase end assert_difference 'EppSession.count' do - post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } end assert_epp_response :completed_successfully end @@ -27,7 +27,7 @@ class EppLoginSessionLimitTest < EppTestCase end assert_no_difference 'EppSession.count' do - post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } end assert_epp_response :authentication_error_server_closing_connection end diff --git a/test/integration/epp/logout_test.rb b/test/integration/epp/logout_test.rb index bb6340c13..a578246ae 100644 --- a/test/integration/epp/logout_test.rb +++ b/test/integration/epp/logout_test.rb @@ -2,22 +2,22 @@ require 'test_helper' class EppLogoutTest < EppTestCase def test_success_response - post '/epp/session/logout', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :completed_successfully_ending_session end def test_ends_current_session - post '/epp/session/logout', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_nil EppSession.find_by(session_id: 'api_bestnames') end def test_keeps_other_sessions_intact - post '/epp/session/logout', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } assert EppSession.find_by(session_id: 'api_goodnames') end def test_anonymous_user - post '/epp/session/logout', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=non-existent' } + post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=non-existent' } assert_epp_response :authorization_error end diff --git a/test/integration/epp/poll_test.rb b/test/integration/epp/poll_test.rb index ae31398f1..5ccd4258a 100644 --- a/test/integration/epp/poll_test.rb +++ b/test/integration/epp/poll_test.rb @@ -15,7 +15,7 @@ class EppPollTest < EppTestCase XML - post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' xml_doc = Nokogiri::XML(response.body) assert_epp_response :completed_successfully_ack_to_dequeue @@ -36,7 +36,7 @@ class EppPollTest < EppTestCase XML - post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' xml_doc = Nokogiri::XML(response.body) namespace = 'https://epp.tld.ee/schema/changePoll-1.0.xsd' @@ -60,7 +60,7 @@ class EppPollTest < EppTestCase XML - post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :completed_successfully_no_messages end @@ -77,7 +77,7 @@ class EppPollTest < EppTestCase XML - post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' notification.reload xml_doc = Nokogiri::XML(response.body) @@ -98,7 +98,7 @@ class EppPollTest < EppTestCase XML - post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' notification.reload assert notification.unread? @@ -114,7 +114,7 @@ class EppPollTest < EppTestCase XML - post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' assert_epp_response :object_does_not_exist end From 8bcdeb25ee92bf7f5ee6cac4314b574b67559200 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 12 Oct 2019 15:59:33 +0300 Subject: [PATCH 115/757] Convert HAML to ERB --- app/views/registrar/contacts/index.haml | 120 ------------ app/views/registrar/contacts/index.html.erb | 193 ++++++++++++++++++++ 2 files changed, 193 insertions(+), 120 deletions(-) delete mode 100644 app/views/registrar/contacts/index.haml create mode 100644 app/views/registrar/contacts/index.html.erb diff --git a/app/views/registrar/contacts/index.haml b/app/views/registrar/contacts/index.haml deleted file mode 100644 index 518e6eccf..000000000 --- a/app/views/registrar/contacts/index.haml +++ /dev/null @@ -1,120 +0,0 @@ -- content_for :actions do - = link_to(t(:new), new_registrar_contact_path, class: 'btn btn-primary') -= render 'shared/title', name: t(:contacts) - -.row - .col-md-12 - = search_form_for [:registrar, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| - .row - .col-md-3 - .form-group - = f.label :name - = f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) - .col-md-3 - .form-group - = f.label t(:id) - = f.search_field :code_eq, class: 'form-control', placeholder: t(:id) - .col-md-3 - .form-group - = f.label t(:ident) - = f.search_field :ident_matches, class: 'form-control', placeholder: t(:ident) - .col-md-3 - .form-group - = label_tag t(:ident_type) - = select_tag '[q][ident_type_eq]', options_for_select(ident_types, params[:q][:ident_type_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } - .row - .col-md-3 - .form-group - = f.label t(:email) - = f.search_field :email_matches, class: 'form-control', placeholder: t(:email) - .col-md-3 - .form-group - = label_tag t(:country) - = select_tag '[q][country_code_eq]', SortedCountry.all_options(params[:q][:country_code_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } - .col-md-6 - .form-group - = label_tag t(:contact_type) - = select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact'], ['registrant', 'registrant']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } - .row - .col-md-3 - .form-group - = f.label t(:registrar_name) - = f.select :registrar_id_eq, Registrar.all.map { |x| [x, x.id] }, { include_blank: true }, class: 'form-control selectize', placeholder: t(:choose) - .col-md-3 - .form-group - = f.label t(:created_at_from) - = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from) - .col-md-3 - .form-group - = f.label t(:created_at_until) - = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until) - .col-md-3 - .form-group - = f.label t(:updated_at) - = f.search_field :updated_at_gteq, value: params[:q][:updated_at_gteq], class: 'form-control js-datepicker', placeholder: t(:updated_at) - .row - .col-md-6 - .form-group - = label_tag t(:status) - = select_tag :statuses_contains, options_for_select(Contact::STATUSES, params[:statuses_contains]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } - .col-md-3 - .form-group - = label_tag t(:results_per_page) - = text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) - .col-md-3{style: 'padding-top: 25px;'} - %button.btn.btn-primary -   - %span.glyphicon.glyphicon-search -   - = link_to(t('.reset_btn'), registrar_contacts_path, class: 'btn btn-default') - .row - .col-md-3 - .btn-group{:role => "group"} - %button.btn.btn-default.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :type => "button"} - Download - %span.caret - %ul.dropdown-menu - %li= link_to 'PDF', download_list_registrar_contacts_path(q: params[:q], format: "pdf") - %li= link_to 'CSV', download_list_registrar_contacts_path(q: params[:q], format: "csv") - .col-md-3 - .col-md-3 - .col-md-3 - -%hr -.row - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed.contacts - %thead - %tr - %th{class: 'col-xs-2'} - = sort_link(@q, 'name', t(:name)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'code', t(:id)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'ident', t(:ident)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'email', t(:created_at)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'registrar_name', t(:registrar_name)) - %th{class: 'col-xs-2'}= t(:actions) - %tbody - - @contacts.each do |contact| - %tr - %td= link_to(contact.name, registrar_contact_path(id: contact.code)) - %td= contact.code - %td= ident_for(contact) - %td= l(contact.created_at, format: :short) - %td - - if contact.registrar - = contact.registrar - %td - = link_to(t(:edit), edit_registrar_contact_path(contact.code), class: 'btn btn-primary btn-xs') - = link_to(t(:delete), delete_registrar_contact_path(contact.code), class: 'btn btn-default btn-xs') - -.row - .col-md-6 - = paginate @contacts - .col-md-6.text-right - .pagination - = t(:result_count, count: @contacts.total_count) diff --git a/app/views/registrar/contacts/index.html.erb b/app/views/registrar/contacts/index.html.erb new file mode 100644 index 000000000..5fc7ce09c --- /dev/null +++ b/app/views/registrar/contacts/index.html.erb @@ -0,0 +1,193 @@ +<% content_for :actions do %> + <%= link_to(t(:new), new_registrar_contact_path, class: 'btn btn-primary') %> +<% end %> +<%= render 'shared/title', name: t(:contacts) %> +

+
+ <%= search_form_for [:registrar, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| %> +
+
+
+ <%= f.label :name %> + <%= f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) %> +
+
+
+
+ <%= f.label t(:id) %> + <%= f.search_field :code_eq, class: 'form-control', placeholder: t(:id) %> +
+
+
+
+ <%= f.label t(:ident) %> + <%= f.search_field :ident_matches, class: 'form-control', placeholder: t(:ident) %> +
+
+
+
+ <%= label_tag t(:ident_type) %> + <%= select_tag '[q][ident_type_eq]', options_for_select(ident_types, params[:q][:ident_type_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } %> +
+
+
+
+
+
+ <%= f.label t(:email) %> + <%= f.search_field :email_matches, class: 'form-control', placeholder: t(:email) %> +
+
+
+
+ <%= label_tag t(:country) %> + <%= select_tag '[q][country_code_eq]', SortedCountry.all_options(params[:q][:country_code_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } %> +
+
+
+
+ <%= label_tag t(:contact_type) %> + <%= select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact'], ['registrant', 'registrant']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } %> +
+
+
+
+
+
+ <%= f.label t(:registrar_name) %> + <%= f.select :registrar_id_eq, Registrar.all.map { |x| [x, x.id] }, { include_blank: true }, class: 'form-control selectize', placeholder: t(:choose) %> +
+
+
+
+ <%= f.label t(:created_at_from) %> + <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from) %> +
+
+
+
+ <%= f.label t(:created_at_until) %> + <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until) %> +
+
+
+
+ <%= f.label t(:updated_at) %> + <%= f.search_field :updated_at_gteq, value: params[:q][:updated_at_gteq], class: 'form-control js-datepicker', placeholder: t(:updated_at) %> +
+
+
+
+
+
+ <%= label_tag t(:status) %> + <%= select_tag :statuses_contains, options_for_select(Contact::STATUSES, params[:statuses_contains]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } %> +
+
+
+
+ <%= label_tag t(:results_per_page) %> + <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %> +
+
+
+ + <%= link_to(t('.reset_btn'), registrar_contacts_path, class: 'btn btn-default') %> +
+
+
+
+
+ + +
+
+
+
+
+
+ <% end %> +
+
+
+
+
+
+ + + + + + + + + + + + + <% @contacts.each do |contact| %> + + + + + + + + + <% end %> + +
+ <%= sort_link(@q, 'name', t(:name)) %> + + <%= sort_link(@q, 'code', t(:id)) %> + + <%= sort_link(@q, 'ident', t(:ident)) %> + + <%= sort_link(@q, 'email', t(:created_at)) %> + + <%= sort_link(@q, 'registrar_name', t(:registrar_name)) %> + + <%= t(:actions) %> +
+ <%= link_to(contact.name, registrar_contact_path(id: contact.code)) %> + + <%= contact.code %> + + <%= ident_for(contact) %> + + <%= l(contact.created_at, format: :short) %> + + <% if contact.registrar %> + <%= contact.registrar %> + <% end %> + + <%= link_to(t(:edit), edit_registrar_contact_path(contact.code), class: 'btn btn-primary btn-xs') %> + <%= link_to(t(:delete), delete_registrar_contact_path(contact.code), class: 'btn btn-default btn-xs') %> +
+
+
+
+
+
+ <%= paginate @contacts %> +
+
+ +
+
From f8765eca4d66dfb0cb194632205fb2c561bb3d89 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 12 Oct 2019 16:02:42 +0300 Subject: [PATCH 116/757] Extract partial --- .../registrar/contacts/_search_form.html.erb | 131 ++++++++++++++++++ app/views/registrar/contacts/index.html.erb | 118 +--------------- config/locales/registrar/contacts.en.yml | 2 +- 3 files changed, 133 insertions(+), 118 deletions(-) create mode 100644 app/views/registrar/contacts/_search_form.html.erb diff --git a/app/views/registrar/contacts/_search_form.html.erb b/app/views/registrar/contacts/_search_form.html.erb new file mode 100644 index 000000000..66bb263bd --- /dev/null +++ b/app/views/registrar/contacts/_search_form.html.erb @@ -0,0 +1,131 @@ +<%= search_form_for [:registrar, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| %> +
+
+
+ <%= f.label :name %> + <%= f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) %> +
+
+ +
+
+ <%= f.label t(:id) %> + <%= f.search_field :code_eq, class: 'form-control', placeholder: t(:id) %> +
+
+ +
+
+ <%= f.label t(:ident) %> + <%= f.search_field :ident_matches, class: 'form-control', placeholder: t(:ident) %> +
+
+ +
+
+ <%= label_tag t(:ident_type) %> + <%= select_tag '[q][ident_type_eq]', options_for_select(ident_types, params[:q][:ident_type_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } %> +
+
+
+ +
+
+
+ <%= f.label t(:email) %> + <%= f.search_field :email_matches, class: 'form-control', placeholder: t(:email) %> +
+
+ +
+
+ <%= label_tag t(:country) %> + <%= select_tag '[q][country_code_eq]', SortedCountry.all_options(params[:q][:country_code_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } %> +
+
+ +
+
+ <%= label_tag t(:contact_type) %> + <%= select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact'], ['registrant', 'registrant']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } %> +
+
+
+ +
+
+
+ <%= f.label t(:registrar_name) %> + <%= f.select :registrar_id_eq, Registrar.all.map { |x| [x, x.id] }, { include_blank: true }, class: 'form-control selectize', placeholder: t(:choose) %> +
+
+ +
+
+ <%= f.label t(:created_at_from) %> + <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from) %> +
+
+ +
+
+ <%= f.label t(:created_at_until) %> + <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until) %> +
+
+ +
+
+ <%= f.label t(:updated_at) %> + <%= f.search_field :updated_at_gteq, value: params[:q][:updated_at_gteq], class: 'form-control js-datepicker', placeholder: t(:updated_at) %> +
+
+
+ +
+
+
+ <%= label_tag t(:status) %> + <%= select_tag :statuses_contains, options_for_select(Contact::STATUSES, params[:statuses_contains]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } %> +
+
+ +
+
+ <%= label_tag t(:results_per_page) %> + <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %> +
+
+ +
+ + <%= link_to(t('.reset_btn'), registrar_contacts_path, class: 'btn btn-default') %> +
+
+ +
+
+
+ + +
+
+
+
+
+
+<% end %> diff --git a/app/views/registrar/contacts/index.html.erb b/app/views/registrar/contacts/index.html.erb index 5fc7ce09c..4a7e8759a 100644 --- a/app/views/registrar/contacts/index.html.erb +++ b/app/views/registrar/contacts/index.html.erb @@ -4,123 +4,7 @@ <%= render 'shared/title', name: t(:contacts) %>
- <%= search_form_for [:registrar, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| %> -
-
-
- <%= f.label :name %> - <%= f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) %> -
-
-
-
- <%= f.label t(:id) %> - <%= f.search_field :code_eq, class: 'form-control', placeholder: t(:id) %> -
-
-
-
- <%= f.label t(:ident) %> - <%= f.search_field :ident_matches, class: 'form-control', placeholder: t(:ident) %> -
-
-
-
- <%= label_tag t(:ident_type) %> - <%= select_tag '[q][ident_type_eq]', options_for_select(ident_types, params[:q][:ident_type_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } %> -
-
-
-
-
-
- <%= f.label t(:email) %> - <%= f.search_field :email_matches, class: 'form-control', placeholder: t(:email) %> -
-
-
-
- <%= label_tag t(:country) %> - <%= select_tag '[q][country_code_eq]', SortedCountry.all_options(params[:q][:country_code_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } %> -
-
-
-
- <%= label_tag t(:contact_type) %> - <%= select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact'], ['registrant', 'registrant']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } %> -
-
-
-
-
-
- <%= f.label t(:registrar_name) %> - <%= f.select :registrar_id_eq, Registrar.all.map { |x| [x, x.id] }, { include_blank: true }, class: 'form-control selectize', placeholder: t(:choose) %> -
-
-
-
- <%= f.label t(:created_at_from) %> - <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from) %> -
-
-
-
- <%= f.label t(:created_at_until) %> - <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until) %> -
-
-
-
- <%= f.label t(:updated_at) %> - <%= f.search_field :updated_at_gteq, value: params[:q][:updated_at_gteq], class: 'form-control js-datepicker', placeholder: t(:updated_at) %> -
-
-
-
-
-
- <%= label_tag t(:status) %> - <%= select_tag :statuses_contains, options_for_select(Contact::STATUSES, params[:statuses_contains]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } %> -
-
-
-
- <%= label_tag t(:results_per_page) %> - <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %> -
-
-
- - <%= link_to(t('.reset_btn'), registrar_contacts_path, class: 'btn btn-default') %> -
-
-
-
-
- - -
-
-
-
-
-
- <% end %> + <%= render 'search_form' %>

diff --git a/config/locales/registrar/contacts.en.yml b/config/locales/registrar/contacts.en.yml index 84afd481d..7eeb3c518 100644 --- a/config/locales/registrar/contacts.en.yml +++ b/config/locales/registrar/contacts.en.yml @@ -1,7 +1,7 @@ en: registrar: contacts: - index: + search_form: reset_btn: Reset partials: From 199085f8ac0ec3894e5117e5f906fa58c49ab960 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 12 Oct 2019 17:06:35 +0300 Subject: [PATCH 117/757] Use resourceful routes https://github.com/rails/rails/pull/23980 --- .../registrant/domains_controller.rb | 44 ++++++++-------- .../registrar/contacts_controller.rb | 37 +++++--------- .../registrar/domains_controller.rb | 5 +- .../registrant/domains/download_list.haml | 2 +- app/views/registrant/domains/index.html.erb | 51 ++++++++----------- .../registrar/contacts/_search_form.html.erb | 36 ++++--------- .../registrar/domains/_search_form.html.erb | 6 +-- config/locales/registrant/domains.en.yml | 2 + config/locales/registrar/contacts.en.yml | 2 + config/locales/registrar/domains.en.yml | 2 +- config/routes.rb | 6 --- .../registrant_area/domains_test.rb | 25 +++++++++ .../registrar_area/contacts_test.rb | 25 +++++++++ .../registrar_area/domains_test.rb | 20 ++++++++ test/system/registrar_area/domains_test.rb | 2 +- 15 files changed, 152 insertions(+), 113 deletions(-) create mode 100644 test/integration/registrant_area/domains_test.rb create mode 100644 test/integration/registrar_area/contacts_test.rb create mode 100644 test/integration/registrar_area/domains_test.rb diff --git a/app/controllers/registrant/domains_controller.rb b/app/controllers/registrant/domains_controller.rb index b8cd8f37a..15d38ad7f 100644 --- a/app/controllers/registrant/domains_controller.rb +++ b/app/controllers/registrant/domains_controller.rb @@ -4,11 +4,27 @@ class Registrant::DomainsController < RegistrantController params[:q] ||= {} normalize_search_parameters do - @q = current_user_domains.search(params[:q]) - @domains = @q.result.page(params[:page]) + @q = current_user_domains.search(search_params) end - @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? + domains = @q.result + + respond_to do |format| + format.html do + @domains = domains.page(params[:page]) + domains_per_page = params[:results_per_page].to_i + @domains = @domains.per(domains_per_page) if domains_per_page.positive? + end + format.csv do + raw_csv = @q.result.to_csv + send_data raw_csv, filename: 'domains.csv', type: "#{Mime[:csv]}; charset=utf-8" + end + format.pdf do + @domains = domains + raw_pdf = domains.pdf(render_to_string('registrant/domains/download_list', layout: false)) + send_data raw_pdf, filename: 'domains.pdf' + end + end end def show @@ -32,23 +48,6 @@ class Registrant::DomainsController < RegistrantController end end - def download_list - authorize! :view, :registrant_domains - params[:q] ||= {} - normalize_search_parameters do - @q = current_user_domains.search(params[:q]) - @domains = @q - end - - respond_to do |format| - format.csv { render text: @domains.result.to_csv } - format.pdf do - pdf = @domains.result.pdf(render_to_string('registrant/domains/download_list', layout: false)) - send_data pdf, filename: 'domains.pdf' - end - end - end - private def normalize_search_parameters @@ -70,4 +69,9 @@ class Registrant::DomainsController < RegistrantController registrant_domain_delete_confirm_url(token: domain.registrant_verification_token) end end + + def search_params + params.require(:q).permit(:name_matches, :registrant_ident_eq, :valid_to_gteq, :valid_to_lteq, + :results_per_page) + end end \ No newline at end of file diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index f343f9bfb..2bc15fd9c 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -30,37 +30,26 @@ class Registrar normalize_search_parameters do @q = contacts.search(search_params) - @contacts = @q.result(distinct: :true).page(params[:page]) end - @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? - end - - def download_list - authorize! :view, Depp::Contact - - params[:q] ||= {} - params[:q].delete_if { |_k, v| v.blank? } - if params[:q].length == 1 && params[:q][:name_matches].present? - @contacts = Contact.find_by(name: params[:q][:name_matches]) - end - - contacts = current_registrar_user.registrar.contacts.includes(:registrar) - contacts = contacts.filter_by_states(params[:statuses_contains]) if params[:statuses_contains] - - normalize_search_parameters do - @q = contacts.search(params[:q]) - @contacts = @q.result - end + contacts = @q.result respond_to do |format| - format.csv { render text: @contacts.to_csv } + format.html do + contacts_per_page = params[:results_per_page].to_i + @contacts = contacts.page(params[:page]) + @contacts = @contacts.per(contacts_per_page) if contacts_per_page.positive? + end + format.csv do + raw_csv = contacts.to_csv + send_data raw_csv, filename: 'contacts.csv', type: "#{Mime[:csv]}; charset=utf-8" + end format.pdf do - pdf = @contacts.pdf(render_to_string('registrar/contacts/download_list', layout: false)) - send_data pdf, filename: 'contacts.pdf' + @contacts = contacts + raw_pdf = contacts.pdf(render_to_string('registrar/contacts/download_list', layout: false)) + send_data raw_pdf, filename: 'contacts.pdf' end end - end def new diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index d2969bb69..bdab2eefc 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -47,9 +47,10 @@ class Registrar domain_presenters << ::DomainPresenter.new(domain: domain, view: view_context) end - csv = Registrar::DomainListCSVPresenter.new(domains: domain_presenters, view: view_context).to_s + raw_csv = Registrar::DomainListCSVPresenter.new(domains: domain_presenters, + view: view_context).to_s filename = "Domains_#{l(Time.zone.now, format: :filename)}.csv" - send_data(csv, filename: filename) + send_data raw_csv, filename: filename, type: "#{Mime[:csv]}; charset=utf-8" end end end diff --git a/app/views/registrant/domains/download_list.haml b/app/views/registrant/domains/download_list.haml index f0af344cd..b37e3a42a 100644 --- a/app/views/registrant/domains/download_list.haml +++ b/app/views/registrant/domains/download_list.haml @@ -18,7 +18,7 @@ %th{class: 'col-xs-2'} =t(:registrar_name) %tbody - - @domains.result.each do |x| + - @domains.each do |x| %tr %td= x.name %td= x.registrant diff --git a/app/views/registrant/domains/index.html.erb b/app/views/registrant/domains/index.html.erb index acb9afcff..1254bfbc8 100644 --- a/app/views/registrant/domains/index.html.erb +++ b/app/views/registrant/domains/index.html.erb @@ -18,6 +18,13 @@ <%= f.search_field :registrant_ident_eq, class: 'form-control', placeholder: t(:registrant_ident) %> + +
+
+ <%= label_tag t(:results_per_page) %> + <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %> +
+
@@ -32,43 +39,27 @@ <%= f.search_field :valid_to_lteq, value: params[:q][:valid_to_lteq], class: 'form-control js-datepicker', placeholder: t(:valid_to_until) %>
-
-
- <%= label_tag t(:results_per_page) %> - <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %> -
-
+ -
- - <%= link_to(t('.reset_btn'), registrant_domains_path, class: 'btn btn-default') %> + <%= button_tag t('.download_pdf_btn'), + formaction: registrant_domains_path(format: :pdf), + name: nil, + class: 'btn btn-default' %> + <%= button_tag t('.download_csv_btn'), + formaction: registrant_domains_path(format: :csv), + name: nil, + class: 'btn btn-default' %> + <%= link_to t('.reset_btn'), registrant_domains_path, + class: 'btn btn-default' %>
-
-
-
- - -
-
-
-
-
-
<% end %> diff --git a/app/views/registrar/contacts/_search_form.html.erb b/app/views/registrar/contacts/_search_form.html.erb index 66bb263bd..e15ff1880 100644 --- a/app/views/registrar/contacts/_search_form.html.erb +++ b/app/views/registrar/contacts/_search_form.html.erb @@ -83,49 +83,35 @@
-
+
<%= label_tag t(:status) %> <%= select_tag :statuses_contains, options_for_select(Contact::STATUSES, params[:statuses_contains]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } %>
-
+
<%= label_tag t(:results_per_page) %> <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %>
-
+
+ <%= button_tag t('.download_pdf_btn'), + formaction: registrar_contacts_path(format: :pdf), + name: nil, + class: 'btn btn-default' %> + <%= button_tag t('.download_csv_btn'), + formaction: registrar_contacts_path(format: :csv), + name: nil, + class: 'btn btn-default' %> <%= link_to(t('.reset_btn'), registrar_contacts_path, class: 'btn btn-default') %>
- -
-
-
- - -
-
-
-
-
-
<% end %> diff --git a/app/views/registrar/domains/_search_form.html.erb b/app/views/registrar/domains/_search_form.html.erb index b494e0d8d..743f8de60 100644 --- a/app/views/registrar/domains/_search_form.html.erb +++ b/app/views/registrar/domains/_search_form.html.erb @@ -74,14 +74,14 @@
-
+
- <%= button_tag t('.download_btn'), class: 'btn btn-primary export-domains-csv-btn', - formaction: registrar_domains_path(format: 'csv') %> + <%= button_tag t('.download_btn'), formaction: registrar_domains_path(format: 'csv'), + class: 'btn btn-default' %> <%= link_to t('.reset_btn'), registrar_domains_path, class: 'btn btn-default' %>
diff --git a/config/locales/registrant/domains.en.yml b/config/locales/registrant/domains.en.yml index 2dbdce79a..a56d10b69 100644 --- a/config/locales/registrant/domains.en.yml +++ b/config/locales/registrant/domains.en.yml @@ -4,6 +4,8 @@ en: index: header: Domains registrant: Registrant + download_pdf_btn: Download PDF + download_csv_btn: Download CSV reset_btn: Reset download_list: diff --git a/config/locales/registrar/contacts.en.yml b/config/locales/registrar/contacts.en.yml index 7eeb3c518..590e419d2 100644 --- a/config/locales/registrar/contacts.en.yml +++ b/config/locales/registrar/contacts.en.yml @@ -2,6 +2,8 @@ en: registrar: contacts: search_form: + download_pdf_btn: Download PDF + download_csv_btn: Download CSV reset_btn: Reset partials: diff --git a/config/locales/registrar/domains.en.yml b/config/locales/registrar/domains.en.yml index 31380074f..c98002b8f 100644 --- a/config/locales/registrar/domains.en.yml +++ b/config/locales/registrar/domains.en.yml @@ -17,7 +17,7 @@ en: transfer_btn: Transfer search_form: - download_btn: Download as CSV + download_btn: Download CSV reset_btn: Reset domain: diff --git a/config/routes.rb b/config/routes.rb index 4b65087b5..4c1e25864 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -87,7 +87,6 @@ Rails.application.routes.draw do collection do get 'check' - get 'download_list' end end @@ -151,11 +150,6 @@ Rails.application.routes.draw do resources :registrars, only: :show resources :domains, only: %i[index show] do resources :contacts, only: %i[show edit update] - - collection do - get :download_list - end - member do get 'confirmation' end diff --git a/test/integration/registrant_area/domains_test.rb b/test/integration/registrant_area/domains_test.rb new file mode 100644 index 000000000..11709dd5b --- /dev/null +++ b/test/integration/registrant_area/domains_test.rb @@ -0,0 +1,25 @@ +require 'test_helper' + +class RegistrantAreaDomainsIntegrationTest < ApplicationIntegrationTest + setup do + sign_in users(:registrant) + end + + def test_downloads_list_as_csv + get registrant_domains_path(format: :csv) + + assert_response :ok + assert_equal "#{Mime[:csv]}; charset=utf-8", response.headers['Content-Type'] + assert_equal 'attachment; filename="domains.csv"', response.headers['Content-Disposition'] + assert_not_empty response.body + end + + def test_downloads_list_as_pdf + get registrant_domains_path(format: :pdf) + + assert_response :ok + assert_equal Mime[:pdf], response.headers['Content-Type'] + assert_equal 'attachment; filename="domains.pdf"', response.headers['Content-Disposition'] + assert_not_empty response.body + end +end diff --git a/test/integration/registrar_area/contacts_test.rb b/test/integration/registrar_area/contacts_test.rb new file mode 100644 index 000000000..2597518b1 --- /dev/null +++ b/test/integration/registrar_area/contacts_test.rb @@ -0,0 +1,25 @@ +require 'test_helper' + +class RegistrarAreaContactsIntegrationTest < ApplicationIntegrationTest + setup do + sign_in users(:api_bestnames) + end + + def test_downloads_list_as_csv + get registrar_contacts_path(format: :csv) + + assert_response :ok + assert_equal "#{Mime[:csv]}; charset=utf-8", response.headers['Content-Type'] + assert_equal 'attachment; filename="contacts.csv"', response.headers['Content-Disposition'] + assert_not_empty response.body + end + + def test_downloads_list_as_pdf + get registrar_contacts_path(format: :pdf) + + assert_response :ok + assert_equal Mime[:pdf], response.headers['Content-Type'] + assert_equal 'attachment; filename="contacts.pdf"', response.headers['Content-Disposition'] + assert_not_empty response.body + end +end diff --git a/test/integration/registrar_area/domains_test.rb b/test/integration/registrar_area/domains_test.rb new file mode 100644 index 000000000..eaa43e674 --- /dev/null +++ b/test/integration/registrar_area/domains_test.rb @@ -0,0 +1,20 @@ +require 'test_helper' + +class RegistrarAreaDomainsIntegrationTest < ApplicationIntegrationTest + setup do + sign_in users(:api_bestnames) + end + + def test_downloads_list_as_csv + now = Time.zone.parse('2010-07-05 08:00') + travel_to now + + get registrar_domains_path(format: :csv) + + assert_response :ok + assert_equal "#{Mime[:csv]}; charset=utf-8", response.headers['Content-Type'] + assert_equal %(attachment; filename="Domains_#{l(now, format: :filename)}.csv"), + response.headers['Content-Disposition'] + assert_not_empty response.body + end +end diff --git a/test/system/registrar_area/domains_test.rb b/test/system/registrar_area/domains_test.rb index 00d5c9e43..db51d7096 100644 --- a/test/system/registrar_area/domains_test.rb +++ b/test/system/registrar_area/domains_test.rb @@ -14,7 +14,7 @@ class RegistrarDomainsTest < ApplicationSystemTestCase CSV visit registrar_domains_url - click_button 'Download as CSV' + click_button 'Download CSV' assert_equal 'attachment; filename="Domains_2010-07-05_10.30.csv"', response_headers['Content-Disposition'] assert_equal expected_csv, page.body end From 7fbf21daf8ae82ad034220e09a6aad16d9eb30bd Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 12 Oct 2019 17:45:28 +0300 Subject: [PATCH 118/757] Convert HAML to ERB --- .../registrant/domains_controller.rb | 6 ++-- .../registrar/contacts_controller.rb | 7 ++-- .../registrant/domains/download_list.haml | 28 --------------- .../registrant/domains/download_list.html.erb | 32 +++++++++++++++++ .../registrar/contacts/download_list.haml | 30 ---------------- .../registrar/contacts/download_list.html.erb | 34 +++++++++++++++++++ 6 files changed, 75 insertions(+), 62 deletions(-) delete mode 100644 app/views/registrant/domains/download_list.haml create mode 100644 app/views/registrant/domains/download_list.html.erb delete mode 100644 app/views/registrar/contacts/download_list.haml create mode 100644 app/views/registrar/contacts/download_list.html.erb diff --git a/app/controllers/registrant/domains_controller.rb b/app/controllers/registrant/domains_controller.rb index 15d38ad7f..9dda025b5 100644 --- a/app/controllers/registrant/domains_controller.rb +++ b/app/controllers/registrant/domains_controller.rb @@ -20,8 +20,10 @@ class Registrant::DomainsController < RegistrantController send_data raw_csv, filename: 'domains.csv', type: "#{Mime[:csv]}; charset=utf-8" end format.pdf do - @domains = domains - raw_pdf = domains.pdf(render_to_string('registrant/domains/download_list', layout: false)) + view = ActionView::Base.new(ActionController::Base.view_paths, domains: domains) + raw_html = view.render(file: 'registrant/domains/download_list', layout: false) + raw_pdf = domains.pdf(raw_html) + send_data raw_pdf, filename: 'domains.pdf' end end diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index 2bc15fd9c..f418a672b 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -45,8 +45,11 @@ class Registrar send_data raw_csv, filename: 'contacts.csv', type: "#{Mime[:csv]}; charset=utf-8" end format.pdf do - @contacts = contacts - raw_pdf = contacts.pdf(render_to_string('registrar/contacts/download_list', layout: false)) + view = ActionView::Base.new(ActionController::Base.view_paths, contacts: contacts) + view.class_eval { include ::ApplicationHelper } + raw_html = view.render(file: 'registrar/contacts/download_list', layout: false) + raw_pdf = contacts.pdf(raw_html) + send_data raw_pdf, filename: 'contacts.pdf' end end diff --git a/app/views/registrant/domains/download_list.haml b/app/views/registrant/domains/download_list.haml deleted file mode 100644 index b37e3a42a..000000000 --- a/app/views/registrant/domains/download_list.haml +++ /dev/null @@ -1,28 +0,0 @@ -!!! -%html - %head - %meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"} - %title Contacts - %body - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-2'} - =t(:name) - %th{class: 'col-xs-2'} - =t('.registrant') - %th{class: 'col-xs-2'} - =t(:valid_to) - %th{class: 'col-xs-2'} - =t(:registrar_name) - %tbody - - @domains.each do |x| - %tr - %td= x.name - %td= x.registrant - %td= l(x.valid_to, format: :short) - %td= x.registrar - .row - .col-md-6 diff --git a/app/views/registrant/domains/download_list.html.erb b/app/views/registrant/domains/download_list.html.erb new file mode 100644 index 000000000..9e1d39339 --- /dev/null +++ b/app/views/registrant/domains/download_list.html.erb @@ -0,0 +1,32 @@ + + + +
+
+
+ + + + + + + + + + + + <% @domains.each do |x| %> + + + + + + + <% end %> + +
<%= t(:name) %><%= t('.registrant') %><%= t(:valid_to) %><%= t(:registrar_name) %>
<%= x.name %><%= x.registrant %><%= l(x.valid_to, format: :short) %><%= x.registrar %>
+
+
+
+ + diff --git a/app/views/registrar/contacts/download_list.haml b/app/views/registrar/contacts/download_list.haml deleted file mode 100644 index 51423a3f2..000000000 --- a/app/views/registrar/contacts/download_list.haml +++ /dev/null @@ -1,30 +0,0 @@ -!!! -%html - %head - %meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"} - %title Contacts - %body - .row - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-2'} - =t(:name) - %th{class: 'col-xs-2'} - =t(:id) - %th{class: 'col-xs-2'} - =t(:ident) - %th{class: 'col-xs-2'} - =t(:created_at) - %th{class: 'col-xs-2'} - =t(:registrar_name) - %tbody - - @contacts.each do |contact| - %tr - %td= contact - %td= contact.code - %td= ident_for(contact) - %td= l(contact.created_at, format: :short) - %td= contact.registrar diff --git a/app/views/registrar/contacts/download_list.html.erb b/app/views/registrar/contacts/download_list.html.erb new file mode 100644 index 000000000..63ba9205c --- /dev/null +++ b/app/views/registrar/contacts/download_list.html.erb @@ -0,0 +1,34 @@ + + + +
+
+
+ + + + + + + + + + + + + <% @contacts.each do |contact| %> + + + + + + + + <% end %> + +
<%= t(:name) %><%= t(:id) %><%= t(:ident) %><%= t(:created_at) %><%= t(:registrar_name) %>
<%= contact %><%= contact.code %><%= ident_for(contact) %><%= l(contact.created_at, format: :short) %><%= contact.registrar %>
+
+
+
+ + From 59a6f9d21eaa1d7d28093aeec0ee1c574c5af31f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 12 Oct 2019 17:47:00 +0300 Subject: [PATCH 119/757] Improve readability --- app/controllers/registrant/domains_controller.rb | 2 +- app/controllers/registrar/contacts_controller.rb | 2 +- .../{download_list.html.erb => list_pdf.html.erb} | 10 +++++----- .../{download_list.html.erb => list_pdf.html.erb} | 0 config/locales/registrant/domains.en.yml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) rename app/views/registrant/domains/{download_list.html.erb => list_pdf.html.erb} (74%) rename app/views/registrar/contacts/{download_list.html.erb => list_pdf.html.erb} (100%) diff --git a/app/controllers/registrant/domains_controller.rb b/app/controllers/registrant/domains_controller.rb index 9dda025b5..fc66806e2 100644 --- a/app/controllers/registrant/domains_controller.rb +++ b/app/controllers/registrant/domains_controller.rb @@ -21,7 +21,7 @@ class Registrant::DomainsController < RegistrantController end format.pdf do view = ActionView::Base.new(ActionController::Base.view_paths, domains: domains) - raw_html = view.render(file: 'registrant/domains/download_list', layout: false) + raw_html = view.render(file: 'registrant/domains/list_pdf', layout: false) raw_pdf = domains.pdf(raw_html) send_data raw_pdf, filename: 'domains.pdf' diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index f418a672b..ec280a46c 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -47,7 +47,7 @@ class Registrar format.pdf do view = ActionView::Base.new(ActionController::Base.view_paths, contacts: contacts) view.class_eval { include ::ApplicationHelper } - raw_html = view.render(file: 'registrar/contacts/download_list', layout: false) + raw_html = view.render(file: 'registrar/contacts/list_pdf', layout: false) raw_pdf = contacts.pdf(raw_html) send_data raw_pdf, filename: 'contacts.pdf' diff --git a/app/views/registrant/domains/download_list.html.erb b/app/views/registrant/domains/list_pdf.html.erb similarity index 74% rename from app/views/registrant/domains/download_list.html.erb rename to app/views/registrant/domains/list_pdf.html.erb index 9e1d39339..44a293493 100644 --- a/app/views/registrant/domains/download_list.html.erb +++ b/app/views/registrant/domains/list_pdf.html.erb @@ -15,12 +15,12 @@ - <% @domains.each do |x| %> + <% @domains.each do |domain| %> - <%= x.name %> - <%= x.registrant %> - <%= l(x.valid_to, format: :short) %> - <%= x.registrar %> + <%= domain.name %> + <%= domain.registrant %> + <%= l(domain.valid_to, format: :short) %> + <%= domain.registrar %> <% end %> diff --git a/app/views/registrar/contacts/download_list.html.erb b/app/views/registrar/contacts/list_pdf.html.erb similarity index 100% rename from app/views/registrar/contacts/download_list.html.erb rename to app/views/registrar/contacts/list_pdf.html.erb diff --git a/config/locales/registrant/domains.en.yml b/config/locales/registrant/domains.en.yml index a56d10b69..f59697915 100644 --- a/config/locales/registrant/domains.en.yml +++ b/config/locales/registrant/domains.en.yml @@ -8,7 +8,7 @@ en: download_csv_btn: Download CSV reset_btn: Reset - download_list: + list_pdf: registrant: Registrant partials: From 1374de89fed7384e63eebdbc7727aa966748c0d4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 12 Oct 2019 18:01:48 +0300 Subject: [PATCH 120/757] Use default translations --- app/views/registrant/domains/list_pdf.html.erb | 8 ++++---- app/views/registrar/contacts/list_pdf.html.erb | 10 +++++----- config/locales/registrant/domains.en.yml | 3 --- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/views/registrant/domains/list_pdf.html.erb b/app/views/registrant/domains/list_pdf.html.erb index 44a293493..4ce4f5ed0 100644 --- a/app/views/registrant/domains/list_pdf.html.erb +++ b/app/views/registrant/domains/list_pdf.html.erb @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/app/views/registrar/contacts/list_pdf.html.erb b/app/views/registrar/contacts/list_pdf.html.erb index 63ba9205c..b9bbb1c0e 100644 --- a/app/views/registrar/contacts/list_pdf.html.erb +++ b/app/views/registrar/contacts/list_pdf.html.erb @@ -7,11 +7,11 @@
<%= t(:name) %><%= t('.registrant') %><%= t(:valid_to) %><%= t(:registrar_name) %><%= Domain.human_attribute_name :name %><%= Registrant.model_name.human %><%= Domain.human_attribute_name :valid_to %><%= Registrar.model_name.human %>
- - - - - + + + + + diff --git a/config/locales/registrant/domains.en.yml b/config/locales/registrant/domains.en.yml index f59697915..1e02d00e1 100644 --- a/config/locales/registrant/domains.en.yml +++ b/config/locales/registrant/domains.en.yml @@ -8,9 +8,6 @@ en: download_csv_btn: Download CSV reset_btn: Reset - list_pdf: - registrant: Registrant - partials: registrant: header: Registrant From 90a90f335d5bfcd79cae267ab62d608733c6c83d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 15 Oct 2019 19:02:04 +0300 Subject: [PATCH 121/757] Configure `pdfkit` gem --- config/initializers/pdfkit.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/initializers/pdfkit.rb b/config/initializers/pdfkit.rb index d7bbc64b8..eb0828729 100644 --- a/config/initializers/pdfkit.rb +++ b/config/initializers/pdfkit.rb @@ -6,7 +6,8 @@ PDFKit.configure do |config| config.wkhtmltopdf = installed config.default_options = { page_size: 'A4', - quiet: true + quiet: true, + encoding: 'utf-8', # :print_media_type => true } end From b434e6a22d210f196ea4ac83f92c1dd5a14a912c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 12:36:18 +0300 Subject: [PATCH 122/757] Do not load `capybara` gem in development --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 0afebca97..0e53cdb60 100644 --- a/Gemfile +++ b/Gemfile @@ -86,7 +86,6 @@ group :development do end group :development, :test do - gem 'capybara' gem 'selenium-webdriver' # debug @@ -100,6 +99,7 @@ group :development, :test do end group :test do + gem 'capybara' gem 'database_cleaner' gem 'simplecov', require: false gem 'webmock' From 041b63e8b6028082b3c1d8fa89af07f94eb2386c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 12:39:43 +0300 Subject: [PATCH 123/757] Replace `selenium-webdriver` gem with `webdrivers` --- Gemfile | 4 +--- Gemfile.lock | 17 ++++++++++------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 0e53cdb60..a58648a1c 100644 --- a/Gemfile +++ b/Gemfile @@ -86,9 +86,6 @@ group :development do end group :development, :test do - gem 'selenium-webdriver' - - # debug gem 'pry', '0.10.1' gem 'bullet', '4.14.7' # for finding database optimizations @@ -102,5 +99,6 @@ group :test do gem 'capybara' gem 'database_cleaner' gem 'simplecov', require: false + gem 'webdrivers' gem 'webmock' end diff --git a/Gemfile.lock b/Gemfile.lock index 8c140d0f0..0c83297e7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -131,8 +131,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (~> 1.5) xpath (~> 3.2) - childprocess (0.9.0) - ffi (~> 1.0, >= 1.0.11) + childprocess (3.0.0) chronic (0.10.2) coderay (1.1.0) coercible (1.0.0) @@ -332,7 +331,7 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.6.0) rspec-support (3.6.0) - rubyzip (1.3.0) + rubyzip (2.0.0) safe_yaml (1.0.5) sass (3.4.23) sass-rails (5.0.6) @@ -358,9 +357,9 @@ GEM select2-rails (3.5.9.3) thor (~> 0.14) selectize-rails (0.12.1) - selenium-webdriver (3.13.0) - childprocess (~> 0.5) - rubyzip (~> 1.2) + selenium-webdriver (3.142.6) + childprocess (>= 0.5, < 4.0) + rubyzip (>= 1.2.2) simplecov (0.16.1) docile (~> 1.1) json (>= 1.8, < 3) @@ -406,6 +405,10 @@ GEM wasabi (3.5.0) httpi (~> 2.0) nokogiri (>= 1.4.2) + webdrivers (4.1.3) + nokogiri (~> 1.6) + rubyzip (>= 1.3.0) + selenium-webdriver (>= 3.0, < 4.0) webmock (3.6.0) addressable (>= 2.3.6) crack (>= 0.3.2) @@ -467,12 +470,12 @@ DEPENDENCIES sdoc (= 0.4.1) select2-rails (= 3.5.9.3) selectize-rails (= 0.12.1) - selenium-webdriver simplecov simpleidn (= 0.0.7) uglifier uuidtools (= 2.1.5) validates_email_format_of (= 1.6.3) + webdrivers webmock whenever (= 0.9.4) From d8acd998793c23a5441d01693e5991a9754c2a53 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 12:47:50 +0300 Subject: [PATCH 124/757] Use block variable --- test/application_system_test_case.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index ea3b6dff5..743138b63 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -20,7 +20,7 @@ class JavaScriptApplicationSystemTestCase < ApplicationSystemTestCase self.use_transactional_fixtures = false DatabaseCleaner.strategy = :truncation - Capybara.register_driver(:chrome) do |_app| + Capybara.register_driver(:chrome) do |app| options = ::Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless') @@ -28,7 +28,7 @@ class JavaScriptApplicationSystemTestCase < ApplicationSystemTestCase options.add_argument('--disable-dev-shm-usage') options.add_argument('--window-size=1400,1400') - Capybara::Selenium::Driver.new(Rails.application, browser: :chrome, options: options) + Capybara::Selenium::Driver.new(app, browser: :chrome, options: options) end Capybara.register_server(:silent_puma) do |app, port, _host| From 42c574746c7457ac888715222603e0b3a751cfdc Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 12:50:30 +0300 Subject: [PATCH 125/757] Simplify Puma config --- test/application_system_test_case.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index 743138b63..036ecd382 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -31,10 +31,7 @@ class JavaScriptApplicationSystemTestCase < ApplicationSystemTestCase Capybara::Selenium::Driver.new(app, browser: :chrome, options: options) end - Capybara.register_server(:silent_puma) do |app, port, _host| - require 'rack/handler/puma' - Rack::Handler::Puma.run(app, Port: port, Threads: '0:2', Silent: true) - end + Capybara.server = :puma, { Silent: true } def setup DatabaseCleaner.start @@ -42,7 +39,6 @@ class JavaScriptApplicationSystemTestCase < ApplicationSystemTestCase super Capybara.current_driver = :chrome - Capybara.server = :silent_puma end def teardown From e7832e621860d2cbc27a0cc2deea3a5726ca8d06 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 12:57:41 +0300 Subject: [PATCH 126/757] Update `capybara` gem --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0c83297e7..cc5b8d976 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,8 +94,8 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) airbrake (9.4.3) airbrake-ruby (~> 4.6) airbrake-ruby (4.6.0) @@ -123,7 +123,7 @@ GEM activesupport (>= 3.0.0) uniform_notifier (~> 1.9.0) cancancan (3.0.1) - capybara (3.22.0) + capybara (3.29.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -259,7 +259,7 @@ GEM coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - public_suffix (3.1.0) + public_suffix (4.0.1) puma (3.12.1) que (0.10.0) que-web (0.4.0) @@ -308,7 +308,7 @@ GEM i18n rbtree3 (0.5.0) rdoc (4.3.0) - regexp_parser (1.5.1) + regexp_parser (1.6.0) request_store (1.4.1) rack (>= 1.4) responders (2.4.1) From a25943bdf807fdc6adf1c67a001d6144a2c0e588 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 13:00:14 +0300 Subject: [PATCH 127/757] Update `simplecov` gem --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cc5b8d976..1322c108d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -167,7 +167,7 @@ GEM responders warden (~> 1.2.3) diff-lcs (1.3) - docile (1.3.1) + docile (1.3.2) domain_name (0.5.20170404) unf (>= 0.0.5, < 1.0.0) equalizer (0.0.11) @@ -360,7 +360,7 @@ GEM selenium-webdriver (3.142.6) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) - simplecov (0.16.1) + simplecov (0.17.1) docile (~> 1.1) json (>= 1.8, < 3) simplecov-html (~> 0.10.0) From 51926bcc36e9c4d012bc9726b8f27e4d421ff9b4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 13:01:58 +0300 Subject: [PATCH 128/757] Update `puma` gem --- Gemfile.lock | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1322c108d..cc822dab7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -244,6 +244,7 @@ GEM mustermann-grape (1.0.0) mustermann (~> 1.0.0) netrc (0.11.0) + nio4r (2.5.2) nokogiri (1.10.4) mini_portile2 (~> 2.4.0) nori (2.6.0) @@ -260,7 +261,8 @@ GEM method_source (~> 0.8.1) slop (~> 3.4) public_suffix (4.0.1) - puma (3.12.1) + puma (4.2.1) + nio4r (~> 2.0) que (0.10.0) que-web (0.4.0) erubis From aa1b693065d7f5cdc407c6fef7680402c7ec9292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 16 Oct 2019 14:17:39 +0300 Subject: [PATCH 129/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 364583301..4bf3b9af5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +16.10.2019 +* Contact and domain list download in portals changed - buttons in stead of dropdown [#1360](https://github.com/internetee/registry/pull/1360) + 11.10.2019 * Fixed mailer previews for couple email templates [#1342](https://github.com/internetee/registry/pull/1342) * Updated ransack gem to 1.8 [#1357](https://github.com/internetee/registry/pull/1357) From 4a6a6058018e961963ffe85bb54624207dae500b Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 13:11:07 +0300 Subject: [PATCH 130/757] Use `wkhtmltopdf-binary` gem instead of bundled binary --- Gemfile | 1 + Gemfile.lock | 2 ++ config/initializers/pdfkit.rb | 5 ----- vendor/bin/wkhtmltopdf | Bin 35457088 -> 0 bytes 4 files changed, 3 insertions(+), 5 deletions(-) delete mode 100755 vendor/bin/wkhtmltopdf diff --git a/Gemfile b/Gemfile index 0afebca97..0f59f2d44 100644 --- a/Gemfile +++ b/Gemfile @@ -79,6 +79,7 @@ gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'lhv', github: 'internetee/lhv', tag: 'v0.1.0' gem 'domain_name' gem 'haml' +gem 'wkhtmltopdf-binary' group :development do # deploy diff --git a/Gemfile.lock b/Gemfile.lock index 8c140d0f0..d051fa369 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -412,6 +412,7 @@ GEM hashdiff (>= 0.4.0, < 2.0.0) whenever (0.9.4) chronic (>= 0.6.3) + wkhtmltopdf-binary (0.12.4) xpath (3.2.0) nokogiri (~> 1.8) @@ -475,6 +476,7 @@ DEPENDENCIES validates_email_format_of (= 1.6.3) webmock whenever (= 0.9.4) + wkhtmltopdf-binary BUNDLED WITH 1.17.3 diff --git a/config/initializers/pdfkit.rb b/config/initializers/pdfkit.rb index eb0828729..6b2802b88 100644 --- a/config/initializers/pdfkit.rb +++ b/config/initializers/pdfkit.rb @@ -1,9 +1,4 @@ PDFKit.configure do |config| - installed = %x(which wkhtmltopdf).chomp - if installed == "" then - installed = "#{Rails.root}/vendor/bin/wkhtmltopdf" - end - config.wkhtmltopdf = installed config.default_options = { page_size: 'A4', quiet: true, diff --git a/vendor/bin/wkhtmltopdf b/vendor/bin/wkhtmltopdf deleted file mode 100755 index 018966446cfe8b3182880bbb672d8345c72731b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35457088 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%0A_+{S6X~ZmR-H4B+HAMX&1hP%U5C75HmC0{& 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]jOGq5$W#~js8v{`cr|{;=d)AyeA>kZUNFS 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 z zdpU3oCbnigkC$R^H>V5U#9CaYMG)=0 zC~E;SRhRQUgYp@B2I^Od_e9tuuSxICB`n`%=)*4GcnHOyPJD%q?0RU0)a(l6-LPgn zdV@7P+SF{v8>ks$=t7=YtyQUW|EL{MxX&vyoOE>(9x0yotbv$9$!k#z#m|xE{deYl ziFv>0ZVkVb?|C@=epS6oOSspqSJmo!yb5m}P)HCszL*xNcknR=99JRdMxh&6Gur%6 z++#=ydF!gW5XGrEco|;EahmdwS#HB!=t6)+G!=bgi!bTl3mw^bYGGK0qs!@@a;}$x z2x2*yim55Ak9j!nJDvu;T36w#5ODI+&4YBF!c%%7qA5NsuRGk*gCjKjCnOqhiRjgW z1&En!-wd~m$SK|l-tip!Q&RV(Zsc?(Z%A-vJVXA1{=Q{S|EBCd`R*zGJ*7KZWw**t zV1K>tLUu+>+G~fvE#dt6*t~%{=2@Jbzmk$XPo3zR;*8{Q>k^FC-=D!M!8c1{mzPM( z5ObJk>u$k0GX7sNOVG`nz(I6OAhT_sOa$ni21IzQxhroH1TnZtHAqll$u**mZIJGADjv!c)IsEo6%YTkvkg1N`NakQE5P_wVS@>Stcpm4!-j0H$ zh7dr3tB86Hy+ttNs_+E*0}*(9p%`z~*dl6#NTL=69qU*07f;|;KrXHQishxq!Oz}- z;-M$PtwL?Oh-AVsyVdHrOKC{vgtjT+HUDt}R;Y=uQ4S+Bi;}Lw_oYrkF>~J0GzsmG z^KoPwEsV)DreL(CYEy5trThRtH9`P`n|{ZyU{BJ+PJvrSR*(|>46{__>o+SlZ{ zJfY)7e!(}A_`hf8zS>YvdBgTY;5J6VFlJ^)0nb%7-w($3OpD-xC(wK0vjrNbsUApW z)CadAm)B+S3%Kq4PqaFDnj&m5vEpU;%W}JMVd;w3lbKq zFw4R|BW6zm0M4_SjFyByM1n=!$bmoS;=rFB%^vu3-=oAG;#i>`*_g&3#(_V50UFv2 zLWSp%)uQ09BcVP3RHz%O$MIdPW2j}Qf<(qOffUdK#&E3UhT;X#5&9A7wlPEIbF>Fn znk4{Co-l>Op_MYplgS+yJ5=VN8yqHlOJ1USVm-;gL8xIo-h4>17Q?sPAtBqY` zTIH}tsAHbOaf;s$#Ic@?)g%(9T+KW81}Y=Rsbxrj3Dvy5Zs84BUzr7{J=7R(OQ(uu zEnu4d8Ve zF#2BSaR#uj28_PdxsL%n4uIsXqi_wqN}^lwU>4v(Om=c^(?3_pY)f@6XSdQp7SEqW z*^d}8XXzWaIz`{at1faAEk?{RliBJrWZGPenE4NDOip~E1x(&-0JAh;bWCO%z|I;l zIwnsrfP0>oqN8K-C+NAP_9_4plcl&ej1g081&ax7(pc5~%iytkhQZ?wedAU?=$m-; zC2m5i^f%4MhY7~5>eCS_OdIW!LNx;0=h|>f1NVP4+<)?)J~!N7(Ncaef1Rf57aFk) zCRC4qe`w{(t0FGP;!0iTPSdEq`2L0{?MrK_eTR`>CsUtQOQk;b>`~$m4m*_Cqaepb zvOx)^6V;GFUT$`IdM?IV&>e21vtTP)qh3mr)g@Qqqks_!M}0D0z5h8ojF-AoIl7bD z^VdU|3PBnE6>#Rv`wNF064sgX)UkNAj|Q$P<sLSsEnPzt;bg|2J1r0iOM9ecNNaZQ%39tUSTD<;qh2dC4IM zgytXD#=>Czc2bEX>$w$uDEX{nv>bLsN@ww~|= z^^xxUU@f!Q^%fmgwMU(HwuAv8$0oBLAo&q3VtxXGQd@kdr24XSMn)l*OKfb<@ zKNpGSolZysCHoaJ@bJ-B=>(EuU0H1QVmIEn2CP*o_5#%5@g%YDU{X(SI!*)=(Y~ubgEHwsxuTaGkmSg}3UqMZ;%}v3ummxZU8nhCS_%_dc z>sDW_;J27BkQEjW1{Y$GbE^{p$Wl+OoaGFSrKcsw(mX;!lYrrWD1dJGoZmvXP}Sw} z&hTPs7r#pR8L9p(lzszC zww?>}Zje2o)-%#?WO~E;w)Bij-7$dmyWL$jD8W%Ss1y2V8@$aNq-$Njxuj=ylkmqi z4UbGCdsW$B7Glq`Vf|Xde?xfU+rFRwzn@-KFMp5!fC>7eThUVa4eQg=bHnzxlt1?8 zCNzi7oIsnbz@=>i7Y?D<#KY(e{sX0zuKjC+?bG~gOVyF7xGUjZ>(sUWrKMYr+P@wS zfd10bkUO>1|4CN&PdsC>DW)u2t@3t(zhHyx;(M>j-@cc6dTNQr4EW10{M9D( z?fV?>gK^)Q=T-9DxPOh1bm?EO8PF#QDu1?F4dYWnc@PyLqu%l<~#aX>njL`_Dn7&w!qHh%MQ{W&42Po(V`@BgR`v!XAygGW%n6Syce{PCEG{+KZ|I1q=7X9cc@o`t9(J>eYcAJo<}_K>HvDpt)v zV6Oq3XSQ+`Iw86CPilmj>IfkILFBv$}8ajIDuH60Cjh*@2FTUNWVBpP_LM@6G--;O=U0 zw=2WHDx-9B+lOkSJtXvtW(Nb>nYvBvW{h0`CmcwW8?Au!EBMo-XH7-NeY8$@O8R^&J^x}X5u<}5zERl#_7NNy@WVO0;al0luY2r)c^5be z7MD=-_O=-b>5|2MG7a%zHl;}D5IzU{WwWTCSHmpyyp|RGE$DZORi4y$I)T;zC{p%d zQ})PE9&*$8i5qYpZL<3d(j58iuzLx3H1QfdfnFodPmNLIp6q}!d(HcK4%8^^3;%Rx zD~IuagI6gWXMDTRjx$fnL{|EMTvy=`2pMWq`G3RFU1a-ld;#&o`#iZ%#?qMe{tA>4 zcf$4u!4CK2qWfg`#=bYiTks(`j^z=i+v7*oq56cXEXj&W^9%p z`>6-U2jWh_n?Sph`P<dLc*>hALbw#Tsa;J zJ=?#wM8#n8ggq-8ODntiw*FCipqsBU*0-$nzNIm)tPTDRK!9(H(=}iNqfeA>b=MXj zKz2tggLM_$fS?Q(KhUDhp4p$(8kN*mt>U4U806sjogN=5;Syu8Uwfpg{m|*jc%SKa z4!rY}$Hn2os+PyKirgLi&U&{$a`%(DQzbAgc!0Mv!RWzWpWrnL_yPxusU7daa*6$@ zcK?OUSfX6K|3J?`+%td|%%Y0N1v)&2$Kbh+VEfCQ>wE8U<@z>+36*Howz$H9yq#A9UrMQ^|P zdUK3rI#{7*Gc)?`C42nCAwSDh)mZjc^vWCYDNRj_-pg`?u9gRwrQt{ShJ2!KdyCg{ zH3?TOgY5n`@Gmy|-C?Y)?{CAYu%-G(G!@5O(NxeDoQDPgoF*__mP~6woeW>!B&@jn zj9Vx&6EJ9l#+>#S;Egxdm+p23e0h8w)a%Je;(`pfZ_ShIgI=VH!$K?gDl~ZeyKhTu z%&` z4d}|yc_RNGPg0WbiZ-dhp1=-4*BS@%q&qc*ReVapp0WLF(ee0jrnA%f{p)>O;(eQAygkzk_vN2nRFZ!xhWe9q{naVH z1FdfF0FUC>8Vm!EWVsggjS0s~{ov&y%~G8)jzX_NTm|nDSVndgzQ|g^T(f|+1@C-9 zzV`1YpIuai^#)X!NivZP+#U;iMNu1kl7WK)la6o|j^TZvZ4#w4clhdE3P7GKaAmBo zXTe8!=Rh4}QgYUmo)eo?TzeTfAT}xV zJrW4#J8+Wg-a#nRcOY5HzwZ!I1XY4J6=ok6!o!FGKl;CFs)vq(yo9{q`eC{!_?E8G z9&V^CK^6GNj`?brt^m>IG;tDFFMrhqRc4rvWvUkVAbv{#t@d31M{VIo?@^kcgtaW( ztFMt3dK47{L+|X43Kf;W?$yoV_0s=htrS*gVwt-gWP^EU42?i;Q#rzmY5-di{QX%k z)FR&aLY(qm7wIKSkrfu%k&>sbF|}j%YN*uCRn(pc6?A0z;V~QO1)<*|eSi;ov@E~} z;3T3ZQB8xi$B069s@cYR8B}cndhFXz)m@!6s)|_!`qQg|FEy%C)Yl*_k-;>zYCMp^ z!_E!Y6s{Ip79tInwUtbOEQhTTp+n3DD@#1cD~DBgNP(OD558s za!T;2x&{#8HT+;99+`Y8-+W}8FT~9wPxZkk;9k%|yfFk>e=&LQf0g2Q84r&|!CDkj zFl~jCxo@YlXuUtzJ?m?aZ)$=ge~l+d#{yXCbKMeiEi|P;jn`d=(qCX*Q&^d$phyHK z?=bBvmbI%+*W}$5vh%^(I?DN{O_A++7ZllPogDe&SgRvFzQuFVu^iqjxFbRb!Ym(v z7i>LzBo8cNb9Rt8FgdPJZWj`$C0~CA$2mFVcKYYp&}86x0tsO4TC=vB`6R5PB`?7` z3HkZ1Jx{9<{rBv2cG!_u(zoE|h zN;d3c4SCSYNsy%5YYvC%xymAT|4VQKSJmGe|q=^SwLl!Jk z?ExHq1^aVwUO7E4^$Z1}V`lGKNea;{o`R8qLS#BJ7!Sc(fP_Re;YYROH;n(VEW?Cs ziM@E`M9&v46kv*qM2DIlOM@e~vw(w{$pZbp5IK-O>Bxc0_sc2Q1dc%L@c4KZJ|_Lf zK$kmi`y8i)Y}Bq1Pz)d`IYC`)>Z%<7Z_vLf z+hR{Z;@I}sYB7pDGEYRCm4U8^Dp}7AXr|YGH5vnqX@O`+=z-{xA9W&EfQurI9)&wm zcfPW@$Z$=auj*V_3ZFHvY)&Jy&8u`PFYmSd$Q^mi zhVi+LJO}$d4oWS-eXSauIt8BJ811<+g&fUww|`*GnG|?H)}E`?J#yWz?viV*x|8Xs zRlLfRH&rU-1-&In^^3 zy!Z7bfpbfcd^VCHm~sMrSE}^|E2I?-oiXYV*Z)-mY-Da~R-@2PyO>kdVKP%40&i7FLk zg?8i7;xo58D+zmwR$I^M>S%z3U$>r9)X_{Y7K)dt3{ET2Latl0rKxhQQrU9dua0<5 zc7-vvdl^p!En`06&m*Lho0jS4+cmYIpW`zU?`#mS^HrL77{w@UK)m539?0k=8KJ0Q z5Sf#uNb)w2V}4GJV9 zfL<3kpc907u#%$|e2{-Lgt>m=|I$^5U;k;a1)2JnY>m|a%)0vDO0}!y`hS6st@?kHXsiE`rv4|H z`fqur#rntmiTZy)Ym$TqRF1m(|7%kO|8I&qVpE)&#{Y4)`X6tv|6sG=d@ZiT|4EJN zzt-$uYFZvke@4Fd_?Eg!QdcT|5Zj(`~{-5WT+-ZF1t6R>NrZ(n<-VjMyif4 z*7DT06_SHoPGEu?i){=l3zS2w$^iGhiy~FFkP}Fak`FZr3ce=^ zb{aWx>F631-x}+Rkp$|a8Ah{yEhCfR!fy}ic&K=u?j=jFKqp`nQ!7R*`Pq3hl2z?JI)@!d> z4{5mme>uj&M^2-w0i!2DV#5=`!iceVUwzy{;mNmW|ORII4PgB@KojmBd& zEdg0k#R7e0T5J~Gqvhw-`F)hkru~Whh>yAQQOo#HqnGQ}3SM4%jQXj@2c2>Z68aFv zLPF~&EIYGBPnMT(nB{5w?_Aal{y#@zr05bpSVadOm!ezpfB3WM4gDor^7rxA*u5p- zzth5VOZ9139^!d*x0lecet-74rSco5H_RXYBQ?$XS3&SXzZ!~8!GmdLmveHGzOT&b z?ci}@1qj_SE2Y-I8orxa-uP?qp3jhW(A{$2Ib|4-vz;;IE^C2|aIEy5m?pH_&KmLOIENd5B6 zMBd_%iS)$U%7*;=pZ3p|zHcf0e~rJE%D0WzmeKuV2YNgsrvasydvM955bJiHavu}; zSLWl=Ahb4){h|fHE^hgie4szq0l#=3USVU=hWKyHfA!^OOX>e>{Qa-X_xRr>j>_&9 zj4mt2uE%=)t5N@B_?Tda?cJb91=8W`QsQxCEv*}2#cc*e={oI5OcwlIKYah}n3~$m z35at9Uz*q2;$^Vc^LPmpNqQI3d8aD)JGJ1r`+rKo7jZYr7YK~B6p&YI$W!U?1IS?- z^7ylucbvx#*+)a}TBsp=5YpeZmw@QveaoSE?nI`EcscTFRKRrt7QkWvS;rtydXu%E zJqBX5l-jBUs}A=1=|r>{p7L(8AT`ejPcY$d<@;VA@GJjjEBuZM z=ua#sQI?mw9%aGhgJHc*Sw)S@x~x%IER^SE?8}A|tbdQU51Q0t;~eLET~Watf63nG z(p`Tqb3IU+p0*mB6odUPT8G4ArS@O%eJ=mF>>v(V(Rze6AAtIu1CO&S-khmD&g$$X z(8?{74b3l$kasFbpSy%XHfC5f{|Y{Er1ji5?y zn$909@y~mNE%}SgXC?Z7QHdyuQ9?R%^{rz%+$u4V!0N_lgxi*Ud}B4TJ@b2E&7 z+5VC&e@LCUp2z?Ta#g5~6$d!f+plv!fTBoDW~<>5i@mFyo~Hxr+zH+C^+lfg%7K+N$d5Y8f zRJ zj=@AT2Y5?ImfSUy#j8>dF7)ZF^N4O(4KneKkUjAk11dtrZ_s|3~c_%Nk+70yS;F#3j7iK!B9)M^Lt0u>Jk=47E5I5qqdks5Wh>8tdL6zd;nO^X?O>t2%a9&PgxPfdq66P zqx8f;ZkK>3@r>N|XLu6Of^z{F*&hY(zP@N-n)-3(2nfatD^%$`4t2}IV&E1=;d!0p67Om7fmN$!pk=H#Fbct8Q3;5~6LvkR zM*^t5kB4#c{E}eY)I<(hHhYJhrW&V;-^OSM%X-@SkwBfX@EkRXyEoAXALvLlN69Z;=ZB(UM%ubgXDa!8%?B%=%>kQ4V*NHW%+EtrF;3OIrR(>I$x8CQ zX`-!uGwu2MnXlM)qU5(g=cntJX|LaT_Ixtz^}|plwSiY>Ib!66dJO1~SlP6_2tPJ`egY4ex$P3%2wIrGo6w7);+kNHO#Pj%K?ox>6W4712{e5O(( zsbq1VR#G((rzAvQtbcegn5JR=1^teBo%Z`S+|`5O4qD*Y@;T1Xyr*=hY7D>mwFdCn zgdY_Jo~S~-;1_H3Lo6L=V=j;*$R z%ZBS8!h`|G2-d8~J3e{u@Q&7VK44g0STUWg2_Utd1Zq2A7nsNjYUJDH$&vF6Ax?2% zAtd+64XMapPZBX073mn9c-2H!^)!3ae;d#bPE+~_00`c_RQ^@W{h)HuM*5J5BW5em z9xgoE6Zy<{7(H_$n5tU+wHJA43;7px-Ft{nRqEmufPkJXZeGGZz4-?4-_8Nai0=)u zL<0>@uhIbDm59eCi#MWo`er3MKn?Fu=66QXRPm~TrF=@F4#mdI+FxiGxLT{9>hjQ3 z?4?CghHL%`)nPck!q@F^MesEqS^)L5wl{gQ-uf6Of* zLUl*Ikq2efR#9fvyGRLtBM5ECe^m9!C~ZOyps>d484cm#*2^I;|1WB3YYO`BJi&Gg z!LXR-t;1y`P#cQ>>#WFm1?sT~m|ugvM6is-1)vsz182>$_S&$54a<}96_#1_OJ8}4 z>bg;HM#J%k#vV(Fg!&`)19Nn!o6h;87PghV8k}30X zA_AdXjv!8I@prnARv4f~;vxT^t^ALQl%i(x)kW}QGpHo?K zxym^pDUigj!b&FM-Q3O&usUL@kv@G+<_3N*bbe}AS@7dM?H9dazkuL@0hm(gXpiLG zG3c$(G@)iv*%VDvbY)9-rXG#yd=50{%LYwGDc(ucaN*LXJ=QGOHW(t7#36sWxba9S zYPtL~4tKm&lW#Z#$6n)tvaLNeA}XIduqeRI|Ehc31yE+I)DhWoc%RlEJOLBZF7S$+ zypt1nHmL-;K`UK}3nI1l`*u0DP|bT3u2K+2KoSGJ0NcVk7^0}7Qb=f!u1vY( z57xfV9SBQM8d_7WF3G9Ii1$!Zr95NqEt~2SRas&?8Ihm77U`H)Fx@vb7W*;&AWLxy zs2;ctFl40{dkQPT4@OOLaI8167?GwUTRuVnKEeNzF(KySS;C%XCSV(ZX+1b31<8Vi zvjXqFja&F^-peDu0{1QE(<;}!m*6QU@G%o}VACm8JoYjL8#lf2jKaORVPGAJyZf;HG`346ys3^lZKPW z64kqBNsCo=Eo?hL^a6ZjdF8YDC3t40x1gld67CNLXTrjl70AIHCWpQnH~9rU&Q?h4NaV_9{LF+YR1S#I3zN za*@-y)oS)%U{WGGyr2P`r8HnwSTL*A7y+QhUV-noypC~H5?6-?B1MmfBO!2#OXfIJ zOG2eTPIMMi2)JNF=D{b%&wUwekCAv2qQ1eY-z;bTdH4qUnKWL{hZ7y%JG3|wyS4Xb zpgc{D%^XJhM$BmX((!lRZ}#L*9JYO-4XNgqdeiA)bm$UwX0U&OcT|b zQ^unMnZiRy(;Fod`ewCykEyf@R`5ih-4;F?&sU*Z=qXAX)U8D1{JZx8k95Js+>@X- ze1Tb>o|(!FQ$2s0mWP+tV9QZS{>kEw!kqz?=+9J)FxR0cnf7%oz)OfrNI$T~hpol@ zZYAo8g+xe0v_7*OwgG!i>)&|`ax z;p`kSghNev^(fjAN1_^4AT^8u6V#DkiMUwo_28+fiO_jgg1UvdT1owp#0Mc@FFsfXwt}g3 zXwZ6=7$s~4q7&y_-z~ni zp1&9(VwK}n_$`)!uB{%;M%{2Uwo06j4h=FT$hBH+xSh`{!eRdWph<@MN@ay&M@1;+ zZDVR9gyTukUm#lNDe%Yg!+-F`cm!iTAT{T?KA_E=2ULGlf+YBXU!qt;-q4X3Otwu3 zn_B

nq05F_l}l`=WU%9!Os>5+9H+P%pjYUC*#ZQ;2FH$E&ZXlpdWmrw;%CvLk6 z;%KMrd8vZ!S4>P5swxEe7qGb~!meAbCVNQG4PW1i`vb{Ruh!6R&?4`29@N zp&aHFtci0S3caCNeefWWTCGl&+_3(08=s9e8S)78F`K;PIc&enOv{H{0#jqzuBo_% zTEXzTI3J{#(MTBaDjxa;8_L|{cAy2pUJpNhc8pmaMg0q=INyWls5Ng;r3y7~1*ibV zjCj85eKKzK&qd^AX>E!YxsA`Mv&!7JT}V6W2_n;lKq3p}3ce4>Mw^h6n(j;p;D z8=UaSDV;XzRH;kgho6Hb-IVOHU)OC`l6@b?J;|L&Hkx98nyuN8^LUKx%g|Ur+|PHA zpeU{n zI93Md;f1$FL}Nr=uhko8VDADx1-ZiX@Epdb8f-}00DjTojv7<8!L@jPn`!e6;QpdH^ZBPjk<7T**CNxmK&2<+@*ulWVOSg)7U5S0~)c zFQ5;Hp;+>=QeUt|icc`k;!>eQ($QM%gl;K0U22clw)5RFpZkE{8#4 zg4oA`y*$WAb~>VC8M&b1e%I0<#Yh9;ymZ-4P}k-2?~~mttKI-{;4EH%N?Nt_pq8t= z{e@4#_?4JjNf8l&Q=y(grR@So+~t3uyF4(kJqYs-cXFehZ{g!5xUE&Qegzqiv>Y zeGDiP?_FHkHEz%2bp;1lNWm5ADZCGFsv`#O8ro;-=wmsDU_a244|54Y&f7|q;Ymg& zpe${fCvZEoL272GWjC45qT;YW!DHSNz}jT6-)V1g4j`M^PKAQTw^sk~B0F0z%zuKc zr+X&pv;-hI7(d*0n;YtK$BHxhXS1Ti zMQ0tZ?f)DfPJI;w#0HmihnSkwsXIZym-KTc%>58n=j=W4nqGDqwq>^E-K%l9oUTNsC{)bMYuzE7i#*^HLwR&JU_FgBr| z$zHS+fz$n~?W^2-2A3`wm+qx5!=4xEV%OL2VxD?Z?%qZUggO3`HM!;viv_p zBPid2?)9k|&)EN-16cT#y8ibZ0fL|v7bU(eB4)AwPp;VihbvpWS+3asH-Q4RO!iqf z-p|{__-El?e-}))C8F0flcKp-Dk-Gsw02j7s+6nNw0BQn!`m&t> z?It%Q!1($E7*vk{@Gr2b4X&b#A_T~J0R&)RkBI&S{bA5{p!YKy{!ax|_|-c6pGtsx z4gNbK|mt+w|311p|v&zrciJ-1%>r`z*d;PBehv#vc~ei> z&Vw#@81(u3zv{Q=?^|r``DC_k&lX(So@d4#UVCi%2UPft_pnJB7-MC4?<^yE^_OOB zfB0B4w*T-mZ|Zr3h?*afzm@_6eZN}u+(UXowpOVxzlgN|jTh?L4_&EV`;!}V+?yjE z_rYh;aj(XsWp6~ky>Bz{fWzQv*-}djh=*$Rom?x_KgRMoV%RdXn&|VH`uOtUQP87o?KO$2`rt&iZZ`!f;z?SpR9EdI2X#F6Lne*%9J>#J_wbZMmxe|OE&`1^-k zE7Voc1r85?un&!+Q<&I8#aRjGlgjz_5Ni5-(ifl@74*ApE|BUfdW2e%kJf%1c15d= z_Rw9ojyA&_OcjH@@^^Qz42Mt=AE2}`8OWC5-)nXonyyET?l)p^gLgS|(2&js{!8naSpjJgn2f^n7skd9kN0zj>1 zmB)b5#3>K@EmWi_2`a0aW-BpoF-n!%wpN3~gg^)CV86Q;M5vYym55o@S%q%kW5g=t zZLGiBEK07T5>BHr5l&Y#p9WFiz@x4IQGd8?69^m8-^Zw7fV1>>+J}ZQJ%D<$#a0hYRn#|+VUhxM^r<`2;Jg4=o}zz|aCNhohu@J|jH|Gn z^uor`B19?FT#H>Fev5QCRMJYfkrf? zr~^-d3g?SX0sevhsolM+R8JITbkHwXNBZv(D9I1)Tr|sbr7WApL-ZQArDwW|T1O<{ z{VZlbh+U_b-244RXK0)jiiN16APE8-M*1BB=ujKm8o6~+HT`!&tMz-)J1@oO;rl>7 z88^6`igEGUzeUJ>pLumDUIB#6G77I~dzXhx`A~nwsv-RuyNqj0U%*bxURco2TSy^L z_?A?*!#q4?1^V9%Bi+;yh$`&yuge}=WA_ip`U$H!OTDLhdJnI0-NjI-zG|nhw$|HC z@Gy2iNF^ZoKVUwJG!G7OsjbDS==iENzq;*4NR;kR%z?YZw$$Bb{0R2zgf}?8{Y~gI zJQ}j-Y48#yIOaXtP#hsbA^mR5clyX*GXdlJQmI6svh?{t{|Tv#G*5qrDe6fm!HBf` zyf4zoJN^c4AGDu4-=xRO)Hu+u2oUwAkgC;*oQST-_U%Rp1h|vdWcv;t@VY2YAblbe zN1EML70hO#Il#>L;_R^pfI`kegKZDu4T3)u@B$?L20WI+vlAG(H4XL7z*72PfBU1e zeWCaaggo`0!H)y&e!YuRTm$|c!KbXNlP~_I;kSTiPw#f?09WiPlw&@7kEqEB-caMZ z`$RA!7WXl?wQ#5>|M0M)M-l5H5l_{!Pj%nR)2E=aJA|$m-Xsj_`(YAq)MJl>>*pZB z;2(lAFG85293)T_=3%~vuF#K<{$-?MJ5SK$u!=@FFt&fB5E|*;P1@z_KBR=#8$Z8g zY5^bXvvV`{PZK}II(@sK-(#~W%}(_M9+#SPJksOPv$9Tsafcni8h0>? zA?w7Stza7)6L$yl38YUT2gRvT7+1hS*Wn$AYW0+xv&XK4D;H?|IkE(eN#9RE-vgTC zZ%t`L+*A2UpkEheWWj3UekuJ3bp1f+8ux3#*)a%q3A$rd`@n5iqDl|{+>l|v1W+x%ItjKE&Fh1oP@f~*+<)9Mm#vNI|we{*Z!ql4O)zvx-3KDjq{cTaIu#%2Y zt8yO!H*pODe9ps2)_Lj%4{Ln+1E2eLJADTu|qN@4sfCPitJfgxBa&nX>y?gqaxwW&@_KOF?f?wa2qdm1p~^ zBVDT2i~*1x_Aww&ZJmN?A2(|ocU2RD5<;+q1%fw-MJ;;=m1&AG#oCPu@tY?dtu(}= zP_6NdDDtn%3C8{cSd1?~#va=^l7evrL+-`?_OaPM70+S$6v1k{x2B7r(ZJu!DDnm6 zOGM7JyB`o3KWbR2j30N@xaRZ*7Uc}U$hc*q8bA0jh<6}A!Woot<0Ws|yjvMOu zd9uP;p;E38jfw19!BI!PzZ{9-wPqj0HolgEy6`njE247sG#OM6l?>S3C7r$v;U{EN zz9|$tJ+*5&JDF zV9xhfa|)#X_3=z6M&@{0kqVF-TwK|&BQrOd*6~ZR`-e*-`b0KNxZqixi|ccAA>f>I5ua{@We~M;{ zry$=Va8)Z`asemj0+pE{&t;j3jG&|zOm0T!cul_mLZU_z}r3EAWN z^tq@)pa;Hh66_fRcBg>Z=EK%P_B9Wpm;08Zi*BI0ilx}T*wnU6y?CS!QTzstY0!%% zUnbnA_meh>zt#^l!e1<2HNs!F`y%*DTA}gxcugJtw%xDs7eDuZia&pMjlXNoX%>Ii z8n6oltO@*ef1qjn-Ef4)-((u^fWOqgwuHa3;zsz}f>(|3R}qZhZ`(4Bzfsk7_*;f= z$bT#6G>N})|0Vv*PSp784rQnr{yWKl{RUTI_J)W(#^S%t#ZBYyw0MobR2u()zn?B` z34e3$YlOe)^P9lmQ}ZJDdv>YDUzbE&@Yg!n2!A8+ z%HR*?!f`ZWR;h0HMDUkXqVf0mOB#QW!ey!_d?l^HWZyjO$~tsclbF0-FiBfu(SJ6S z%wzEH$u`Z%G&R%PI7 zoKLgS+bHn=B=hY+`SxlDfldju;sD%=<8LSOLpFhY%b}H2jJ!J38KBf#@j~{)2S>-N z^Jl>P7@T%M9qIv3RK#V)*g7Lk<+frYXE@X#-XN#r**I1a7&r%9r|qTRo2jZ?wEy|* z3rKN#+F}8L8Ug1Izv3O+LqD|-#AeP7b%8dL*ag!aCgP~jX%p1=ap1DRO+Z+as>1Cj zXg0VM)dd(()+AW20ZZ0kh-=U!*l7mLslkBhCc$D1*mq~JP{i=r=sn4XYS}NksS_&( zG{dR>O~7HlC^Z%08)#FtPC=+g?c+^wMv9s-77Y#JBy}%u0yE;(Mkay9r{MF@7m;~@ z8jEM-BL|@X(8EyCuUpxiXJvDymCZv^R0Pd!1aDVOmi{9}eRvZFtZ-!uObK zfax#s=W+ZLhlBW)Of(nO%?I?3aLxx3z)5QCqgW;h#*O-tJ~uZdMrr4j*6NK!T$YN}XKv8Kf;R_!n9reYC^?k=!yS7VEpR;qZ% z)(ckar6L9b1TR$tFDNSU2D2`hc;TX`c|YHo=h@vr=&ya>cmLRD=FI)fnKNh3%$&)z z@9&@gckMfP-2dLb+wbk&zL%G{_8ri>eaH1|wKN*&qkY?)$2gr{nY&_eKW}bfbLkP= zBlb<;E8d_vQEt|cDeP--)i+Tkr0LU$1_P z+B5ar+eQ4J-Vx0mib8|C)CCT&+pfPv|I0o7B~Q?yx^$=Rb$F1iRk!ns33a<=X&>?# z_Htx8TBFzNVlT6sS0A6lYKu+G8VvMvPrcY&_dBrcsRFe=*8sK;7w8l`mwAz7KB-5Z zhahw+Dj3Tvsp@&{-$@TegIvFLA4e~m#Z`!danL%z|-SYtL+ zd#A)$o~P%3%nF11Q>{{$BH9gTv>yh%|e)2RgPgdXc);!2xhWa62j5yl1L)C*-Ii&Rueb3oH*;Ba1 z{#1!@yJLCr`(C{74pF=v%8NaFxa{7v(X!;lP!UQHNPiXRuJopSfB#bZ@%LTJe)T&H z386eGB^;G{zDlTHBR=&8Ak8D6+P%sy^Kd5U8LPxY(p>b_)}GYcUV?iq6ttSZ3Cxk; zB`Nk?mb9i;%K2D&&e^U%z4w<+KdnCYB72yyR&I1hN}Biv8G%i@1vM#%S+!Q-pAp8v z0rzs_%t*-{f`zXxX1{Y|0nT{-?AygFA|-{S_f)j_ax%WegC(5|NqW5e8ZEc51M^#T zx+RHE&4iouj_s_HZpDc$_3rZzH?!t(QXzhiP0O2;p~@;WPsp`Z3|~pM)M{NlN=TI( zqzsj4&MoZE(BB?@*uivbcm%b!`|Alb@U}{`O4|6cyD3{VUS`^LP-fcCEVg>N6v}-n z%HcaTj0X<4HrW62 z0<+{15f+z*bs*u^oi;NFT_t?|ZS(CxbhoM&smyO%pqJmfeep<1Bh^txCke?dk=NE|n3c*Zy3aUI0CeN&@UVFN9lIXu@+5Cgy<3W%1HOe=E z5bfa1BcYF4VMVA;eJ`!YcIm2kNxO!+jX3)9ajJvr$`jcA(fy9)IEHHb{KNLpiMsyw zeAjYi?bo#Van(`~5}2!|(ek^p_EYGrIjRV!UhM9p*G+!K>@{z<4`doCNVL@I#cvU{ zI+Gcb&4(j(-Z@e-Nfk^Cd+=&Ha@)M(!_9;*)v1BVG$t8wqDk9Fnp|vtwtg!!5d`4~ zFC7OZG3Rzdye6twV42#!s_MDXRzr-86EcCw={Doaf=!jhtciYsAry6iSF79Ms=@g2 z=8Z30Ek+YupSY)_MJ-AUyDk4lD{kI$xi^BO+1>9CZUnX2*7_r;*qr*1NRB;Y(wgW- z@qI{yNHrXTu8pn^MBm5OND%xs+1%+*zV(S=b<;IYHDMB#qcF77tUZ?A(dW8 zP;o1hU*omo#1&#KZ3ZGk;NqUO&3?CtN*NX?4wlaHD3)bx2J*y!>`U9hKhp0XvApqfx=HvY|x=Stfmvy{yhWhk8Zbj?nX z1QqsNg|@LwP{mbFIbP*!$L)UTuHso;COo7ckvV&%R(mZUPo;2d$bVOqC zk0h4qO>MMiIkoX0*3gLWuDXcAVN?HvxiGmcHS-s%kPyVAt~Y0-Ny-rQc}5K;H{JzD1)$vPd|W?;G>VVM?fgCb;0 z1JZwx2YA)ZkK6IMZG3u(Q{GMHs|UbvUnAe1tmAH~8~4~DW=3Yro1!zA=%L&O&I(>- z*^futvG=wu!?H6b9+S6@B{w5~j-|WDy*Xf=S-+M#XBft}S2~7qZ_9#oT*4{bhMqehUriQ`HJ)+MYZhy9n!2k#!boNFVY5^tY1 zoMLU7wg%9QXN2jR4DnXH+l)OC?sfg+l3eZ+4+we>xkGMEoPm)5C5f-bxKw zv6clO9z=?dy7)!qxYWG#u$BbvV>up#El4rCx4UKfb9D$?;g`d?cwg_Es@&%qL{)2k z-VgD^j)8V_@Ksn0OXUCU#lbu~I58+zEMd97d76Oo9&_1KYBE}%$4fd%tU&7L9Z3No z`$iw>%MYhc_uHkyvJ|&MIX6_yJio!T*hMLR6iioY^IWZ zxL{PUX>@U}o(HBYgoDXPsW-qoZHt4IH+vc;Jr|@B=F@Ys8eBfbHu#^W-4%_z@4OBm0do0(yb5HP~o>LjKJ2>gM=;3E(Lj-U66z+!o;;Z3wXG>#_rR0 znb^hdocJ~NyV;Z5zSIr7&=FF= zR~IBFTJgx%_qx4M^q-dT|M@X`sapQ%YWRO-xSZB3l;#Hw2A$DT{!B_!F=D9JY(LFT zBqXWFP>CtkgUVw5Fc*=1YB78lzqy*N*5sQyutXk}f?TZ4S6bIV>&z+1tv%bwqbnRt_q-jsxdXHtm zj>eL|!Q)Ifz?<#wK*`j0m_kI$MK%@fSNtNF7-I$nla-*3;_=!Oqh=*u{ z2C&1-`;po>%Nd@i_@o(wRxYOE$gNEE)9jSmgYG$pf=%udxmXLlyKBKi&nU3Gt!H^E zmb_djMjod(y#BHLCAr3-K8@W{VRv`7W|MDuA+HKQB1=a|=6!IPJc;HKb6es|js)&H z%?~mQ>&dJfxNxrQeWBFcuaJGbkmBr+ghIZB#{x_aausp)m4`L}H(L;yRIwbX3NjAdPvc1582-HdT94y zu7?y@SMj>*A$jyu4=Gdq)I)VtH_2qo`_GT}(L-rfn00Kg-*@`iQt6tbZ4!J7Lzmi< zPO>&1-Nf_5jI)mq75|zbDVYOMzEv^FzKUO!rHMt&x(0n7807nKK$ygQTwiScQ7=+V zkrK+A6fad*NvVX~z&X58)?I_b7S(Z2=yHwU_!0K1NQiqCY#UC+x2ffIFp(P?_Z%IQ zV-Eib(}*q|a^K|eTFqG_NcXJ5TnqZD%b{LfzTKU=U|B6@*c=u;mv2ZtuZ?agk1MU9 zcNLefek2z)-04XA3GHz*jpS|do2~D+_D?#!^UAMeomUR8AJ6G?Y);i-Wjl5(g(0Au z8($oqbL2}@o5k=IM_DAe=j1lEvp8N!Kz%M&)CSP1q8@9zv}a}VX27bq?k=Hb9=!V{ zQrOuu!=J6>WHKtIx0?7OD;HM9I>yq$2UNv(3QM!NlRdJgD0_b+mDOhR>2CdUs=__} zLd7}=2eD!3Y8g|dx%Y+9AX%r}v2sO!p)A%&Sp?xuN}|4*hsdJRJ(~GN~yEX zJc2!mv^`o(CwqHxMZt>i0^T$7`_#uzsIT}sFhde1Hrfj7Dmnr)&Y%VL@o5FYg&!c7 z))ruJv2Nja{Xt$ZF|hFJ-=Hw`&)1$5A5<)J^Zmnzx116mdKf2Z50mcW@T&OfIpIZM zna>Ap&HI5&x61tM*TQv|xptt&3hU0g@Ta+T;l%}HKW$zxzL!d@k56%>Qy!>hyd1kF zSn+b`*t*1^eNww;ttZ2a3RFIFpnG7TpOde`3pwTca&xCm9Fr|KwoL3fLT}-g)@x3~ zcG9tLo|G8$EhvDFhVC=A;?vL=FMMqLS5{3!dwS_$Xb)G2M7D2#rS@QtYFD)fNL_eI z0a-M&fjp(4J~pB*){}e!hHCq%{CT)e=y0kWh(2s_4w~8hP}zJ7^)(leRlQmrKba1B z<%)fUj>oLra5wT zL1-Tu@6DI2xjIbCQR2p@VMO7z&@a@qH+O;KPPRomY{?v1#pclP^ILuV^r@qIZi_?B zEu{Cc^0KfJbXMJx_Nm%!TF)cXSwC$ZqF*^rM%_5_j`4nX|IT}HC!YVzqOyM0Wd8tf zJ0kugxOgBEhKAwsx(`_lx%ITJ5{AWg?VPj59DFPNWsNDA&1~0*6f@V>B6&9Xgc69m zk3GD#o0XP(96Qr6`2D8plkx&lO;}EH>uHtd1if-}mW5#eQfr(Uc*50aE))4H&(nH? zCu1yEL6K=z#Hj=gY*38)#Ce=^CcHuT*QGhT9_}*rUR5i7rAO!z)x1GewOf{2^Xl{C z)rAOdTtBQXoVJH&fZX1(vUKQKh+;)AgUc|e$&#{KR9p9~kAKfcT*bU`0ZX+F)S}f2 zj%F$T)C}=mtDk88qpzE2?cq5kFg7RE;^|ou`4?2S(l971uf%M)j)Ya!@yH7(G&9AsjW?t7n>RH zA(D3hLw~b@59OtvazwS``O0oZ+eykAL$sUIx@qI=!%5b%*nxtY7}0gHO*89D0@~!* zw*fRb3mh-s1YHobRd{r?we{O(OIw*sUy*Kw#%H_y`Xa9x8y$I_J3!e%5?=N_?>0jj z_WJI7LdP_buzKGohCt*&@~+eTof!7?uULp(wc0IE?*U#lA8nz350KfZu}|9G#Vh;+ z`|v=QIev39J3gJNup{vQ&azvY&$8EOuKyKuluJ)T9R7T#{{F4twZL1wx<`La-P_)F zO3oUQh85RByT-@oX)7b2;Uy^?vPbVutKz{t43bAa#;Iwh(n@rEZGv&A>TqPWUo{YO_%*{TBUc8Z zXNkR&)$iCF()ZMSm~bt?fb5e}PI5RN4+*x-?y{{v?$|kj)0wkxJj>EZndqOU=87;)mjj`^aq%FSlYdz`AHy)qI2} zFh}#^EF5a$7vqT+8fQT)UlakMZOI@%>|O|G^r&WTs%(bWfn zM=hn36&4B}-0e&EG6402x%2+Sh)OCcX(%yl&xsJy6{|E(03aP*^!C=C$m-@f$!l$) zEQ=SLGrrUqonO*IWz9)M5Yyf7V8>1{e7e{S1E?G-%@Llf(Hta~#y_c*AbF6-f0Q7P zKukN3q)gt8Z{b~lEA=#g;zu{oV1=YkfQ4PFkOw@-TY}st$er8Uuk-ICZ-p;uIJS&> ze+=i`1JTF8bjzqWtS9mgA-Zl3x0`IP9C@^*#jl_{E{Zoyxy_l^6DQ$~JGYryoMZOD z_7NCc`wQ;|9~{Q=?4*TX%v6+cagkwUa+|evm)ZZu?WWG>t!^nVZ3Hh6xgUs|(VQW$ z89G@H6;)E556_n>&E6$9KM(=|XV}?aY+k)M-0>FVwQaZ3qZu3>X4oaXl4A|j`h-~@ zzgu%~Fc#KlhudiTcRLZ~%UqE7#OVcrC&EQahGmTK2f5+S?{;23(?S#&?)*0VLBE}s z!xS7aUOO-r)=}1YZDA~|g>t-hP%KUW38h!7S`3x zc(G7i5;#@W`C9S5ndk;jK~JFlb}yh11rxonw@52NPz3Zl~kIe zH|u^*@W}-0yo8m11Ss|6mzkyV@2~mFF@>eKq5d96xE(X?X73T!;DFhkuXy*%L-cJ| z^R^!EK+gc8jaslR10=IHH{SL*JxguJahQ*{QHvfU$$ zV`Gbb%LQ|#N#$%$p?T?dqoIXaB`p@R)H^OwWX4^07VP8JYVnfDJ{n?){A13t*Ijw5 zNz+Af)h4Ix&26rfj8jGqo=`gGe$bsjQ)Dy!)O(@nP93I~{u`+Gkdt?<7Al%w(xAv% zmg|Vj>2sCCtddHb>33eWO3gW59)kOqa?3b|G?mEWP!) z`r5-)3^!+F(7g@89fp$SObOq0kDhHQ|IE<)%1e00V?!W%zYRhOLbP_=T%8R>Kfr;kr=&eNp~zDzq0-R~j4zv`FG%{Kx^1m-W*S=meru2+Qr4tv$Y}pIbZ&1p@aeqF<17C^&IzuI*Xnlj+%9 zC5sPUapKYabXv<*psHeVAkibPjEdI9ujSr$TYc<1tt5v1o*d)(x09xBB2R5>w&!pX z-9a z9GL`TsmVOOvXaDpvgYUgD6#e{KVpLe!vTrQ$!D{9A*g(Uf!ZNON(-*rvT+@06s?UI zvUSwa+=Sk!i4TgJM-(#HqT%t@V5-lEn?rNFh2(wHvPRrjVRfMwE>V3hnPf&C_O6sE zBd%LU@%b)8+(?EkrY%P+1Xn7k?NK+h8&$X)+M}`yYV``T;VS6FZ3;TdD`7m?031qsOZYf{U-|pk&;d? zV%f9QkT9(E)UYu)dA*36Ey5tgpj2*AVV3_`m~XyNN!v1I41WJ-uxKTQ7Ht{Iq}rA- zt7M)Rakyugz@0}dGkbZ3l&KIUb5o+Z$QBZaM785B`pXoQf3+>hHm1cEq{jTSLDa~) zLKz8M<(6s(yNseEy^NZ&GCDDnQDZuzOS3Z)_!(ivyj|<)R@>>SP(xNe12XxPdHD=C zKTtlPsM3o#Tujv=NP4aPQVzSezDgzbnrkk%#fY4hE-(vVhJ|tY)p8Y;?L(V6V1d*C z#Ed!JaigZJ;6Sv&?tXKsOi@aRl03meT<7`O1ftbmyf(%AW*qU#y?C9y@;l6nC#ZQ% z@dkVGx_iYd@Zt$-9#p(dcAr{;<2jcywlv!j#`;;K=d8a7uMfJD%uYviMcB2cP_YuD z#v^xmv;XV+yV+kM=@vw8)Bpo>$~6PMP*BaZwyZ8w{;(U4otbg}@RY1^pWEWby$#oJ zoVTU-xSxYxHQw@p8~4kD5frenz^TegBQJc^LoWw;KdWvv?$(# zK&)JrUr}LMWAah(2~&+wZ8dYg6=%%ER%Vf5n=^czj)w1;5z1shFSx`hbByA@#o-5^ z?>mXp>`HveJ&^*^SR@iVjl}5Z_PE4+E3}%f8_1*6gNW;zf1OHc*Lxi<^qXe{iAtA1 zO$!BiTB*+QAeDmLqBujDZJ05V2a?)}3DVU5oZ_5qWMvx>hV%*Das=B4h!*YN42TsgoS+M;&ci!1xVVyRJR}(0ue(gGOv8# z1gSzZWDj6es8F?QQmkrXC8ua!_rVPU4;8r4o9>H6feJSH&pX}7RB}w+WnrlVJ8y|4LCX1#$sJa8D{!Wb=MkmJKtoPpFXwT)nGRtko*i9OfMa+W83wkb|AX7>4NB> z7uDIpw67xT!JhnVz zFJy*ZMCb6p$Uib&tTXd!*mO@!ZPK~zwdU_{>EUCymwsAH_SFrcvl6wa3BI7EC#Uo?V@6z- z8+dX=mE`00yxPE%8>$w5ysIg*;I17XnGF#iM*8YzqR=NDrIUxEh|;T1Dqqcl(xZ0(fhR{6nS+nlq>jm; zn!uA=fb3@qfdrmxt741Yt~9H{OS#9|-mj)2R5EZHyHt!9?VTU8&AoxWv_iX_jU0VX z-jM6*F*MA$mt0|KQhOva)t@2Dg9Wiy~4s2o}b7S-cmh>kR)7i*T%aq$I} zpd((z%9T6&KP^lgo0AxHYVL}P&ja<{;+kdVMr%tM5l

yxfTeRhI^z`9C7DC@2XTti;WqMv#iYcCi- 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�=GM*|1s4Y3G zz<5d&v6QnL;{}#}GL}qOPGg&OO!fn?XpPHaSMVk!)b7v&QLOul_@(n!Ar=2JieQc-6>qMR;6#Ir^sSSGoUN%*jI2iJ}`KCJEzE{`}qtW*bg4RL%} zDGn}~I6kau2uT8tfkv92y=2k863MZb%O5OM@+ETR3NS7g4 zVL<<6X@U6&EC^&a@mqGU#F&ThEi6$aepai94{NrQ@3qA7VU2fisl@SNjc{;niQ~h{ zc5wW}MG+rXx`U&CauFX^8wW=p=^{R?WPxM*fDXANS00A)VeN%|C~@?fF5<)b%)!xf zx`+>Jg@dE_bP*rcTMmvM)J1$)&pJ4IQ5W%H&2?}Y#PMNqt}XMulsG=D+ZV z92~vii}V?jh~vXr=-@gN$A`taw#=;)aeP?!Ik=9*@nMa1a2FHDhn4T(Xb~0h zVfA%z9f;$@>geFoh~vX*;o#a6$A{$tPAPY+!9_8Vlnf4HL_Vx74z3q*d{`?T91k}Y z@nOB~;I1H!59?13t_N{^So0j*<;3w}O>%IT5yyu$%E5Ifjt}92D*5Y193NIsCtg?L z_^{eLxK_mRVQCJI2NsI>u#RB{Bk9qJzlaZOkHFQfe!BD*@nMxaDb6E~59@v4obE#Q z+%VNJV~BLW9)q?P7=n4EFkG5Aox(O6FVU~GCG+H%m8eDl(BVjAZAKEw*+AyQhc(#A zTPKbWE7QRZAdU~KgM-T35_Xj{|He^P+@6qJ zyF<|sTcm;SJ$iUnviZmB#HIGP&FGQq1g^bi6cUu(=e1-dr z!J%@wubLC~Cgt$Uk1s(HGRiX!XVhkAmK1SjJh9_){`i`ebcMi_2jAUF`b`&yl_@c+S#-T@Z@5wuRc0>xC{GRhZr$H)9# z&V^H$&@JAE(ToqMC+qD>y~ZXiKb7UVOZ#fbsGxso(#<1X+T3?B>Sr5e#^I9cB>m|E zY>Xr!Ush4Jku)JPF~Quyn}B3v)+ zpUimp6-pJIF9q`7B#+fge@PzOpZ=BdxWMoll8#WE?*

zsM4t(D$JSsW#h3~Gwv9u`#diZMH_%7Gjfib$g5W`Q;NIv_^ z8B?x_+|dUn~be%l9I6Dl-AXEsqr&NbO-4SiNmq_8a;`8#Zg@dG6WC#$i66PHXG z1zEwnCZk;SliHF-wz#tEimNn1h-?1YFli{QPvfN3NlI(OW+|;EF=hzQlAtw$Yb1m840d|$Fv zWCtS2knoMLA&=?dE6h17=oeJaVG#OEbJBN?`H${6^KNXv#k&6<(Fo=GQ$6=WtT)a| zcKI65Uj8Z7-Jc9wSB-B2lh@4KOr(y@1>=xzoIuO5+C1CP6<@=#{9fc&a+zP_U(C

X28qL#I*E;u-@pS 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 XY;)aZ;dM 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

7v9Lr<`xVJMxv83A9Sh}>=>*D;wLCRz=n<(g=P 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 aERb6a(ePYnJvTM@T`TOaF4C4F8CRwyM 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%0AvE$RAdLa{kTT7-N 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­^r`P#7IlTmq?P~3n* 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

@b{7mrd{F%Nxli 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%0Dmfkwsnj@D*z4E_j72P*qKAA;{6 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%0DbKFE!?m&GSB<-{&nvqj)*>7@LS8`5Bl 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≪g;d!ZP>X-OMG$PS6tbKfd({0vcAy%RAs+e1 z^3CR1&0m+M%@Xa9i#lMEnl}G*G*!F%q&$T|agG@1OZMOYLM;Y9X;=>hryTY(d=L

j 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 grmS`co&V&wKwSb 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≫XP{^c%-_#&ZXwx;3DV9+DFRSm=Kcwqa&I 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�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�Z7UJn|7@hM_!3r^ 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

c}n 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%0Ax_G&F96OdNT~npS_iJp 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 j(Qd?HRew~`Mk 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%0Aw2INcoMK))ZfEi~t~}`#JH_XmGOam> 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�aBkQ8z?} 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 LjAfj?%w55_T@?n(T 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�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%0Dk7URq^0Tw8!SGj#TF4e1H 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

~z~b^MfDZz(}EjDj%=^bPK(FTXu?SxaEO6-g0>n z|8hr-q3%kwrjDleu)0v9Z{VFx(I-O#^P6PYPSDxFx+mx3|B> zhXQ6`Oz4isL-w$G|0rDzhYQdRal14@W+JpU8$?LDa5CzLwilQ4ADa=2k&W&Z0H@Gx zegIA#bu5bm)b@8Zz8K<{AMt{Z3_%=MAaD0C1?u))Bw+7@2J<2Cn)LHHfCMsiy9Vcf zn9;5?EPULln}zYX{lMfJ@w4zzT?97;EvlWzS^l9I3_fsxM0~9n5Am8|6AwR*T7BIp zEFActH`;uncu^<$DtR-!t6z?QI2clL@OEA$*KI6U{0V6kd-@g+Qw&N1PRtGg1_%tW zA4P$KuIh^vD9$L^Z4Z$jRbI?{c-1Y zDG3~S&}LFoX>FK-PD}4Tcsq3y<-M(`{QEa0@BEL8>`_fj8v-!wMGoH1wvl}p^%zU5 zN6tf)wfpO2cSuZ-NA%TCz3Y)5j0EIGc}5cxd2T6~U;=jTGXe5?O-i3fCC-cmpT)k< zkaE(g>|myUl9+z)Iq$)k(+zDS#(dTsd0te|rzJWVFAyv=-$nU$9*LQ;F|wDWZ{cWJ zk@y7Ojnc6vyNk(gPLzC$>q-k;96R~wXoGrx+ zy$`=LI^a_OnFvLngFXYpmth96D$1A^rD#F6>5ICTBkizL|s$>|$2oKI&C}nOu0B_Tbh>^Z$N#ygQj(!k*s+oTmR5WK1U*;Ue8t zj^4ofVw1TTc}3KJBIc}(mLm@dpKj{rJb*kyWJ7wodH`s48sLP7R8-x7{MG?+ZGTbT zN=xXCYr(dl$%QgKpvyCtuo^~rV?JY%I-VEqrO_~8b66@{Yaik~A>gRoC; zn*bjFju!j0NKbfO_?YYcb_-h%#BSb)W}Ddp^jo4Baj2Xv&m|3Fuh8Xk7~fvKmV|X_ zVA^l3aIDmEz4h~m@@4Akt)U8oti6j=i-4*J$eF&|yBHCo3apny zBW7Df_6~cXP*=WCS9Ux>aT4mvjwc{Q?0ABkW{W50dPYCIHLGM^GV6Td@is%$<|(ib zWB?Y2>ap>rviaTw@~G0iGGxwz+j|~?1eUW0w(o8cv(NGsY_n7&%VN?JmqW|LYCc2$ z-~}+?*@PF?Mn)cNV&Qwod{(TaE?{YjhjnW_%}T=i_yboPX|Kk)xf*G?xY{>yA(OZ= zSNqal4O0xO1VG1Jjq7l=h4yMB*5GQ;jO-x0R~($M|0n_YF|B^N+}e0LTJrzoh3W#D zUQSvkn@@?6f*Xfub!Z%~ym(0-3A@)XtoEymdD9)tYha&n?f72W2)!v9Zhm6zjYXoeE+&{ZaASHs9d)`9{pMFx&gVGE*{Gj2>$b2 zD8PK=Nd$uAVnoho?;FwHDjFmh$g8>LyJMc6gzlN`KVaA$yLj#e=yza*cSU0~~3AFjFeffoVVTjD=V@Ax8W-Xx1d zTy#25WuA!RHr?6N7pwPo4DJefhQFz2B;aG86S-avOYczvB%;3oWD`rnAd(e+bF@ae zhwZ%{V*4bgKCYGv)B9^*AWQnK>QW;;!K=r4?6gMpYS&WU?Nt3AgRc-jD~sjuX`iVx zTqkw`t8L*u08L))yMHwz@=RIb1D4`2n>=edm7c`Vr6I(!QvGPveRnI0N$dh)lFpBB ziNT%8g{1@L&$#ooMAR6TK;P=bP`mVHHKdbmh?oZy*%3g8(j^*fj4>VtZ(7BT2gNi2 z{|$@7tue(xfql>qWSh*0;ea{HmHKj;w--c_E)MW~6AXyDBK}2|V<^gYwfkmfI-T)K z0zJTWMqcHq0lR}X)8f}r_Le0GxzaKwraXy^VM{;|#DixO>3prAM4?_>l;M+=d_Brk z!r7G(ki(^4rXk_vQg!gP`uR*h{Sr8#r>Pq()DK-Lqow($l#%pj&;ZU-#*^U9i1U)3 z0~9fKM?HC=&)FUMMqLB(m8jXS0RMo32{CcZY>Az3YnFZ~0E-9%SyaIhiuK6ajVv5h zT^9p1H1yC5E8E7+^yzBF^%V$epybw49j^N8x58=`1CHQ)opBp-mjoW)Hxi?KOB{&P5${vt2kSi_U<*34Xzc z;ADygqp_h2bT&WpSVW%EM}e~@q2hjl=}mgC01sHVES&9AWmsRCWhOy6o>B$ck=vZT zC;BV~FUJbN{AXL2JeCnmv*HcuZR^cEMgi2a*|He5wGLf+@apZjv#5>zr!R;Q`ZB&i zVonT0l~NZx=mp5nfIA_4(hI0F)@PY2>MMJRcCEkT)dEM@L8p)^*(0iMI6ey49hC5R zvWH5XnQ1x-0F3xey2EhzX!Vs@VTY-#V-~v3DZw7sxgq$%#nY}qYLX09Kf(=A58LJ` z0inM)1RvOXydeNZJaPSO4DbDy)@znxbn5F~{)IIL%BOvK_ZWSZQw@z=&bkQfq&}Tn zA?D~DzUwUcjxRX{1QCu@`xpv}ar0}Y`@&1dm3Iyo*%c4DD4Nb&=43o^Pd##fbmln9!UYHqQ-{Hz_e(+1uwg_5|2`YVuM;yWEduKMI`+WCuL>tV)c?#+SYa!Id9~J@+u+G~f zijFPfjoxA~I^Ky_bfoKJXR-q@M-?AiG($UIwzL#-r~8AgbIl(5^Lv$-@@)@It_I8o zi>=e{O*hNB!sYqfr9Q**P+0tQOAgLL`O`d=EsxZ)=}f9$XkHVEz#tpHJVNe3GhVms zFTr;SD~XpLZCNzfmTq)g)D<4+EANd0(7A2K767d^+Y3ol*u`aIMcllUFI+skJ7(~G z%*^QIB0~cA9cbHx(E&lbW#Fa)v#QYfIxxu3W=V;Jc>IxkqRs;95N|fRhO;5Gd2Z9DcD>dGrI%GxzG5lp z%U0a${qBi88Tkk2JNKIa85Qb-Jf-{_m8ZDA2MQE6(5nCro}1YFct-24dCmtJ=F42= zvD=*MJep}JS(Rzt$Y(@0v+|vZ37tpD5b~Wb6MXE>H-Xum?>x%rnD4xrWya<^?_`;e zc(z$S$9|pVf5GBDrSq&veM0?-xdzJRRZ=70&NJWU={62VQf9Wig4mgAhe*ZIf`(dq zFL*t~#clu)6hbP#!)h}tm6$z7tB=ts5Q%7c-9kxO)jk{cieGf5$!;^+c8Xb4pfA%d z^9L0Ov0ybE0n-cUH{==w z)!jQQ*jV7al4W+I`lpnZ=joK$Q{Zgi85KBRr7#URyK?=`g-(w=pJl_aJf9`Rvw1#? zq&M^M$U6@e(3H{onOlHmhv(O}*|{S3@J6F5D;@9-)IvjGspcHtd&7V|PT66_6`5h^34|t`BtGr-z#JSJ^8?yC& zaP@+_p%zfQ`Gzo$)MwR$Yz2wa_Jh=L)E4+xF9vWPNj*b0oUv<>?x1r|E&@c2KYS_qTs^zMzuxw95O(_W@kl zi7KTuz1~8T?n+-Izaftd3wCo z$mQk*7a!GInl@{`?JAX~UB0A`D8xQpmx2(QjMcpv6g!U7jz7+rT_1naMdn&uKMp}C zwk)^2O8mPof};A}4|<37>Xeu!&Z+5I2XEK3fM(Ol!$Y^#LPD&K(4MiP=15-hOP*P* z3>qk0EIrPjdul_9jxL;F@KN-GGub_BijiipNf9%JuY;h{F(5%Gek77h70eLS-V@2CgbZ@5 zR9U;8=(f-;aT8sQyUd;BjxdmF-wi~~WIm5xX3VR`U!>Zfn9R;m{~KGtle#B;`~c7G z?bTz3!elbK9?-N|ZqIr&)eNjB3RC3XBr2;1NTSyL^-1|@=GS*7Me9*Q-kM4ENM|jX zWKGNKvp6u%Rx!}ryP;C~G^W%g5OTYFe_cg_46W z7xN0(F)x3h$03tzj`Z0YPO0TXH;d~#k2FZp z?iu7ytmk~yKzn&IdaisPjlt8aWB-xA^!B-S{_k+;?Ldx!b1VM(y@UBD1<4B2iri|# zou|)Op^p*y^uug7p!{6(N4S~N^$*%EsB@ux@#yqVk;p3iSZV6M$p3Hz=H3B$;HWAr z)6oNY8qs#<%8`$}&gE0Zy1F_~QO{%;7;WXJWMBu2IW`Z=9F8Q`y@bd;Jf|JxcJE^h`?M8Jt9XDQSi?5lY+xu%iaHI?nuDpv-oQ z0<#I#&dQqtP63C&O5&ojbT3(EW)0`vEU9H%t-LFX8jqyR8->o;6gA#Une{cC4^n1! z4d+WMcgdy(NoDp+ljDLYa$|Cwo!PwRURv*u(9bOWtk%yS{X8heW~S9{^s_@hz4G`O zsh?-{LmoSBTH4$M{VdndclvoubNY1syr-Wo!i`(N{t`(W_0zouKTqrDef@l`pMEv@ zp#x@XqqaHO_V!=@OqsmMM`U(zjzM?)OS)duI{a^1v{sB$47Hbvi|%Sk9o;Gl@y1&G zH{wU(1Xrpdx`hb8T8ZbVjihVP6CMipHxNYN6tfgqZV3jhdxG^AUWkYvAPl#tHgKi> zREK(FU7qo(@bKIdIQ(od6jzub7EEYw@zA9$bg2`SdZwM$YQL6r^KljefrdB(TZ~;1 zBCplifz#NNmACw}t-}h1I=E_BH6pK3GjK%MIxY47ejSW3tUZPpT)SP2T)T(_z&>U1 zD?m{|KPYcmKGnVrCz_klsFDxN zhyuyu;dG1y&>9d+yokVWop6u|-T@i_>_*Q zLs8QrO3qUd&aFqGLZG*?JxTBS1Na|)h(Q0}t9)!dI`riQs2M0^>6nnNB99L~(Q=^W z28;M-FDoTSkX;I@6^;vAQq;zLiNor;&%m}4OoY*q@DAYSR=&@xL%9VjW6MMA1!)?T zlfD^`&C<&A{D5-&*bF>jFDTPTa=lnuG&ihuD^YZYcn#U!5I(wOt?X-@GkHk2QGplK z{#5>-Cvef93PzBiOb>gL+Yk|GKdyO&Qrax87)42gi~PFZobvl3h19WrcWV{pRJlz! z_A~{N-6W$%*y}BkX5FIe`8FL(EK1E}j`@vq49?~1S@)prN_}9*RNaQm{C@nf#-R7};Dy@~M$7gy?qB#Q9ra@eh63wLgar%wzgGrK%I!NTsj4TkQY)s5m}SvN0lh7BpJ@u;BYq zMKS?QP~;!9c{NavS!ZD`)Xxt6(Dt0;`QMJgtOGB)x;?q+!Y;fXN~?#>TJ@=Vl$i_< zV{2}RKURkLP0rv>lovh=yxJ`qS4_j{P_Ce%Fux|Mwt^$r4O)vDzy^bVuX zCCb`$oj=TF8Hi3lDSUQCCyJu<#w+=ZSyzXvf(NR*a5+AWvpB;|VGC-Rv$(?dq{40P z5(@)U2o|?_1i1M0ivW3;b?wged}I>TunhH1VJ8R@3g+rFTBRTI>)D6c{Fp23V*EuA zd+s^Q00&{zRh(BL@_zZEd-&OiIBM-`)E;!$=JoPnDb6M_%vw)P}dhUiBocGTKCescKEu!4Ua&Pqeco zs70J?1JdF9L>{De^9aDT{s_@}xGeE!$T4%Jk302m0yd3wqa(=nLVSw_ISn$LFuFYg zL!z0-QXgu2qlgjq_K4`9!I6B*w}joY_-tiJ1wUugq<*eQ99n}l&ECX+^-`&u>ewu5 zm?_t~=cXUhMOq)pH^ibFO!5B*#20;tn1RNH8 z3T5T&X=rdOpJr%%C-uy^Zo#`hpyU1 z>CyaeugJP90yM{481BE-t_Q=uR9+(Pn8rfC+;JkW>P^=lE)rNDYnOHS(U@OSr-cRB zyyPkwCO%tc=UuuCZ1Qm7^dkXM2o?F1l*q)+;hD7^rCoh_C#OOH&M@v)y%OaO2BU5I z6DC>!#+W7jTPR+jFQbbIJ~hrvW57-Kgz*e$l?6}H#$)@qSpCIYzcvahxm?t{BW9Q8 zuUjnz73_5LHDP_CpDr1{GFb@?7k2bcXNWn6^dEu)%?ik)7J&-fYqA;om)AxuU zAoqnb1k$QVWe>C?Qm;fg%dJ)R<1Q=Ij4P>;5aZ*tnQ+ zzpobv3Fg(EXQPr{h|pt$r;zGE-*^WVS}t9}myawl+c0%7C#bs-XR6#e5lzjN;(uL|gm- z%DP^W%5J=nh*<%&*#s=vW|_*5Nf&J7jStUb)$pcbg`h>3q+3^#whi;SOOv|YN4N(8 zAFyrwk;m}Atzs*GUqF0nR~1ii??uEi`XPPOQ%EbuOmH4y-%On;?yoyIQ99U}zD~+S z0{w18JGYB^N=`kFBTi}l2KZ@EiemdS$adwn-aQ&|2qz}=!&4PVY*_a6^Yf6$YGz&% z>O5!GROY}+Gr~A`2K|k2ES-&@9)u}vfh>xw->z9th_e>}5*y-Ik{=wO0cq2B_(9(Y zM1TG?91h{jKj{pe=vwob5s(ADW`lKsvv%%Her3;eqr_%5`qpMP0v@uRq{?bar*K^R z@3zMRgZ^apMWs~nrEZ7>-!eN07zF5tC=U(wJj*++=b5EZzZh(41^elMdKHWnh%>#q zm~nW3QQ~w8=%{1-3P2ZdlwuXI`6u`K!H0BB+lyyLEL(Tv7)s^?EW|>fD*@%_{pttq z8qOSExTMWYx0iI{;BlYv4{d9(o(2$H+pdGy1}m`MPmPDbp|7I(k0ZxU;aiGR9iB*g z%wV^qxqK53WH|pkn#4*kyFxcIJRzg8VF>h29Rs+LxK5HsK(vs7_1tC)^v|aJN$4yA z7IGKtjRd5b7-8yi=ysxuGW9*}&k(SLy_g&!uZk()b)v+%F_rd>2kW3hiw7LDQ%xEn zxBSDA8}#=@m>AQO7g>7 z&x`ZyE|V9(hl@uJ>wzuq?Y`xX@E;-VAHc;F1Bw4$3Lu6`Na8y*TkjHi9VqP-`S2={ zXT{8Jbh~(p$j{mFv8p=2Ci{Co=@V7AEm?~aC=|&>I62S(YXfB({5U8_CKvVq)KV#T zT~a9`(59u#TH?^M&B$yu^RUxg_65QLgVtmItG3C7Jsvw0-Viz{ltr7EkksQ>tM|b* zYHzaslTZ*^OxbQDUOL9YJ%Yi5wngltT0_IC3C1SSz)ytVc=jDifxsutyjl$jXnwhP zOcz2LoX|3*TLRYIwyXi8rbj~Ie2*ufu0zH7POoFI-U0VjqICdfhx>g}F$Tkx@uL#i zE*#jMc-%8@g{-=4wya0(vkeoFHLfg$?oh-FGE18z?VNzp=nhGJNy-dAT z;K)GBM6g*;MqN(`gh{hL%)skq6UR*t8&pdp^(k61Unn)>Hlbn$eZOv|4Xrig-ejhe z6U+~W1JUt;K)z?p1JDCTgH9k7W0fCgkaSp8-WNV$pZfh{x@#zQY;*Fe6b9ACT+JdC zEv&Q7ywPu4KMMnAh6{p{D)&U1PCkkS(fE^TMVLry84olBHp4oIC{Vz}&SyW(H(B+bxUN@;Cu=CG z?2BbNZ64xwPre((*f1j03HHEV8gmv9*n(E)?{L|eV^ZuOWgHMwyzZYwN!=Y#VnK5s zhTqBAGUr@qy8D<9M*21;4?_$qEfs=(D>@0uqi8HMAv%el z_GQwfU;mQ>SRVjr9qwNZjb`r%WQM~c3hktGuSa8wWYR{IQ8b-SCP3b#(Q!YfX7E>P z7Jf$t->`x8E@k5ek%be$H$kTBuHNHOXB1)F+^LQv@t=M94b>ZK8oc{$SuXrqdF6j2 z%+pmOOT2*>@T8t}wb#E%P|V`6si;fOrMQC}3%4k*`(4U#bFb`*Fc(n8+8*_=Rqb~Q zTu^Vlz4#lOM~7ENCKgxDRVV;ncFT}4MH1xjg)PSe_d|R`SGS0*hUPP%`M9*>THN;& zZD(^zdRvG;lzlxiIa*1{F2;#C z^lcT$qhsc2_Qr~lSH*k~k@Q~V$HVz{xGN7&od(Q{x0oFn&fim8Gc-oAJyK7pt5-z< zy|J^hzN_Ek8yKI-9Hx@*Oa*(<{oxCp8r7j2X_>|o?>+Wfxo4~m<+$=d1!7)6{w5{> zV6S*<H%TsFLZ0=2<-cR^C-;CN*&O z73%WO)hMDVdukNX(D^mZ=mt*D60_q7r+VhMjE@fuI5zfFeA8$M(3zp1Y zS{lys(#2g(~q3EU9mFC3R) z$c;QLL-NAR7L=3rgY%3^=){xdP2QX^odf5-q}Uq!Ce6SAk`0wi&;a#T(x+f+(#*JMZfz>InNp_8PpQ3^9K-B_B!i6M1v{?}r@!nR)Bl@3uPlM`gEm#yU|`W>fNKwPE(ZYmw8ULJs(<5- zPrLPb|K-fIGv!fZ5O))xmFYYdtxLkXMIhqX!tLfv*EId9yV;0b$G*A)!wIw12QTn$a<0a5d3Sn$F?nM}$sic%09iCyu<}a7 zw_NjRsaV(ey!~6*XL|rsi#>BuTah;W&9_QFJ1u_qt#D`AuROwE?o>K0t>94y#)Q!@ zn8MPBAEWT@ljPjKl8`%A-du?f;ozOuQgYDFLUB1>L;3A~FC}hECp1bQnOCT;dM!Bv zZ&jkV?%@d!Q(V?SF&WL(lH=8q-x7oMd_k>Ed+R8n|5&7SYjXjr!uJ}eMN|J5>SP>e?nsX^ zT&TJ23<8(+vkQ(1eh|PcTH!$ z6}^<*mW>W@qczQ)m0-_DB z^s)EePD#4Y3=3~2uZie8uk_LN?l$+PL9`rmnBucKm~RL|=JKozVH%6z!U+g1-|7Y| zzfG}kcV>%s&JEm1Xn5xw#*JfsT95xY*bXZogFdyx;W!dw6;??X%sQ)LB zw5}~**`Ly_&u$T1g+BTZ>q5ONU1nX}ZG?5WR={$;a!kcUTu@*=o`b_XFF9YD>)+&W z>gxJXBQk0rS92r&i`@;bFb`o*v+0w0;%N97Rd|ayMEfXpoEF5@$bch{qGjibZsjtw z&U5arfy7*bdHVw`^#*!*yOb5#r5sZrao)EovFw8wu*H+D90;owhlxLB zi4P%v@C9oQt$6UkcC((8i`p1M{eN5bbcDgmho2BP&kVp2p4pE3(-UU{-V6>KD}8H| z%~9~M?^7L1>o6s1<7|(BUW=sD+S{DkytcL-lw0JF24^781)_(EuGyjd0KscMCW2s& z&K^8vX+819ZqV5~`f>n`*BQaXO|t2307@5Hot~}39E!3@Lb3Ff(LG^IzDwe_0{3uHtj%hShW1aO@S{U!0rd!>V@RB)n=_<;zzn_kbC{gn9$IR;FIvo%oy;{fMkr{;0%wF&Nl$+ z)ioj(2|geaT@8opTvYx(M?D7JL{w}@IDw!SR8mLdzlvGe$e=tuTyS;x&n_`Z58~gs z&Y_l>q=1!31=A{(h1d>zH041lR%du`I>1Y2r5 zL$iZbwVk!u!G21z{jD{el{vw;wVeLBKJ}l<3&z)Wmgfb_YdhcM1q;iZ+4;e{WdKe6 z)n(4of}nGeGpNw)ujx!E^heir<`xE9%AEc+f|a$Lu{CtXr)vgX%blGy&F7rICigtL z$V@GFUMmWoDR;(}1YIkfH%o$7E8r*&mQ^^mrL~djdz+DT)36uQznEdOH#DKKPPl|hw z51)>n#p{>5`-@KLefVbyj@cW;$lOPPne~Y&GBJp{JDKW z)8NleduEpV!pbL{gJl<$&7U8^-Vu;*Z;hA0eupCu@2hV<3@w>E{F>ANLe2tNKOMtm zQ&w{fxo1h??^=CES;>w!8-1S20$=kEP^$?ra{JC(ZqQelt^_+fd;SL)9yOBUsHF;? z82gZND@_OHmL9HiKKmHw(?jcp?d=_+Aiv;NT28Ye91BY(fnJ*J zj^M67#sM7BQq3@CL6v`j>iH0fZ{$7aY0O^G=e*Aj5*Sts%|Z6A5|CS_9hXB|HGeS z*$!}ELGI!zGm@=lVG}LU6g20B+Cpv?O}ZE@;%dPo`c&5}rA7mrGW)9PnK%0oWewFi zN>63Dy3=1~wa-QNBs9XV8|f&-bykmEKN$-TH75V0(l4G9^BM`YDv z|NlAQ{-QSCTZ8A&@&WfFj0B3fLihZN;lK+>*zuJgU?~{Jz=3Zuf}-y9i~8L%oUu`# z>T{z$hS|5HfI~s$d>WHs0pnpznV7c3ScvwI2cMIaN#FRYxc@nZ+YH2!`dO%-_w>VU zHqWX3Dz1>=S%B67c-AM~g6#l!EUo<(YasbdFSm>5FS6W-_MpZ&wZWKQA}qef=ZgPM&iEOi82xz-EMb7PZ1=4;vNU zbG@Ib{^OdtGD9CPezwc`sD_8n<7^=*u9XL*lZ!eC$V1DDah`eIQd%Lu;L&9mJW##i z9sJyvEf@JIjRCLdXPbU3b1EB z28S-z$-1JR*z+WtvDF?nz-#!=d4ICqh_B~d67bv@?*D1b;vr%fIYy%+=PRhECEL|L z<2%L&CeH<-H#3`ehl_2x`p42xA5Y4=S72J&xG**5(A&pVqt(Lw2XFtkk3abQ|LyI6 z)!zSW_gA&%ecfv&#ANJ1uX{ru>)42>*QP~SltTQ0O2CV3q%ImuC*j-{G3#PZFZIGX z(fns);0=z)Pox2RRam{?B%;6t65frkKwoXwEPgmo?Mn5g(+rD9tz1XD{>E@QxyLp5 zYN?W4$a=NZoNsl!uv6!iP*x$wxSg7-7p8}*nv*{Kua@ny+Q@oLO^&Z?_!66BPB8@D zaP4JY8QKeQ>?QC_`uWJqFxs*gUn!G{eh$-`>@v<)$uQiWI-%jJNjYVWgez!S_>_l> zc$nv0c_avfr!7OU9iR8O{g$w>~A`x#wc&LM25ea)))AwQKG5 zO@C`Q>Y)2RPAXuV5|CCmDkbghB`l`#zk;zu-381t);k++;=TBANCN0fUg4Yh44ZyO zmkr$KR3emw!$8^!uw}cietLzgmG*_dx7rfcs#o0hFJVOkJ;n0UtDtk+)@}CM_YgC? zT53ZX&}>Oj*+qlj2>n!NAZ=KeQ(^SoFM~A{h#;Z2ftlBv$B@YUiuKK^{Pw|IT9ev% zI6u=9$=xMPUi%*4Qayt_TX-?5V{!V}%f_%T1NIue|1yVdRk|tfUCOb&4 z&~L)-+fe6z$~_iC;0~$ogS}&iS!@Epc#xa^k26bL*n~%Yj2RVkT9r@h{M6?blH z|3!vk`4AVm=jdsa&cM^{weJ>^FTL+qv2SFglspR`M$UXCLtto1mYZv+h-2~53}>Ov zy(Zd$Dlf+j8ED^(-RDxrrl6e?>Vd86a?NwiGsgLC`+-I<8pNmE6Qp>w8D#{|z!~bb zqVzSt{g>GGB9|if({r;CPqe$a&T&i~TvzwD$Hux8#_tH>!eD3=2aMd$Z$CN$l*<{ zNWnI*Jz5RMd1Sf`dUx2;G+V(BGd{GX^a&Y;3lg`vkvmVf3CK#Ar z3G+OAandK86$vq?+1y;uCk?q%mnVJ5;&&#^1A)^qkXM+?9Y_X!pqwl#INgTOU72nc z+iA%B#fRRuTtzqE2z$b24Z@r`zg9CmcK?u#*Ul)6Ikr5nm5(ZWo6M#%Z{j?##kno~ zdqBv5<^5xh#Yz8M<-_V%Ty%ggiW9Vp5+S3t{%m7@+U(0_dPAe#v$Rwqm&Kk8L*|Ob znf{w8V!4%pc1^;Na{7y;*%mnO!~37*Y?51jU*JznIqR}aXHs8g`NX)qoHAdeob8aI zq{IySx`izMQbN9Zj9xF3iai1g-)m7bEg_m~z$Jr3g!hu*A#aBmk=nl!fz|Jon@F?j z9M|6)CZfaUIyh~nDd7{S$Z5+2Yad2qg~wGDOe6HyGq0kT`{sQmr7A|gpESgT0qf&| z$L(9|gZjI?YWHIfAUeov_Zm0lo8>9=>VQo2tIRo++!t56+lBF9ao}u^*IAQtKF%!0x%IQ7W=9s_xdE6Y>r>A|5%5VDt#-IJd)H{y@yo2>a z@9abUK#E`+aQE-|-_bpGHMAHmA!g2$sClrivnopP0lYoYXX-jnX050E<-B6#2l5}L z{`{g}e_GdhrkKU8v#-?LSK$n;wFUW&a{ryWm_VbfPAl$HL0xKZ*U#gXyp(m7hUn#q<__Ke<_kfs;zxw}#^(DQhuw3THRc>~_2p+F4+wSi^AWmto472<6bi(ar8D)>Ob2?^H`f{e}dYZ_<_>L20o6dBe zPf*%9Y2G-?8K0zdNwVylvz)J!l+Fpvmb09#`X0Mwl|6W}Gd+t^P}rT?IwLemeV96O z|H;m@T*OVe=EK%b?>xlic}Kl?3Kn?8&4uQ>)=r-qh%0IwwefgoqHsf7ip`+ooW2@M zCY6*8Y~#FN!g+_6nyn`}ugE^wzt&N^k8?hhJ$XdA+1$!`xg6-}n2Mu5{FSp`{cL8X zdG!Bd@67|HD6anR>aMPtxl3~wxFENoI9$oH-=O^;RF28rwki zLizr4d^K1o?WPL<9$)pX{5!j@OrA&OXPNv^|2?-B@`MzEUh)lPbIfw^TB?r*(@3&^ zHz?!e!KOFmVoK4|7Y*I7Fk--#q7tObx+f~t@Ra{)g?cLG6YgEMA8FQ>`7lP-kb*6S zh(#407gVZQLHi~<7ry59+nXyzGj4CxK@+_?tC?k{_ufFcxGVMoAkHU@K05Jtmz#(8 zRud{(5$;oIrtGb5sFbg6^S77}JFDlLnz?(awM`A#jcI1?+*{pPC-HB#IE4=uajCSo z>fP!Cmxq_y_=EOV@3d)6_?5PjXiz(O{bf5%%-bC#R>_d3%BckN|n z?j_xo$%)mS2LC-4m49my#cYH%uzk9l%=60(Ca3UM+&Db$m<^5?Yhaby-9_3@Mmdz~ z_c%!`F;8oWWa_U1oX9=P3P&vY5iD4<%mu+TYH>KqQ9q=d({w*D;YFa;J9za^xk1_2 z%uAvlbzf4Qa~L5`3{T@oz>!!qf|%K`F?iEP2$;l*N0I(=ttas> zd!l~(k@o|_v#j%;XU)Nc2cYSj5Es&ft(g$5>U05F-|g(b0{5(Vq`=XU^KFzr?C$%t zn;?2i&__+hkhiN?2>i3{<5n1FyJf$@_P!3`Axhz{hv>YwzKcn>+1rh4yxYxc!c02C zc0o{Nvt7@U_2fV8u$My-ti~YmzdML5PBZT%?ds!{_H>H&x1WMrF!xeoaUZlG$!~>#bx_f4PmH3Fiu?n5&HiSR$ z%$6pi-c0xb(-wR2HKq&U`++jARC5v%zbauqX@Vi~9^^2B<~30hqV!t5A70{Q=IcXit3KO4Hj{gDT~NZbDwx`;yrmU^QAK+XFt; zce`Jrcb!<^_N)}Yfj8n(yo`iB%X>J)pkj@3_FE{>R^p|OczUDVh30zK4k4->pv>5v z|5>XF#eIxT@{`s_-fd9yA7Mnxv_D5+le6qfKww!TU>boN+2H~l79(*o?6i4 zCu$93+kCCjCb}Iq2ti0N2sKmPccIPez?3RiO9DRRFYBVZnM^yfm>H2n0TahBkGk4I|Q=Prh2gghXg>Nev z9%q9H^U{sveJ`9Bf!`wf-^d;@JtoLB-1@$u?{_`&0J-%);awaE$)>l^9p)0oc-wv+ z(x}SizP{D5KDX_E@Sha_p#DO+PUY*_!Co8qd0!-Ytv(m@_i>yItcENE7!BS-7>Mr* zUKmMGfPLO-e4zj##*;kvXZdl*ciF9{kGxP$?%gqo- zN_bSlENli3b}Zplcnt;rHEE{Taie@5VK^?ny|&!E3rt>xgm10ru&J4Py2A9SQ!iDR z&-kk1IASJOwgnS-S*2NCr{1X)^xzLGk09m^-oIuE2JH(oa#thPp6wdKTW|*toQKwZuqDSj*r>N;o_?q` zBFxbi6W8j#(7s)77CHRWu0PHi)!nE$3$Qpx1@rpnX_S)}jXI^f!!2reH2sX+O@hnN zLz~S=fU!e2;ur?r6uT8JS3S+kO`axs4^vARIV)k*zZkbb?$GKm9#C~f%NIuCb6M`} z3ZDe?uk&ojAA~p^7DMC7tOZInARj#q(2=Y>uFMEN9@J3MvNB0K&8D4Y(>^2?u@vzl zHriU`A$CX#NxSFc?qhVspoG66sqVmbIVJwA`io85iJTHsOurk1#q$7_HH*1)T#01<^?>wlz-;(u*mi7}T zwzoN09hwfe{WbIJ3iE}iYGLhylkSh4G!d$2Tl`~jS$Pug>_p@9%45y%5%P;)H=AAd zbC+7;L5hbUTAy_jASa>}WmahQfzzHa;`jxEpCIw8UD22BW$_BQvXvCGRpi}@_T?Zawyon6 z;wePbHy&~&EXTs*JWW|G6SgXXTxiCA&v}XO+0cf%NJpNqL6*DyevWe@ z&^>}y_E2-^3Z_%Sy}#Q6olZK+6F?_JFi5y|8%xx{y(^cG^d{$-NZ;o{r!Dp*YpBCz4367~TFOqEy zkV5LsW@dDAb(73^AmYhlV%;wxlOkQ3CO=E$XTAJ%Z^6${`I#a=SBdnGjyhCG{PE^3 ztCZ-u<@r z7JAP)bd#W|N-f;Z1Rrqs!N>)J2f}DXeBDnSOc;_p`}sKhwx5@gKI1vn{A*}+!h0&& zqN!$=vpJTnar;$1kB8}Me@u<~sM-v#QMbt;K2c*{#kZ9N2iE#;)T+g`Wm!4yy?ATF{ZHL*Tp5JCcV7$z!64&Ji z{&E2pWZRw&rj%&Tn!z~h#_U|s1O*!m>cWoSPx@%Q{LBF-hdUQo4C`6>yf&AXI`N5=+-+eZ}(Kf$cHovQEejM*O?qU*&sNKkc?R9i&t@%GqKlyThs)stf zztI3EBFMFO1IuN&B=*Mu41~g+Xr1|RXk6{Xp#ca27iXC;k@#3_GK$CW8zngD=kJ^I z>diO^{~Ggn+r=F^8}9CU*s~jEA=te=0q%mmHX?kTn@(jB_xDA=_RQc}Fv#{XKT>A| zxwJDdwO2v#TvmvW+1DJr*&#Nx;je;mFSq_3p&hp5PC_-0l|5k+CTkjFIe)6yDT$9v z%t#1Z{RQgIcNlgK3BGI6h3_tuCT{jP1M$9clxwym)lDAqCOd8Z$UV?2j+r3}i{G1q zv6v=;ga`N5$HOIhogPn#lHbgfzy}frF{furtw>7vy<{`OAal>g7paf|zN_l`JF)6D zYh0j*(!{FyI?v28$PUd|1AG|i9+e-dO?&?Wbt0F3{|G+*PM7}?nrw+t`s1o?qv|GU zjvm)}GW+iHNcL2a-BHW*zu9)Y$DErgkYxGeDiGK4eoV@L6oHe}aB`XdMY(#pOlT52 zAND>OVLKN&i+%NA%6||i@8Y<4TDiXkZ%rZqdaT0d#`J><9CfM%BHpq$ zqnjl}gPPCMbJ!l|C;TO1GQg*=C)01*&(a4|6K|Y@EM}b%r&fdI{cG}mV~{A5 zYTAh}P8NH?-y1a201B~1?pOdvRfjs?0qJy)hxG%*0?mlFsHSnO~zUTE{A5 zUa{{1_gIwB;CIxccI;f)?72=~i803wEONp8W%fglXy4-r4JwL-La7JU%1KJIr|T~c zJHvWv9gs--;b2SemjDc{_6tatYq+TIt4}88Lw(@91l=x<<=^sJ5k_B&`0EWD9czK$ z0=m)2mA>uZR)6pxhO(PkB5fdQm?IFm_1B#pXbQGjH08s{rZB`z#R3{!{1)-6fB4f3 ztd5T@*^6*)Nn{%SxTKJD>}alIC$Y-JV8NgQhn?7T&%YbRVow0e`x^r^IleVfP_)38 zxW?kzVPw)wwpiojJ$akFN7=l4+Ps;cY(LyklQ+P6#!ABaxNN9IfUF$sD8;1aH^oDx{Lyyd@|6Q;F$k{26#RwbDxTIf=Q~=w;{{ zNPSR3vcsM!SPPMjCPFq2m8+Kec@&3Yv~O`Yv}C>45%{S)rHJl{H#NTByOl#IM^sQ- zda*++dJu2gHWt;$xyakeS?A}qlLXb>=l*8AaFht02qKn@u{`(rzIg^X^~ufzPY&TC zlTHxC42oNZnfece?fn8bYBsmxSKp7$_R-<&#kzyhar~P&*jq$UxVzP!D3HD&j?x7a z5yNU&r5;l9-SYFSXWsDC7oPb0n+R&0<$wNiiTLiG;Fw;3`k?Tc5@UR@^-!Ey$GsV_ zx7?v=|1rXz&xP5mp26Ml5F?H(=L0n*w+}wr)~vXZIK!5O&4Qyu`I(F3ZPr&f$8yr(q6X^^8MQU?^F=Uz!BRjsXIPL$sw1rRK1jhRIdcVN!gkl4+ksQE z^&|9v)An7|=EB)c3b4S*BA1KqrbkkXv*n)f;v;7}!gtvc4?GSn2QG<0gBy<06F`+t zEjI1_(OE*t(VE3?kco7o?ubAQ*dqJYHO?LczH5e;gJy9}IV|Og1hI1Ys$4{cGt2Rr zj+L46GEQ4xa*1-&g@H z_FoqdxZ=BXNWw>>@)_Mq~RMCsBu!g~v z4-Do#<{hBWv7t_YG%AQ^gS8K!>*D}Mu-RC{nL&0x8Y|0fP0%G|-P>l(iG{2&f+1_f zw`Bc>&3cv1`emCn*^%{Rn>8C7S&y<=4+rkm^9O?qD_Os|Y_)nMV zRBuXj^uOAyW5R^(8(CS4{> zVs^%dn}elUyB9t_&NgV;bj98kCChZ`WBi*@w=mZ^;<(OI1snfuk=y=hS48Gq^4Lsz zdeGwbs|9{RgyC!4BV~EZ3SOxxhLU$}e;?~+nR`AYoO?@TYkC)g2sZ8OoqLTm`;&oi z|I1*U$%&RjN6YHXqR^S*Hr^Tzq!tV$_Nmq6<9nRki-Mp&ZaL%TJh{WjcOKdF&>tia{py}6JkwZ2u_zh370ni2|b+d zFmAs9oLbDyZ-dE{oX0`ul$eTgV5DNYsodZ^`7O5?<97!^#XxxUI+8h^Pfk2 z;+c8yP{yAQK%+4e;h_>f(8%m&LsDr3%%_EAV%*3YsSR1bW3ztAW{qkGS##pf%6f^- zdX~-lKASb}$jN$;&3Zs8y;05%vhE^0$=?P$PXSwQeO*t~hZ4r9`5D1MFpqz;)LOtxm*lbreDipv6nO6L1thNi$isSAZjlNAy%OF0`KqroEVO+^X;*9A~GB+ zVtCBxwHS}dD()?$@707qFe&apMqmV$)M)()`N$z}4jm=yjsp`2IGpMQf~U-_DK`|h zTjHE3cP<%J&SPL+!gCO;Dhvfi7-%FW43HvkC-f@_K9X84t&_S(O5K~(yahv$tKVRH z?zaSM0E9RA)lA}-MPq=vA)!}_{((lZ@b;wUt+hKv#%en?9=&Z?WYl?`?(f_#s*~ct z?QIc%U6&BS-QtAa0)n>82e2(|c{?g?yz_tYr{SYSSl-2;Q}JVSqjh874VjJOZ-y9I zHNZP@-vS^BzGbywV-lV%bfKH)b53RroP42wk9Z{ZSxnqdAYtJ~{YiU2F~QzX472wW zU!v=Q6BHOcT(WpV&EZXrP`k%L>NR4lnzqj&zXxo793&#|J4V_3AerQcWgYp|Tgf3U zhgHtH?>KHBN}_EE7_6rpRM*za;Sk9cK_pjPM^E!kCHxTQB)l~lGc5tww?>-8l?it; zGT1b8=gQ`IA#8nV4~mSoJrC;yK{#UC!__bCp;g4>XjQ%DUMvC@h|qBu_$$#Xt=Gkf zL%w1O#Bx%V;%9d}YLJ(D#aoQ=3M=(`X_%CidNt+ms#wy^{Mp2k+8_HZmchxgw*Pnj z_Al*{EvAeUas?NkHw37%P>&EpQ2AqXfz?&LGEG`|PGbxGJ^dVKVYS-BAdtI6!&=xo z4+Me0@72rx;&Bb%hPOk>*)x+c4U1ar2q43Op$BsNarJhfslRZJ0DWqDK3^wl} zJ~ZBT+Hog6!Wxg&gG91MF6Xk~YGd98L|pbvgzQ`}JebgLCD4~|Z@+G0p}*f+T3Y!J(OUqaYJx3jC;b|pHyoSW^4+3 z2#wzShspG~?=!m^g+0yG>J(Vh((r_8acBX1S6oPi;!tEz$rD{`YdN@S;;?TBu)GPm7E)69qgu&0r z$uugpXtc9d-XW;DNsvU;OO@u$O0}_)xeev4ZHuh>hX%003s|uA$~O%Y?BY4WZ^=1l zFVQYNL^KHjp?N@y78FW6+$o?p_>K+NtDeT>_+oJ>h0LIzjd#q$oQd!#lN40qk?4t_ zB98>idNz9!ABFbj9(Nsx#kkG@*JhyL%+fl{9Jn@2h|8Ge32{VtOH#-&UA~>Uc9R28 z?pzP6KZIaJR(}W~$RT7sSSR2=8$p!ri-nnYD&ZcI8~8+a66}~76}ro`{DtU}UC|!1 zrJ1t9SbZ|oiES0zim2}_gMoa1r#*Hj&qxY%wUDCMZ$YIY`ne8a!MW=dId^SwwqCLn zNo0y&O7Yf4UgD59K|G>a>Jv_>&u71^UnQ}R>a6e#0farO<97_1a_^*w!GC7cTFPq>6pyRa$%V@DR@U`a>GH$ciXAS3&I!2#_!FIYv8R1G{ zqYl@{g4COS7e`LJ$7v#`eaER@r_skcSD_4Djmh5U!mYxm0=*E_yL3EE=T!(A0o}U= zAdw`(W*BLN&Dg0vmC&Ey)lUfeO@W}XM9U>_HrvTP#9OR|%X9PAHzzr4n4^eC#0uHE zizlo7PdGAa zw&&t3k#9;CTcS0Uf6>J{L+FEMhx1&(uFdGztDK zHa}#*0$8?n*4OJnl}avJ0(o%$UM!6`D&C;CKjs&r@!JmR23j=}0C{!s)+#CwaN+g* zcRZ@F9m3w?*LI1v(bABJqkd_IrI?6fBYFa0*DGCfPf9HL(7)ENxx|c5h{8&@OI`N)~ZqEW@9b5X=Zh;8ebuA0UEm+|CW`ePc077C1$>FHi5s^ z#C%+%#y63e9#!V88ue(ExxYqD6V#ri)n;g|S|ysPD{Cp5vtPW)*;uQt)rtNz@lce8 z&Y+rDA)*r*3|hlU#8BoNX z>xOFQs!j2`XYo0dX5-A%x~@FX9IuXs@CAn5Esii41spHl-+oH$dHTY%aR4MSMB+jZ zRVRr1t<&3J-dS&p6r5_o^T17`-8t&+aDHs93GkiV-Mt7D(Rz8Ki0hAQGe)cv&=5yM z0~BKUv78wN$044jVD@2+$59EhTpW~|d5$=z3k9QM~@g|;yPgvG;230f=bO@Z98^m~waM4HIKc$%qYdb+e`pC=zYrHrPM>x#idZM(Tcve=>NP_v_-z zZ;Tv7U+Gwxf#=H%O4~Ts;t|C#-G5Tr@rsdkKr-*}@rtR11zhZ}r zrp>!z&Pt+{M&ANhge1DDK2gbX+8#BbHdCE1A^jV4yBh$L_QYg)z6XpwhRbR8F7JNc z>3nf{Ea>^O96eo>%ylo99Yv3I)37toVyI~W;Ym5p1^HEs88wEeD;!PP8ytO0;BW(^ zvH3RTejniWct%nX5RkFoD0(YX65{%1X2QHyL%(L-f5FO?sb{Ej<+>}$Vt5mCkSDLWVEwsX}cYH>g3s8uCj-0{{yyi|FYX5IulS2+c&nQTJQ z7)Q2}pF0a^Zy`x9GPiwwvRo)9%R68up4GiPO!g+r$?}!pWLcV%ONmx;@dU0k%_+Vf zm7UlK4mE$nRiNFFwq+I?YhlKlvL&Jd@v_NYxeZJFirLFsV?Ynq>wOMdJNO!f%UZZXKf2Lp<4Rbo#7{33L6~J7PPLaK;D}Q3nwb+vX4Br0)rLJEQ z4p#lnmOj+}&_h6J{vbFf74>nvoux!exkT9%PvJt# z=Kt!6zi_?79jXSImxAO?uzie4HY8)S^p*jJ1K6pz35Ir>?(e?ao=RO_3o7ZIj^A7G z(vjM6#Ypf*7wq0{0Tn2jeaE4{7bS%&{8v12p}APx;Q9-26%2xiC-~~q#9@g)+5<2O z{L@=S(ed8EQjAYQcfZ14YCnC-emci~3U(Wx-fce}hPk3t+5!dLS^TG`pG9T^LAXk) z(XQrjGF|%RZe0h0$y?h07#I)__fjIj0qfv>fqx&E@b5^fafyAwvq&0JOc%L|#Vpw% zp`pPErlX(_47KP3c-DmMoyUZ=o;?0{)!?&>| z+F<^h&5pMnm7B4h$C7nlYIBO%)pm0hedBhuq2<2K38#5S>WaGS43GPs;m!~bs>{xW zz&eOlGM^9Z5 z?09S%jc24EkEVu3BJ>ap3zx<9%2IKLWhc9kYRofSybjMhsUnVoI6Ua#pml+l0P_Vl z`NB$#4Vb_kcNC1r;>1f;)XA`@k4q!M-MRMR;@QfmmHuC8O|qm>@=h#4h?7wbCJAEVyj=7=Unyw zy2BGKjOD6(q32>;Res9o;yu@H(VP$`o_oVH- z#3jS;4K6e;F)sw5HuaVY$L~T1?PV6>uGuk5JT%nJEDtw>yAcM{eG1-%TnXO`P=}`; za(5-X8fPWebt&Oj1IbCrOe^x)UNmf4k?-p^`Nkx_m)P))b>*^r3M7vG=>az!2<=g~z8`zqHKaY*V2BUHOcD)#O zjFBIvXY5olT;IjpbqYbkDI{$HyIBEAOEhfpvMC)&$~$-CRVZ&Z|7q$F{wemlZ9EC4vHL>KraI3f#?|G$RBf8Jg+>Skwmw9;@k^mu~1s%oe; zE)WU7iys_=$_#gb%iOmd!k}%xmcY?cHE6`|+VCc?E%8H4HEu}mGJ6t!(NqsjsCSHf zYkiL};ma}=#7B5vHWVLv3zT<@H?_zLK_hWOj1?THy!TGvda6Vj` z0M17kaK1M^0p}wOINw;jnraD;3~t~Hg{aMsLYqIu&o1;gdE!2OEk>@64?gfnS8#-1 zV6VfmBK5;OSBr^jgspd#tce`XB}XSpGk=QA-U#nO{p}= zcA9-L7E!J0Xofm!f5RQ=#NcdFwVRplsC^8+QR|i5{|gx`eUs1EdZ{reOAWQT;~;}G z5jkpSIM29udFnaOtn}0hVIEk2aW?N#U|`gp>myb{?f3>)&6Yvy@A5+hc!4m67gxJ! zV2+-_i@ZBgi8i!vzb$M(K;>Vh)Q1MQC|4&9KAcyITa-_d`kj;-lL8X>Gf~&QUQQNL z>EloyQ{CKOz9kM1FH`EH;OJ1mnYH1KGd>MPsd&Qb920t#7Vfa(kuLd;C*82~XD5kHh5X zzXL|&RZlW%v4=yL^M`Ox=YrgWp2v;*I&74ZLq%vKrnzR>< zzpK-D?ip|djUb3EzK9YjXyy>(mS__w~%>`pfe!c+uQmZ?)0a%o6F90l`CxGQRVdU}zhvap*27bGxMr@WaNI=rIoIIc@nyF;;mO*p(dzYJt33TLW`%eWe#;0R))H}% zE|}*?QpOtvWb6>5rs6-!Q?Iz@ZR<7w)#rP(dD2slYBQUImK?F(^u);|`q+0E^{A0^ z4D}@I*ClHNDrEh-&6)zp`aYZWD4TUpyf))U*Je%K$@*EF^?Xmwm8@~K(jDi#^-d;n z@=Vq{>eQc?9>$yKg;#Go#SK+wo0X2b_;9qfR|M3k>P$F-ae&x6%#3!HmVWyv`tcb@ z?8!GcXDKmW$HVG++&m}fWA@rUi35muB|)-{@*_QrdkWmg-0EC-KU2*033H^ztLU4W z53U989RqP-sRf&cwZ#IR{r0pEVc#|q`O$(oOIf+!mTyZ?2S_ri) zUQo1CdvPfB(YHiGl$}hbQ=(RtD4T2!m*;k>6~yt7G=cm^^fdON>|(Jr<8gwuKR5qY z=ZN&{ACx&L*j$?a-1KmW#>n#2{lHEJNG3<(M)s42by9NLE7<5iIf*(IKY;eR$rBsRRpSOZ1~Gkc1OItVlkbm!$Cp*J}Vc#HjacK9)-+1 zp$m}7HP#y2P6oAb&N5zu;-$*l(K*@J9dS$AQItRiTJLe6qj4arVqx!bJ6s@}Ul>|4 zb{YhbADhRGIOdsY)LV|Z3*`v6GvS9_bE}-(C47T6*Bf=O?noFnCollrJ)dyBlXBSK zbw~#se|$o%#i>j}-HJ%Tpq=5rY{aF z)a?m#kG-uVzt?Sk+<1~7q>%hRwD~Qy`60j{KLi-$H`?Y$UD55sqq;F%wW8(GJ%I~t zxrl`(30nP`8op}^Qm8eE-1#9c%+R3=Z^@qBmG{8l@V+c-g zdBYryS5PU=?ZvB{m1>rX3<^SUtMiwKJ@u^X6P^bi5$jiEP=h?5=;fY&lTp{p+NPIs zu>+~2_3_r@fu!kZPEz~qWz%OL@|x~p`Z(%1a}Hw5>jf&Fa`+^)074H9oC0%e+iyL^ zT`Yk9mm84jd&qpU(Eb#6z%f)pJ?&IuUHqCOKBZi92Yy`L>ONY%X2a`bT6CAQ)9t|l zs(N=G4r=*l^>hCJn?EwD7Q2GZO-@%`_}?`hm)RA#hfwNN{d4uZ^t*+)%pgciGRG`DBJ0N|*gE`#Ce8%y2{LzUgg#8Nw1yhWU4 z?$YW7$82)d#$Y#VV2SQ>g27vf+^+`KA~|(gsd( zv1cAagU}NtxQ{)9mya*JHpEXAM&A1JfS~Ph-0e`hey&;SszFlasjgm+LqwM}m=xjX zCTK_OgzZ}x+=e_T?HFi1h(MRRCB%gY(O(4gr=jM3Z?a>0V8rB@S3P0GU+{33E%G%q zcmQHT6Jw&M#<4eeK!)nR9%wOogcb%E_aB~EN71gokqL}6nXCdZ&oRrBk_jp$l1Wm{ zb`1xc4XyzJ??!D_ClruIOE~0cVY~-;W@19}>XA_IdHPynjOJQsi_{(ynP(E}iG*21 zhr*{P)tyN*C29BMU3WR59(XC|{@mFdST9%&?XM`{EffVjEOn{1odhW0;h}OL^U2qs z45`!fnd*Y{>&ox)KlAw@o{!T%P`^mOkFy;$yrHFz(8q8rvXzPD74U##*|*h3Z5|T0 zEPvw^^ip79baO&omC!_tmTR|Z@?&q|7^`>;UtX3uZ-ShM=i`sP7;o&(`5zlKNy|c+ zrt1iQsLhas>f!yGFj%k;Ce&wMHF~PBV1#cm#}jXT=5V~SUG&}M+Vn%2$up|~R`krY zBwrZ3Uvx8j5x?A+kAQO&C8wtnW^7W8O!8fC(et7gc0Eckw|fKj=%Nv%r*d5`OYgB@ z{S|h=FaB73#;uNdAjw^-KMFl8$7i`b>G~ff)D~ARQ>SZxPC_nLrzAkj^)V=W)ic*y zn*$ELqm74fz0=LxyI&ObHc9rA+9 zqEC&w$@RZ9+)DU_*NW}PLY*Lj$=f{vfa$4(hZ%nsi@}(I39LLcI@YTL%3Z1xPaOJa z58x-8yX1a9y-0E{;q2v6f(3Ao-9c936&qL;*Jl@a(-kfBTeNv1p_Xd@!vwc3W=2BI z^8DcmwaF7j^WL`4(hFdt^x4#e0q*{tgt;-PuBl%DsbkD9u>Q3RpYX5MpVQ$pxKDZ_ zDR{W-D4*H2x5)K-CRJ~3C=O8%75GdWtb3+=B4m2cvq*}@+-f&=Hhi?`IkYFtbC~!f z4D)bU(oC?^NHWI(6`Au)<|uuUIifu>f7@n`+60+DVl#)(k@+xS8jXQ?Pc(We@-NB! zfrNRQ&PbTe2{kZjZcp!hhnSzLbAuKg!nyOTAe^z^{dYW}rT^jM8RA(^_y-2gaAeg` z{z>ldF;vsl(6fp9T%~UCs=@fY!}~RxnyH?S5YqfescU2c-6}t<3*7I?4-_sAs}k?z zoOf%9N6+(S6H_=Iue8E%9k%m&BX6@}6WDm0PQy~VLiMwYC+elPq$stz%UPmc(8csK zaNUsMha58r=E?EL;f@gv#e^7v5yl7%E)^p%!lSgX5VN#|Q89R%&B~MTbk9t}*3*W^ z1)Fy%g!`pp07|61@_#a$ru#7sjx$$@+sPYUbzN`<2+`g+B(td)G@N4kxrj+`b+JHC zQ`@aq6r;-Ok%fD@*OsZPQy>eEC`(I%^OA~qq%D6ov0N&asxZq)=Cj{A?AYIk)7~RD zX*I{K6;N9JAVLVeI}vHE-MQKjeo2d1f<;GolIYwBuYRuoyrcR%{s@=L4Ku`5k2^?l ztc^$d^#c2PkbOPC6{~J5fU#e_}3BnC=Xi$H#~Bfv5B;sCrM^yl@g3bUX>y;PAd zuQsix-`7zW@WGIPPi~m*#-rUk&+SNX5qIs^UYV=U`V7Y7X0!KG+=T|jZO_ZcI^9Gj z%FtT>C_f@cehJ6`Baa)19{4Pr759@rbwg6G$b@`IulOI&$oqCEUmh0ZWoP z(43-vn@&&o`_@kpBbchq2)8n)W6qOi<8v{<2brVPF+rLPX1L`c#2sTUL;(12n}=wh z^$o_ayqy{Eq=je{Szc}6v*6xi^GXeib$0DyRy*oaGtE`K9doa%=CIGWB2!CG;p5HI za#@4z6EHQ{Dn0I)Eskj1r(bt5ugce4;qmnZ`*pq3Tq@hX`QZGpN~qSj%K|CXa3mba@4N-|$^fu{W3$99lh-V3a#*9EyW6;W+hSyul%@^weO(r|Px z*+^*r|F0>wbYi}(d}n9)cbqA9XtKm%7UP|-;}NpF^e}INcsxq0PRxNr4U2B3V|u$- zNb@|)6`xXUMGfyV7=ll>tQaiTaG6V6g^cI=+_u5O%?s}1*#9iK*v>oV z^aH|u6Mml>H6;PV(LK4u*-)cCO%YyP=9A5w@&pl!%FTyWs&9pPh0H1rC8l4c&!-Pm z8p0bZeKMQv`(%Gp6Q2U#ZQ|crqqa0LPt>TltMs61HK3XawWQh~UZV!r5PVyHn6RZf zTW7*BWQH5$IYR`)vfL*KBXo1X1H~aB4YQrGZV+<{puSQ5u3<`2yj&{pnv6#gwu^Dz z4yN-*XZzf{_u`g<y&XjC8;7 z%s|A%#>}ubuK%}q*uPw2mM7E%$Mh;wuRG?;l(;?oIHi`jW?f2+=L#pK7Hj`8!k#}W zB{zZBV3%Y3*OO|#F^iKzgQg~Nh-^kC1qg#%LAfZtTYlyz%~dJ2Icd75)PpIrCM9H} z^~vU82jB|R$5l5u!iTb-ed*xEoG;Svr`h)ilz9KS-S0A#3QEOwhbTxKdJ&K1DAD4` zn@s^$3^}P(ymgwlDkaKhJ2`~H8GwfAW6XWOfc}ri9TrcQzg5v(sbALOlB%cU57TP0 zNab({M{t;1HxkdKZacy^2b!rRri;J4(7#$N68x9YBXIn=06SWd|8-jK<+%)AXXL&X z%K|QgA2D)Yi`qp`k%!$OKM%?e9zy$w?v30SKvLeZb^rn2e6y>rcg!3?X7KNH)tF$b zr`#KCx#&evE{aZ+i+qf70gj~Hjker3ZMpMox!etZVu`#I`MCVNV$1+;EfP{y)Lk~& zatpojX%KFwM0{dtfZt1#ONfF7V$Xq&2$C%!Z+4>J&ryH%F-bu5hKsZyewP$F$|sro zMF@-+wQFUTqP|f7&5iO6+C?atD|J`>HNkj{r zv$59pPPMI6s6L0EkD^$1gE4Xi{pkOwscqA|0!f!14nsXaCT<-BstsSh@|MRD5 zGQ)E49R@$C~(I>GU&q;BwP>`nsGSV$HWUcWTq^fg$)_|S< z=!M$pR`o}JSRnANH+so8>#uRP-ml~w`2Tix*n}kT06y9ksVeskSj5}zFCBLnk8b3p z2ze94qdcvLa2&!}kz+n!ZHOdM9YNydQ4gZ*~C*;60c_TU_q))BV!$($8DT z?PU12^RvSF#KOObH@q=9%$Ujk10_c#;)O~kfNE_z;lac%b!a6Bvj6gLbJR3Pu0S4< z-H;u>8r^1~GKPwI(!;_$64&%--d(0KN9-qr8m(Fzec)6F(=oLn;eX`g-F^|_=@tGe zU%gy$uu_XE{e`~zxbjG)UiSImefc4?UH1~z`G5Iy9Pm5*4;=NTJ^a2?zXj|q=pKJJ z+zQq23Y}VY84as;{AOuO`e@mFmrud8unVNln~cIGtoBRcAj>14YK=9$4V@FIZ{)yQEU6UJ(Z{7~QtCz?$j$|JJ!)JC3RVsz{7SmG2qy*L5IosHz!5M{wkggl2n~!D43fS9OhJn1lm^=~r2YLSj48{3@L;hec#% zI?E&BuWfd%kL14o1Op3visAm?beTTq?D{n?e)9Ls>n@2oGoB`fK)*H{U9SExs`(ok z^aPts7oSlBIK7jwn>C>!#aRI@hGwXgP z2+{x6&pPy`p6}q{B6#tjR1iD(r^V*z4+_JN^o#0|NWXO2y0?4Ki2YAC96f&}%{*UP z{AcNiD@Z?#qqX4m`b!;kgLJ?{uJjHCAGV)h0-n(l1FM0kBUr5iY$O&q<|DC}Fx>bo zbq$;9`)&&yUTSlnM%I?DLfiCOMN?Z^x=fn|2~Yv=Wa(kXW1Dp-3v_n5c%MeS*)vPa z)63u!W5$%LkCNtrabE@WQzh1>@}=JtaI;iuSKO~e$c?GgUuSFj>i^X zkwtd zr(CcHrrnD}|7<-jsf89s785%n#@!x*tAc_k$&`;=+Yj4vZ%q5Q~VXba#l zQ*Me(xqn!DTN{5;d)_Z{4tgmmwE${Zl6K|lYwL)`?!l0aB-q1Zo6aawIMg6R0Z zQ7=2vXR9rK;(LxrH8ugUWQo=ii-AASsL@h4#+mO|xst&Il&=h(q(^varQQ`u#{f^l zV}oA5utVJ_DR7z;h+zW-Vzono>urIr+X5+y0x60DDGDk%-xf$I3tjnixhvnIY00;< zwT5~w)4TRc0B0{@>rs`yZOpPReZ*PFZg9UbZr+)lp*|Z%EqV6ymIw^$|ucNsROwEEHi`3)uJ+axxP%6z(-}R2v3m7 z{*nC9#Ea!zJCt1<^A=h7>zxw`qK-NgIkx+%%LD6vNlHxR7NkVm`_7b5Zo(*i6F)xD zhBVj?3`nW#l4312G-+N-s&O`aUsB>9PfGqT1#_w0kEQQV2bWW=x3(2PWB|)36AG9N zTdNjFEpxhyuAae<{Ku{#JV5lnsPMOsGxvh*v5d72qdm!DZ!*!fz7Bu5S`&c)4HQXP zw-(=%Z;n4=Bun{KJwb(kHlDD%~rv z=sKviSahvqv1!F3pQ+Us&fX7bG3mNSgEVOfTkH1Ek*;ZVS3s=>IA^^<`SZN)dPSXD zC^;hOf4xr4PEBx$>0e>S)~S0c%nNnu#R~I4oqE%TKd|vzD!xsc4=c@0b?U21v$~n; z?@Rar-zWaHDsxMnT32qKsKGllZrV zihUW7vTPlnW~cIUr1n8-oukp|TO82hmPZi(4^gLvQ$v>dp2uv*!pgSmX7{LONO;ZF zP1QwadQ)!wJKx?^^x-zv;%UdMq-{=n!jrH!Z3^Z2(&YiP@)flh+W3UWCw)G6H1%g< zAhMfk)hA^W93CcDnA>XA%nI{K2N@<}?yjs->OEhAy_%Rw&D6jq-JEgF)W|B+tC_m1 z$_#F)o~$y&tgGIGuZGo_r5)5gHD*nF^_UGWtdZPakiHt;l%ILc_TZc6TbTD-s#Pt_ z$GfQaT1YORw~$==?jl7k-Np25rIxpp-#1$Q58pr0#$3~0ZD}KUEpBUO?xq&DGsAXM zQ+AV>>Fqo4%aFJGGbQ|6BOvVSXcmw~0~zgTcCq@st4j2gzdu^YqFs=DweNV%4ztMH z|Gjb~(OgKWdy-~Uxtg4k{T9MP{AXprVQ&dYN*f5t11?JLdZ0^ZYdC?vu4c5S2(2f_ zyb1Q}IF+o2yO-XPP!DJ^-Cge)HX!a72|o=~ub3Z8xSn7%#upKNQ`yq|#4_=LT4~uu z`mZ8@x6RCcS-TtYr^>16?=Up;gH&ag>VFCJp#3CW#BlQ-P({Ifj)=<6IF!XUFEgtY z(S(R7znwW#9SgaItF_f?uvyy_xNU<%^C_ahL;E||Fs~TuR}*Tk2E9b=+cA%u0*|jA zOqjkHcuRl0CqH&C91?6MC9PUb*ToclvmWj&#s6kK=eO;WD5%itT~P7f-JGMoPmlgJ z-J#W@F0!jRSsg}PU{@C!#fVXlh$^Drs?O+)GYYsPM@@B(j-0Oz4s56kB8IfOE8;T1 zZfe+;Zw-2~!)1^jK$yRG2X?i_yq{3(%()mFuE0S=QVkDAG$J!wSg&9*rq0tBT4*CE zN%bzUOzq9t>UjE5s2g#$o%w&5>B&j1CFkCPR#vU}#XU-d2~8IFPApDlW_*3858K#IWys*=!2#GKVpPgV_kib6zg@O?@zWNW>e<+ zit74wa~6C1Zz@;4Y;)l9`d6qq(wz5FW?6-r%|!)d*XElWP>Y_h}FX-Rd-#)SbXZ9_JLO2aufQ9Wt>TVLUgGnlNMoS zVe1$%rV&wg4xeD)r!G8D#ykCOs0XsUC;K_n?mCPg1o&8EnRLI*8&2XG)d>-kh$a?6 zU+TIJrC)m?Aad0}7faz@!Qu&ZRc0S+3#ni1}KPSw?vtCBLWm8+2{v!q--CxrLYl)UR-W=K6f;KvJQ;7d?u z=iP;a2iXUxqR-tfD4C!X_oh*sz3&sV$cWm>fDnfpnv@;U++Jai5O>)l1YwR4I2;-2 z>XoiI4745I-eP-mg85hw9g%fD=V&e_*E%}GHZt9OHmdh!qmuK>y-72=T-{^OFC0LL z|6I;5Uj_XYF$x_yAFXkLHPrXJ?D3lL09S8BuBmFeo1U1%=e z>Uqabz`c0+D_9trP{Pj0M2!)*XFV&?w*pxO-@r-CL~4{mx9OvlA+}H1C>lzZ5mkza zDq_XwY~Z2wl^k55?vP3@N}3lc($n`$P`P<=Md3wh^3eoU0 zo|wzN?VbIOwGk!evp^`Eo*eloZwVV0s(*tmjXqLDZa)!+!mWJjYjO{go_zIjEucKO zR|>C~jC2j3O?F^sg%(!k8Y-9+H}A@&o7$jFfANX{@}(Lc$O@Zx9nYKL+6?CgL*t`e zO$tsd+w-Q`*Qeq89gY#Jf^}YZ#%L%MV0sI=#1jNP+&$U;Zq~Ic0#)1$$?*c7tzOid zE56#Y7OUNwFI{zQz*@9F1Ll5^KAtO;EuOhu0Lac?k`TEYF$?QAN4c^)X;9g_WvW;G z{Y zcf9;l#`qrnqSN1qGjycbra70_UzuIOfI{pf;mD1&IC}DHbvhI3qV#;qy}N|o&;jAk zGWVhC%ibWv_r02Hf_6~rx~@;MOy=vF;hwr$&N=m{2F)+STdL}*4OeS7=sxtoUBNLZ z2M-;=8+SNjIN$ZuCqR|aR34X5{mj{qCDf-z==7-i8EoZe`N&O9HlpObPBcLdGvXm0 zJr^Aadgns%ESW+cWFJayi6qD3>HXD-6k_>2IrJ{fUnHga4!mXN7aL(!bfk zG%9#`wi)jDAY{x%y~;&>z(=EEi@nJjA8h)06GXJSev=K@JT$*h><-ZILojlW!&#J@a&(s%yn@Ff znqg@(-tke&dC4&oIdnUs3upm7FmqwZC?|@oZgY?0gUv&7w2RhTV>*0;vJ+xEoc<`{ zv{?uPlxnNbR+pq{7vW#l@977R*WKu_7rgzuSAd*M9n^xP8Bw906-mwJlv!7yW|SFT zF0{w8A-Rubr5)65mT@Ks*LjCnA~jJjak}FfRfyDm=7cS1*d)$Gxo9b9k}36C zQWTADNojr;raJS>SjA$_VkIhV@8sM>+g$cK!#PBca6lizzw1>-j9&?V9&kXz2$z1LHcUc(aOvtIV%C=L z&Tn+xV|7qO?-$YL(D5oH)(g>r?8%Y+Z0AS4xHUtON$jezZ{WK5JUDm+4rQl6BqTUfvH2oZP z7UzkJsV9}nehy8H##=WLHQn_fP+w%r|J>zDYIl??akT}5=OSvR;>FCGixQV^g?1}D zFLBXUg@CFv&_$c+2*~4F=O?zD?Y!aYa%PvOHOd*^LX*&{e-C!eZ73DGhG^W^a0FWF z?oOC1wwE-5B#F0jsCfa4cG%@3m~>oUb0$Ye8WsH!o;N9>W_UjEzAHVSn7Kwk-q+wC zR*e&G^qGJq?Na|OvZzH7ZCh0^6}arhxCBt z+vtiJgiPT_cpVEvQ?Im;y;QTG^DW&U2efUAbGK15g&?mpr#=j>cH&3#lj@F?XnFUu z>a}PKamZe@a}bE)&OnklQqgy)x0?kzEXh zVGJ~ET*TBY1&J+!1Ri<$a(Il-^-R;JQjIG&H#AY#R+yJ6)X)kEkE_^^`0ipTFsAY; zhwxQRB>s^mlAa}#y)3hz3tFZT-P8Jt#478eusf#exSn#bMQcli9fLHI@}u>L8rJX$ zoj?oj|BmyW1kx%jmY#MMzU3DRb1K$zR?LXW%Mx3$jx(GD>>JX|hg|ipH7^9g7DPmp zYLKzuKg%YIXmSyw8S3rqp~!yDM>LPP{0qCGZFC;Da5bZoVlwmr{&EtA@RWoh{#oG` z*CjMTJdY5Kc?{ubVp>GYvMZnc9BO&KmbGt(VjWsP$5PXIp252HExA{G*R&>LX2AcZ z5Ayfumz^7ox=r@*+Y;hh1y3&TSO6Wu1CswrJ6kF3FlIL{`+4VUY>UeuNpb~g6^0)u zdx+lcQvtX{V^D~YR#xUUWXW$HBL;b=V-Nnr?<;oe3Y`}>faA2F7TViP%=EA3chm{rm2|i^3Wm1FEyk7{UF+PGi1P zeZA-%!YbS*jk1PRb0xHuPUbsj=aGdJ_qzDbDz5xIUl(7!Qsi({k@KneIux;ew*Q5{ zQSg@h=W!+Km}gylDKq^nFM{IdOtM8LTg%qBHI_62r? z<>lX>2dYLz4IJfCLDis`Hed>@am1CzJC69BX14%TgX(d`7carSO-R_%yeQr|xv{*| zpkw`SqJYu_LJG4V@I_`wW~+l7BPjP_T?epB-RhdPTGr!JTJSf}71NrCVQ8#@@Sx4R zTFta!{E)Jz1s6pT*)<@?O%oCfFpJjij3_t63S{#M+0Xg-qUK$nMG82>6PIBdyk7K= z^$y0EHSY>RRs+3id`Uj(Ax=_512$>vH(1|q@bCzt2E}+YncRkY)o76~@<2*e6M}E* zx_(M^1gezPiKXg&_No4!Sr}lf~`!l`LQI{|;H{_nl5$!3q*4Yy$ z`#IFA(5wn-jSCa0_2Z#EE_CjSsCBkXvj}=ueMUd#$Y)k>u3lv>O6D0U94(mEMYJU% zs@OpZb$a%QWIsm@%4_MV^nO88DSJ>Ndn~GJcTg{u|F6b0^p>CvVX=2k760(XU}mz2 zaf*sMhqVY=A;wW7gOaoRrHIMO*qyI_%Y3~wO-Zt!(@kc-v~ zgKGQKV3TWLZ-_z}Xm$voBN3Pm@vep&CB>r4(uI3@#32$#<+q`(_)i_w|s=&L^TqJETh>6CvZS?C0E_ znfuLFj&rQ#IKLDyo@0>)c!r3P0mm6ZvLd3Q_|odubnTwzJgY?%oIW}V*4#;kW%V2L zrlYR(35^ob^+U)F9rao;4Zo3Ok!^^J4$&CtqD+9lp}4j(j;D)r&CA4xCO$Cjj!LlJ zI`$hG!f&L|{C&~%3=o5_F!u)L>yHJqJRc@d?v*NizITt$={5fB}MyAm~*N1 z?%@sHu$Q8;5rnQ3*_I-Yh^ocvmj5PlO4kLAyFjD%(^5>O#>rzVvvGTY;;m9tFJiSs zL=_?&E8QfDl~W;A+ZocvYE-O5g|sI3=9axdWs%59+g~>#3;aUfCCV&F1mxw*m zg0ReMsn7^!4}A7>s3xH=!w;DSlwu<6c2ZprR}4#N1$rFT4_H;xQ)x90bFP`J3H%9wND6Y#+w2*h{T%)> za|aC1>rB~p#85;;g>%mQK2tUxE&C2h%nOiPr>haVFwG_bxvQ1kHQCSM4$0kBnQtO0 z6cLp>=j=LUKj;23_nU~ZiipbneRdtPpL2hi`%OdzBBF{IyUaleS0i&~h6>0}ree{H zh;~Foh3k}A+wAVme$M@6?l%z?h=>aHMkurFI%GeG65C6O7^uHd>2g;gR75ygX73fF zj#cV!WASWpuW%y9DayKix1G1lU zf7!sBM(?Wp^RyHxB04sfRIn6f?<{#l^+6nU*jSUfkrU;f!P%=I`#JZQx!>d;!6-r! zH!gqfjgunQ5H?O#BBp9YRICa&a-yoPzftNf3melt&=Dx&ekFVIWe}pjJ^>Aj+li; z%3k)QeFp<5eJVn-|4p|wW_G1bmVZgd6-Jh}UORJcq2(3gS+kdD_H*tpbHB+yLb0e^ z1PP6ZD#8XaThyMrMcKWQ{T%Aj+}VWQjD{1gwlz zyVfy8j11^}`#l%r*BFZE@QA2b!`VKLhEgH7RIy48b$Rx%Wj}`!hsQMMK_iqb|A^&J z5vy6T5=D$uL{#oZXLnEbbExUzhmhHqIjeH&D~j2#F|l!Q`v}-jEIU=;s4k~CEUILyGjcqK#eoW^Oq89?nW$( zh^SauHFBcd8%Fj{oc)~p%iM1wIwc~iaW{ho#xzayZ5%N*vB6)XvP>?kFZC)-Xo2J|Zf2v$8uN`#IbP zna$pwHxX6azTS(-sBso<{!(Jyt5h~Mr&t#?zex+e@@M=1uM|a0*zK63`TKU~Sc|!v zmXkRB=Qk~9qiZ{}b`CS34xio3MK+uMP$zAIg#2+ERs+GLMU_H*tpbH9nGKt$9w)GoAxWA*b25o$ zv2_gRTu_}d6K@}foxAYRn~1KBhzflY>Xz)@%zh3f&Yex@&Gt2T`*xe1d+kRIMd?<0 zteiS`o*J96D&pofO2;HBE;LUjn98A!&mOPr=TPF%$T#pN zlZ=*PrN>$_u@XgeM?_Tare$|e_H*tpbN5~T9@;sYmN}{ov@>%n&)>A2B}FXpQz=!EI2) z5o@oB=-P;=9VV)XqvIayekRsTF662)_rPaQp6ut){D~Ux+*ya-6w>JtV-^t=%05)h z>^5XS=l(L3O(@xpBR>&MOPymbP*7ptBDL%rvCeSyOL_Wpe<)Xhl}JeD*w z%hjW)=3oh>46%L6M&Vo*)39{5Aylr2sIvC@oUK-FJe;8h1x4*QUU!3Gf5F@T%W^fy z^b(h~Npo+xdc^wr+FWLczgm2K-5mJ(DndltfG76quB#||j(6yFM%@~m8wz%(7UiHV zqBkOsX-1Rx~ zS?eD8PExJ&{Hs%HxG{5+YJS3ekW`-~+7L56DKTqgw%(GGVD#jyckVYLp|*JD(S*9i zoHHY#u1*+Y?hn)}VkPR_Tl##GW5&5^sbi+N>T|~ob5(ydIK=Iu8SRRv&-5z!yXk?y zG=o3;>A^_tHPbQAxq^s)vsV3FbCXt6Tr)(gIj)(Y)dJUy((3x4y9yy|1&?r1b1!j` zs`oy)>p|lfrS*<@o$Te}!~j^B4_!6a{b9Nf&Nx6R8Vwr%TIVM=s>|ggSaf%4gR8|? zv{{l+V?1wGLOt&JcP7*t&nITCF@)C|JvgEIB{%|)kwID;j8xf0iA&Ywpi2*{&+f5= zTBglI2{pp=CMDDi&j;*mrRNhvc7)fMc1n$tJe~?ede5P&^mxF_;*5gUjze3GP zk?6gYSyrJYmlp=4Gvxy1NtZ zrOitg7KiX%GOF`}q3v>Jmv20WJR|o_zTO$SXXmIxu@kMhQ7nc?T!e)+bTUl^x*o!! zbA&j4=A4qI0%smm-LVQ86JVNBnY>Yg;c%hc4Qc_$@oJK-mjW=%@HmNZLK>iuLh!uQLj_F$PN z2$!^9*SFcXAJ=-QQ7>!L&8WAuA-qAGFFe)LGp~5+2Co_6Oe`4q@RICCv*J>N%Pu76)EH>7yK9FAgf#ZPTMt@be2 zI_eTVNK_U`4l^**QS~m9BZL6E{nD&+)VU;`;OO@p%*f4BN4+WE_Hqq=fasEr_!r;c zid)-{UDe&yo2-dBHs@~(LwAD~K24I*7?P2gWS=>?lBK(g4ekfZ}t=Q^l$SpuHyzDtos~ z^(rSQ(t>THa!>0bcC2EidFG}Ws@(R9NQ!7jAye+ZY14CTNA*L9n+i>g0_bnWaHkGc zS(pvG9xBE-b&oje!{D(HHQKZc3TevwB2DQ7qk3=Bj4oIASfTFQWrq0A%Mj{*6|B9q z+_Ii)E4#?QVyjfA*u2j3FWD-hDp)oa63&Ok_L=vcnQpy84!lC&7u=F!D8)CwAy#*N z36}jOx7B7>T^;bK#cXlKZ?F**zW9x%_#Ek-3%boq zkq=&9T<3N<^B4v=N)8`)K19sXh^Wd=%z;DAuPt^bJY$~WDuRG#&-m=;<9<1wZ52_( z?1Xwun@19Avli*z0M8r9t(GU@(VoP=;3X7Ss}eEYaAdYZzr}&j?|@E1xDx>a0YZZNAOiz4*kE&!VT^$p#w~8dow&QZC&WWs z2_YULgoGFgao%_J=>sR&FmUhh_j&K#fA(Izs=B(mx@y((vd*z2PdksSh?yhq-CJYk zU6GHXYGpecFKP;LXTQPVA*0qa)b*-E04)9DrS1oNLT(!Dw z*SXPK6tPsT-tUQX#4}x0H@s43$iZ-$e1D2j>PEg(1FNCc!Yw?y_kFvU!rem+$hR)< z=bAC90z1$Bz~jRE!+9{xf=*M4Rxe;;KWp~?$ZcQKiLbE3M<4e8U|yx8te5YoAI#`w z`LOHE_{ElaD}3LtM1CuK_E&WBe@a^U-*yWp=Qp1E^F8*CuNPD2%aO!jg& z=e4m(mEnABndv%d-?3zuWsWG=B5b+b%_Y7?op005e@~q|ifn77;J{A-8j4Ptv(!eq z?in$Y0(g$Ac(z&a)5O^?N=tE=Zsa(-rV>ly7?;;j-fn(+%OQuf#Y_np=(+zZj2)f zUG<5e&9#nnb+K$Ie89;7-$C1-5fb{Z7{vdCp8Vey*S^U8e)0Mex#SYQ`6~$YSD>;V zb?`F!Ed$mW>Bus}tejv1Jo?m+jT*GpduD;ff-_^CviQlYbt)S3i6i?w)2MKiv(I>D zhx;32jz|^2fu0PGn2|c=0$-V33Vp0U{gmlrYGv2B&6ws^inR7Ubmm}z3-D=mocm2Z z;GcbVeTTUj_=&H+PR{~=;{a=)Wj+p@_zG0Hazw=ZROUv^B&*ITkAykSM;>QSjdGbH zVUI5R2`xP@2Q8xs>|0p*-EA|$k_(oZVHE&xwkngYCnPpkmie{L{<@u9^R`v$v|~Q7 zssVSlpTLgel1c1zS;P zefX5x<@9QtC4F79%z|50Q{n>GoUm)rtRtJ?Y8*NO8Ns$0KBl0YzC(5G_yWrZe9!WM zPlu!PZ;I0@$xWsv%{@}sH?FTWs^h+|@H%ykipEnMImoG9VgK_>@-pxelU;L2drrI& z;DWF}DZf3-cBU;m9rICmN3=kGQX~zfX`b%-^2ldj{0rCAeagI6`1IoUb+Ue0esK&7 zs*H@9A-1fFL3Nxd2orYQ;SsaT$p=5$m5nj8QoFL%)hZ`k+2olH_=iQz5RsEHGgm5s zKLX*4nTt{h{1{KR#LR3@>#y*%X0M2hiI_o=OnAgd-SIIqEn11+_oMPj)EteL2JRh` zDKVYd1FgqlkD1Rs;$|>zd2zEAx4gLN=Qxd`j9lF=adv`y@Y@JDi<>u;1on_@s!tQ4 zaHYuPh}kE46O?#<9Jh-~;Fo(cBaTQ_34E)FOpco#5v?;KqIaE)XkRYqWbP8JdxnA0 z9kofU65zO)EQpy|u{_|tF*z6XGrO#egRoa3`FY@1yCj?-;D;%Gp;c&UpBv(%6{M!Q zf;M@_;&7@4xa*z&;-Css^qs1xJI!qm_0X*A!hSH>ssy}?iENvbjErr%gj2j)LrZ#L zl(uAuV-8s|$T9QmY%r&6#RMq`@u#=^}ip?l@<- zYtHIqn^rUnzXDede@T{?D-9!Noz}Y`nTI?+KRerbuaM0y-_@SMx*O%ndBmcy65cXn zyc&?eu+q0_=*rtpT5Y44BqFK0t(-`=L0WrggJUntG0KuslpU9W^*`Qf6&R2&Y74X?5!DQigm>1A}Bj8XFTAhzI`FX zwDTVaZj_W6z{xz|1xaa?Y1Sk+>kaQ@&?2k#hL_J;jiXS<%#S0=T>(R)jcMq%R(yZ4 z7qD5&LcM^n?2edjk!;{?;WWImjU{97v9auRIJ8=0^@4gd5Ibc7w@%0ceEt)PpA$OV zmmFd%A2`xYt;ZkMZ51(QPgvB{nukMg%51mn87cV2VJ;V4lsRY+>0tpcipsK-X&rM8 zrA*h@bS*yU%a)Y+#Mk@UB(-=zQa(zV8A-)#Ny;!<3g8RLN|cUHm(3}&AYDt>rDrzE zFoy#8T)N&nFjY7(&%Z2qS#)3uxMsEG?8M>2x);nuTbhfR%>k7zp14}dz6L+r)Tsna zAnix4sz`wMb6BNojytKYVp_QhchoO9F#wDFG;X|IJ|V}6<@9t3KW0fYyFs+WamdB% zw-WF+TUxm|y(_-8^9#I+w3*@IY`6(6)muy%OXvG43*{TzDF|j2+`wVG5^!%v;AZF> z@KPriuW7wGV6vG4kLarEn3>{BY`D`$Iol0Q3xY7X)ovWp2 z@xV8Y$eD;46}c7oQ~mDCqw;Cs1(sKbs~-qnR=<t{Vrk@YFzudrf&bQ)OjIqQ z(bQ*=^LfvoZF?3W&S8#Extx6_$Eu1TH4xI?O|zU*=?SY7tQO1Psw1n z=;@f2hS98Zk0CRw!^KrO zUB+0@Vcx4Pb`s0<(PkFt4}|sX=a$+3m@3|)Y;ki-wt1$%WwU(^vsUqD=aC+vDsmMw zPNYY~ER^SQP}Aj%S0T)Z{tOGhTInBg@q)Z%nSa?EEYr+_zOL53?G9h|C(ym!nGBk2 z%0$$(mt+zqanuHNTBmb&?~DgL(3c^ZW}$Cy&NQq1C&0{4%H&M5I++LDI9-}#n)d0t z^|t<*+{Wl%%PQZSpwDt90WWPIOqg|6KSjYrL4sqSTEK%6vKYU*gyMIGBU&zS3hIc5 zpbhb}SKIgrUT^f^TBFN0X#HXKh7ZNGg-QsgY{@5LF5316VXw*uv&NA10=+7%SaMz!zMV#aoNwSL;3o>ld_o8+3a@K(_}*m2LxnMz?|cigd_|@6qT6 zfg~5hxBD3z=KOU1P*c*e?Aw#l&3S8(3u>@_<_?kW7VvbGH|b_u)b5&Y_C=>_@eE&@ zq?;vvIbe3F-AQ(-0^kYB)Z6Li?WDH)X~;vAzK5osly2ScFHGS~FfnKI7Jrs4_(gPFrXT)Bw_;F%9CIZU!t z+abuKr9H$3wab;x9z6Ifz&-Sp_IdKDr-PTP4DTIEHGU)OG#ICtn`os9($O~e+#9fH zg-k9gEK4RSk6W7ctsDz&-1XpJh-YHULm^_z$9x7`;eg*-N%W3eIE`Q9wg zo1Mo&cN0jE)7-+AYF`2AXY<@=tFSxP<}*l>@K9w$jrq3jS@c1FF4)p6@Hfq`#8tgt zE(8e44`9z0j2QADNAHW3)7%fQTZuW0C*P9n2Bvsh%0 zXI6>OzyVQJ#8mCaR!=?&K4LlDr5di!m-t1^|Tnthks7Sd~P?w8=)))&Zm2;@^ zD-T4E_p}Z#RQU$}|Lh&HRr6>}FIxad**2p;#l8;s({PqnzK`N(<#Pgr(gr%N|KNeX_aoqIWi&%<56i=()4$4 z0q#niUD6!#6yJmCXAaOn6NYr5SBg01~I=bpEb1_?c6iw?>4jg`6hyXcgoA3Ion3>l%HXY z4Vo*sOqCBD*oJB%AS`GlU=#u#LC5jY3N3YINh3rpGz+#_Xd(S!)B8iESSOYTtpGFMF$UxRhQp=)`QpYl~x2nSb`kHUe_dQE?N~njhJP&42|lS zWIKJ+kr`35#F0f&bJCHOQPWyK;Xbzl5fU9d|7_GO_M|Tn6`q`iGDV~>e078>YxK(= zjjB8KdB-WicF@o*i7I!Meuc&&fa`?0(9nDMJz_P(?&bWX z3vY#$fzXteI*3EVkxZ85-EaFjO0Km<{-=BSkdo?~YL zpR-{%bW$ou@VM@8f7otqgtCQSHC0U`erDLU;9xpB>V^qL_!q%N!>!5IOu|iU!vDdg z*W&&==U7DLcMNaMu7iQ-1zpGutz0zq!FH&lP=l&Jtlr*2uAl}OUom${115MOBB|Tp zJ+DHAmW2aVrWP~c*D}vGf2+fO8tAnV*a4S^k1KN(F)*)ckj+0IZRnU`iiW}io)2r} zR|IvF3>WiMowmvtt#U?+85GWqo9g2#GR4Zh;1izvHZMKN^?*;hpjSvu!1d7upqIyA z1>WpS$E4Ze3oxpQ;5Euu;s1f^Z$sOy$|!SpT9rCPQ2lRor$)>;B?`Q2`C7Lj=UerN za6h5%23v^q57z@?rVXR1m9DH+)0p4fJ|A}1x-nP;XdM>Ybw;a&ftyY^LK)r}Ac~A# z`Q_M_+F2#>dO4y-3j)dki?mxm=xRB8lV*jr$=;k)PKk?8JOQ2)y%%_9>?z=dacQ44 z%@fiTZD3-yML}o(K?>f`S6rKv{YmZKGuNOcV|V(?vP?7AISIT^Dj;^v@yc(=Gy@{< zvijbSJCx2yOtC=q@Y#R+C%0KsGtJnPP;feh=(s*Z!3!AzdUU2xabYO9)qLOzL=5YZ zF;ZxJ83i>Kv&7El-R=6l1L2CYPn@ZR1D5mD7@o;8hjxz94_ZV!%j!43O_=GA-P*=c z{s+d4Jp;H%qZn2h$HdVvdl(9+8Xp9BZa8!POF7$nDr`@hKj$t=vU;Bd9Blhd)6rYY z$s`l43}e;Hsk}3ZB5;q)NSb{y83qp&zo}W$v`HvtbmAtMnigr&**Bxo6!TWv9TSqK zVK{%DDbG{xmQ8W&A_CksyyJ?tmWHx# z2~rlEwWNzmK|ac^owmaVz!!~95kMH|>zlbcsp@>)Ex{Dt^R@SVhey?Y%7oON;mSMU|Ue-c$= z)WxW1opARE$jc8a;9%F%>hHcEF-sz9Rag}fU<^S)_ezz?M)6{AvDmE<0?whf@oEE~ z3b)1*A6o=6nzJI4u>O1OM{k8C*H@&48^+qr(cjDgH%9Rrs&_sa8c{fqo zEGDhvrcJB{@JC_aUa!E-_sOvgRDwq`*i}j_%78TdYCxu0=E{-`RFXGt%rGB`oXwzL zRlu+Es`bk-!y_^!!z_<%utCjrNN!W+89%m?-(=P|=L z`bj#;?|=tHWn|0@kJbb37}me59QSp#OT3q4>Nax6A-60XV>b-@YfQ6_1C;?%44j4IYW5O(s zKLET!B{Y^o-7*-vpVW!b*E(-OiCQRE_CAg%F@zk!dwI7!2fQOH+xY^~2Y}xV$F<;k zII*7&b#NwNnxcVWngX8;C*vCHX__K!N~3&bc)R4ItS-?eANP*Y&h~t>IU-Z@&Bu{y zv+~WRs7xv_ZDT(Ke>hfsdVyIRm%;hwL|nieO5=4p`B{KdeA%0Cmif}Oz-(pvE-;_^ zZLI+XW@<{#=9!Zztu!D*j^~*<8P)panGXVZaHjC!eJuM<1NiTXE{V|<^IPU#rUFS2o1opr(-(Cw{pWT*{1KcN$2S)x2Jsx~G@ z%jD01+oq#prG+XwF|HRPzF&}0G1UI8ovAT1HmZi=N4(g>z(vyTU$^z;1mfm@RSXkY;wpYXfgc2>6c@6@%_ae@fu@FL^kx zk{E4O+!O|1fB7<1Sza{v`hP*GWr_q-zm~jW9`+kq<{yPkdCX9g5dWm!Q_3rvU7!23&QgYH;n7VwVB)4i7UP4g?HV|}ys3VEZx>3^kwSy)?! z);C*fE8O%dnOV;aze?M=YJdf%yAs9yb+SRfe+}v&Gev!IMyP6ux9(Z2tIMy~uFkst z^RBME-n7pX@DuZ8-Syg4V7j{P`p>%xrl_l+i@JJTCf74_FPBC2Ov@`|Og;176^gld zrEIKcI@eZs0Nv(Usx;eEdw>OI!qvT9lsl@{+N?kH@5Xl4c>ip9b1^ARDwyWVSPsiv z8{J#pOe>J{<;{jtLg~QLi!D%t%D%|Oq;h`(K3N`}N$`R#tRb{DH@eYVUC*@5lzH{c z#H{h4CgsVxdZtajfFD;NTk4rL1qxp%kiB$IomQ5W>S=-Lpw{sHWwJqcEE{}_D#vA7 zeKYq8SybP&yiz9CH`}jNOv9^WV|~-@DuoAMB_r#ZCHgJ)^DV$ksiQAAQ$N5?{h@!w z{Vpz1>lB+$sBiiP#-B-Fbgk-bwR2_&R{g@ps@^Btu&$FOz$OSnNK}BOeUq)HiMXY`7Y^o2B z{0O*nG{w7wJJ79_x$CN_{`l%E^vOp`g7l;NSD*?Ud=3 zRC{pWq-?`ltb65Q{TUhBfo~m1Q*^tDJJM<%Q{Loc)Xeqd!>Br~QGnGEn<%!=IZ@Lb zni*AVN1)Wfz!lQX!bV`~+%d{I9rM(=2wohH2wa|Ha%5;7srG$<+a^Gu79vLw&U z*L2kz^{12WG&)ym%MTzzMeuFr!O!5Y!+&m3Ev_0YHn%RBbH(e_l!whV>`{f!{pxm# z)lb%uSIvv6@(wgs-_YAqcS|cuA~yQ{S0G+2v~y(MO`dplOv@I7)4X+c9rker8T zL6PT-f3N(Far`_%diqc0jAh1Xb$nieR%_kkV<>E?Y;+N7%~U|YJf9AL)8Dx6K4w($yh5$%gtSf7sLNCl+lHfgdu z-E>Lg_C0A@ag~4L*wE4FsPYj9LPodlkL0YNq}DV|751VJw<~N>qicm7Vm3Jy-WOa? zw310{WjhP6bp8om`np8hBSA-JM1H zi{=ds-lqH*`v4yokJfoHvpvE)_le5-7%v03N|!Mse{UuJAD7+<^DbT_3A0!HsR^^% zdlI;5RDhR8r7yfrO!3EJTC-VP_9A7)uLgc6E{))aLNUG6Fxww2$e=s{^H(bjckWFf z`h{I8g)H4vT~!dvy9S1V0q#v88ieKly}h}Ukv)}R#<&#@WSC}BVM~VDE)^DMn2Dau z$uKiLKE3G?SM&R*#9H8G=`u3IY)ain=AaB-VPhz)J*L*BiI$puwku0C+uoya!})>zn3X3bIjpP8JuHAWGQ?oONM2eGg;}>>5;8oW3c2j>pC1xU@oTn-Jh}X|g0`mZiy{41KXr@qkLoo|M^;ycKvP?hF|SyD~h( zv`nRgnICRjf4f144&6nzD#wp!Gfi@U=j!6??T&SUPsjaT+2%;%LExUg0Ppl=VYc}= zsrYH>dM~@+tQ@m2rLS{1L;B^Id708W$E?o06&OK>I%l$^SGH-EoepMh_-Z%RZJ!BY z$r^39zSb-+fseSES7x`j;#za2@&P!P12u-agX)-bwXbI}UtJY&LY-rRQ1=Y z?@Xu}0C}U2b6U9Ag<>Pke1NNL!Ze7#Wr6xA!DLd(`T*Np3tSQ%Gt$OZ^;t8&Rc|Ds zBX(wKEOF;-{IYU@7wS{`xC@K@KJdYs$bhEFb)U%YpO{WJHl)4Iw@;JtkC_%fV5;`K_xFH3 zADGRD+Vh~I8$2`}c;Ums%{v~(VrtI*q=m)J9Usf5c-~{xfxAC`b1*tr_HripQywr& zGikSHwgAp5IUUxoZS}=|zX!}J<r3jW1-nYyPAb4mh^-^U+baU>1#z$uu85 zO@AoJM4ub>_|i?4qv02Lu_FFr1hC-EZ!cw{b&O;L5C4UJ0n$M<%PjOKnvHQ4xKBdf z$TVjY_W|$qF>eWMcVUzRPEX4tW^t&F%lPN~=+c;3tJ?&s z4?r4us@honO0G=EQfIiSS(=Y+PnPL}jV;R%HE}o#r${aB7klnx7HY8yz>|~dz;C7h z6*e{{fU`2BO_te^Sq6Bt&XDa{g;M`LKjPx2GQkVHh`quAIg#-;Q)FHV*;~@=Eb$66Ay@X~nhCjg z!u#YEs!p!?b8YnWxIfN@->_Fixfq;~{;GqQb3SUd^A@OHN@B((1#n)duDGlgZW$!g zZS8fz$u1^up(%^WEcSAJ-*d617Wk>50xYM*NCszz=xk`@v5ty9dqFweft2}NgVPrl zQ4Ifo0o)$?`xUprr~XUcv^1m&!+Vj*J;DcXd%i0L)D3k)W z4nJ6T=i&JlG26r^bi9%0zZp^Y(E$;&NvA4`!)X!IA*x1u9{hgDc>W|SP zVg@+=Nx@geXT5HQcg9-p>H*sLQLu^acC~jc#K)JhyOg1Hu{bo|FI)@+5#f}ItI_{- z<7t=kHn-t&@t4BU{_XwzKd++pUu8g)5tok0rzl48Kd}81_($13Aq0!z!x7AN+iC2| zSUT?dT_eOU=xAZ7Mxo`(?5LS2GCNWjiT_SSQ(_-dN;OU8+ILXX27}kksy>oMfZ23x z%nT$ua!eb>j=kKG-7$06@sGz$Huh;kcE)w6Ybf=7UQPuW z8}W1-ZTS;yd^r6fw))ryJIF}PF`=mPou+D?TI$M!)5|oq5Bg-(K4|%a9gQ(UoSSH? zz62itb)u8`j=F@*4qWUK1kkWVS7K87rm~TCdWB5*6dbqgd`5(GE1BsBDfL9y5 zJ&q+|L^|3<9J*-X?|+uJ(9Yruiyg@F*TnF$@;{ETax@_l7D?=W$f^wfM#n!BC)CAn zich|KgO(CRlrST_CkHU>kW4iN`nw6Mjrv>SW@1!Z*b@ZW&e8$y6_@E`m5j^QxEY&} zISGCKoq@+p6I*axK)yGft~6{(h3_%6B|_FGrsvgDC`yH#=@GJ>iKksJ-{*#JjAveey&TD8pV|z z#oWr1KjhBe%OOkWLhxqSwYMO6W(0G9*j)$xgL<0|^KjdFjg{wVc7!(C!yt|~$cwN$ z>~Ka!ytAG}CH)%3NYg=kU+G?+{VatDGlbl&vHunfTTq#;3Acczwsgbi7ef~w29D-Y zZ{jItn)d?xOr#88NBtO#ZH+(TjAdpzvKUI>T>l;<*TrS7g(zZ>hX?v5UHzDDgX-7c zvz6^^o+qu+%tp^Skig$(uf@emZEsk-2H>7JUK*yUit0E&G)bAxp;+?pJzHVoCPkd} zaKhT)sMr&8vdlIWX%EF80-UNhtxR(O_ow}fU|-BG0sjk=n$g4tUZq^jKK*GGN*g!a zGl&?H^AV>*hH0g}*cWSNArc+aW*a0_I{GAm2g>4P$@2t{C|fZ|f2QjXBXIjY(0sEn zA|tbiuX1+ySgV`aTr7&$rUCzEKs*b1g#L8Qkgi$gW4*U+mIH_wbZIk9i#Nl?(m3iD zngRU0nV~6V%o=Jl=QAC^-eEIU@9D(=PxM}X4^N#4>5R;1Ul63X`UDi2O?tzJVaKc9 zgQK76<-I(b*NQBm>hd(1pE5_%$Qf^D>!7a-NB+q>aPlTxOByH5tcVH#O=Hf7zUdUh zwP$`z_W8E_+IOiE$jY2k43u`dHs zrb$u@;JJ2d0MFIHqtdmVPtv7#%5(}}tey1-SR<%VE9-17wnW*EbxmY&F4_G9IMU6g zU~t_26!tGJzyu{xX;YfQ>-|3g?@G#nT=P*<@g370@MqH%ZkM5T`eZ8HEvvTH&r&wB zaSk0Hn4^XBak%+`AJt*7a6t+dwwbt&x(lI=QZs3%2=)_z8G2)qmi_2;y|OEv8id zYHy9Tm*AVA9p$#lFV$h05Dws)kDw@Iz;*6Mg-M*4tLcGQ3}MBux_P>-de*yTQWi|% zg?x>$JDG1b;9QfBkG+~%@o(IguRiG;^L4aV=Bt8YQND@78dzC8SH98HU4Lp4pNnP4iT}bRpNw z@#Q31c3%!7t|SE^V*^HmT+=LFHll-1mzBBZV7e^IHN8?YJJ+mA$>dyfAtj@8&5#V8 zk*hPLcdj{|Azk>USd4Sc+nLf7VI@<}mNY%GWC>(3Bm@6Ddf#XCzDKf?+)v$>7V0Y) znm~06xFT(P;d-d9WoX0}dEG%Y^Hn=`UfqPu`IKzRfnHz^HXkT;VD)5O%m1yi)(B zF}AB(52*j|3cm%}s@TLn2C?ns%7!SivkZ^ov2+nkyQpGThg?qSKX5D#DwK70Q_KpA zycp}{0B`nh3;I#;BDgo5^G<(kl**dC9}z%o5<&4*FA_VaAtx}a&4L6iJzRe>xi8#W zu$v-Bg+ME+ZY60x`jU{HOZ@`WLAObyZ5k{HuBW{4cWddp-BslYymT>I$w7K8GT*~z z`%V;ro+1M7b8pzw@-Oz}{rcL{GDz3oAD?LVC8o8jh|jDX->T9RSl!gK7I_7iL}E^x zX^awCZ9w4n6AVILJ^o*k{WcCO6fUw}Id3C674q}nSol3wc6L=B%F!KI4GAM+0}pq; znu@#f`2dRxV$SryG-w7!ZN68E=N zL4fr)R5HC1(zudYoF+3XvEBH~tC$wPPo0UrPyItl7UYEV2@Y`QEX0R#IrRaTl#nh} z%tqZ{Kgv^ZSiZKtEnnWLY8n^F%!;N{fgGu7dK4(8e}P=AY{nG4K%MTTWD505Y5liL z2|d_fT6=JzbV)FC%E*qYW=1)ENayl0zp7bVL7G-I4Jv9oCoA&6$yF82O#b{+bW+hl z!}3ld=R{y@Ud6fA^DlLHfX{%{M;d8-06vSbw?Zbe7p+$$4CtEq^~DrnV2}943KG)7kMCWfCU!JecFI z4`!%5xh4xOi1f*V{5z<47e^-8`?AcaIO^~9@w+G;l(@SkVndowo1doLp!fRf4EaXV zpPgwYC0_wEGu@w=iTU#;ZXKV}C$`A&sk1-BAH`Eb7BH`>;EnXCEY}DTpx(Oh7KcU7_><-W{UBrdV`5Mb8dD z@0XifVO`sV`GGSDT;588`sT69{F4QkRQ)EU_*8zUQhI>e=u#TjeE_x$ zB}Km38}X^xHtKWN#Hc^H6ggISgGRB17V!GG%*4$v;WsES=Mw(@d@~+4 zB34(vS)C@-Je?+E3((%vXkKo5q&tN@H~) z)fe!?1GNe_BLZR(kMnw>d zv!z9jxtJ}RbIhC^*_mS+l+cD~Hck6gm9Y1F3m=nx8#>jWJNSz=u$-o$!x;6l?xFly z2dV3?4$f=AQ6*oGPE#9Ld3lE5h@kV)bb@wNZ=p|AcI0kSEB!3Iu7T<9LFdPT1)cKZ zbpu#+F^bQVil#~-{90!V3I~IO!tqd`$Q@3OmMBITX&yvLy&Y9eAz62(lOZ9hmao<9 z)2?)kX{^+Vs5$`S*o>A7r`ryqe$8w;=oDf0FOp41WJgSOCM#5vJB-;w2eR*Vu(SL@ zIgOS&X#+<)@L72XrS)r)d7y_yO{_ja^%^DU;@`csf|I#3NpKU9ePX6MPlK7@{$m-m zLpATaLQ0YTux9!Ar?M&pl?5%-(iUE7he4WvOJ^~ggCnQe9NcU$v)v}TUu@DgaD@K+ zkuO#K4v%c5;qSc5SM=hl>uCJx+qVz}Y+X$(a3@=ixoT|!MrFQ3V?vu*T#Ry|B7s(y zhQ8Jr=8M|U61B&(PA^!E@d#5N?;zh=(3c-;uC1qKvk>sS9zOz0+IpJA_zc5g$$mi{ zc@>(w4{e_+(7cIKct6q{=tizg6U}4-yocpZeyVVk%3V*pe7tQDf|l_$Z_BABXsku^ z7#s`HRnN%nZZ;Ss>Y#(qzar~Va$3Kcg8JC@`w$GF#)HL9 zDYB1ra7*<{5LW*LF#2sADTtc_J|n6{p5l$vbS0ysK9%-GYXNVFrPJDpm``itRg<(z ze;CReeoZGg+VVykj{5|J-~#=0vot+;=TKlChQErJ1kq5ks#rC_g9J z4kbxZ{%0&V{pOc5U(p19XmgC<4UHTP{0@3hyDI;;{P=yhFr*kaUSo{xz?S@2p} zI(YRQGOLkW^7A~vr69viYz~K`>RijAd7Od|kSQd*t>QWy(IYs5HMifugyc$l6tFsi zN99&@pF}$ctyk-A-MpKmXO2c7c7FHl#lnXszC(=RVakFL-l+8^hw)&#k_ zR{Lo`mRJsmZ3-UOA0lgmJ3`t4o&1fOoS_|41KL3pI<(_#Ksycuw1XQ`Ez&t%AcpcCwVjof`%PDRM9Bj<>LvHDnC zkW2ymM3?HMw*>K~$o>dnnF{v|EQD`FssZl~zg6&z8Zycv7?7Ka(rrCji)TEjS=N3f zLosh*b0eRdHO1nh9nOMrv%`^HF(rINn~+BWSo3+r%}%)txP$t~&xmZ)`U7JQRB8eTwL=t}*j80mw`@%x^{m@y)}D*e)4`w)qf0ycEE zTMoDzjVntERaFXjLn}Id!7DpAN;vEjI3Pp|+xa@)Ax(+g4aG7Je&IS(9k?$e#{Eai zb~Ft8QLcunAcoivlGKM3UMT1t&F^!{xfVzL@Re%nl)UA493;HL$~h20_}pZ3u}P|P zG2LSb-tnFVu_v5$sj6@uDy_cz`3WjtB2xd38a-IHvN8XxKA5~VcGVf!@*HPbf}B)( z{OqTW2Y!jWipMOEIKYI5ZAlOcRTX$lEE{-BjI;2}WL@@0!?j;Fc{|pC;C$k@A^bMe zg1&P=EkR=8VlP)7Miqw=XM)X1#FUP(okg~?D8arNe3`53w6Yqp_{p{@n)41;>`mu7 zFhOqC0q$%qCH);=Pk-8nJIA91Ph(=WG^To~QiH}`MZg7~(^>6Mj)q!CoPq52QLQp4 zT6$Ol&9CC;#heN3|FP_Sx~WT3_1+RncPVvas&ugG{RWb5YXn|%Cx=-40ZtBa`SYFJ zxuizK5=#Ua8tIru)b5R%o}%&k3&f}NJ@Kh|LML56&r!7JP>~LC(+TZ57LdtNhFOyX zV0p!tB`ODrm5cHYIDO*AuRkPXM7yp(7eZ1{Hv_MkA)F{E_$@K9W+6%n{gbi5*@}$a z1rmS=`JQ~LtZ^R)F7jo)LvwHTvPzJMg%3d76!z)eo*JmZkR0@VaI3vGIn8yOWX>6 zfUo#fYH%8wMw+x3bEVKl>QY$Bk|0xJ`o)vbA;<+A?*y_IF`UCouGM-RY${pT}KODhodL9Eaus&D)+#>~Wej+!3}ZLZ z>TId+kt3sV-gX>x>IkLkD63w2FyCV$knxYKHIc#y+13#O4BWW3>ubPpZ;6_>bc{Ae z9cV+an2F|4&zP7@2>ki-tFwInc*Smkzo!FT?Kd6ZV<8_?TG`bbWwC93^%@@ZWAqCK zNA^GEI& zVm$&>ly>2X-qujT&Hg=)xTGXUZScI#u^Vu+etJ)BL-%)t?L$*&$zb+5%Lndm z%R(4?y9RI{#|LhJk3D;&>yPzRO~x?5@I_2>PpcDngVDkB2L>)yS@}1r1*4-L)j`Gn z;b*R-B0+tR<7|KB6O+;2@&R{hjW)IbqM8WCr&4*o{R1TqY79vgEXYt%pSqXr$I2ix)&jlfJ<9`xM+(~h=F*(YQQ4@(G}|V3!;jF= zhqqO&!pkUqB}sWVr#iugn;iLAbAkF`hU;*kA_<<*(7L)OG>B~Hhlmz()N6E?!wa== zuLFT*j_qZjFlly5HefRkb=5jDIuNi=-ldqj0yK0kt9kPs-1wL%`U@!t7BPP$ww_vtH#=!gQ z9m{V8FU@yVJDKc&8abLaXTIalC(PLO!C+_rMl&#rH{dWP=+KoQhDFrntYg%N?k$Q+ z1FUMgY{_BJ6#uoD#$WNQ)a`%otWvHFN77SEIk*zlo>x0XbBi1RjbZOKlBKZZt7@m; zl7(vSFPgE44WqDuTk;W8kbKC4NwhNX{IDcj6(E1mESb%%8<<3g!zotlvC0?|Ew#(x zGI`!H(}RSgBoXKrBm~{#!U^2K#OUfi5IiEg4FAootLgS(>k1}PIIZq}h;#~S2Ab)? zp+Coaknq|ooJw%!A9~n%Aj6|X6JXC2k^|tbig)920XqO!V~@l#^@2y#uiG6LgBfW@ zo!(WhUQueU3tcp2Tkyq+kNhVY=y({B=JGu%w6GpMPFp{cG zo!gy90!8G@z?7%eMEQ8Ta}Tqj@Vb!S{yD?*rTYWnVR-8+ z-bGl}s`y`iq#8|Up`fP!`79xgIp_`g6EM{J8H&ky@jIRyVv(t*u(>b3d_fiEPzS!_p8B}a&c@yE9EQbkA zwjPw0v+P&MdWb|fAI+xHyWl*YX|D5j;Qd&<#jhK|(%C;|0$UxO_G#vf`#SU5TP48# z(i*S|c>AO-`6p_STc}7k9Cq%$qN4=9T%$^*T0x4_Sq_e+4gpLTgTx>!>{mEQdxeh1 zu8oH@K#~d<V)m6`!1wjKwbY5!Go z08m7g*fsKVCGUk7e{%j#61BpMv(_+29U|ws1*`Jen(?W^V_<1+;VBqPy@Gyuc$Uu`+w|*@400z0|hAY*OjackU=xj%is!iJ{|1agc{|U zL?T{(`@(DWH#S9v!yy{Z@X`IhbPyJb@Kil=^l>WT0MzZsvr7So- zh=fUn1Ea^Bes)oOls>m6Z}&d8Cc{?*)?|4579{voqW6*hG*;H3d&oZo#|ssWcEJz+ zjw0OFY(h)y-}04?Iu0;l13?GsH?sOW%h48aihCOS-fw{id;a(|WE7Uo0WbUAG&3RM zQ}}V@FBI-i_yf`khm^0JQfq3y{Mg(;Wt|k@F1wchn<}2L$!o)W`iHXdeXMH$iKqoj z;vh(Gxb$C9E6O8s5*-ENBRPgGb*!Fk`M_s%;V!ow3U}ICcm|spU3H!TZY7Uln?PV_ zlQ8FCA3$x2JUuIJ7Dfe~2B9`5;-(XsGCB4ku9zat#wFvQ{v3~Imcm-WOaznY*cymWNt+C zU69xDj2>va5kD5A=u6S>;a}Aqv&r zt=yl}DM;I-37wT>9Mf;vHeB*I*Wiw8WuRkz3xITkC)haahk>;LA_1c|Ey(sXpGjyt z*wb3+jeYcI;(uQgcRccXU<-IlR3|fm+-7!=coA_nP!gRb_d8CM*d|?}4l?utF-Kje zI|0o~X#;Z0d$Rx+@}XN2{DLCD;anSYNHqH6tlSR&;K|mA+3x)XtS-BTx``HL@~T{S zCxk)CSHg6QLgg`ro#!kQl^5En;&5oFJ-oEyRV?P9Vz)0i7-qMj# zXlqeojRS@h{=t{Jy3+e}7=Im1%^Ph05M8ym((P8BG*lazkIrqA*PJ@%wafjr%e?4! zyzRe>K;2!BZrqu|82)FR(wo^1CUT?XBBDFY`>9%T*Po4(1lWD^sD?b7r#$6MKN!!XOPZ1sU99N z6dy1=!4V51iq>#(68-oUuc1UFgc#3l{GtelbEjIZebbNgZBk}(^dDr2fgL>`a#tDbp_{6H@ve%2uP~nHw=ru2;f`PcT~I ziMD@~u$_=vev2yC4zwm(BOpN{1Ulj9vzGua@(^)&nx_P+x03boQ8`8ux~QP7#p|4u z8$7?bH{|#IxE(?|^(_ftjeB|Zzdz7kb2sWv)x`FXIjCuUFl+SFZFEWk!UqR4_K7O| z*O4X>bCyXW_L_2N_IM|U_&l|Pcf6PijFq~*B_re#pfM= z7O9L~L5>X)F+-mS4krc_Hid0Y^cy8_vpZPkXB-n)q~5vwk?|J(vc2tEENff(Yh2)6 z=mS@YG>#zQ+zn2@{65sMqq7E{H9lwbXC4++Geb?@V z71GTHfh8#z`%9RM3PYV=VFGju(4D;J>Y;PZ(d?sMiJs#Tfw`1UmuPJf&Uw~KL1Ks5 z%j0A^c>Rqm5N+*yof6fwYsn%_U08v&=4j?ZT(FQgoK*0h z-(wp5=*P<5Zn08$KliacL^njmt$O^3>MlO9b1ph+B?LbXlc=k~Mqt(kn5|BVSxoA8 zO1tW(e@B1ldC9W;U#;HL%Ch`QP>i&-UI>aR4t2;6!v`psLWp4S8HPqw;WZ-Kn!#Qi znsn-3yMwF2PQ9`CgE;D?ecW@FsM1TvWJlBi-!Jx4tV?kLoUgaN6DRJKr{7zhi*8oM zy}^fS9Z|Cha3d#m0S%Vp1MksKx7aNWc*6C2M$Bk&fai$-kMYU^pAJ9WtD`KUahI|? zr=i4I$I}N9*qz4YPrZ|d4Nl=^QmuI!=}79q*fsG=0FU#g*@M%_^ky$g!-_S<;(~Am zO1dPJJ0!Xn$8RDR(o7@e_fR>aF9V zTDmTPw?zYQ0adIH54Ee8aPHrdo4#ZN`W_$ql6Ee=P@)f+4`$gVy~?{ETl{UjA0u=$gl>kASM_d+xIwu1{D4 zY%ps=B37WL)896-@TTgc@4VNZrtq||xLhfM3(S! zK_r6(Xk+~eaFgS30!f?Tg!0+07UBWOSs*d9lh;C9#I1y zwJ}AsbJb7rO&4YP7F|q7!WDJN5PyApmsCrsgpx~2ylWW!*TeU}q+i9m@(qm^zb93% zfxU<*DqZzOHoL3uA^pdP)}2#1o`b_49rK2xewHLg17^JsL}d{iPV#}10j5v*PDQt2 z@a48ogWJd{!fn9ZHpEqH|6Goub27l-cNKiX{6F!JDPoJBMhN&}keO(RbHnE!xJVI~ zcF3A#z2&GF5fs*eRbfnRJwgXxw)P0996rFZAsaU-55)nqSsXB(Jgqa*`*m<%`R#h& z47*-`QD$xu!89&r(l#O>#)b@ajen7T1@3p9o{ELqKz(jVI>VuddO$V9bmoYtTAY6>5wKeP2G@KZUWQ1ei0@jZ623HI$YbisPl-&xbl zPnTXbi8y^0_;gCf*EFLtywTOo)(r1JP18ElYgog~${cJhuW3Hbwn6nRVS}1p(x%co zB^||=bijws^YC%}tI*2-_bfVr42)LB+a;a#N^f2NeyAz3T=~j7vdQG#x{3?rrc9pfc zL6x<+>6P^X%PZ@{x>eEUKB)3T>a4070e`4!gqp3YMW{KfnoFG{)r8VsmubyImz4zm znB$FWn)AxOcdV&}kn>vPtboKrQb%ek6pAJ|w~+~^tLV8QQv@ykJg*dpc9B9e<$rv` ze=3p8Rfz;GBMv3bJ8|=7gn%5BW)Ao_80Y)O( z6-Xq&NF*Hti3E)f5()4)Z53s8IcU-~vgxF$ zHt1~y`3zqpk$k7IyTI6;492c|Wa@u1b`YNbTVpp<$L@46c0FTr|KBop-$!NfncO?7 z*enBPmaPqD88EY~Q83H)1hWiyoHxSmn})W|o|{J4}Ex0bdC*9c|(l<@($C(YGpm9n^J#kFPTi7yU0RB;xodW*K$-4 zPBsCIA$`31(rI$ezREdH^d120716Xfq%i`b+)=fiG~qCBGk-qf!OT|WxJ;w4){rq_7VT@a; zbr`Gf@$nm2&(IuvBwDuxy4n`Fj{@SMOtcD)-7Dhi$1*>zj(vN`J%z~ww==ICFkYhI zN1+Rdo9P%q;+lGFSi-zX{!I>?=G+_Jf}QV(;(whRY2$OY6lvzG&ATnSlF!tBqL zq4)sgX$F+{^5kHi>6EW`F%%@%?rfRI;bjMg%RH@s$dURCzzc@ab-2x0+ zoKWTn2?$T=$@U9fX^WSy_&D7!lRV&adf1<7sbYSgP_16F0vA^)Eq{_X`=?g%#RAE&6UM_s$;-P%yYB&Qh zs7fQ;P2pp)#V*%{Jd~bv;wUhbEtq6g1w-fv ziGRmMpU2{wka=llN}7hRkbr@x7j~ok%0hVA?=*=)du?ni2dRJVllkP;pl;H908dDx zn7W4&ok5rl5k zO)au1y4V6<6ZZ*v+Z*qt7sJwCq*6y;xS^N-3oxXH4qob>+X$amR(@Z?OjgJFz2qV! zs8Y!T4oO|oa5DrXV;zF*Mvn?jBbr3MO9T*;&Y6VS7(qPJ`S$Gfu$}mT$own~Jyd5M z*-bKd_0q?8pA_#wUWbFOtRzvq>RHX(ae1H0N=?qj>ffdoXX$&6Gd++^D0Ni2K9@>t*u*`5gPi|B#vi` zbc?I^M=$mq`^rx_YtNR!#9%nGCuSxEfzlV9^i?Rn-1NolHg0w53?~H$yOVgpo$=08 z3Bd>6=xICnuh3@82qD?#?cn^r{Tjg3Am$w5tc;jL#US%|$B?#Gd8i>Z+u3b65|KB= z2^h;QsWY3Zro5N_kY_!3jqHaJf&b(%JKI}Imk87-#6QmeZ=JDv)VWsfdHUeNAvf zcvnFI)CC2w;MveczuF><>o(aaDhG{bRw3l`Ihzgb6~+VC(g2&&NwbNpw4A0I2UYO7 zNw&^474Up+X*n$Y;g%XZ5i&>oKkU5+m{mo#{#`rN>C@e3_vvs>M;d5y5EMZ%N6cZ& zqodA@UGEB%6nmuNZ!F~CL{$zah{``Wr%j1C3Y%Ndf@cS7 zSVe!u#H#O`VfF7edHi8?g&-KA#QwQIt&V??rvjRr38J&+7(A+AeWvRHZ6zM`%Mrd= zBOC+}JuN@xO81C9*ITCIdII=;{QV8x(I1vA$?PF32VV(iF+JDTxU%J)8Qkh)Uu85BRz@>pWd2TU1>Qs3+qKAbP=$O!|Cx= zfT0;1a3<~J(%C9;Kxo%d8q)FiG6OYvtdJeo+u5FsC$8PEDLQP{msBNrSO$7BE6wu& zTYZvg^XNK71b+M`>VjLz3m6(tk`YM*L}6O)QTO+wxjq3RT0Ux^hArw85h(JTh$QTs zMSac!ufbUZa9;V*bfwM}ZQ`EHg7BSBNLLAy3|4Rt;6WeFsgvFY5BIkh*CJYT5P68Q zi0+7x!9y-oIta<@{OFx5B5HUMPZFXJP>ks5Eb}T;UzV8=Hl+k?^F3LRhBZTe+eUZA z6%tKj8)FgWow9Tm20px08Tj1w$Nzd{4rY} zeaLHo@Wbdm&9Y!=R|LX_Zy{MJIB}8z=jvu=kiQenF^}l38<3}gfXXvVVgWJ$z+QRg z0p}=NoD~ht6Y2WcJkwW;-^O^vY&<-hsJj=lqr0FA&sJLt)G2bAcFi?+$@bbe5fPyc zv(~mqxz)(*_*o*_8JTfW1i9ktdC`cZxi@LYB=vF*23(d`DIdVu(L%>*HOFJ5Q~|`! zjJwvqiJm2wxEF0A?8rshyzWwHu~V6e&y!agn3w%Z$0CMRcWUPC*S(M~!K2S+-O?V~8Utoqu2(zv*}iaa$Bc!G<~;R!CWBu-5|>-| zNFnf}@aec`F+5D;_~{&vaOq5nM{9EN@&vTgJ4b;CkgTmBMW@U1Iy_e;%QObwPS}0K zrZc6Us+iyFV3eNV%+g)RH}Ivgviuwiru?=D&6sE<#082`guco>uSORsHuqO)?39B% zL4cth7UU)Z6YLC?1W@p?bCs$?YyR7n+MZ`W3Sq-za)k{Kagp}}f4mbpLSMt}6ENn|W4I?$)`+vNE$4|Y7u&#QFNNr0A7~n8`m<|TT)rYVk4~uJ zv`?H)1D8iXGry?5eEgtec};Cck6i$u)yyaN&n0!6|5!s%VbR#o_xU1V)F1*#&y9jN@SFzV=HHr&Y#gobTrpYYXXaFGkWa^$;wZkLSYIDazlBT){+@0m1y zbM-~b>hkZ!cD-g)CRH^S`2|9CxZH(r&Y)=>Uzs9=;-91-xuR8X3Eo)q@B$KQE91 zULbG!>CD)5FYpZekjq#(&u309NB+R$1v=#43;(Mxkcg4~x<5Aj-BINJ{}Fn)pWy#B zBlPP(!T+z1P_)L^aKWJuGo7I{GM}*lU6omLzWr$K1PIJRsFJE@#-?rg_cwO0h$}3# z6eM@T7+?d`v=^m_Va{~X9d4$q%lt}eB2qsQI1o$0jx#muWb&$Ujz z?FIN;fnBmSAMH0oCKAH6lWc2y%SZ?)ZbYW2ZYhU;_U)(552~nig#DyGCvG!U|hf=+&#W0QP4yMe+&X4lo)wXMEc5UAt@=&VR*9oR?fW4^Wz)+f}& z-dkVb21*9oMjTxPQBYme8xvK1hyt5X0zt^yy3o|MMBbHUH&iK<>hro}Db~?h+4g}3 zW_|W$$j{~2&GnR{bVoh2A?HbNTs<=;@q{<4q3N7w7c?+KlF_4e%}YtUueS2Ryw=c= z0%cA^GtJ2h@+~Jkldm@BljpF?tReSCJ=3eu&aJPUfymv9?5g@^OmXm3Ju|B~c&;8< zp@TQ7%=Y4-e?3wj2anV<1541Lrj!IUu(~9m$;V11FD(uF)iwJ{)o_l$bo}vJmKL_vQc0Ie9UWh(noBBm*0xHu z(6P2|qI+%K#73=@A8Xa_-he-79O*{(Igjv((H^!*`+^5qV)cRAP3iNA0Ra^k+Nn~G zB~FkkxGYm6s%?MZB8~}@{r0x<>LsDAw7`3R`aC;iE_aRagxf3+g4$&~zmt}e(ycC$RUH-1; z6r!tKUYP#Z`7*<}r&Rw8yTCIS2T#i`{UWc)j`hsV5oNp%K&F}Jp1imo@1~zNE^J8M znGM@644DaR`6pTCUCj^R$@|2?lY=UB*@%GpxQdOg*@ZAD>y}UOgyghl`;c3XI6_-T z(%2$)&+Hvjr$vze-D-P#)!O;k%%xgfF8zqmiDBEJ=u z!LBvRR&jKvy^5NBvVvV%nu$nZ2P}jVi1geY6p*k0WsLp(z1H-}X!blMUNTRK7tT}S z<@1!_Y~v}-(A-M|#j9R~d!@!5QF@ff9M4dS#S03Ne!)w;H}i~s*Ge>uE1}_q;xoM0 z!)MAif*(Y`A8`5LcZ=@t1j^eJ{+wfaWr^Z*C^F8eEY-mmwjDoY*3r~?JdTs{&3G_7 z$Mnn&D0ns7?xKq93rwKyruum@9l*>!EKh9gL*&G;ok&#aH-st=JLG#2+=MNVF%fQv zaDp~PzT3VMyqYlY$L({NC*l@)PPXvMi?XXY{8)~C7LMW^I}Hp>_HX9R0{wFs?U?g!Je6!^F#ODT;uVm`$6ktG`^ zM?d#3pe8dbF{+z_f~{bU*&bj83Qs}a6e`fOi!DUPB1Fx{ZA;`mRyhKyaFFb|5T;O;2%+Ck_ z7@X-(?Xq%Xju#ykU#wH>SRe5OV`k6P_(mgkQB}l(ban)l%`IqzO!4m3RGnf6TD-Ac zAK4nfS05EwW-bd)z`M7fmEty^B>`bR?eH#{&!_WMbjn==g@JU0l_NzEbs@u6D4G z``BCY=?PX!SpEcN00R1brmC^{HA9kp;Jn!t*k>}X#^IrZs4!~ib8oMyPMzm9Am)+p zm(&R#czMW+;V~ta-&a0drV~mw`F*L0w~~FwpfG?Deo0t`wK}ZDiU_$U;gZ8`9`d_3 zAaUzHYezt5N%}j*=kR&Wjfq#j#^?MZ`BybiiL-PV4S=BWx~@y#_@%XJC#r$%UfG*g z_}op9^%9Cj(gQ!DuXcaI11EU*o7P5x&)cY#yQ%{R#Nf=nNCT;Ya1YUj@fajJ29R0iZ-EL^`dy1k9rSz zc5t3F*Zz6k-g}omv+MCnCbxpC{!Cz7eN9(Cey`$m%rDYmSDBy%wG9Q?G1}uh&lryAF42 zzq*!x?*Zolqoaq_`B}f^0z$0=yjs&kf3&iJ)T7`PawnoK*{hJDloef50P$m|tVR@o zq4(dNQ!R}WM{l**NWLOg@U5aYQk$2T8xcINLkKu^a zO}yd#7E$(#9L7mB3)M9!resk##pB1M*pUz9FvN~PehEbg!uq%>ZHym1ItPUHdC0@1 z`Oxd{f$>Y8P7{Bz1GFDw(N=5BHtb7&AAv}o#;Hlx&V|$fBX=^Zdt1_Lw&+W_YvqSQb?8* zA$KpeJIl-qr7C&9RHr?nK{b~&TowO|kLs+hdc}`=_CbiIJiCQRP!)^>#}&%Yy$J0m zh~C220szWoQ$QUIZFdqZhjyq^D%d`bXXWpiN8W)Hr+VZ>dVW%(4F&~7aw6jd>t0Hl zoBnZrtWWp@OU#bMsE{9f3ha&&QjL!G_;H}fE-o>{QaYt~+TK@cUQY+eJ&Wy#QVcdK z*;QOg$@~&}x~5bWdFf}K!mqzr76}&h_sD?l$MCsfT9;AXE((~v3pn^-s1TCJrQ?9+ z>TJ#aFoqgLlCLT5K8hN1v3kjg%gu zivPY}-07stfhT9D_s6Z4{If?9@6atQL?&Q%wnc4-ShO8AD9JRS*&7;@hnj5E@aGUg z`>>-}E591?#xj(OFcA8O>(K<`-kyfB+fw{ z$OeEAb*gE00=pv0K?LinVSCxn*1KK)|uLC{mG)$0kT1f9PP*E zpxtOt_75!7rNe^)4w9Z`N{F6GQz{BfI#M>@Qm>-9%b~p zPL3Z3D;)ed4DWjal@raqF)&ZK0S_vL9k3eZ^GLLgt|IBg7jYW={;@feiT>ALf4uy} zh?VT`vN%E+)=N8spqUJg)7SCbSN`yjw4woE~U+K0w8 zDKsytH~aPHflzRzRb+B<%MB4ES2>U4FE~a|+gv8t7*;o2pS!&nn4w{Q^e_gQz>-MjBSI9pVU6Cop0}P;gP`&=9GYY`T;PG8f4q)?ck>5{yt8SVl@D|vD$;5 z4(>z(EkE~H$B}a_+cRh}F~%kAB0!k3Y&@Aj;q8_&Y@B->C1)!h=+AZ_tYM!0(8^2- zeFTOr=(5&(ateIlN~Zb|NBacm9`l3AK6UPqiuSbraPxHY8oD`%;5rI$aDPjwdkHuD zOYu2-5sagJJadC;Jj7yO=2^A?)mkxI2|g;QlosjfZP%ZBL;GB)MQ_!A^d+Q)>}zT7 zFc&dUZslLMzHnptqLip-uQsQ1;J=V5tE0L0;!5aVa3Sv$hcL&mRZ)P_a=2BB8c?al@lIeD;kXLEySw>9Z$^dP5toFLIm%h`g84C@U_DVZp_hjBk60 z+GN%~D5x#x=+aJ3TXPrt_ObWXx{1c5DLt0=uQ#lxa6129XCL?Y6yNbMcLtjjPY{4^ zTIp3&YZV?zl`Dcf&5gp2(kFM~*O%t&p|%TtWiAi?UPGMwb!CaR_A+xG-N?L*JekT) zE~WjNwWF$?_{)DE1HJ*HCMM%Iyx?t5!3=~Rzy;yJGzIOQetVBMf*Fcg$@Q#Mo~)Cc z$-ntrVY|6Z&3nnaz{f-?;0T|%tKIZU{=M10>YKj>7+$wH!*mZnK-EVN!H%O=LGM)G zbo1yIz_O@-zoekXol)34`Xi-%Jo8fwIo)d>&^MKSO$#kAr@5b7M#OI|IGoqq;OMB! z5B0-01yJN3Fw249$@HXAJ3CvC2gk?=U2vJF9)I8k9|NgW9aLuA3B2LMdXSATh_H%R zk2j_eMgpiSk-0>J{OZ68Ftqo%_NWRIHB~pez!M?~rixw&)BSiK4p`0_=?f^prT=GI zz27_0j)N=~D|n7vLB#0u**-}y4{4nUy7ZMi2T%aOLJS!gR}Ta+>{w9eY-XE<+C?O` z4apGDF%~221@i)t&WmGqHYmm{!3H19ifCtL*15DfCLWE+#l)cWJ1gSRT+FudSPxVH zt@xO~F{I7b{$hv&l)aT}_mi85;DdIu$KM<*@yzXVL(R<$iu=9GEnzP>ey8RLqKr*# z4DmVbh<3!U6UY5P4v`<|syJVy?)h#*+9i3^3P&hg?r0J(4!(n&)gp{oOX= z+#RvlLf8tjVjD>jlobHb>>7^gln(LOmx33pl+j|K>1PKRB#9=I=i6Stmg2RhbE zn0x7ai=PS{0#IiLv`=_};imO0(DT`TfLbszI3M;q2RkP}ock);_VsWJn|Xm&q2~j> z1DC)+k->jt`@^;+X2xrYaV$mKBz=-uaV|fXAD8EMiE<{*1%?54L|?uA-Unnevv<6Pb9Fq2>jDXWYC=oK~C&t%$?R zViEO;-7%O{V-!rvl0Ch*ltcFMt`jBgp{c<$?>FC!RXn_XF>7;8e;ZMyjs1cYJkgG9 zrx$V$nZEM7T7SBwx~XI>{_X8uyup)w# z>F2+B$w+s8h5d&{y?X@boOT?x&x!@!)&}OS+OxeG4b9HF_6=|dRraBV=An9aYy;D? zzJ0WzSx`TPysmzVqaV~yakOWH6y@U^RyS4e_b(A;u??P&>7-Q7Uc;9%BXRWTLNle1 z3XAlIk1p?I{=L8g3PEdgC5OKA;?u5WEa5G}mzLL&7Yh?DGUpyTT9W6{!a)DWd;Kqf ztK%zCH z_=4aPyxZ=szOKpQ)93>ut2u!+4+M9T%Y=k2)la1j|DK^(fsvUm=Cz~bGO0xyGbQQL zGnr((DIT$3JAA_1mr29qu@tuV*vw!s8Q~9g=~1eiJc6Sq2tL|3(?C(dMeyohz!uoW zlHHT(dDM)G#~m~#5=S0#E9%^#Pe)smgVGu1N#Q%~;2Wqs2Lv&@|K}4A7n*$qc4;BR z^!E9}FGj*YU-ziPcq@n0skmCa38S6G5~W~*LKb+hPMOh&IgGb*ZhLP4J)P^{au5z{g-J@ZK)nsXsf)BaUL zk-V0933XcvUj2s%Pkd(;k)~pnh7#g(U-v?f=$+`-TPB%Uht@!r>Qo#S?>wj040X)1$e#+Y-{Figo7N$;KY35GqU)Ga5zt7Lx zYB3Pw-80*Ql^#E!bzWt~XY8(%i}pxX}p6+=0$@rTKO2rIh{^ zXbtJNzPYTtf@7zM-xOt#xgD^;Tb^`T*UGmaZPOCywqUr=z{;qHur}D|A>S8^@Gvfj zH9_tlPrem5kHm|SA+m6-Hfr3Bd%N2|`4QOCf@mcf%w+I>GK^*@b<2%F0y4LHI3G@` zt;MWeOOgWBqOVs(hkfmHPdp)dO169R~-5IQZ7Xs zwOIDwkIa}D8Lb2a_y`w7L`YPZjDP<`bY(Q3RbC}2-B|pPm-wZ#V>0(G7L@x;O1j!$ zSPae#rGT4d146I{W_ptRiG3<=Ze|@cFJ+$X_iQnB0!zgszEV;>p(GzQGh$=+s#p5A zvf92H@b%G?bCIFJW7UqO4_bsP8sNw1;f?k-DH4stJN*`jOatzbMC#~81wWUM`s)jt z)(oq0Uks}a9`bYcb#FFfDXWMd(=zv4SSz^DwA4#IhvwXi<++y^^P|N@54pTkTii|# zTvW~a`0Yn&@fuphVtNLl4udnj{QB$ETIQ8?#V6r*;6oLUwZw^cWo}l-_q*(K?6%wn z6fFqR!Ob*2{>Aa*F20u$O`1l~8Uw=>jJ3N#1Lc|-S#08!!t3c=@H9gyUm#1*EBf=k z{?PWpdfCBpt6m<)Bh&#R1-EzsPQd{_yD-4mL>R4B=pcIEWDGJq2F2gH#+n_ACUUh* zTQ{BbWWZKi0ROi%gW-Bae8xXv2-#sWwZDhu@vO#x(1hcncP{2*tpl%a(?G)Wk3sGs zUE~D}^teDJI#P3&>SvsG70yJ??H8TTkLwgC*xsw>IH=u?oL)eT#b2}{al?+bu{$V+y$X4V#@i#AL3cu3X4>bx`@Cmkrh^q@`7|qqf4{Yq zz+pt-(_DchR>W;zSPQc4hHUdxwvx@!vt&~=M0~i*6*-b}y-FXWsM*`Z^$i+iUSj= z8oc{1NO70Px-=F~e!!B=iC}i02^a*Nh*=hH2?6{$@rYxBr$pMy4*kd4v3DjUQZ|Hu z-Tf4tb$|*TDz29vDfL?&6D(7G)Vm)?Q(b+u3F?n=^APO!8UK9z z6KsM@$QASqPT_J49l=xOJc9^%eh^VUB0Pm2g|+6DD?RwAGP1hahjEU@26+4!kKeZz zXy)iZ1=&dL?h4Zva2lSq?C{A7&`^@uuT#Dq-lYn&C)?6c#~k1e&*hYiEjRmfDQs8gypq`!=FvPmt-`#P7j&#J+noGio~67) zl3Dk@{E|mY&5Zo?L#1YLft^umHWo#TO3j0*@Z}OSJ!J=!nuRIL(d8*i&DT<=F(IdI zw=%Ohori_DSm(S}9C78YB`MDAD=_Tm`g5P$b@R%if#v2Nr7U`1ebx2Tl#q0V z`?f+k-scF2;R!(AY86xpQ2_D`EhHN=>)J6lGemLjk%DHv7Z6SRwsHVtq#1`hOhXhi z{cHs{bB@bNGb-SNr2j{?Z7yx6uZvRZfMwq+L0*Z2P!=xSd-$^nTlz#NPWb+l)gbR! z*8E%ZLHUhx-rbG<3GlOy4Dz=S8yZB&-Sz1W2=f62t_cGQUJq@zBr&l{BK%=^-NZbY z&+I)(;U17Nd2key2Q{CLwV-57R>g?OEXo?<^P_u?T@@**%($f4o~zUL_c< z@YQmC-bl&tnl=1LM#nD#l$m6+frI)8hB>AH(*F}=#XTYW<S zz`D59Wy<~xx0xe#{M46@gvNzyu{w7{Exp*2ECD@#pd23(V+XW7d%~wOFRQ$kM*2ze zV*WA0hJkk-MFwB2>&&+wZF$+n#BE~T-WSNIj$4(R=om_?|3smg0iR&kAb8m&B600~ z_cQ9rIB^3MMCK1XcI=#(`nt;L@PzJ^ZMSRpNbRgn(A({%afYW7w8m6#DC_l`j+At! z9{jWVQ{!3x&JVNE3I0A_lNa^Z_D?&(4SGtw)rE(_{s?NtwV4ze9j%%m6sU>Wikfco z{dF~4`g|tjPrl13Clg(Lh!4~-)^=2xu{CWTe$8h8`8Hd%h%lgCE@Fy1BA`)Y+=CA+TF5QBgEs8Q0O4APH!p(w*a}lj44C)r-q3>eKU9h zeIt+QrE}84%okgIU?BT{1@Lje#aQzYzwwOhTY}$L+uf)YzcIK8?1lT>T1*K3ivW`F zNT`WA+b;C?(JVU#WL=z<)V!T-DgQY8Pt?t+KA}uDkuu0dkHnjCEz`>F{I1#1CtLF4 zoH2HfHN9$#AOBpGt?SpU(D6F&Nt~0Ke4{4;+%dgb>%8@1wSnsv|4Tu5CJ%#*Y z8$!DU_<48^C9tMY?|grU@|IPdX>pkU-u947H0tLwGm07HX%Q8D?1GHwYw8C2 z%!_(a9A$sSmZG;!dDAhD7UU)3AB8rF=0IxZN6*38>MNO?Q*g<*IL&>%-`EJs4vO)7 zzGy8NqN>5>HNn|4#`*C6ajnmMY2jS4`hHi0M-o=j$-U1hSr(+^WcNOIWLwG)=zV^c zd7oc-vR`@T-{mp4t{F!AG>q6|ie?ZZ+^4h^2SK$q*G$f~99)<^g?HB__a^szzRM-P zQ{Be8%HfTWZ`6yAzM8(HfH6-q`>qeF1JhvhU{8bk#0G`gny)p`ULO3>X7>V)LGjre z2+qMPf13qNNq1C&KEp=8D?43OG@aNFmlMJ`~D45BlkgSNcFJ>$NIomx>$IDW}@KuJD7If$&`DPBq$T zb+p9Q{TavLQ*TU zhozWxnjwaf7MU&1I+^-Z?jk&%&baP?Xx)`240r#{fH_b?JX7WiNU=0NS$9;$5Tj2xS1>cBE0_334 zOa?1;#~*=Ga8UqT-86vX3&3P_8{2171LD9waJFe3-Qdc2#)tksuARj)`Ab zh!VRt3x{;T==6GYm*yZKEI8*>=^V>4ibwJaeqj5+Skfs|`R3CoI`^tK z3uHK0QvgG4a%lnPh96NfAiQKz0eQ4$coPe7E?Iu`%C;OBo_*xU`R1kUI>QQJrfZ7~ z4;bYH0Wkn`OLQ>zHcr}<=oV5wuz+$#*SW1OayF;8@`ZvMRREdJ6__l8#-HS44jdHR zTVQ6B{W%}+z=gOPvMmMgWv>lkTFa+}K5FKXnzrg+E)2e1nkVAw8F}oouR{L_u6q?R zyn`6&PWTb{u_BAMULgD#dtw}ylnl(+Ui9Z>{h?o%9m~I`Tt!ec8}<((KC|Su2=CmF zDA|ioZ*v3{Y+HWx(|k`vFyi*OrMN?OC-1RH)<=F!$=T&|WW6kow0f4_cwaB}GTGU^ zVIBn1qp~bHB1t~=KsG=!x-uj?5U;e58SiD=E&%Wn_QiyG2FrM)G|A&!FzBtf>}C3$ z8@Aq2XzsUB_aZWivU9&bs~H7y!oUL?zl$pKavM>yE)m^ZWO_!&B6rHOeTtN8S-^^KO{Jx+Ysr`h%*LimEY4DO06 zILu{*=Qs^uu)Z(O`^E!_LVKb)%ASc+-BmpF_b)F=8TLqvo#aRQDuLbHoqrAkU1=eCw%mZy@uX*8l(uK{UjnXUh2u`6z#Q0^l0_ zRMod}2t4I5sxdjUS2e=ho>&bQ}jMFSYdCdh6 z=1i>9P}CHs+J%HrTim&BDJ3!mP6xDF*8-GsM5vr9f8WmpvA|-6PxuRq*|#1otE{cq z89cri@Gu+?R-0(%uHlmF>^6ckA=b12%kB<#@`m)_83W&P2(a7;EYR)PPht#V(~@cJ zn#=j|7ez{rb1{;1pI8-AXyORzOu#bxA&N6uxT(_uv0M#Ho#LBC#EzYE_OVm30X4SQjWq(9Xy0`E)ViS z^bDg=8ts^)f2PqN!OBMn=fnGU`R50hhQ0gvKwbFIDm1ScRr~7VF(^Px)US zBL%m}6nRwil!IVU^KHg zL!JJ2TDkcPl)K7H>_z5SIw-A$PM%fwZ?adt5iaUE(AhJh8Wdd`#oAkGCcLwJy<=Zot=^p6)5IsG$Oao^^8E{}b zri_@(U|T6%gOWdW(-Z-izQ`Ax!Ij%cj5Yt%fmW19wEOOk0|ex9Z_dd_7PlVFq@hZWp8_~ z%)FCp-zp=N*KR5^^Afg43VzRk^se2b2>G!nqWrZeqE6R5JCl3KQ$OF#vkUPmC+&=K zGc;)*EjLdmgFR(trIR6#b#K69ZJrd0?E@0`g->@x)$F*%2k?gOvTe*xZ*6#*~-`(vlxdtNih_T3DJ^3#-#=xpT37v&7t2Y&Vsd zrNzP267!;yH@fm&#j4N9y7E}tD`w8LDDQu?GYI1WeXmdQE{|eh7Vp6x5k$xfA);i0 zk%NSocYeRtBl`}HX2-S1VT`Vq*hg64oJh7&wTh+cRq@<4kGK$$Lp%!Z*ynMU`V62UsAmExOL$$h~slS?5SX^6Z&yk$)p!QitzevHXFdSMAF z$}N-27!_LsevFRnat2d$)|^t)CmB)csia+1W;Q3IxxDy%eSG=RmQpjd!0ssNWtzzY-0p&AkRgl&c@P3RFGt2f z`Bo^#Qe+mlnW2^r5Wvt`lOz@ffRIH<2bY92u|_r}C9~ zs`F}|>Tk_cJ0p^I9O39mJF3ELN(Q^j%}ytOd80;=H4;4zDU8wS>3st9Yk$tV$j485f=oS2TBmyh4 z&la0qgjpAxfvIqJ+Kf&~o}5zo6DiesCZ+l>r*!Vdl-hYUT|ERYY5O&V4^h_=r$69C|I?qk_0>OYa$WX4N^OU(~} zNHM&kW9)CuWo&*sWpshWv7msjq=7rDFJ3Mn#LuL@(t-V+%&)k^=zu%Dpbq-V`N3aY zNGrD5!)x=OE_zA}&b+LAw8g>SA3_rFV921{I$78S8)+V>@`DY2k0K?#R~`e*bHwQYp4uS1Q)-Rz>V$Y;pJfP32|j6#D#C0#Do) z0e9%3`Xe$Y<+s8aDFZP^0+c=1(BYOrF(`yUHv;p(^6)kjRV2!2OyR}V4e`4bzXJ^kWc;k->GINDAE&`RtJyIry6k2d5slWdhtZ>ZYy7zAj{_=9`MhH zC}#=L()<9J=`N9O`wJl@f7(|&EXvJ@tm*?TF9!)AR|^Wpq@WEt%lko{ci~hBRkAqj z&Gmq&Q4XThHRa+_Pvj#xli$CqE}P_OY_zfKQ#j1ddm+Vhv-hTzji66j4wZLP%2~5H zWwwR2dKQaWt4lGvc-yg9foJ>DrW-3q8vNTm-n4XeaNyc(OFNiKIIC-phf*YdVR&xD>q9vkUFEukO)7FJs zJUb#|0%wix;T%AHL!qb#Kuh4;p=wel;+H@@KYqDgM**AQfBKtBv`YO zNmsXqKuEDC>q=x&f;q2_yP0|dfF5Nh zizWnX&@V0D_#d=j-6^TY$Z~kKQf&*deaPs<hiCx zpLeS51XPY`#l^8xbBup3r(9##RkFstR4FJJBBtI&l^_D^Afp^lt|N{{hvd^`5A0p3Am()i%>}MteK> zk+?UuytY}IQX@ms_SxEIUfM3IZC*&*&6P?#`a~r_+ty<%&Fdw_)ah9ot*RumJpEi- zdKLv!%5>7wGF9B}-iPx_1X$c zuivXsue;W=^m=5iD(bAQWjj}zk87#^$ja&`+OFz&gJJz)YyNtgvpr2k1yHyUe#6NY zAT5(Ba5Q*u-tl)b%WVv87i&J%z#gDkb3$h7Jo9+jTi^1!c|EcKMA$a~_XefN4+f3l zXMEay31Phz%$D{NPK#NNJ*~-dgZ_M!nKsXCz{>hN+XoN6$2W*2(|(d|Mp!X3b&KIw zF+1aSJ|jNc0SdBlN?{$O3P@{;yJr%?ckQ6c$tGlfnoS!iXZeHoxd13Pz@M z(yWv!u66QzDK*eFUCB{U+H_?_T3y+mwsfU^vAQz2*wPio6J1$aZ0X6y;wtJ7DzQ(M zm^mft&IauX`3yex+Wf&mAa~@;Ft<5h)0PXcU6;?6kO>-+mR0${FPkr8Zx^D_kp;)@ zPKx$saRKRls14qDI{uCrwb@gTExa64tDUO1GUX7StoP!fw(@Z%D74OBG~MQ#f|RHA1n>6fqzYnz#g<}+)Xp^-`+kL*-F(Wv==+GbGlBCh^u{;x(? znwbT5JTpK+i#e5ML7}B&bD`Z`%XBGf(ZAB%o2sPdE=ED6>6}*iptR~dnATZy)3yt} zawUuf`u{05fjZ{F;uX5RdrEC*CYn-<{7R|aQ)vd5*{yV?OeI(a)-&mp+0~Wi{WAM} zrMatIml;rA!qM5~>hANdx zi`LvgXh?srl=w3?O}*jkbMkt?N3i*M3w#bt25M&69Cz~g@uY^`cJ%9CX!y;)hU?j>LYv&euUE<@YR>f^5?^@^v>6eH2@ob=n)n3X5g_V%@4fZ0c7Q4 zNzoK|SmIGQP%LWbrMiZx)nPC%EM8)R2WZfQLA>l znfP<>c;`Jqt9eCKAY4jYO{hOSyExD!@oXRyEVnq5SVJybgI;lO{d=99chu3~>i^2c zoa02#%4z#2qV4|_2KAcXZTNjn4TTK5f$w!Zzu2~;y?+qs`bEl8%1);2FO=O@I-RSD*(s5uieBL&5tuOu8u@g&<00C8FV>?dJ2d9PFBgu*i50_m@i$GuPgeIXwYv| zT-f-UTK`;>I0g6RIrcXW`LAmo@;lj7sb-HByJO7``)i7Feq2CjSV>)H4*qqR`@K#J z+;^E%bv1WZb5jTZI^6vw?wLxE17}zF~wo8bi&og z5BXixz!H?+La8XP;F1IG+YsNy?x@s^+7;ErS`w^z2Hf@TE|5<&QhIr}`KPr<0|q&VP6zhOmHn`s zz~n#8_1F>cNp~b&sDB4CvkK!gxDpXOFk6I`;UJ$M@5JmA*^p*v2Qf42q%GORH8wzg zJ$@1ilt*TlAiI45mpi9kfUY*VKmhl=rA0ahQ-Qv^)NwEYGwGc{9qC%+*o2eURwJ@t^> zUh_UZkEQxUZ|YvezmuVkjES2?>`%8m0n%4wJ7%U92x=YXxbOL-8}~_t+ycy8iBB-| zV#+V0=(kFya5s!_E_P|P_eC(yzc_l~x1D=xQ;yE^9`Faot6B24gkwD9J}7jeld;Hv zu?P(3JtHs7;!SjlOPrFKp;AejC`sLd*+LvTUmyf9bzRIi_9fZgA-}6mvXet|^WO=* z?dP)sfzjdj27j1G$;8YWRJZJEKxHuZ``GM-*mbGIKXnBJO1oFkx^5$7iUs<7g(VL3 z59~)C@lyCEm+6IUWZNk7Xg&o)bjIw=Y27_-kuR-Fg6liwZ)WE=nB2IY9q)!e!Ht2A zK_^7=Yb*=Mco3V3irgnGUzQD$ zMa;eAFrP$%bSFO}b!19xvd>X=Jk;!!%^r7ww&Pu-OFxt`F}H1e9a@4@wI23PBu^rv z6)u9k-u!?ckE@wgE`Q=15_$ccn$d5*Wvh+RYa1rxy|p|p>Yk2BT}^Sk)dcc^>rcc@$IJJfw|j{1vTQ#x2z-#!uq zn`GB~BFN$99dxi}d9SW_4)p*}e5?HvW54#;$J#%CY3whipaIjgJ{+bOl$yi&{RLxF z?q$oo2gzdM#<==>0p|mC+Z6;o1NK^<202|EkL{PLCH=kBJ6-C<>-axm?ALb~Z1$Uh zp9&z@#BN3G#-~nX=rfAKoRy9>(ZGVm?@cZ|M7K}4+U&D54Ak|!l7@uOCYi=)*OfHc zA^~sePLdAk%(=uGBCnFxvpC+V9Qp40)paY6HA8+hZShx5dq3Or!; zFb?oZd;&44K8!gboV>w&EJk5)k1d=fuHC}92kYT_SK26nNL=rGFRSm{{Tyx#kG6YP z?yG0D1bk_nrWxJRmU zk5pWdxx0LA|7(#NsWrZY8>_F?&1=MvxaGh10e*osG|p#q4)TLR`am2rbqX1)GMO&M z!x$gyp*mHleJvL^SsqsN)Nb-N z`^f7v&(NWY&#@QR+-H7sYPYrLnRfj9WB#XwqogMM(DoB(xf?N^tgsOCdToi92USS$ zX?Kl7?0g(N;MaHO+$kXJ)k10UR#6w(6p*RsDPB>ww!@(FI-oj{dmamFwt14hBDy2{ zMix@vE`sPduuo>QbzSVkdB~E(bGT1Wpgp_^*=8_~>}+Wnw7fK~b2r9y)-FAtXh%$Nc)O*mGxcZ|(hZkLX4_r;l#io3b7)Yy+7FBW1m2%ecMSRHuQuRY^;6R})!NY~i09r!45#a0fNvzQy zu2*n0|6apR@>c$JkVEE@W4vaX=b1&`41e~i#??XV zODnITUfr*u`0(!X$_K$w!DmGVdmg>#wbw1WY`@i~w3+7g%G7zvW%C#El0V=V^6lIop&k^Y9GEmw+nQWt*3Ecj(Nt0ECV(>W@0zh|}li?fl;3AK5_O@*C?8Td`FzxOZ`DS@2g zpSH+LG!B`W5%G^vlZS*nA*^%@%jd&R_KrH6Djj`0$p()G$FlALSg^vrFyp?chv}T4 zvu(~ID*)v|Ba&xdGnU6FmsqekVDg8`do4utI`d84!reBfuT>iEgUhmg?Ja+ST_ zjX^5?Uf;`&O?Fj6n80Te+N&)gy|}Ne<2(GPJW_MGWYau- z>Z5~G^TVuODnF2I=g?eEcm3#>Yd_0n>Hh)pgake2nwja1d6{cYMYCrCbR6xY;}GQ7 zp^$DeTH=bRQpcwTbZwjIZP=&Nr*97ug|G@ zJdufBb$?bR`7R$%;@Nv7sZJqcfPFBjbSe)dwdDdr#)2_7sk!ahq}cK?Gr$;|6#X34 zw_E#eQv5ko=k}>MCpOgQ@O$yG9!I9+w0I*=9%+gukX+J7JGc9F+K)2>|4q@*7jYSM9vW zuJ#yDW9|aGppfuY>fze6uM~>z6;0mSUWMjatC)b*wtPaNR(9k`v3^v1EpA^b1lXov z5FCC}3(W&L`N%VKR6Z}~RyJh0c~2GK4_H88#_W7MfJlP;fMyQJA2GVXA`+#syTHtG z@+xU3yY#1PA-J9~g-FZwhr9aiMfDWU{BZ%#`59(-^rsaCGSc9I*&pC=VZPX20K&B{ zp}(Q+UC4t+^S_sUX@MCPBejpHf=3lH<`uXNo{Q5vDeBWK(-q&)pS=a}m`u)G@s^V) zIY-LnO?F?%6YWP546n|;j+#ma@jz$7uC)sI zduU&>Fwfd`mYGxX(y$pdI|~5E4Yn(*N9OJe>{0@@yb|;`!t38h|MUYgAn}3iBvw@~ z4s7q6fiUQ^Ly_S>$?ON^Kkod@eEFYhr~H>`s3!J69VTWGF3gQNl%VVF-CjL@twm9Y zSagqhJd){+S)^CY-W8F?vZzBuULZ^PlhSQAW?2e|hhaK;Ij+c+Jx(S&&@fV(W$S3K z93|JAK$4&cV4hB0mt!A{%%EI5C^8S`s$@>C-Ig$`a&=kIk*+K4{f=3-^D*Yx?3cYg zZS>tNZey0^_OblfoNp(!F`WyVArB@UY#Vcb(NfiVDs9)bF$0S2x>jU`wXe4_Z6|6l{^6;Z1zj2i0 zhgwPQakNfdbF@w!+gkFT){+@L5BiO16);`k^&rapGhI}A)T|-C+E%K^ZLymUlnKmLf-N{QDnoqLq{f(566#3z} z=Gh|29~9ll(F3U`vp9QUtvZ_#DA1|ft4xT%Sd|H{uitW3t%*PCwciWh|>*^)+sJaq) zB149{QyQq&>IN56w7#L5o!rQFZfQC-RvQ}|TUBkMlDGMLjG5b1a+hX0`cg9;9noC! z&gLqgafIZ%Td3xm7CQQbhRphwIym}B6>L9J^20|-{@^IdPqdOe>}Z|3?P#4ky|v`d zZ6q^f2Kmx7e`pV+w9@ZRiI{9hO5ZeisP|YjQp)YI3fw-6SxS`l3sVX)pOZ49nB7vM zE}EDUN^3$&bKIDebf-OOQ0I1A8j|pzgMG!WHZD!_q+^lc+Xj0zBEyuGj`M@OU} z+~C<9@Op-IKPv&LFIv(M>@9$cfdZ`o0gXtQnNJYd}K^1 zpcm%mN}iFht4q!F=p^J3;DEukCsm(Z)-=2|S@|#s=KOL>w&vTZrDjWkMFta3YXb`H zq*CE}X<>1p9bRhI6{>}|3Ty9x$gW67=NG9QTrbGxcZ%%964M!|8ZiuDCrZpCpe9Pp z{FJcK?}F$h(-J;%ApdD0>8Ch(Nm|!^IbF59*o@7fBj)+ldtCVX7#jG+Q3COHqj>Is zaE}2}A;oiDh4h?NekS(GNnjeU0S40ZY)yw_7g4w zSSY0~0rR6XJTJNd?t~i$cfu`qWwod<^V6;ady4J-fF(-orxm7uiCtOC%y9D3l6e7F zSX6-}o*`8CXs+7D@%Lc7>k4-%pOn(OQOu6j)hW7+e{T{U_U($}t=V-Joj~y~wQJ+) zJLk8nUD%o*KM}V0ZwTx~GkcheyfZFF{+s}ytY9Emtr#RxDBi*QVH=z`G0_d82ce-q zfcnOsOaX7JW1KP~D+e-oEb<5MO=Ochlafz840$jI{*LWem_vrdQPMEJ+>f)n@9tQX z*_ILBMpW>Zdn(yqCu0<_0eq4JY_K&r4Q(NmjqZ&QyDFNcAW}K=tklbcTIDvhC)2*? zK}eKr01|0;7_63+0L>Ir*5VK_#4dHEm(97)n(>F8|GC$MfGt>x*xNo4XwW)Ev+q*Ir0kiy*lwfyKBkTd`S~$`ZO^NaIa5>I7S!mdJzRb~HJc<7LR(;=R2`6NFW@<_FQzXiR$n2_;OATsr{LmfY%o zw|GSNwTVz{-)+bo#RvOdu$>qa!FIOCQYn3r-B9Me+~(bMIWpVC?YY6&!0t^zdTPf; zB$lu%qo6!si*853}vo$aKoF>m$Im z?3X|-(Rw21t;Cn3#69B|y*h9m{@o5pD;avPwDyrq-Iz;0P4V!K-;*NdrtVuQz2Pma zC81rNLVZ7-l1?#A`&O4%=eK_ogEb-uZ}FI zvQOet1M}>@BJ*ILeYeQW$kR6G6(_%)XKC`&JT*TsX&);x4=3%0Ld7c49fHod)LvI| zU;YA*D-JEJH#TivDddVHGXW8EJ%;`RZm}GmR?4ML#RPs8KU_?3ogGW4iM6}HfMwYg zY11dyjxG{33f@uRP{dk&7}){fb`8#ff*F&%7OY?th_DVbt*bQVfL4x#93pN%ks#ECo}Dvrc7 zoNY#CS-j^Yp}=IiAgdgCLzcadG@dRE`tB^%JdmX(JI2-I*mwy|I!s;H?CN{DwTHfl z&oEB#Ei!i`*e^9ko)^w%{PvHvR->Br_HacwpYh=5nuj1@$~8-}?2ufuiNxzJqj#TN zb5C4hE7RhHN1Nr@C7)<;~2NeEV!O^Db|=ndw&``90DoHZy$+ucyu)6ozKz)56P;4-|FL zfd|Wm>H43P+p$f|y%hz>t1Ik)=H^|{vCYjsCx2dHDW6d56II$#&+cwwI@iC1qP6vl z-fCjrsjtKAh59r#a~jwKP0T_kZ*QQQ!y4+W6%9{7e!7vJ-rQ_#WXCo)+nqeR@$b0h zNlkce6PjL&$i(|!N>E@C=~5vq&Jb}tHM3>Kx5iKIf;Tz??6qw!C; z?8M+}hh!0rXFFzTBvB4XjW=)YftbuH9GnnSgR}IuwG^L-T@GXE1{at9z9)P=@&pen z;7$!1>J;CuJmRd^1T+kE+Pan3-v!IFbK+OrTk@+HB^jQ!uW{J&jm z*hb%b(U*JdD*I+y=HE?eb&sh5-x1T&3RXuK>e(4h(6=8I>n#x7_AK<}M1J`lys5=9 z^bRkUxfFSPcmu(5gPF|;k+AmeGy!`Go!D({k79Gc$&+LCsk4^njvgMXgN#$-^XoNvdMDoYFfoRzPhugPaG5bVjX zdN>`-EvU=6n3|qTV{20R{e^Z~Q82r(YJMsJiHtlZMW<$@)Yvxn7d7SYn7xKMze4R3 z1BTGW8Z^JQ?@EDl^Cc3(CB4c`FQbDpK@8vo*MM5A zU_CA!#ymGMu$4)oxy#CXjQR4I2_o#udru1GH<#oc6Y zgHK?RMV_EBg72=nN~1H#>!}Paw_6yR+IuG>&i7z-`66PhZd<4zZ%IER+JbvLyrUqC z_%TW?tjRRv?x6)tMn9--_PhR0HQ~II6+qM9YX}_)R(03CZz`{I6nAz_dVz2LILv#= z*UFDf$G+syJ@m1D>u}1IE`Qp*Ih{`dIKO>+ z-d$)%T0kdoBn0RP?^wavDcNrek%z|$r-5?^pb!h*j)^Abi`&sh*4eM!jrae0XeTr< z6RrKcfnvq_HzJ#bOo{!ouDHJ;{xrL{zWFSx7BVsDI~tlt;;v`E_2zDw%)B+=k|r0*kznkn59fYtb-^{L@yvS9w^@oQ@fJco%7|i^dIWMdB@WGv&7JRx7T!{D6~aPH%Irx z5=B98zjSnf&7pJ%;9_XLeIfginb#=Cwnd$NnK|zGBjAr@PB`HJ(`{I>$KqzJc+Z-S z)-JZDJINuf>Bn9Ge-S#VHKV1Tx`-hj>B+75@rS0&o5OW=K1;-Rywbag>GVrGxX=k0 zWm&(GQOqc3=u?M2xQF@u8qiyfw{7wT$8eJ$4fYm7*GDLuve>jn-bgmgK-@FPcWa@p zq0juTbqSTAT^=9pBGWFIXWB(}?as<*0S)fpB5XqYFmZb)IsV8`JcYcn&C*R{WpsDm zq7DC^Ye)L#5*)>NT>(a{R#Y^bK1LEINf1=}^GN1|e0>zh!7QMKUq&--zRnT+d!Bmr zSE0P7p%{lcRm7p0{?w{Xm8OcX)I@zn8<2P|&=TXtf2xT{Jv+9|-@jmI{-=UkEva$5 zCG++<2*0>&o2Spi&Bv}2|MGYvDz_4um(2Xvp9v5C5}nVNR(<}zIG(CYz2A-TU;xL} zNyta$nHH+K8%yu=T#hy{X>JXu(KDw5aq_)oBsB6#_|7pV*6ROw^lg4Z!S9t>^sho8 z!n5*`#j1$O9jH&wm>H$-WUZ}5kW`l#;t2iWJkqlX6E@#7XJ7BQK3!>|F}!kGD{ii? zbzO7&LC6~e9d{YWy6>eF~Tpmb-h$*{lI&U?h#X8rp9mT!)&db^T4~G3gF-XT}iekR9q&1Y>U|- z8foxx!bZ{O!GUC(y;`2Z)Bp>|O2$jJ_T#wepjVB}|I;|8>c?4p--uH{Dj}GYr09>( zAE%quk&f~c$n^p`r4Y^pX*V`HUj6+ls9DJwH>X}=pS0$8^~P9$8jV(2p+^>3Kzb`Z ziYDPaCqJCJ3ZDlB7#)~!!h3ZPw7Gjm`6>Rb12S3e)${nDK3oc^4$}P|u5pOv{vY<< z1I~&f>;JCmzUR)JJ2^AVzzi^CP@*Kk1cC^H5{+xxU0wCrbai!gb#>LL6Mjc7cs}zqJ05^y zeg7>Wo(zsZ5VLV!V%-%!GEX>QTo3?C5SO+s*71+%Mj_C z*xEFq2|kCdZqYVuDOT_}&zn5o` z_ujSsCT)zmdU^h2FKL;l5hT#qbG~T|6(z)T%$VCsxSxJMKfu!Z3)hFA&_j&Ow27*g zE+v(1O{q)7)Yq#Am4Hyovv#)lqsh56276%v(O!E?pRO{{tv8S{h3sg=mA zIMD5i=3Bbpv&eO+i7nL!IU6q@ap zDe$+aIA2&(xAy8_n~ESLF%RdpXg0v@kBhbhjbcb}^FT?;i6~0dK}h-qqdgHiB_A$IQwoc(~7^vQbP_rg|9I`SB1B0EaL{O6EtI zRRk59b-~NqT)Drw%Y%_?eb#YH8BOTnR99vrCukyHC&cUZ1 z?@tiKT=pY;}g! zz=P0d197WDWI6d2^l7Ou*#&e#kJV*)Yw#h+x!5!C6pm^GJp|`1JTF0BgA=)TLc%l7 z-VM6c5L?MLr%bMXO1PB_!68nSlBYcB3{tOm88&-!knC zU@%H9=!hr>J;M*8k0l~a%rYGWIM=~Nh}_`<=b%?O4370WAkON~m`Lq4s>v>*z3d2Y zTM*}i3M;|j0O=)21e>0ip~bLE!T4Cx08CsOkvl7Y`;UH? zE-et8SG6^CZc6ccbp;2nc7)Avm?4h+V^hmrRnVy5TrEAw7vM2*W4d1&h38!Q0(qN4yR}o-2Il*mof#QoX^)?xI|!^p%X41OPuI8X zp1-DbFY7m~aTZbJsP)|}xX*^qTXUMZ(DSe9=Qq|1PxpL=Ux6$I3Rcz`j;5iTR(M-Y z6Mz{C`eR3r(7Vivyx&_ZE1Y*rIUi@*9}Ylv3d+GatQ{Zt9IQ~Q;2|V1=%KM$`1LQ2 z%^DnMK8VeQvozw}PaRy|QbE9}1Clzn7u3Olt7C6?l!fjdn>8oSOpVRziaTU%E}R+v z!8%e)vFqw<^Y{|qvS>9~A|m}5(EIL8}SFcBNjL*^HormR|iUV3_Uyo zAFmoFA0JJ&pfPfw1_^@x9~aHmx# zT5g9@$Mt7+4L!5I2IM~dIio)vYa%?G?KhR;PQz=<^19|~?F{Gxb^Kj*&9J&Yw0l?I z(v@}%+Q}Gf2(x4H^z9hzsp5YCoLA7E#(W?2d#kP#wds7{GMu;gK9Og8ef0`uNz#Y~ ze*+O+PGdSjbmD|FTauykCHWIkgCA!J<|1sC*1508z3aaf0r-2WeU`EMrI+3_jv4wd z&;uon$d`8{0~!Fh#c}2$HE=e#(5{O!yF+?FWD_UA$EVQwkZdM)M!)pY(RE>b9z9V@ zVj7%9#_yPH=<_kMi3o<6X3$+C9|JPbL6w2_YfQbILVf1)^0)Wfr_dI^UX+ADIAPV!pM<5yqEC0`l+0{6o}r%0Fp-W0?Z;74&V-dx8&&V>)a!OqRu<-t4Q z42qIB67ZOlt_kL&s9(d`fyZvVN-NM~qGe^gdhxswuW1CJH%8Zi4-8SSc(W?3Wp;%% zr@>W61Byy*V`Gk3P7I8bwQ=SR+*T6InMlWzAQW)UUt@A{W~A!{a_cb9zT!izkt3H)z#}+l_-bu8~}QIw5pjG`vCNaxTW^1>gHnndXJ;y zNj{fjqNS?-DfPBhF~{4&_O&>h_h=^R?9Sa{h&CrdxSEv8lYwu4dL(Xb63=qR_%I zm1J}^v$~SJU)64{lnCcwrLKC}IgLB)S4E~(H4CcMNq#>$V#H_ZUPM+Z3FI z43XQN|QE(6M$9zmtiP7&4T;uBHF-yxz5mhGVyacvg{CU(-tq zP5e#=`%~xj{>^2OCelS7mr2e;#D%ebbN`<@ulK)8P{Oo^cur$5ozY-+Vf%m1`NoRQ zav#?}BP_&Bk_r^T4{yq~|EJEEq1^2XA=n(^SDN>Ny)(wT!s~zPyslB~f~$asp@ZxR z{x3Lw#OZkcSa6)Bi|b9AH{>>mW`e_2>xS&EB6lcX3hvFh9|L;mgNE_ zheRl0q%p;GEx*fWcYB{kpuWTr3QG>((E|Tg{W;YURRDwcwDR6+BvIP=W}t6(ZGWUX zQIZcUh^I4BthVW>!Oz(&EF5Skp%)S&NI;{PP2M#kB%ui;f{#pqcZi=1nXlwwKMfMU zP&5W(b&{ADnJFq~vC!X~j0^KGeKcpkje~lb^SmhzXWC*M@6<;-5$S+GW|!7LR$@c{ zDs%AN0La7vjo{UH-sVDM@|_y3K~3yq+0khbsjs?VW~m<07}grFFL!&h_uLj8F@ho& z9KA3&)pCG$;954XQFWo6u9&x&S|hESey{ZTZv?7vB*m7dZPkbgdyK!7>u2?w{GBWa zninh1391HZs)G0z8|!fP0b)C1%R(bEz#oD$GfBX-x6jaEAVjbZ20_QK4$W-)E+P`S z21V5*h)b9K3fDv}(O5O!3<&g+Ks8DdFpo%eB~Tg~^#ie~Xurj*i3kM$H@2zC4ZmmG zWaS-Ae^>_#$yFT62nlm2uS6BXALJ2^e$cBt6A~qjiv))ruj2{Z06JU!q0dW~(Ac|G z#2KsIx3u#ye;scU?bZ?cGedt|(Zuqhhn(WA4SB(S50}e-g!iN~@2TI6eq=fXRN}uu z^H4WLWy$Kq1gQMvIyx2K#>xKz*sNbKZ5qg zqFZ@{Yda8=YYWg3IGJ&q4-8q0*q0gE8ZXI#n=XI)RHn{VO;eZa7d;600DOQ^Y3jS+ zy4WfyIx#=Z4CIb~yzsv>XSOS^63XwT6NVT(Oo**!lP-$dLFNI}mV2B-J2bNdXPM_X zi-Q65L6njKFy`AsBPvtPpg*jc19}-CSJ*JqJeWrz?6B1aOE%=AF`=oTvT1EJ{46A z`qhvS9X~RZfo*GjC|j*xA+>WkvlZRvY|!Q9S8fS?zMu8rj_vJR*JZ|Xe#Lx6LNbEe1ZqYsVLa}r8^WQDuL-O@L;rqJ(@7t=J zu=3-=i+;7=7G}PM)40f5C;cA(37p0RmC2Y0k$auEOLafQQkn7 z`&?}VHtK({*LjQ9GW#HWd z?>EkZ9=Yy^cnPXg=x5VF&pH=*!#}`^OQO^ZI6n`Ll=&Vb;rlNy>mK!G=myT6)j`WP z7nue_Rip|hGE^t0kvjk5_*}Ty{ve-m^)u|5Y_DFH6Yf6vPAtRS#DNz=W8!sPm-uoT zZoM;XHb%Jp5uVF1_zT?+y&B;Z*8zN^%G~v3heE+8L%MbsO4^AfC{Yt^&u0Anb3xsi zxAONPjUjwi)?1Ylwpf+C+>J}=chyW6`3DsA2d`gsV8?JV-L3rF|Gi>~WqB9+#j7Lt zO9gjuJl!<^3tp_Yr3gfz3>I_f=clg`*``}OTbPW6xkkt=e``@kqUtY%;_$NG~ z;Xi;!v`H760)6TDXPm$AzZi#{-spzuEH_MdM?47D=o_Jf3iqU}ONDr8pLy|}QEd7J zH_}qBBO`mp({9hW%Iz7UkEp9H9(b-ukvsX@S~^)?5{i`7is9V`0!#%am0}B-Cw6v;^umg7r zke#-=ZpI@gQgq$>t-d|ym$ch;B);VTgmrz;rd}XJCMoJY^};V49s107*#_#^LESrj zi>NTpx7gn`iwq&1KHf>)#U~F6^npMIxFV>A*)~bsbQc86$%28V{XMd>&DAfcD~Sa? zd&1@tc;%(O?fGa5@vvpj{mqRdGqClPFZ1>E&$t?g8F`7er@Gk8(wkRPoHG|@l{a!fyBe~3gU`Btu(6el}!HD@iH zx8r3=G4px6Of6~NN|4t}nyU#iq9m9AZTpl|l$moS%q)@xmNW~KB)^1NlcZ&~CCTCv zfX?exN0Vei33EP4>lvF|^xb0St7NU21X{FbECJ#<=FJp+x>YIqbonXzbVpM3>ApzO zr|XfbPd9?3bS2D;RQGhL`gGe<_32I!M4oHrrD^@3NTA?Pt3dU$$Wf4EHl%HCx2n1cFXSAt~waWq-OjfaEYV-um-i@^udZU?YHXm66ie@lcugJCII)7g+W zcmfgM$wc)gLT{5N0Pk59ReN@l>51<`G8rWm&gWF<@02G;4|UEaCM?#hg1@L?e|%+V@*hx!z+LDy3ChnWPb4jLoW6ufCY!;DLoBCH>QqFJ zq(5H@JtA6EP<7|qZ0Ld73!EvX6H-0FjqFbK1A69RsQnhGWOgu+Z)q|8RuG0?gzVu& ziQ%?{W2H1wHw)F0KC08%h{!aW(p>YwJOTT6Di==uX?AR}(h9}&wcD11K`kMVnH%nO zH~Ht|ES+-7v-sBH@2}Jo&w1hT#$54#ak`YMKI_R>*4&#lfV`u672h+*A6is>>{tq( zcjPbagQ~~=r4Rn8Qy*`$#Ua_=EfB_2l{swQ*^&#%<#l_$09$^*Y#}KTTXjb(^qQzn zk&^2IAQ@Sl6ROO_C+fUB_8E(cq=`Z%L6anh$3Xln7RMO@3r>Obo zk2;TD&`5#P@FBA^sMj6qgQ$!zrV1}2$qK;9)O^4ax7 zb2Om&Cvh8rCY~EUt}>Ki&Zaz}w_H0)w4Mp57Lv>?(fZ#J_PA%!FOZ%+D5J=00)}=X zhRK|MpqB;ndL)v?F|T8yIYT^mf@aD5EJ5L*1}2z%M}HJj{z>v?CgO4;l*bgzwV*pw z54sfUd=>3OBH9OhYqm#A&jeNq=>!s5xY%X#v4?Zc$K#-q_i;QBPcjNgX zywvq4!Y&%V@DsdP$e#WrqM2Zs9r%=$Q!Rd ztJNIpHFkgf%vdg6&GGs{w^B5X@e$4+@8y~oHSHDyijQlC(~_~@1|SSI5DxF19W>bM zo*WHm+MW;5o_PdA>EsUG(N{iTh`@&p_O<*d2M#*{d~bEB(mKH^qyD8TK@vgb8uI_r zZS%cs#3J=kWK8XLqxCHE1mn)nVf1ZwqqRpMuXhrln$jgn)v4DK4RHgE*=eHmJW)Qf z1!Xq4k-OcE+&ymO9&{s@P%!GhqGJ}cZ^jh)mKa}v12ERExG~FUWelEiV|J<=o9o;- z?GmkH_LXQIzr&(+%#H=TEYVDl)-ek{D`S@IIMlP+jah*4sQ;LbS@4Y*Q{zcMmtdBK zb*$}kV|HMSj@hkl%=U6)bG#d;AGk3~`X9#Zr;dNwjoHpfKqQ)VWA;@yW=Fa)JI;;S zX>sb+`n@sx|M%?wO3xO^18EHuCgL0zNgjUt_?Nm^89nziV}*M>?DmEwGTHWn8(!;b z0B`H+q?YrESp?s2IBbU?>goiyyd|G0el7hRZuyiz0d6@9?^iyU+(|%GI1)EqO>q<6 z3~IEJ@9PhN!3P6wPwJUO?yLV;E}XE?!=Ca8keQ_AaHE90pd_bD>OQ@G+B@neFsT4N zm|YnnkJF+!o1?CbDrEh>`RBGETCkIw#MIASSI(!|%GtkSmGQsSwQ-6@r2F|^#yL-& zAfc~nah|lmxk%fThh;;9PAB+U#Au>PNEfof>BKU#*?%7NQ;=L)!d%}F8&MhRv1yjQ zDT3P)-;PxXLv@3~aYE;~H~lb4eWYKiEl6Smqkw9MM7k=iPnQM;DHHF>f|jiS$O z#Ap$aF&HgCFO4RKunqi=gD*m_3zcGP7p(F9Jroj-NXn~t&i-gilN^YG}473)X^<+dn|7H$mJ?=reWGm5N zYkqyxM^^n>Ae|8FV%6C3yRw;;Zl$K%2y}MJIpPx_Peo2*#8X|yGpI5cl!fAVsUo;# z-=~RT9zc%g?F}UO#v;rYuRo`ZVWXw3GJR zrCoGjM_Y;fDKuock7Myh(ovbkk=OXI&Zjq^o@RtzJf!|4PjgVHWKX}HgVypQvOLyn zb&!}?_;@OSH<0D@96rW{y228F?oT(ee*w~Xya&j{UYF$ayf+B;Q{XiE#+&~?f)VEUtIjoqc~ptiTnR(dvvaBiS^NpRfJPAbRamPJAnKSR>DK=-CX&f zYI|%Ju{hsqTSBRJ&Z;rkWmo%&=KlNLy4ALSnkWe?m%~IcHDzi>OA>=-sR{mBM8(Fa zW5(+->XHGy&cC1c4=_4uvjdHArUf}R#&lDSE;c;b7Gp*RiCH;^$2Q1Iim5-v$zqHxk5uv%Q##OlbpA9Kbp+2rtMGgWC3rN{&@dQ^EhoNZ=G0Wkf3dL_kl02C`l!MK(u8@G|%PcEMn9Z2)g z&gj6|9FjF4o`qDkGEv9O%4q3Ib*S!A0Iib|DVk#$0EV#40PieZ1~2Cr)#|JO$vQ=$ zdkF)Hk)_F?Hp)D3+hSo%iB&z$!q^5#$#II4Hb({6O$fTl=7^Fb5@c|ynWBBaGC?|} znC(h_3=Ud~`P`{|h(-W34!j?SG>vv?eIk7i#_XYF^HI_x1*7#R;|qVD-8ETlEPqfC z#=k&(?L+c|+{BwH@(4~PzvAy-`QOQd_s(FBW3eEG%5I(GoUHcUL_sgMa$`R>R&q>H zu2ZKpUTfOl`HOSLQjJnW&tRN+K|edaQS&U+{Im62!&wP(yH{{kie7!M0wVTT4q6Xa zSutIDYp7M|mb;1CV27#;D`6;Tb6tVzsr*HT*%4H`5q``_Pq;9%f5g9epD!S2tP031 zQbY#o&nEYZeqppFAr*h2J~n%*RhKWvipyrT(}nKUA7jL3CTOsFb7%75ny+>AKM^lT znCIQp`RzE!|7Mfxxa7#F?KdKKBgF?a$P^UCm58MQGX{WL0R44!N2#^LWqN^)x};!z z{YJ-MXj@0$y5IU|ZQM1WeYCrIRZgh=c0S9!zP)C_&amuuhpDEY9=HaCpl^vMnvNek zY9at2^tPz}QTlfvb#(w8Try5E#{$XM3WWHAHV~Y6{niWM*^~f=Cwdse3?Ghq9oX+1b%z4XXqeV5g92B zI@|HofTd$@5QOte46c#>A5?Ueok24@P=*?=X$@;cOHc!Bl5;b?M`}n+<@>o67=R`) zALoCXEVS#*OJh@Js zYeKDiTvRaTry(Be5cQibE%@d&2DS+j9CZts9}!G-0Qm;-++&_F> zl71k!62kf{f7vRz%Ho@A?y z`0V7j_-c4!AR;hBvw{AWTEIE=-=>*Lo8?YcSPQ5ZxWl-}?MhWeR((>ld_4OKy^qH# z`jFRrCTLV6#5wB^qoYm}{{BKkEYuNZq-~6!;Zdyu&tI%*EQ2uS`ianJU5Hu=U?Nx) zxj3acU+Uj9BPyS(L$h*qruX+$!?Prqc_j!OdMcZ@h_=2=b2b6P?34NGdBzotSIAY) zT8nW7`f%j!mH02VsAhu;Qsk5E?(2B|+yyM+d>-lQihp|As4pd2U)(syfqCJ*_=*7M z$P|x-;X1)0+ETDLT)XOaw$C}$GoZHo^O;M{z{W6gl0T43L`W7TnXw^0LWKd{O!AjF zUba~mG3MS?i)-$wOD2@XYO=&TmV7SwAvj#wiKM;rkPlERZXuhWR*$3pb+VNyiRFz& zU4QmP?pdiW2PllxFbofjV59YE=;g3Mh1 zap8MS?(@0hRnW`A`)Ed`gjc%nBQ2HYY$hGsiO zFPEg0tdHQ6^R{KjLyHRc61BBQSKB5-K??T3@58kD5cFkz!j6HJ7MkVxw8pIpwA<$5 z*zInX^%Q^cgj*ag(CaO?wc9xrnizKp83mEdr>nmD}6rFZ;8VcDj50TLu>X# z!p`#U=ItP8b@kDKKZPHKLkF0l3!Vc6m>3x*H$4`wir*DMRh6$NWW-Z?g~w_!**|Y* z5Fnx-W&dC*16Xqi}C-MlyC zmd$LxCVfkP*6GiF{kf<=Lv#3CU1*hRbH7-z#pVb6=v zlb^=;ePS(f($IrqHMbJ4z<7VRd~*Ej-~CRLeTVKdBG2$C{{8NIn9DP8fUG+?Y$yAB z^??4_8@2#rKwl$5B1T>V|1w6#6BQ97Y{bx2&evzy7t~LRpaBZ@2uas))R>Uc^F#7E z2=P1v2WW`)$Cwk*dg5ZVEQ_(@^cisZf$?s*D8GYal-?HOe-dL+6hVI;BUfU+`wW}A z-D%q2{_i~l%N~{e-}4M1o?*~!PQJf!p;etXA1?^>CwxG4RbrZs@-~VIh-?QkQ{TMW zOD4sjonfRteJgMCkgb3n`3q~&{7yd01R?Kr$0~W)vcoHd0w;UW)l_xiIaEXuJ&MLtq{lhE9d$s{z z(<!The;m=|s{?kxK-wfR~dV%G{hHx#C6YP%3 zo}F$k$7rI0&iH(hDFVZHni&vBeHY@o*k0+H4S~-donM+6k*GzMC(2GLNF1&8TuzeF z0G21~iDAj5D8DvY-b*)IlXIX)q}14+ZuX>TQiOvk0(}bSzI4+oRk&|YGU0%co~ATz zdaP*a{P6TOW_q9j;>RMJW6b8DY~{lY-VHrIika(5)M;-~j5(#_7_~TTzHoP4%hsyG zf2fPBiBaGK)(-HiW6Z=*HjFi)TURhEM9UPuW;E{17SSCoCzglh73x3+i!mp)((zgy zDF9uaH`Yd$LqSohe=GpD13j`A%n1nxi$en$9jBsC*ui88iKWmu{h|3|?CojJ$9+m7 z3uqUME5e7~e`%1X!08wm@4-Qtf&;^bVCmI~SQGNdBse0fGR_Q0`a=^kd=w>| zeM2S1`Js<3^lI|7C7R7)p@yz8^OdzKR=OpcO|k8uSH$UMJLB~9mAE`Olj4O0inHSH zg~maXFJE=FG}48c|5~>=zpbYD#ZO{IcLsFMmD+681boJ;_-;_Ke+~zU6itNQ?z2c2 zq;sHHB~^`A9_k@}f9Msz;&7v&XZgIl_k175asLh&4ttRDxp!cs-)<|i5Bk76$_)UK zV%2neB7j?6vl{HQ^AJHthGZX-Z3x6AGc8Fv1Dca`1J;5hIg7ZQl+7k8Sm zB+Kjl(#u+BN*Qj$<7|Ou;OCYh=CBO)+@xXKjUig-Uj8Le>Ffku;1=01J4v^%r)ln= z+GzgmYp~OoK1dC0H1{Y6>wGnyJ`H0;h%hbsLnM#|dqR)3Z`hDfdSBk-UQ$d;Ua|*6P zqMh;GdcM!urMA%T-0S-soEg6SZkg|M2&+5u-7V$8=N$HWReY)lWO)> z6yx;zlXZ2?{|{j_{-^4>ZtvC|&T^Y|!KofQsoEg{8nqRA*xsJfxcRfoo#yBjE^YiK zM;{hJbta+VenX%ZK zFSBB?kz(KHmgoOF>_*?h)zo*2{o(hhjytNl*-rG(E$a(Eag%;~KYVVpJ6Fe6s>hQ( zf%_SX_->XD;Y$x=gHPNLORc)4Dd3z@!3Hi`_h@88gC=988;Ad2XwT=t2mjal zr}Psqv19jQ(9rbuS2MN_2hutP&4(&=u|Z=@=#G+qZoJi9O9^24PI-2-SI>>bhid3p z+;8np`-CDNI0w74-gSF4(<~6>e1;8=OpihNpa}W(8bK&x?Pj16}^?#0M4RxIbFnVNSFL#<`51W z*6hpBv%QOG`PoI}UCtI!&h8@edZz808D5uZmS%?YGtH!;!?leav*l8@Ig>5W6N~9@ zuj2Z?vcGmyv^I%$~CMat&|2U<^EMAE}kk(O2GMqm#_Qz$V)%*&GZ0<7$$^kM>ITSBF|c zZ;h6NNq(>JZ=h$!$lN4Mspj)ofkP15JE>+)yijOkd^I?8 z6O>+=a2Nc|i83FD8od*-X1i0&m855=v}1~#PBBAM^wOO=)J{Zp3pYLUeqeN*Srpvw zeHy2mfwggFTDX^eGfs12A>+mh{6(<>|YBp7*FYy}7k{B~FIlYu3lf{C1{Oyew;H4#khK8}HT3fm_=76O-Su z)Uh>{dJm_`8~2)J>6ydZsSFMMafTee&ulM}vFtvxC{r%qYd*`AW3A2hq8Vr5WJ%vv z=CdsMyuI0;ozcC$#-NRB!w`{A+nW!IXTICs9M5U-NjtM5SLU}jeM-pHw(7d{RV#C) zWRa1r&Ad{#z*(D@*`=N7Q2Jr$56j4LIAyiu)^f6~m6=~&>17pUVM{Z)qS7-f$(EL8 zSY@S0-yj#8o0&Jt?0YmJa-VxmewEBaEzPWIGN6SySxu(4GTWlt-Jams4*+AyDH2Do=NK5n1Et#LRFz?+eQ|>iaZY%c6J*IaOedv7zvi`ZvogQ)^p(r_8(8 z?7ma)a_&xTRjXl*;1=)3r=iQc8p zU2>tFnQ)hkZ*P{}rEl&1yYy{dx=ZgqpsBv=sZDi=tZJ&mWmnUp!`qrpcMrEzw7Qu# z=x8&&@%iSAmX)ow{zL7Au@qU`-@3tlQwjI|VW_W4Z#3i)88`cHbE3D!nd9vC;>dFO1 zEm2@ou=+b1yWdyJ`ZU5tAX~^2Ko;V!MX=M7}YQy2KW#} zDFQK9ejV>HAHu5`r96b9OY*L;;N^g1_0(1pc{xf6cQ4yn50jjg9hP(thLdL|So>&r>x6 z9`sW0rLQ!Vc+r*VnudV{gg6kPq$BI&fOOR8jXB#fsQFG&KBGVAj0riFM4{OmD9_?f z2Go#1j|;V@B)LGT2dqo#*@TjryF|+pG8HE;^o zVrgbutmDVZDU_LUvOd);j@MM^`SJ2eve}d%-BZoUg!DeCrhB4{PBjw}_3W`kz3Nh8 zb@<1VlVvgx_A6eeq<~=w0x;1sHJ3nr^jQRZQnDGtP zuGS6FaSZv^@8HE@%NX|UO$TE>u@VL9%M;GG`}ffBN)57mxkWcj5vOp)l5$%ymIXy= z6|RoyPl0^(1G4_r3huj2D>sSl$~gbOFllZLaKVWH`*12x&qy&~dHe|!6AgCgp$Rb6 z)BI=dHPbXK!5kFXA0#Cgx=7q*^sx)tQv|xA)U@^Gb{9-rC4~awECRU1P5gb3|Ka7emM=W>m=J~X ztokiI{~IXwdN9A#>kG}1HL^Hpx!mTHVib#ekdV$XdT>++`rCmmN@E9|Miv`JE3T3H zSkzy#F-BCKHSpRS==M`Hed$ZyJ|Eu{O=#*$l^gHPK}E(^f{3ys(PQBDN|3&ZW@rNT z#Ip$+R)&YGD_i|D9RhRwqyAJNoFq1sl-_#xVNpdPG0V8iTIUk= zqMulAjnQWJ^;zJ-ZpjJ|wVQBiNre7XRH=%8_?v(}IH%|8nd4|-ceEJjQ(^? z=4ZJ6=mXxhh6kDG9kJMhmj%k5amiDlSLw5Li;T7ZcCL%m`oBaqYTGYz=ut*})wu1* z{uXt%x|D7q`FNCN)7Lx7-vX9;ki3MlO?;-LNg+#LcM18+wU;jW?cXGHHh`9oSk_5m zM>$C2r6Q|C=CUYA@Q09x}^SmC3U^ zb%=IFS_K`K_|y^Mxyi#w-$QTAiE0lXp&TCk>`A+6w=4tufNTQzHR5isW6gYpG#fU3 zqT8TbRz)yZRcwZqy0?{XiY?p*w83>AULP8R3q3|E_>DGDc=wusSkp^ZB7UO-mkw+$&M``O|5X@0voh$mEipSoC%yH96{ z4)+mQAiM50`=XTY7;;5NfhXL?Opex~uZCrI8?yN73Onnc;$LbFzPX=zR+R-V;TXVAedNw_V?TbVh@ zvZa+-oGcSso88GT%)19qdRcyt>6R+vo16Zr(y6%_>F7nNd7M3&DpOmSL1}WdjTxOL z`EAS;N3ToMvlr83O-nO2T|PlnPM71Y%>qZ~r&r%(r)ZA>zyalPJUs09LE*6!&&CJv+S=G$E zl_gv6Gs_+Q0XPl!no-%ZvaNYHTNbu8d$VP9TXWRWor_iC?4e@Pvz-}STspNgGm6W( zwq{;&+0xeRES}!)KGQ8n@>`l^IRbqEF!PpXWUkUnb7f5{bIH*oO32byCclL8FP4xA z_nJ8+mEKiS2Ghb)O21i3dfjU}kh=LkGb&F$Yi71M`a<5H4>dEJ%E+*G=Djj9r=3dQ zU$!&H$|Uw|Z-$nYVeQR~vO<~svU=^YvNE`p8Bk7owlc%Z$b&?*D@Vys7O7mhIYon8p_#SL+^Wm-}_CE zn!<1%LulDOW?@ZjTYgO)2&ZaJwLJUeTC$S;P%Zu3_SMo4?QAXmO1svUo$bts+H$m= znN?ekBYoG_O2^fS+uhX6ts`5TnpJg_v!_nk^{vg?y4r`^>&pDr=5t5)s#lI%j=ov1 zU2?P5w)4cbh)9DLv>m z<&VBi%S^nj5>IjZHW_x8>2bUCX=2XbF4LQuFK?F-O--*mq<>SBe}{ByY6dryt9O|> z4dwh@W=%sm+Qe*e^!tu~u%VVY*{}@dKWHQ;?=oZWltXu!)pyF?yUeLOWx`$N(w(xn zsp-^M={}8>Kcumi8PizHPi`!4HZ`*w>m3(17FxBxu|CUzCXBJe>iownd?2*MTOL04 z55=FE*MUrcak7*@+laPCJ9<2>7N0kqKRe?~PT)`91ljN>Gburi{@EN$kc)p- z=zuOSpm~ykFPKh=GT{Z&hwSYym?4R><^|m9B>x375slOfW@e&Xc){#Q?C*Dd(OgWC zzAu^qsj}!rGc8rtzGyb4=IngYbWF=T^rBgwmUsR|b0tkWy<}cXmw_*tz3H<0ALfXo z&!j8=Qo2y4Q-)B!SB7xyzznTt1XJCMW^9JmzcyoWkedxCE(4!e-&wep{_HF-L-=#9d^f9y zohruZ$<-CL85P#9Z9^8aq$sv@WVZq`)!KGXqh z8aLI-(4#@Mn?Mh~U8cTlcHUlP z2E%6L9Wsa3t-M3F@#mvEWIumCze7&)=Tbw_B7+;r=w4vOG?EGYxqRn{0F{isTh?%H zT(hS*7}nesoZ8$KTvu?kr@5>7baPkp_2#bT3HP{?lUtm%T(|7rqTQ%+Q7diM_Ez!= z57V#p&1?8`xV7xyPmeb834bQEk<0v9+(x?5u4QdSi|lJFuX1#@t&HW*ly;7}qg~dz zZa}}^uT>tqUp5k+IR1f~J5v7A1JapOqaKto{8{{<%;3+q2W2sTc0MFpd=1M%Ky?*&I z$)~HfKK=_1mOLTXIOzYR9(4Mp?7@J$3!dnuJOJHo1bw$mPI5}OEgvA0qEv_$K4+qlZ%c7(l zM$A2xE_;ib&(aA(F!>soc0zx8=+=mOuKRgYq4tR!sb#)Yw|jMOA6yp!dM+j(ywbj^ zW#-3f(EgW6O`)$RKZcJ>s`RdH-cOaT^~}ID8C=`UNRwH$%{fQoh%>LQc_&@A)itY8 zK-MMcv7D%jNG6-=m|;a^Tpcr}$R9V08$r=rW^LnA-S0BPn<#&K z6M>$5m(uxn>7}nXRnD%a%DL85IWzB8jt+vK#{1XUr)JNx#j&!>x97Zn6l~CY6jhtf z*S7t)tR1a;@6|TERUK|2>2;?gC~r&LcYuTA8dzjIXl{03Z6Ig+nfRUf^1ebl)Ykg0 z+n8o+JmO$M(Qr-6t-;?1({@L(Y1GJ%6Mi-5nSn8M?%BvLIkt5AgD#p(_m=uNrPEuv zv__9{?An;#cnbHwg7V4%5aJh#S8ibgwG4WO3~DSb4>-8frwS@cQJLaN#n^ma#wcEX zgsoD>Lo!)mI{9F*xw{%%6aUl&UF;t|>B^ayQ5EZ15jk7Lj4z^hDuRjSE2XAqwubp?QS=#fQMLN8S_p6F*ARbK zFX|z-6qAsZ^P1EdkMGN%v}(*MX1~)B$M*F0y=m%YFMA8w2mQ75GCNaOU%a;X;Ttf> zEsk_aR@t4DWe1Lr1rd4#v$NkN?jSN4zJEcUwz8aNGrwDo;B}+*jJB_O+evJ$7kw1D z@@JK!Q9mE6v*z!v`@1#3Mzj7+LLmd(muMc{E0^=(#1=TH}vU9LL+L;BMpzM#6ahmto%!ls7Vs*ui` zg!}yHiQ2aT%A!dGNbp3gkaNYKLu{5Ovj`_re>5UCrv?=Fv>yp1UHs34NaG!bb6xqh zd9=W{_B+S!TP{Y0^?^ff#9tk&v?R8KRL9{;Q^OP<*8^Weu{GRrRka~J@Hoow<+crx zNJG85pj`mhCYQVpZyy*K3pxi-z!Y4RROSHVnPB}z#8L;w@54}zH5@^=DR8_ z@vP5x3FVLJ=p{lA=l$;5B}1JbJAtmO`<~!sOz4=_U+8D^lk=H_v2G}*@OGO+yXb+` z;?04ov6cEOz!{Epqg`!eII2H@hq&r*w&d~HB)@cK8gfIg3|`?vm!bnCc~?cf$8XhG zx_Tcbq46Kapji@<1<7V3KJdw8u9|E)!0)|BvKbS;;Bl}$o_SLpeBI^Ax1fe@BP;P} zyi*l~1>B_C{B0(G1|{4@%DSRA)tbsoK-k`yD3B^OQm0$6{t!$y`dwWO-rG4us?ubp zDV<9Og!lpROS}J@Zt*QT9IyElp^1uu|8^jQG7dUulhhm=Z-xbBHVFx%1p0bZ9w(>ZFGEhT zP#?T!>$WGvSOTkO08G7#T{|#2D!sZ`Q}8 zK_8Ei4uJ8+-movu%#BrgNvxK^c1`(Bv1PdSVyp~GFx}&{ozo)r!rk`fPIgBU*=Jf0 zOeWT&DD*NgRCHh|e(~af?8g(p(WFpAi7n?Wd{8YqB%A4>^3V!sk)-A$uAK$OTe9L> ztOX9y(O08)=mooCBtOyYk7)osgGK>u8e55?r(=ub>^wHE_yU}uBaY7{S0$O=@ipE~ zGF#$hUXnQ)uZVOV6J$Q1rU^>FnxOoVxD0^3m>`s&hJFATjD(uhHYcL(FQS1gw`dBd zwh-OGj{3&S?TFU`-UIRpPViPfPbO z)69{eypmx)2_`_lK}ctsnGWbjn)x8Aw$h<8)V42_15Gf{MjUiOo60cnML)uTJsXy} z8Rk+rZ*+!P5c9zC4Dwydjtm@81bPy_2^nCuKFqbic4&XB`y#CKvcm+ z%-ndHfeTK&OfJI5E&cJ}XkdLQ**jScgFBOJQ)Wy`3HZlTq!WfgpnOx! zmnr3-C*$aoYG$KSrp{E&ce-0e9X{^#=k_r{?F`7YL9 z?8A^(@hkQxf9 ztgMopsw^+Cpery7x{$6~81NH!#lJWm|A4~2=*rSBazWe!@)GjAi>Y)qe2R2)Ez&OH2BG87j# zQyok|rzq)9P+inB+%;;xJyx6$0^+O9`s9xGNO7|{C7D077dy9R$ zxEZEi-y8Mk1O2(AKfNQda@Aho01N#)AOPCVc9kXzZ{`Bz-wtSW+Z!&qAoN22Ng`|` zt!^{M)+GoAm)d2dp7FlYh?vzxIJ{W2U zpZJH}6p9|Dg=VS8hwIJQ45-p_v&&{pr+nWJKfY*dkP`Go7Q921XKEd!vnByQ;Mvul zZ14afpc;4u|9-Aa^?8i$Nq?UFwceF2l%)_nf85u)!b3FXh1*wr<;gbDoMut?_(=LGZ0u7D-5Ykt5E z(Mbm=jQ#<8Ldgq0LbvT5knv=aE1Y6b^#IEn@Gr6Kh`&LS&l0mL$rt47$%Q8yY%4vE zwuQiHf<~N0`xXDskU)?FB=V{bE<)L0oCn;Md__`rV%W?J%JFETu|DJ>`H66G8`E*NG^BfRG`Ves-{TQr%Xi0-R^Md@?^($6UWrL$uJeBl-8oQV zgr=gq3%Y}pn1V?eXquoQGIAYZ+)}atq6ZphB=|TZx!b;OOAle9J{geyr2%!`7MNU` z0G*F{^6~U$X|p$;Eyt;ZKSB0Mx)~`u=@VsN&yaUYo1I1E?b7CO5!sNZc2nrFnR@mu zN3Y6MHQa%snS)E4-l{@en)Na_>0B&tYH6GY2Uref9O%Fakl%ElV7%R|t za#H4U98g5W6(!uw0p1o|&?PYgdPCwMz2f8KNtUB!sROjwnY4oY-gn-Tx*KQ&fBy|; zZ^99r(sriHpc_rkj0u73H<-Cu(>Oh>yg<(=f1PgZLQ=XL%sa&D+-NpA`eWTj_R|$% zk^b;BcTTYE3JsV?s|i(9ryX-LR)v>yPIJ04QDzY+iIphb^uW_7U8B;Vk0mYSs-@{v zvO|A#Ah&2vf7xV|EFTc!2`I65MIq}2r*jU^K|kEQlJ@`7{j;Oext+3eZ+ z>TnunAAtlm$W{BJClc;>WQogycW9%bP4u`0q=qhXndZCL+ zgH>Gj-jx;d<{5~7_OL~0=&cPeZ2iA3QAS5rMV(oRWI@+-sft^7|-*>Booyo^!Aiw4bvATfgLf^v|wl97+9Y^_ zPLicPN<+A(Mk!F%DBMJKgd;I?%?WM%HN;|NThK9OP8^l^DN%KRp0MyTK;o8jIOL*#WlU%eY)_w|?f zBSMO7fg3D1>(HG^Sr9U#qbfsxsBdquzCB*t@ALS3vw{q^)2Af9<6=<9()pkQhyc{K z)6qvjya_6R-BFwyX||XVz+K|4<=5K;N81NRJmgV4NrUE6pcoZQ78worhG=Ddw1?<1 zchl=$X^8r||86fG+5MCKE?GtPHOVTYZ6gl~2(9En@nl4@qHe%>3)sA5a|jJ{vI;+N zR)EopcU?esB{SBQvzc_YDH;L}W+nH6lTT(zGNwc+9_NZEe1u;buv1>$Cm%t-+^gyM9!vY zTt66|E?VGSLj2K1#OcWkae5Nb2zoGE?i4e@(evW9;x&%m9j~`N>*yZ%GohSWO4P3EPqYmknWP=LB1yaUY7)J^BBIiJ z@g8J}eL&RV*3B+D$`BygE2OA9W1|SDlSyz;nMSFOdmuiJz8nCqDv->lG$WwH|FpjJ zAw*Y46(C#jnH&IF&@m2(0{dNXbdO+7t^u_IouB^bsEgB`Ps>@}?H|#N70CY;k0O|l=Pk%?ZvhV)N!PkN(s&nmT~p?JSQ#R9 z5+ixTK(4)DWw>X@dMK$mntZLHwk=V|SS4xTMo}whctzUq_X(K?@Q{o^8nWfT0qU#% z0QY@DRY8Aaqkr0}f#ZUGhYI)dP2l_QgYMu!{sCO$GX0^-%1v-0ongxiV8Ydw9$a+ZPng3~O+)ey#FTXIIBJUu!9*ic^ z!u+A2z;};F*0)ufa^ih}wE{j<`0{}NmR}C_7szM<)GHW=P!FTH3WQPdx#gDbE%=(; z4a;=*)IGPm2xz1Oq#gS?Hl#t8T^?zo&K~6FaV67oMj-Sdl}*qrNB3Z8i7bz4nH{NN zye9<0%=Df_IT86NLUpAP09)>AhdGcZ^_?0)4?hRSY+ts9RW^Vo+GTneL1j~rgAEZ~Xli+;h^pjAy`5`xn)nC* zbCVnOJ-(2>*rA6`a#IBoG41u$b`MJA*n;swsg02bYfyrNCkJ`7a;Be5r~sCI=C(%CwIPsnD4II% zgnn1#Dx+AsSPt-a=EX(b3fUi55VcLG_DTt!ZgEEEBwxAz59Rf9_rg;y|>I&G-erq6t}S zg%=roe;(t>7FhpdtY~xH!dBx&yWAVKf{WxRdzvz@$beFCjxC5I$9rCpoSJtae;!E2 z3=a(k`)n`iP1#_rGg6Qrm z5$%H`yLV7?qS;(3Jjuc$)yd}j?1f^mNDZ^_(&Svqlt<0TBC>v(K}G8A6!UhGdMCwn zB~z(|KS_}?JyK2EA~hk^w5Cj&nNcX_PebX6h1aJgQD#WG^lDu8 z)V6e~|7g1Oq*aFbrdYhGDgSMz8B(lfWSOsv)kj$`Z6swxw!piy1^;z+CEmIp89fWs z%$#)KeL0eBVsLI2@S0q4^~Zw*xM`k@WV<}W*pA6F?HKbs`9_EHWXuQW3w~a{lv$TA zqjxx8o@!elU+}Ghg1u#Ga-n?OQq!|cj2uTJy#4<_^#5l*G@BIq*?ZX7o?#ZeA`xHv z$~MD{=(AlCRNQ3NSHgF9VI`62&Zs0D#guc`^r!^nRaEWdweeNz_1xu zs>X)}Umh`IO4VC<;g+hQ5wo>a9l|=f3>A)q7Eh#KSQ^UO8Eg%DLF1`x>iPiDwyMB_N}Da zr@pYSM2$(S3XF*(JzS73Z}&~Q8BWS288R{-WSEJS)Rqhxp95f6m6`JH-7=;8 z&`c?_IIAWxH_Ef6%sbiUP^p@oEhG6=_Gk@iXs(%1tS01|e#Po@mTsBqm0t>;*rt8T z)PZ~{+N{9ztfU4ONLOYS6oT1RkVTn}h4SnWJToe(8HJhD@I_$?_zp#dz*CB3<5*r~ zdXn9ym`~fGvYA!+NBnJeBhc@X%gRd;G8B=dBT`Vi=_e&`=V0jRB*UavFy6PO3K!ZL zJ-^5jZ~e?5;p4Pf7=yh*y7N6-t$h6M4+1nQmP!JpJVc1N7@J7~+s&6dT~? z*br%PI0YUAQQ?tx$Q>xr+nWvH%gEAl3lBdUYq{zbkRZ<>@{-3l+sCb}1ke&KaNbs` zV27tzbkH}MQJRc6v(JQ;2C|Bd3WDoAO4x}I=fpJF)?gJg#fLn}!%ycP(hDg3jA6;#zE5sqXsGYhd@M;+vxVMu(q-MDB3G*dZ zg?fhm7G;HNS|b$kiQMF-qbV z^t6L?1ycZv&b|2|q1AfnRjve|$G(WA2W+MFJXY9%a?eTFIUd6#ewREq(|J>av4Pg9 zrO)&F(fXi!AYAk59+DSalZbYgtEY$zawWtZLP=5ZONyfQz8Lq72@%rA&wS<(oQM$^ z>Ta%IR8Hgls@xx4L`ZIb6bvc}$}o6mWRnlqH6#5JsvK1`R{h6}q^Q_v#L5`VNlg0v zYMv|bYS;8YmrdhF44r^G5L3f1gUF^b*_TEc?AfT{v`^~f^s(cTl*`;g+gSx7)>5vF zMUt385(u%R38_rHb($^8);rBYR}>3)TsXrt@LKO~;%`Li{g;hM-*7gz6=&zWnDD&J z1%@UowQ&4g+v!0Q>2D)eu*Lyj8v<<0BNZLmt__AXR_3_Y7pp6Mq`sZa6G0Ivo_)i3 zaH1!O`{h=OPRLh88?k~Q1J3PJ5ob$>-!Xp%T{?Upe{uo_E4;`|F|vze}nns z8F|@HuWOsft-X!BtJGKf$8z7FUZ>XkJ@O>Z4x15^Y2(e%t7?{sq`X{ow?wM{s|2b4 zmp~XpfqYwEYr`}g@=`c9kp{ z{3g;M%NWpZICiR2Np%s+KOrHDUoywA5|*sW@NJ)Y{u8q-h)~E1R&BFcMO@Sqdgx9s za|a+S@VRf=LB57OM32S_|MWU13q0Xe;4P8X!E6t+a0Rn{T~ldfxt{EP98u+l_7G@V3WK>U^f88F%lugY;a6SngrN%f75sOt+f=^Ey%JP|~ZyZas7iR#o z6?0PCX4(Dx{hNry?6QKV1l;Mi!D8Y2xCk&&%51@cyZQUBLcmlkE*^`+l9n6wPr^r`cDnAU{m0jeUj@7L- zri(M2N92vN0k_JMJ!S3x%jMmB`66Jgl6r+V7Bzkg{%P|?SiN)$l4&A~90`l9wS?xF z+`$UuVm4{qqiS(ryTiqJygi~M zj9eyn+K^E_s=9u1Q;?LDRwjhNXTy6 z(JN~5_hHlAWd+L+2*g_LL9!cN6PUN!g?P%j68KZ1ez+3Z!ajLi-_%yNd;RL*LN!fB zbf<5%CcnWl|HUH;38s_^{AK_LA2mK+SoxU*?k-R};yYy&6dC{Uvl z%f!CPP#JOr?(LTu(-akEVJzKa-{eHFvywBYe7N*}8FCffY6Nii5VlXry zUFw^V4mdmGdfFP13HV;7X+!Io$E5YvIcbz$m{XG)N9NAbT(l6C(OdauW1$)=;D-D} z3Lec*D^`htk_`R*fJY{7Ac5>sP)=Z5R}d*9RZj3O$|EQ5uZ>4}69 z)fdOFF9|%h|4==?JivnjHZ>9Mb&((`XEYfFH(`V_4PznBX^o983KRxJ_BAMSNYNcE|VD9kVdYIL%88lr^=?TUfS+ zr$p}d8d$iN7;P4=R45K*Z>ZN|IZ%FleZDf@^DcK@^kQ~S6q%{WI9q6gbPdwsBQN4M zAIsDHq2zqs40aIIqWQDiBlo(wxAIh@QbahdoGTZW622vMatU(0u9}O1LR{=J)e%7v zs|A7CQoos8DmMM2OVw$=8Coiiw~LF2QZF!;{op4Bq|D5KlwTCMjAwDUSy?JZGr(-3 zRJ<}yghsna2wNiACcw`RnGPjtf9QnE?fnVnbcq_3I7K?~X0o%sL@iDJ3-CwL)bdi* zB&EIF=!zMAsd_K9m0T=NAEKKfb;>X!U_Ubr@bFCEcSUTa7XW{rDV+S_%nabpS!PkO z8k{BYoGi1TSgp12!7Q@|xnZ{82V|S0NX@eSz+YxdmvKG@?v^7mwXr$1!5qjDd0&s* zJAn7(nlVMHOI{A}ggjYAA6xi%p4m~X2IWf)6Y_mX-{$7aFn^zKdKIamNXJUmQwrjJPbY%Wj^bB|91un6C*u*_*1Y zB1`fz;Bjv1N915|a~33u^%n4VzN^1aP}_{aUHlJFvPnST@qxR+e;eHD?jxmxZ1qzk zSzx}5WKgDCg48@Tp*}ZfC&pT9p(_t$!LVUY4y%q1GitT7$tjPB(sBY`cz*Lv1dB8? z9P1}S%th4vKnOfRaIxkI)&!g%G)uw~_ZGN+9O%h$0xl$5K?J`(tfP?DG#46#d!yqG zbuYvQC4zAFKH&K>47_%7{Efm||A`E0cJ^CjRxX^)!_~egpn@j!`&yj_*xrdfky?av zKpX91oY+ambci>wwx)Ywg&zS46C0~O=Qff9nb#~ujyT#PN9a1Ga2sy>M6qJ;g(DNG z5)*~@c`s3zw7m(0yu0Sh1X1&DO&~``-BDly#bing7|>8#6OvS0@+D)h7QC`NNqrnA z_=9ogRHAw(bQ_q}@wf5NDm-1NCM?x7iO5quBl6Uoh~e(8h@s?(h&Xz{Voqu?=Fon?eEg&7I76%{OwePja0qPZfng@2uq!cm*rHx+T%e20s7f>Ell2@!h5{S!o= zkQq+y&_yZ;&u22@n?~F{zV-p1rUHo-aGAIMLNOGYAyCz);{9%%5lcEkM3BGx< z+lo4qUkBdn(PtTGx?t#Fju10#wr~aW_6xVdl^D0n;5~m|aYp~-T8N|4AN)N$n}{?1 zA8E1Y-%xcace@Bhyuad zGF7c{5N=9#CS0A5@pL=w&L-oC7Qc=4xJUVrHPjY8zdMR-a6*5z_Bps8GXr1(bW}y6pO45aJW;e8=5t&d(a2DwGiuKPXfHpS8HUk+KTmBF}zPL&Z~0# zFeyo%cS;7v>KVln@DkLwakV}yR+~e`zz5?~JC|VLnzO7(V*diqj9lHbM7^Dm54=0! zZs2#4wz^vp8K*{hpodVZv(vJ`?@G%6(IH(LcssozFd}a{bST5nl{J}$j!r=F51ycB z;Ij?wuF07wUFnr4H{`^nTX_b|_B^?LDo-AMGhZHto~61u`59n#=4Sx6FUXLm3NpC6 zp&*0u-xp+1!;r!{)bMrTt@N{FF+G(1;TL7b$Ph$!TVU#{3;26`?3uFL`1`a3EZwG) zF+^dN0$b*2xpNaB?53?edO3zwcNmE2-;sCEI-1dB!BgD*tC^{VmH%ABSaZ$!54g#j zIOkEMst^cwlZ!w-P}UTQp(GcO3W57bEnmnF44myqQFZ>-G5PYw;xV@q!Y1ZD^d_oEB&LhQ%kF3bw^b!MPz9d`ltQc!`8k{?@P8MxPNW z|0gD;Hm`YK5^he`+ONWeJf&&@wpmGEN#fT#s+jnM)aup7-_gzNa^RTQo*N9ASt z^BuGz*h&6D64T2v8my}TttKNPdG+)Kz#N?NfyJ*t@`Bnr>lE>~ZuS~SJ$&(UVUff< zw6D$42YCqkpoLFbGZk!4DbtR8!9VD!{$~}~Ng6hntBdJ|H%Wunn18Al837qYS)Ko8 zWyG3@ny2jaN6Kl7grnvUHq@-JyFBuv>wmW&nyd9pd4@MSs@>L3q=%yh$S^QLWA;PT zUKfhDF*GhBd$?XI#I7m1sUAU@9gZ2|>P{~E74dJ@TK!h)^)g-}SR19^09xSjV$LHO8H9%m)Fti{H#6pSxc$)BL6vky9m#Dzs=c7EzTl zt%6bT|MsrM&sI8Qzvet5!#HAF%pr{Y2M!rLi#66?&yJb_>FU!+*>}456XIj7JBkj2 zevWcArsL~eFrulh)lbwc!C?yGo8|wc!*bwHTjKv zk#t>1M|trUt3`jw_ssd4tL2Ui>t<&TFor<(UR9mnSFiFx&l90GtY`W$W>&j`q=wYr z1*f~V7G&gJJxTXTJv7$Or)Rl;vv&(C+NcYgp~x$J%GJ9Zq|&tEv-iq$UQJ{cYBnzz z((9a|Yyp^{4GrlPvOQ96^C~;H@?~LPD)XzZIY1`b+N(*guK!js%VaLys_Q&fc_!Nu z;l44L)V1dUJ0~=#;Xcz53rn)_a4{o5TwHfUpru^25t%U|x&dj8ng5)$haK-Fmx#L{ ze9~8bF-F@-&R1Qh8@`K95txH6lvr0|%Kdt(2+*yo73JY6V*Tao%#p8yHPol_br6H` z?bs~{_srJ>J;}+%(s!@7Mt)s+$?JYUwUVdM8RHXWTo0d1_8Z`LWI4R&Gl2Gm`hIA~ z?_Bgt^mb(MFPRBwF5t@MNSB$1Nf#nqzs7w44USMU7ME2O+~t@_-za+Lh5+|+wHDCJF;|2%A z=c}$HVvSDONGt*LU_P-80Ma%?xRCu;F17zP7P zeGwMCU&6fkv0JMRyxXbH-QF(z?)OB<@uM7YzZc1*zyoCj7x^+NLG1hqeoo>m2J`tv z3fA2_U9HOK8s~SGHIM^_X0s~agv;#B?HmcVaF^$V3=R@Q|flFa`!);TjRFEV3miUf-g?0!F zrYur+3(Nrle!jaQoD0VlTsuVQFSq7PdhzoX%8p z(q}lJtdN@CCkm7C=aqWM4}s^rMc6|YA!l`isz9$&%1VBCq>taIL(E)oViI*da(0K6gA#N~h~Yi5s=k*WI+iVjPn{0V=jdIe<>u~vfcx#?d%m#|MlG}7#k!VW zN$)BsqolvUV?*r>^AWmB2x{8141bBKZ4FGgjufF;s3$oFevhCFL{R}>cOaVx8SgFa zh34z8sht>-urip8Fqwq!}k)ppZOF1aWOKdv(v7zTAH^a%+>S@ zM(Tcz)qrXvlek)QjoEjv+IWprJoma>9(wcojIZxh-(7EjTh?us$c-L%QS_#N`&t8_NB;^O@!0! zk(v!+4gn4`)bdoxH@eosn^La^KP;`%sdTj_&1_6p8`BK%R-%(;s1qVCSuawn)=7c2hh3rXxyDL`U90 zM6W_henbHe>nB+vNvg zqV4vrh5W5jt-Vpd{Z7AaByiDtMs4T#GeQ=DKO!BQXY6kG6|RRrq_Exyc^$55#c2 zwG8`jL@bIhr3F5*NYPPF>xY0LybnatzyBF{0-0%2=yE>rw*)65FPJX^`~`urQpBN% zkvD$_F_^H6Jmh~JcnK*SQ`E-5`z{w#;-~5!Q8gfP9T#}f&L>`7!aEKZ1Y{VLqNbC$ zfbd>X>Bak=s5DOqhMVLVzsvL&I~03la>=Z=?{q%z*f@g|;_B!$ywY`*Uhw|93V8|p zI@!P9{k6y1K)AJt& zNAk(Ko<%zxIFi0IW^O=@^#2tjGEo(+mLHTR%pLjRLnR3-T-)4d zy)B-I;d*Eh_S_|zjQ%c8`y6*egCf;w85C|Gj3pMa-veavgT{q>QINdNW-3Na?dbcxa(4*&^1bV~LBMoBxmi7cY^O)7V@~ z1Q;OK(hyF}ZA3~7oYZTwvDNOPDb^%@n#0whNIPd-sydj|O70ONglA{T1pg-5UUP$h z)D#{@GW9goN;X9ZB*0J748>a!!#Q0oOE2R0>vVGfx3mm_=VLHUVCf9G+cnd4&sI}2 z%{H;AF+*`hv+&7Gx!XG{5B#hw(<)nS&XO{x?C&^|ZltRn_E!d{GA*CkUG4V+JKDJk zG=%qdqO>4As4kn?vg$I|fU%w=ddoDnhKqzEUw@IrJ=lH`Mh$WolfA=W%1xJTSJP-k9p@RDqdMO_dim1pc&8?v@wHVB(#1vl zL!j1FV~7q`le>&q;T>GPrC)+Hn^%fP^pA~$G$bBE23`mQsjo$vq$D4h_B3LNbkiY&3=K~Z5=M@y3G%Z{ezwXFq0H@w z=3FU;jm>00;HKWSv2Z}ls~9&CLEU7!p#i9AX<+*h7SNP=@n@bnN0qId2K}8idE&jb zGEd%gBe35b$iuR(&i8rfh7FkA!8#rC)i?rS=5vf(Iy_%&5y3z|au+**Dfz@~tFfFI zbYa1N9c~2NE#bG6T%Pza^A< z%tg#{Fxh#)8?xo@!EC`}F2b|Ja|C{0^d@*t*@3Knx!&?d;IR>`p^tW|wCE&3oUUtr-7J@~f>70&n@R=)_i-dBO`>FR*2mxZC0 zF7T#^Lk zk$N*CCf3foqD4a`gP7RjQ?9#A!a-nm)mc}9X7R?Uv_QD)dSdMQJO%$r?sCzot=6Ir zq3{Z?T&3DC!?7SINfhRTmo#x&j*9qfJ8!xeWK(-rLGiK^)dJ_1VR>@nZw_^ z4dm?$V)guY@#@@q9{0)$#NdD=IB<#7fQ$vv4!go;F`Y4Ac*FziOmH7;3I>mK&J9Xe5+|UOEH5C~E6T+${r2eE@-QhD}M==^) z>-#e`5p%GtKBaI&u;B)KIqm{2qX1C^21?V4xhtw^F~ffI)JCA6NI(^Y#t+#CvVYsF zgqk9syaNeQ1=o~VL%8KTFd>SC)}|AYJKZ=Ov#)< z^0uS(<6C^lqyce}J?N9HleV@0s3@@%`Akvu&<(#Z#miwTdNBB?^+`Pyq5ur$R z*u_l(# z2!aj{3+PXL*=>U^ZVKhWz+#g#H4q>aQmZ&2qmKn8#v=Fyl7>|G4dkGP4M;6ERtNzQ zDn6IZ-@a;^{btdk8$=r299u^iR!dUzR#()Z@S8eiu1{iDVj{6vLYVF2C?-~w@xj zz!QAgizUi`0WfjAV0uQILf`|&B^voL(?oMYwpW;>@<1x^V8W%63Lqd4Z^3XYh>4mD zY-5zuTtV&&cDPZP_tME$a)=z*N(`>IK!{6HzR>P`mq6jdE*aUWU5_TF?JVdDv+tM6k2P{+OT3*Ay{W~hB;lot5RGo>}#IP&$_?fdHbzuW)h-FH>NdL3DvjsGL$GpYBDic4kL-wzVH6xz2(b$wVTuUc zy2y7ORE04^h^1$~LoF5y*HA&zZ{ztVU=tEGJ?{6gA7Mn=p~Y@*gQDb*R0-6L$80Q zFP>pApf{5ZmU%pU)VUnQBzLAhP;@T-*0a>go7r52jiRC^)@7nWv}L%is!D;ci(MC%khn-Zga2?32M3Eau&KN!TN zmT~uv5e`9wnd)K{$q!FmS_~0OYTA;`1Qkb1DV||>19y`9Y?6TAxn_cp2UUQVdb76F z3Js+YC?|(!srl-q9Ta2fvkG*RV1OoCd+iR3%{JyHV$Uva zW#C2b_3wf43BHRIwIa@6emz^?x#nQOy;Sz1_zS!)&WlLwKD3lP^!#Y=fDNZXpf!m6 z;F1|O1xiT5%lRMswhw;8>kxc8aufUWI@N?NKm`+SGt?G}B?LkHNPvv#-yIp=HK2iUcKj$hh~nHg$+(LMVuod=CNaB?WC@jm_xr4 z-z-X`kVp3ecHaqU=R49 z5PD1x+i(>TNjElV>z*)+UAQu!PP#F}=u`t->D+A<9JXv>4OD+nv&`LI`hw>8SnFw2 z)kV5mF^`ifVQ}@JmAnd{X`eeAuDB9A>z@opGOylh1yU=zEs5M{YBktQf`_okSsM&~AI+_V) zQ#1|C@u>Ma9k)3tKPg3YcORrgsb`OPOSDauhZd#E%>$_k98YpuPnI91RB8jhRv%q; zyOwp&n0notmZM5W=Z}S;z?@4K;BNYT%RZ1su<^e^4K`X*U4%!_LL0iK+3XPqXnHboKjUo3>t} zd+I%6KBrE*raOC|Jh#SYw%}7Qp?2MOOmvk5?~AVgv29vfO@tc#^urxtSW)A1V9Jw> zL4uHUH@z_1%L?$H7~8L!x@sgvVHkbN(NCJ5uKq&apqEo=q{K3)WqD!1xiZhGT%JMD zaGvue^|{Az({Wy6G4+uO7RV3JH}}bA&|hEO7MC+^nw4Vz(?)agjU!HF?OnNnQt?m; z?!f|&=3pk&5iY2uVqiOx&`!QF4i`AJ4I(mpz`Rwa(Cq+!5|Ba%0;X%3q?q`&RATo5 z_X%DM9$%&-rRqCmnfP(VnQoQU+i~V-B{kf_8{!0y)fr{Fgl0$sTf$}su~otn;N_r& zzYX6B{)>nNayd!JsY>B7T%nFIe7AtFDq3Gh$_WP=9nX8 zY8O$Z%G5y%56l%jQKcwzI#=pJHafCY4agICgvd#^6$p5OI5d@2d7%Wk>QE>!A*8^s zC^S1t)W?NpTZ#J2!uyK_-?W73KB*)&4@w^4?{lmL^@gbvxi+#y#b#+_)_$RIlQQ6aVv6zBr$9lENnlrtE2{Q!5Mz8qWiia7K+lHSi2`X96zX+RZEL|;4O zW$~S~k-61Peul{pHko#B>oY*>uKFe}_--fS^*sIf(RdesvflA7W&%Cpbywfx{UR=r zMplK~Ug&$`^<@9^pHU`YhJ@TfK@P|FgXYsXy)pRwi8yy%9JaGAnb2B=R97(xT8=Ai zL`?6Sh22&0W@N;jM|`U=Db37|u=+eK_?D3j;DwPWK6xKUq|6VWQ9edNLrxaBv`-}j zFb$%Z1KjNJrT5CqQRM!5+c|zG2GVCFs}%t@V9CAMG+A|xr~HI?Gn`at@z2125gVLr z4`Hxubt{Pn9>xMvElM=qNurjBh?8h}eD2924j^iltvtQ#a$KM~=obj#(b>raUN0vi z&HmgS=#Y#&^DiyNP_Od0rOjPt<*u|~{|T*f&N3t@eh~siCL%Gxaj0VM5_%n5!uMSv zi>Dj&X+V-CFDEIe-y9~WiXSbRoC+At$WMi};XN-b01ppyG9ZiwGrp&-ZJ>JxY@&_8 z-@-SPB4do16_D(kt640B=Aob;X(EAPscnV)d?r7Kq<=Hr z!{Ddd{*erV{tdVN8}G*e=xqI)w3~QrAIev|9+n74j_B>>qiNoc1dGt=2%2WT#iz&@tOtm=2T{TwhP zubG-oc%{S%>1t0PdvrQE+q!6o%=K|*b_TCvxbbCNDutTh=*kmc$NNTO&K2K6E{K=k zEE9jZBH#&;7r)6+dlD}FIzx>}^r7CxaT1t-bKpNt>?04fi585=Pz$1O>fPz;Bx=ia zRi63=HwLDa(9($X*n9NXE#xzF*PGoL8QAG%kIBHc{jo+bx-x2@Yg^^;49FHt;!1Tlq+si&c8yu>jv#)PoGX(*aO8{mKz6j-L{hGRknwo-i_3Bwzy?FZGyxKNyiY! z+Z|I&9+BYXX|ym%L;hB@P;?(#=tg~AQv>(+;C3QuTSu@dHc@DW&sRmECWda@zs)E7 zAMhB_3aFD_%fUXyA9qz|QiWHsA?8 zNe;@BA+sY>?TMK0SpJb0S@&a-t~rv4rH)yhp}tSL3HXELhX-e>DbdDlGgX%q1KcMi z75oG;NTNnh`2&U?(^H>Zkf{czMSv%#HKzV18B%A@3~6hH*TswK^IeD<@2p5t$NlSo z+eDm+pKX^;i zL^aX|O_&h(rRHKFTPo8kY=Ad~DUWmjaH}w?)br}?9&>&=f(YpOZVBWzV&nM2zgSO- z2vIdGL6I|!)UhOJZ5kmK#trE4LWca&Z-*{oN`(YFEM7{GK9w3T&EA4cy$k#Fh5GsTU4{Ar8lhs-sfWOKq)vkFu;P<7UiqSjFU6R_ik61ynkTK@ zFJh*xx;vv~1xyUi#V=CR-y|V0K^7V?hWIA&;0%Sc~=rwM(JNSU3)Tl__hcmz{gc&MS;d}lr6 zk6CdPehSvEkuDb9DdGYv(?putf}o)`js?OaCiE6*T)uKR2aDZHxOklZ=PUPqrMD+{ zJP*0{EfrQ$*vh!W-NN7I-c%q##*k#~F{~rcZO$ z&I-6#0gMUglY|>HE(*HUMjwVa54cTyoLcD8wgfar6^nfC=i*JOTH-2c+ySy#OtX%q z%Payl*$|sk@g2Wg9*DjZP;Uhc@F0EzKYVtXKLvf9)}b#@=!P#Gkw`qU-kOUo3B}zK zB}ugXVz*u)CJ;SzQcoYGS951VT#TzdPU;rmx8ssJrKorDjYtt*fTA37;NJ?j5`*>W zQMo8jF+6>`&*d6XiO3iFIJ%FlTGy`H_Qc|pEC$KAk6~p2Y(>l!6O?|YiV5}ICtRee z-Q{)Xh!7Qg)>R^lxkI!Zk4j_%YxW7>8k=ijldt3mxiog2_W*xiFdrcmH@hA6h7fq$ zW&b(mZ9>0T+l4Y7%Q1~|5jcu6tRFcQT!|<{_%k%NsMTd_T;lD;!CZ4eg?_FmiT+8L z`{Rz7cXhXZ#poio%2QSc#j8~Q>xEdYu%of`C36hv$DUZ=gXj}|*cA5yxhcz*qG?$z zAW(=`I@||AmIo8&-AJiYfPUaXw$II)xkwLf`TF;kV-5iK=T3|yWp{1;6(v85w&YE%6NC%P1v;GQcw zd+D<&TBE(b2lFG?q|reUz>f%`)2U<`EkKAO(2LRCtw%BH5&9YJ^an}vaEFP~O1qSN zz*Q-+E?reaw2%9p3&_*=w%bb2Al|P`k)25M#c@~i_pwPr;+bp^17z1&>unvE57no2 zYrMP3gyL6ULxWi(Y#t`*p^AsZ)X?*cOH9O}MzP6*8E2xv>rE8;7iU-QBH|$sGX04i<tW6p0gJ7rNyVMq!-T>XNVrd|tsmtAF2!O}>+tt3vEuHH zK0}M1(c<$<_e|n&Ryc?>Mp2m+nfV=j_${aS(pzZu$06L zi|I_N)rBYPuJ7G#v-GqvSR_3PJP6eRmT=$A{d z*B*D+NC!$65LV5|kz7I>v(b#3!Pyw#hAIX{q-tm+ znjz^s%@0U`;36r|K9ZgxQOZ%@CYTPnqM_}Vt9m7x4Y@@3l?oP;XgFK+v@}wlB$W+K zx}0kEC0R`JKePSxC4if|XXN{T%84GvscZuiuptpzU9td9%a^0cDv1@3yJs|D`C zwEQ*sF8R2Z=DVBHi(2NpV=_$Be0N1g(ffIBpG?C`jwUmDzDp)Go;{T*wUHm4XIExP z$^Jr}t;&}E9LtkepPetwmKR7DRu;(X!ZN=8n|78yI2SKiwI;P)6P-)4mqMs3Ym9`s z2Ve(nz*=Uif=c+ms4#P+rY^mTj@)B*Xtcl|TgQN(-`8Gj>+NfIGACuJ{6bET`W0o* z!@nd`%Cg1OFppbHo0sVl*TGCvVgr=@1P+hY(=`NsS8w+Uz4ihoIk=YDr+$2u`rL0N zP-ms-UTDity;8LGkX2DX>pfNJM)aATyagNj(N%oWB)wTnE>7FPPcHAj7WAzW)$AVA z*M$xSV&P-piG#>i;@Id+U^w&L~SeEh3|1G#8+O2ACwe0?Hy>|ak$K}!I5>h#cCGXQ-pU;9zxg0gl3#N}7vp&a- z*bZyTB^;TLnRafBDCy;)ljN-{!)ePdT)}Cd4VO>3Qd6I7%R^#Y`+56f zv}zR7PT5cYM%;J0XRA94mT~zZPTWRU)5QBoBZ;W!>YWb8NvDXm<`Q(BXmOI9mo0Ou ze7JAmI(&%w$dBW$_C=3lW$%k(GycQ4Asg^)2B&L1NqX?HIO(|ubp-zv0zdsQ$g<|j zxW2-Dlyg{w7`D4-#Z~2AZTAUvJ>@)d_-y5(mC%yk;bL3d_-1it^J+ZH)6qi2P`9`Y zULy$fGXr?m=g(g2ufe8Pdt4fE4~T2VZ47V4r>S%mxuRS|Z!e{Ph9W|3IZ z6F~T7gIXKQEWlaX^hKsfI6fbKTP{a+PbUgITISX+3&I>DaC9#Ri!+_A>MB{fHO&Hy zFm-e`udTCY5CRbqpd_s_V7fWN(v5ejg5Trh0wdo3pFPXd|7XZs?zn+BflcJ4(9-qx z3E$MsCkfQCm~G-z+D+0dNp~f2M#1ANOqsb(A?5cu?q;I5IZYrF9SSMz6J(SfCsGsT01ORT|LN6Z$p|a3$u-&DwCh>^3%fbgG*|A zzwkZV{DF^6S}%WGGrz#G4F(rWWJu4wA@s$6y|34*A~LMIB`_z}C)2Q&fGd;LAn;K; zI_sTmU|b4N?8B7-AMmEafB&$|1&P~+j|oYK@MI;GB%9eW3;xJ?s{Ow#4U>U%VPzyH z=l#~%76(l5COJpYndMeHglO(lc(x2ZI7192mcTA$s^gikcwEUp_Sec2br1jdaWO$k zr=SmTVUY89Qk;N<@ka&hnMCD~N=nTC5l^6#g$(ZL+yIOy&eoJv#NTS>Ibscomz2dN zUS&vubUnI)GZ~PQzSc!p!VQkCMek8z+kPTcuPi!`{`$(6Q4#+wNmj?uf=AW6i3ZGw zq`!mtPBd%0L$>TgwQH4obj235GQb>7_HL!WvwfF4WjN!_aZo#9jgm9nr@nFwm_s6O znB?sM=_h1+9pI#|C+Dw&phRt}c(=23uu>DZ#u5{I{qNj@O-9VGi3s4!-{NJD|48Pm zoMC5s`n-D;%)w7ec1UW<87V!4K0$wDwFI2JfOEWVUT`^guQ#iVYOsagvlvms_i$GM zMd>j8Fm7NHilL>B*NdDFo_tS{^ zJjFd8DS9&n*HOWLm>`&bqE#D^B<&H@ik{6*7WktSc?aQp_}TE9U9-7c-0Y7`EQ9n) zU-o>X`kA5)My>Wf%H_ReVK5#?;>G;wTYg36dDwqM15Y5IoM+rv zG)%G#vnQ-}p;3q+b*lVHSgj10d119aV1PRY8-d68gnTN4$paErW5|&cR#W0ifk~Dz zBCN_og6~XP+pxsf117m`r+5iW$Fr+L(mRq_(@{dEun&Y|FB!QgJr=4J&76JfJS2#V zQO!DHH9FIniRf(o-PmsC$FSeiFNhvghF+wnECDn+Lt3oima?o(?V#ugE1=Zo%qY)iKimV`(%oSMABl2kw!Ry960u zj^M|L2N^ZTKRn!EShiUNKzV9{HA{&^B z6OfSFg9% z%l#tc80QzU`YOU4IoOQiTL)r2F(mx4*qu9lN&N_Z*5+}-z824I; z`M>o{ZYIlADy%GAeyxGNc78mUs!a5Yv%ADJW=Z>1A9E*o+z4#Z$gTLf2%`^iW)TS& z^Y;Pq$a_bOzNqb|m@~FPzv$nWRQ(9A2s!tyi_3bktts(p6jxJq6gC`*K&*Yy=)Hpa z0CG8o_)&*q?~^Ad_8)A7WJ8|Qx1^}$KP<;@*W`KoZH8W#DAlc`3fhCNt@?$t*zFq7 zi)BR6j7<#aHUYCP;9`}tE#Q6_5M9|RnVhUKIehGMLR+3&CVcTL=fCIqenr_0FQ0$C zqogc}e1#*cApv}DGVsM;dBgoP=x}AXAr4Dtqy${w2r(quIQx};dR-t>xON`)eZL!_ z-*IE1RIMc+hRR&aGrJZ(AfML@d-ABT|G?r-@UHvIM>xz3hnxmqy=uP zAK&&P|D)xu8R&D@347zV^<_*VC^%8`T+-q2NX6Hp>GVfUe|#8(7+C6?C$RNV;7;*{ z2LHvIU54dOv;pdI7pD79V(HDH@ny|+$n}dkGr@M|4HI#+bc+yLSuyr@xL%6|rb7sbgl6GpGxO{YvQ=Mdy zL%P@zOfBSZO$?+(r1zLPlm6;l%9t7%93CBXl_frcRI~9RD4I+*5*Pbrh+sneTQ|7* zKJitH{@Y?wX5-GvkJg#f6Uq2FwWl)110376N>2E~_vQWnQh*~7n)c5g) zfVlijOHfZ>bZ5l)FA2wxMBgQwhJ z^bk{N*1O^a->;7A2V$$&#FkU~FFrqr@9T z3JEGLXBND(i*1sq52jx=@^S)Q2OdFa*Gzc4L%bo>wo$R(Z4+{(=T8wOaLxKiye9%lvWJvxF z{9c@ypNQw(8Xp&Z6H?YBstE~Fh!m@~)+&Fd34}}Lvv}3i#XMCk8xF<8OrV)p>*Gy% zm{>8eNA&i8>w+k}??L!|UAiZZJVq_?05}{lzzgGw=#IB&9{4kz+^UzkhiYM>VfNHg z9~(2hmYl%AyG@%2H%>+=v@vBy82Bw&Wi5(^1c2YI0=%Hg=MM153%fg?)>3mXIvmf{ zC$+f4`#e%;-g1e{0fqB|OXBb*+JzbHs@-zGtZ-Ps71}*&=%4x02(h%rh)>HbBSPnq z204&okOCy`TC4WmgOa3XdEQB$|bF5@n911bG+ZqyY&rd?w z%9{`4#0GI*NFroR55e9%#6mMdNPcR*=36%l#YQD8#9~czqk81**I6>vtKwrT0*^aM zaU=V0gp=i>egRzb+5`hWuLLd9K+7PJTs))QL zXn@t*@nuH~)uH&u;a(D|&nZ+h5HrP|}UhFV(ZrSTN*%fQp}1iv;fN`H^%vGxb%o6&`8 ze7-qRsHR(ZQNE%0hI}c$D_@GYD_|(_T-#b0^IV%&V8#}yLxOEmD8)J#O0fZj^5AnQZcfKt@86CE}1Xs`8#>7F31ObC}3po{LuTz_uue07&#IMLcwahIWV{Amw?=6 zEgx?r3@UyNe&T)34-V9CC#bJw4ZTC$Co*k@%)W@)6T)axQZ%y3kB!{K_97d5Pj7dx zRHqA9bp+}G6XLZ_B%^5NiDce}VT{cEsTr}$bM zHQqJAOJ#0uavK6p^xXj;E1NjEVeAW5y-fn%^zk)uN8!I3n8^i!ddO1#MX0?4ij>@( zB$3$Zam5W+vjaH(`SG~zp+*~I{O`xZ@iyaCz7HDU<}lOoq@CrV>C(g1UN>*MjJ=#- z7?S+5sYCD=wbys$OguoO8*9u1fb;#nff2Gj8{npag%lYS+N!yjB3-a~ET?*ee^SHI z)JE_PM8VTtY{>XhNe#zJrj|(?5%=^w1=lBNq~zNpGLo zBd%Yxxz?8f;+TLtz2Um(FDG%8S`#)qQzdib;Z*sA3sWVaFh;5oLAOX`w;(MaKXj{d zxr8J_HirE=ME&;|tjXsQ@w%q{5U*>O6FP(jPtG<5EcWl$#)16jQD~stZiQh2V!&Sw; z;VoipdX-^(>KW$ipHhH^%aOiLcO?Cf9DKcu_{DT5?h~>%XcV_G@H@Vm-2I#&h(>kt zzC>9%MAs#zt3w2N;x_isIe;^)h1hELHAn21?2E|UfKJ9l-O4SuS`wndp92DJjO%{k z)Io6Lh87V=L%t4U5Mx-*SMJi}N&D_e`yI0aqjvX3iQG>`w4I!c&91!V>2wqg17iy* z;TG}4c#30Ux9tv8{*N*AoM(R;or>#Uj9yjrC~Xeb=Ae;ao2v~mXg0W9^pY{#BR^8F z$db-OJ~ZkHk5{?_i$5`X`-Ql#O)AQs2XA+elx1hVU1Tr&^$jEa1jE54UYu#|Tc_VH zI`ZyL{jUsBcD|wUiui_UclP1VAuUFFC-e=hGH+sq%iKEZLLR>>Rt49wBeQNT zlazU2B;+NNcckne(9r0gj|*5af%CWPxq2tz9I+)f1kEQ7WM|)G!Boh`)1IVwOPvOt zGK|1=#6a*yC~v1T8)v4Gk@tKbA#YBm7;#4ccMA2z;8wqN76Y~1N#nTKCW=#n6BhIg zOOVQTVcDvITgJ&@-%>VLnQG^7NlI@e12sjbeGr8883u)D<$65Xc$<8LJx()cXohNQ zt{$9$to$Y5`O@2M{vigqf4J(gbhRQ}4fs@ezk>tw!NlJ3#KPz$Tue`C=W?;nx;A&p zi1q2p0?ANxu~=tbWAHb;Ma&%UktD)@Fx?%#A4ljLqWQ(VKy0`8Y3of09_=QN^1wBw zuRQveJj%B42XVT1&a{$84_ogFnT0&s%zO0y-*It3f2wC@2~X9N3__Aha;on=KbY@A zpF87_UkSl}G|>Q#ODfxttTrYky`PNb;SIo(k_{z~ruB8X7@H**tFrh84Ay0Jcy6%1 z=WTqPq`l=%2_SAtEdsESYaA{%;d2yF+X#NjMQ>pwcrNv3{_b_2+=1ti`#7hq%p~wh z%)mJg?9V+oDtj;R`rxuc!b1*UP25* z94ckc>OrhWt45;qN)lvZ7A}pI%l5I#+kA)UXSixlDz*ZAktcC7NHe56zrVgZC zw3JdCh^bSkwnY!STy)5|nnJrWHp#`>oMn1zp?WXx87{WwSEi-@1u2koOA4gD9YWrXdf8s55tW0H+nIu1)MO#5Lf0vyaWLT ze%E(Bcw!e)2={XyXfDoH>g|9T8&>a2Ygm(0WJFMktPK7Q7z6g%@oH^cJz!`^9-0&) zd7#=7N&{{cUkv^$A+%x7(=(j9obR(cbZOOkYai5cRcFvq?Ty;EzcZNK>9K!RdD7spS@4>q8oVR*%r^ z+s#NIYB@yZq zVj-E0^VR-r+h}%ky)##}%QZWQZl7BnnEVU$=IuO&>~r}!DL?&$lNu*K3+0E&b5&V; zR_y|}{_Y4agX|atxcpbA1k`+U!HKsmWK9bCEVC~v>Y)B9qFMw#Z47sp`|q{c-^l~MjO6yIYG1&N zOeIoh_MlX?G$;xMB7Gbt1&)Q6#9;&WVaR+OB_wMp@s#7ukz~~-{?CA6(<-XkgfHnG zRqMm%?Wp=bY(7p_<02QXiK>0%y^rF(Zx%*Xiv)p3Cm8S_B}kdm35KUyB^EI*i9+R0 zOMDcONs{?GMXgMdcfrz{x9E^;wx+1j$%f9YOqPxwkRz#?97a9lXP5l+65@}LSax`B zl1%M`2v!+K`0M?Q(_r5tL@aHED}fLyNbOFV8kQu$fn$ze!rWNd9kKmkMCE6X{P21#QiStLRicQgru{Ut|BP_^@!?m@N5CuiH|CXWi%*o?9}{Au9PVZjdB06lwU59GTR zN}R7Q)|d-g>pRUC!TvFp*%1m*#vLD6@uK>>+2-h_+H`i@cG4*&dzJ6H5@(LarIIon z#d74!lZJcer|)LQ(#gm4EU$vFDIQN$$0^t?0$;^c_CR3`$4o*OcBDsB2#XhxML}KZ z@yuhNo{7sc)(WTqX|{83V*#g5bB(suDGN7*nd) z$3siiL5q}*0i_XCyJ30@qTiLB>iY*vFVsB!>XG@$pU>LS=N@DnNcD4O7wA3 zK1`8QHO!P$%_Sb!o*L#d@rt;3EnUXfFz=>o21o1*)y;s6Gn&ymOGcENRau&`Jxe|* zGaa%=XvXXu;Wd}5GNfPblkIAnzWLI%rrDG)Lu;B11^P_(0N#&H0J>`>eW#(7^equD z@s`Uf$>}n)wUX>AGlwe4qB8RdVy9}RYoS&=u2AoqS16Nfs&5DHy|+-``&^;$toD^< zR!!5dvf?R?udL7ATt#cUR7Gp+T%@%PD$?4f73mXK7U>gr6loil6w~CnW&AK3eyPh% z3+Ws*KYNgGzstLk&-*&zY~1J|^v(O&zy{4nd_lZ5)!$tKcc2+1ltJ7;?p8RvicqYg z3?%h*RDO7m#tS>#5^{j#|X32EU$9VXJJT=`V?J^v0!gql;zm8pTA9+1K1 zs_=l`EswXXp^EW$s+(@18qla;-mb2AUh}JKFaqf5ag!_=MEpsMa>1i24l&3uza;2u}nkg4+no*gutfr0_au;UFLcUy<^sTAm2D)R;V0|!H zj6G_aHF;WSSiW4TVdmt^-Wm*?0vge#K$g}(IQc_zCsdLJHOxVrd}^41g(Wa zhFAWL-djc1mzg z=0oh*{F{fR;dz+{Jq?KpmQaD>PN{0rsJW82h+_)JvTw90xx)~*qb1$QV1-hRkumhhrOLBJyXo< zNgAAIb&~3XW+iKFtCKZ-d$ODYLLpgmPey6}u@r52Tjd|7rpbXcGdE2WmdDtLR^AQd z+$y6oInt@y`44~>JLJiZ4E1b;K8;0LhIw6-20nH(hdGgzIqJW>h$yl_>6~L`Ff=pG zo{)4Tgc_s`i`e5H{UQf8d)A=pHa&{g!NMa2D$8HP}C!-HPdx`=trmpu_R&O07a z#M>)QX~CHw@OgmT%W<09Eh5lZOSu*mm+-ftdYwMm-QsWxEQR_8JOb(5PA9}p7rngd zWZWYMGRmAPkjzLkH`Ud2U3`LXeo24qq3z=+cx$7t?rQ}W~;3EKQ z!7ONyIe=VS7y1h{IG0Poe~ObOfV@RYNLdikns-G6EGS?##%G%W*xF^QlzMKqSr#um zeZBJXL{X*qghcIeWb)8clb+>)gclyph)EXcRYWAsHv1g?dGfQ+#K@w7{Zm}|6s0#1 zDJ#PqPSJ{wq)IQM6+74|zAht-ulpf)0TY|9-}v)%^N9+KiL&SVZ;szkM&+?hcg-`u zsSY&}uE^I& zXjAjeKD?Rp4Q$K&T%`S4rhQnB;?WqEi}_|xSPtf^^u9F#x8mhWJ}^+L?d3evHBqx) zM_ZAvQf?Y_ObGNU zzL_FZ=nY3NbLs0+^evbW)NqlMe0Xi8N2Kbbh%E+SdM9vr76UAqyE`h z+J-e*+CRIqw69LO+*a9IL$7QtIVxN0C)gqMnryA-Y<3p!H8@9T!y)A{m^HQQ$TDAz zusZr0^l7zP@hjaQNFcDt9pcG$F9*6!Y#Nm4Z2qfCr-s^U9JihQ1m^xEoUlbCjMe$0 zvfFnjt(5-cGD0JrNMYoWifIrlOnzsE5`zM4j3q8R76#?BD zm(Ylcf4pB&Q;N6oURn}|j_J;AaR?py`CNSH4uS8)PJJ1_m6IMmJ1@A9OpvTmuH`wp zA>5?M>-P$>g6{SgK#sf?d#!((Svthx&x9)xTLal1q5w64}XBp4GOqZa-_Q6-g zMa7(tHN5U)vfo2%jKuQAN1(QG-0?IL#Tlo{I7VD8PY!wblF$ZJ&#oc=t(!83>G277 zf=^XI2!f#L6l>f|RZh_&RO@pSz|0v&4g#KD2}BvkplI&Kqa< zQNtWx7FWgiq;k(<+e0`^5>lN8>8( zD8hz!hbx*O7dQ|kWRbC&I6B2ZZEB$|Niwt8^i8@EOA5Tp!8T2Loa0uq?5t|ms64k% zw9-;=u$AvPp3GN~#^eHc+3 z&yc=V5&lxi^2{phtC$`t%^scA-s6@TIR#X;TNjEUxxa$!mnTPy%&@#t=#6=*Yu}zX zRbQfKflMk=5mnzJGp3-A<$@5QJ*t|E96pLntHM{HKPh~L^s|*yxuFNVWwBXQMQ__z zg$MK~;%BT*JSRDJ8vovn zihTP%wl)z=5GyJEZ(DX)*HD+&6N8KSc23;AF^;njMo=4i^#Gt#wNGHL;lKqU!giIYf z+z-UNdykCLw|UwpUfE>7BD}+Vzak^Ars~EQ+een7AJiH1mM4&#Vw2}bjaqXbLhy5O z*gp~B!JL-w&H*nZSZ`;XX&HJ5`h$=hiZe$5aEvqURNUJ;9K{T7jFQK~bx0i6Ds_{4s;;$6@^lL}zfu^Cc6J4q)swKUTUr`LT?uq+w8H4C zT~Hvq2cxZ{8hinIf({L$O237NL`cphBlV3!?+^U~30+uTk1BwF+o<_CoCDn<4j)vr zKcaVzh%b2?liheZlx()e=Rlu{*L0w?5c4I-?5Ikz$3@MGgj=9tJH|v6C!&88m6y`f z6LU!Ko1`~QL10Pb&m>tJHA|CnpvUN3hDGCX`op_rHlIodU+|{b$vBw=9(7jwF6W6F z9cdP7l7nG9LK-L{xm*epItTeHW|%|6>;WHA0@iag(fK5ai6o=E^+b9LYaqC;VS(5j}h1?Ml>5H-_u2GQ`U<@{|XU`Mo&A)fj5lTc2x-`mr~ z8E(a)U-F(9PR|bXWR!-i0lv<*^h@|a>SCuK;l{gMpEnuh)dH-522Xd&L1_AUDZe^^ zkn;@*shp4X89CoMmGiBzl<6H?teYfJ>aX&l1~g!?T;bGzdo1hlD6gEf4(iB`}Wh z3G(+ySQxu8nn`K{c@Aa_^wo-zO>#(ktj-nyn{6qUO*VZ8MtWM!Ty*E^4JTs)9Ak>1 zhXrJLKn+>hy7Y(EWna(VCpAXouVj>yR~rQ~B@h16#e08F=BNiJNh|%xCSOHk6}|f{ z@BiUHy+2yioxNzOpSC@QFh-lIWc0w5z9R7ANg}p8j%~G9aqQ(B?jD>`1rr@LFPbhW zlYfG3)HRmyWmR)KJAO=Iak_^!b9dzEtKOog05q+**$>m2oQFNn{HK{|d6axw7YvRb zZUndrQ#5qIE%LIPZ>?ib$!$!DKQ@NN-l8e5dP72!$Er=|S67o-45Xje*^Nu3&49nO>H7l}uKTouRMv0eke%|YL$myD zBo?xcp;NJe)Zla5Hi7LrNoJ*)(Md8V%^XN#9)c>=CryEv$EKOn$@;NJsI+N+S}#bt zAfJy7x~4-AhCS!&@QQTN^4QD&>%l-Z-}0PRb{p$~E6cL4a*;8d^;61QIhoG*6uB(%N#MSRIIA2_|Xw7(v03Q|5wySM( zNCeZaXnfsyYAVz=wjJGtxk^tAc-<_YGwMeyvhiiITTCt zmoF?Q&L07oJth^!FuiaUmK5{1rU2pm(48ZEMU%$4e}VlEX!dB5JH=k&XC;g2igScZ z0WIDu00?iA_uOk?%o}Af3ON5>Xk`6+39b>4;~~>pG)T+@`3v+qbTb4J4hm)VI1s&$ zf?Cfh{W5(*T70Cw#ytIDRA+#g?|I14u?dtl z*-o|n9UKu(_uaHSLf49$_Sv6->xyIj8$N@C#6hu~=u*$y>tkxjQR&jPv`LR5AJju#AhaJ)1%@r6#s~b6oaK0u!KhwVq zP5a-wEB$dFd$<48<-NT=@Y)(rI_%ef>a=5#N9nIWe2?_+DCoyu1fy2BGmML+C+gYp zyYh!GU{n4}!ruq+%W!)(ZW0|m;_q;G-`MMCI0u}wZe{q?qS~Gn%Sf-nxwyB@+HZ*o z%MI>epl$jG=~;I+g1@96yDDDBbjwA@*r)v;&nm0K^7f44$o`@TAlZLBoxKc=CLNy|9h&Ko zPQ}WL-|>Uy!_`vtyX^#NSt;~71nQ#Lna~|ri!u508y^m+uxPfJ9jL!C9M+0f2ht%q zW4jjBaGxCpm4Uj(*1`a9i6@^psOFe4BUNHb6zjbjef6Cf%nLo3rE-p_6FvDb#!tSj zCBGJh@ZYW7`7g8l%wtN}+U#lLJo$his#-C}Vsy^>b5eikgjx?H6<`>mT4ZvJ6DC%* z<@n`W+2+h1NgwL9W{*UN;BIJo6Mxrus{&gipl|&rTWDAv9*%}{rr^1Sb~u8mIWzkb z`jm(nAE7i-dIV_t<7#kcl;(Oyc@k?rZA6s^Wl##sE76gj=@5lPOY{b?3{g#fUAb|` z2WH+ij`B1A83ud!7JwRm#tqcUIplsgcO6*nI-~X$-UF2IP8iJTaS;WQHp%V9-x@dQ ze+#>a_I9&-Rd6>rHclRVNzJ`j!;S^i4*~jJ{b-}ys0JQ}&}J(gecTs#q|TTN07`>H zNh8y65IV&l9a-JtzyP zv18-t8<_~6_K(sD+8|f0uJ!op#RhL-r79Q)-@+Eal){-ANE!ATw+J?1(v){A{@ zLn`==Y))V)S2w_0q2BlInE?a=3b+IfZT4CM+jnzlfRmxI)jpM=92N9Ok_Fv9SPs28 z_{^|GvmhjRP^{oL!5j=dGb7$?3d@2-6}XV{S@@al@#-qwDM3+FNa+^&A%F(woD}v- zL{l(ZbFWnA7XJR^Cv%C{t9`N5EAAh_avgG(p9guw*WkWo!-#$M;YbI<+vthb%x z6(6Q&yfOsPoIl6JE9yb}c(WWUg?ROx>gc4(1$gR-K`nm*En3LD3eW`A#|B4sF;(AC0K5D= z1mo)~jPpOuyP4uYRX5(3)zh)3ws5lk@D9WetaBeE^Jk{`2mBV!yNr`M!|MQxZh(V| zi+%l`L=KDM6+5>1uV2o^>mDHK2g>rkAjjG55b!D3l)UW_gZ2i@PBrFa?je$mO|&wO zFzjSkhdz>}dgYKItG8csXd47P2QR9RJ?f$ZJ?}`xy-y z#f>x+lF@{9^KnlI$m3LLdwh-Se#+;@Yi?S9Zi1w^BX(X0t8F{G8R0bEl@T+V4L*WL z&eO{yW`00gM%29o`c&XY{}|CVX87-t3N9-f+AsKmR!m+L$hU1 zo@tpYbMwuV-0_+*RUtXH7EDpPYvD61O3aulG6CbLD$)V%NtN$HcdM#(F05J!`bbrw z%x6`#%-Lf7Wf4qMkw7y&rM0p3oHD>owttZPxIXgs@@;9#L~G!bIf1EZDhQvMX4-{D zdR$;9b|y_jxGqm)=RYqbosMR)x~3@EI`z7?X=Zb((%1l_S&12aq~Czp=$C5M-`c8H zVtj1Y-~4>!WCWOm!gCRj>pBGZ7}y7JF-#|FtMK(CypL;g#2gRHC=3_ERiSsq-9-8| zzxMx$I_f_Zd5xK1iw>d@)CCnBEl45;lZ;{>8e2Ld8IPCxq+Em5`08x~^|qz%HVlX< zbmbr3mR5zL&t#z_UZ;?K^J1M*+APvX!MxLsdld_OFD$rxb(m#9zUdV~19j#;V58e3 zFvWliyc*CW(}DnkpgUKoH#qqSjLBr(09}mJoo4z)q`VoMm^Csf^s-DMY5)L=8arT{ z#t!HwEKqYrT~~HU2`A3jGLX5{GWpHsu$;iSKFqy1qqtT~x3{1_+GOPt20&Kf$FN%% zkYbiefBPWAZiq~l2?)J6vdU6)MS>a;txu?V zHEOOTq(b9DcqVE_CT1Uv;?a1^{;27bB)icpB+2rqndsKK*Lc9878eJt$cy zKhl{bO?E~~bCTf*7pazzNzwEV83Qy9uAFC^)DDB`YAXfqa&v+t+7b;jl0ugnBYOw|0scXp`NW>H1LMHHtlB;fKjSTW(K0BH9C4S^xM62V)?k>6 zt!f-5d8wof2v?^#Hs!8b8b#b$8a1t=QEY`Y3Yo*TMv+US$VH_!F$DHa1}S4=jpFY0 z?rsDS@7d8lcXt;V?;>*2j$ksmybOElb|<7b984tz-wXHb`+g8<7149XQQRy5vWe4q z@E%?nNM^8|4RrRnU^JYGQ^PH?o$_TyIEB05h1$j8aS(;>6BA&TB(jjQU$leK@no7C z%K)-FrWo!E*Sy%5c;VS75dRl=aF{LWP0IylM=EYFghU!d7=YEHN}nwvi_j6dkN~5C zsyZS(05;C=xRfKjT39`;xQmFq9m8g3NbiMdJBX8ycCj1y44z8b#z)f-F}QOfd@Eed z7F(n?8RSsn#u5#MTkoOc8tq<5#CdL(kg(5cB;!wP0`yET?TXKgy$zc2=I*VokGkV` zL!6iBo4)Gxp(l7$kBJ-!oOs*rlT@%^_3TC@-0zn6@_j6T9lT7hCzIt9&G z=CB_7?lm6D*oo#uW19V0fRjaFLEk&McRLg}px3x~XV=8vvphYDuv`rQ^v*Y966-=c zRHD|&?qRBm#1xRH165C>hekDdPE=DiMf>Qj_&;%R8knC|dFJhO>5#9M&Lo}GJ^r-} zA$e+szQ?+Zrzk%yQ_kg?ZJ9NphpJp?agLVWmLr4n%m=wLJl`D2)s#ylXQR#LWqGZ%BGpg9iME5V6f2HMP`#O-j67e#v z1^?-kh)z&SEzJs1f^fRV2IUo%@gfZ5nj_S3aG*g*1wc#dLPCXry*rSx*oUYJrNWM# z3Q~0ay;)u{KW2|;6MOD;YOm8c=PlnnCF^|7bWks8FvmZ2w2&R#D%#EaE;JU^?t|9& ztqj$`ZpgHeDt@M&n9&peJFh163co5JLU$650j~I?DinBB<_FBPGCP3kdVIkA{w65w z5XN#evZ>I>At-=I7MhRVOJzDyQjTJv;H#1pdZ7P3av9zgXGXBHZ-qqfGbms=a0A|o z}_1EDB9z3 z@mUEC(6R8YeIG=DHL2=FcTjaxB)*dQ5O=`>m%*}k@G-HU9G0t?^M?g`RX86)sG;(J)8hp?HY>O}y(B0q0ynK|I-V<4B5nVD5J{nJu} ztUS2#ZQMQH8)LVMZf1%_A&{Nqc3cXTGo(!P79gMvzDiRIVx&Abz3E9QYOtyV+t zGkio0_FU;2H%{d0Gd9U6{QngTL%cfB(Q-94)RLUN;SnJ&I;ael$}^wB_!HRH!Rcdj zSzYgEWan1oe7_C?YXsz10?RWLRck!<^&p010Ii9+-Wqm^4D)IH4`*k99kR*iVsBJN zWth$>GAzTqks{~QO&9EXGfeN)3zqCr=|Y5W40YXet2IHRGu`WNJ4nT(;h=F8PFjZv zCv?cxu@|a*H%SkFdQb%C&@;~|)y@jv4CZ~G zr*psL&P5jNYMh*u) zt71m0q-RxHR|`ETM>7^Gd%G#8zfa1i`NNq6hpTA%nJT0&Dypa{>vfBC)65UbM{#C( z5N8u}F1CR@+x$Gs*+u_jyR;B)xADP3!c1`&c-|xoj7tAPvp|pZAEdSoka;pw)A0;| z-l7aapKL91B>OY1;A*a3bW(nLPk|O$pl}0UADjPP9FKud+K1Fe3hD8_3fs-YVGTr zwfU>;=k*lhi`%wV7U=zz2YT%qnpdmJ#|_Njs&b%#SzcA9H!yD%=R&J=v%a}f5`|t@ zO(?mwn%>sGRH$!KshnwGmXykcdZu%k@ciCo+Lmc$a=C$7S*EqUU#2ymD;sCIc}8{F zT+bY;Et$}NXHM6XG4;*x`ZA72G}K2P#Um(cI$tj*8kw=zYu{~A5qzf`mU;BthmGWX zBQvsb9caFt>uZcUo>Pb$2g}Kqf?TbifseArYjQV7Z<{u^KHqJe9bR8~`rY+a0d%~+ zIpZsR+0P*zYmf2u&E!B9v}4wgU_-VI{jqBUtn#H#1ESf>;07R_$te0T+{))-Z@gTt zPc-)$SL>_&ZZF;?v6sii8SE+RnI2Jr9un0;qoc{(Fqeg% zHZ2!=7tVoXr^%>NbJ@{t)9aJII$eg8n@#B}^o9YM`tUKC+K`!_bfi_Dv zm7A{F(!M&&+7r+hvu`7PMb1ilu+((V8)UhflCQ5ZKVM&Ijmq*57NpbqSMh+ZW=2=~ zT;FJQvFtCwC$$)QZHdw|t5LFNnP_!oLTx7<-MyUTIpvzn=&SL#3<&^K*c~MguKh@+ z>_xh7v6IQ6cS7N;>=!4KiZug!VqF`LV5RN*?R_}p^L_-iBzo*Gj~-fav3`&TGdPa6 zrL2pP2LsH$W-DwnD-NmO()Mm*p5tM{^`sexH8*Xtl^>{cKK&<`s*YM=h0qp4tbOEA504wi@JF zCEK8W@V-#h(6X&qH_?I(UTE-wy8^~{c235O@TY2RF^f?%Qu&O*| zbn|+d|Ga8dl|g=2p{4$)2o*!D90nm)UzdX}^C0#eh=}@Y7eeqa6}OeV2>6>iqu>{? z#QTFg!@Y&!kq+n8`m;-a9KMAzoWDREWRZCsw7wG)zi%TP?66>H?fIPNP!oEQiJniD zZo9uau$Ha*%i$JT?;Hf)z6B-#n#c+~6V0k`_xO>+YB5^zkM~GZ4yWi|h6o3Dcmn<5 z`48K>b52uinK$091`;^W?w(dSAQN_x*n$=Jc0x zz<-Z_ylQVNqhIRjx6rkT^Tu)bbbI~2prZ3b5A())Lxbuzz{MERg0q3n51Lidf)w|? z=%m~h8LUYYQ7vFDtmD@$Psd^-`L1W=eIFtH1|)7(pvKv!@MOSeW-*T4&Z}XVrzOT} z`3+tHnMkS-J7E2RHc}Py^K=~Ypu(GyyIih{JC#ljzVD>`iZaV ze`pk}(36}n4CN*?;xV3lt#LZB>wvp{BmNUlNLRIvc4h=_DRs5aveihcEA7JO7PS?* zTdAKBn2c2blakSj2}^TOb9}5w;jEE!QHpsKphu^N0Ndh>*~M4ASbs%en~%*P#wtGg zZ#2ay05AC%wPRh>GlUxiHU*dubVi{T$agM#t+7#39qV|JtNJCm4L7{cg60E7`feMP zqe0Uph}>4AQ($$aGZ9(8YkIUMAx)dgi{^Iz{<0#i#`U`L-YM@BX)Yh?MYXzPcV6Pq z^`N_dZL9bnsG_zWpUU*9H|kSw&V~AkY_R6n8Bi=lJi5=neCRhd(sp#Gx~ zJ-$Fk+5zON(A(WdIu~fK7hOXY9a^aa>#F=Hf_Hvyd)7OwR9fA;u75$Ev0q zx?^m8xU&wqEuQ!^s0+bsA>Fs2!GKk-q5{aCUO!|2dqu;c0By4tPX(OV92OCD(VdG8o3RyCtEnJoZ)If$IvJ(_d-+ zm;BAQiAR}TvGm|I)aX{HnZbz>$$@)LWnH>zNIyXIv6K6aw6o^-r1aA4(XlcqW}WJqo|Sm#Ah(C*U@aP5Qfy%Ng(Tbyw2 z@rtUrZiL&HF%Nw6b&`JH+OpUJ9;tpMa0UM*C9xulp22FWKW7*-S1wuq8%3d#h-`tQ}$w$L4oR)n>TkpkmVAy{2L+s=>vLYJPqz#26Lp zRB(Szl5<%(9BtPZa?XE`7a->0@1CU!1TuZZVo@_YsA|JiLA!|%vOz^UV-8@Z5<o0!^F;0JZh(INSdR5jTl-YtvGg1=AFcK)xOC#uY}GQ(F@-vz(Id2X9m z8?w9h5YR=j_pD_r-wus{c7yMu&79$b6#E_Zwo&)SeOm5X=WD;96E2Wa0suQY^>%!B z?<+(G_h%Ath;pg94P}zW<>g&?p2r?oUsv<5dFN!D$k$fMc(mzRM}r0SbDCk(&8024i8y>AFPCj z4mdJYZ4Dw*Je5~}t^8G6J(Dm0=X~r2-UbK915UH>pr`tH=L1c$+ej|OUgx%_RM-7e zb=pLFfKD9AjpOEDCnPVPHms50!{ZK&<8(khQo99!MAnGAJ#`Aev$$TVs|TU_>O*`_ zKg&%hF7ybS4M|raHu~8612l3biVTk3RHdquIkdCnPtqH9c)gT%(kR!He3rBu>f;4a zk2C%l?f46^&zgEYw3} zTZ&49J#;r!6fTIp=+{cSW@+6m2#WI6(pY?bS@%;cAi8!q*?^ADpK#v#PxYd3PwQ>} zFd+u9Gg_O3TqE|b*s$LZ-I^E$;yXJt0&}kx24&t10d|aKWSPG4hY~pf_`i~0ys?f~ z`s!}dMtJfuIt?Ff6K=dXi_g{<`beADULxHY^%)5XeeN0mTKp0 zjrCC4BV7DU<5T@n`r^laEx9qt&uhG))|$cr#C1e!ef~bJ%aqD+SS?-ZBR{Cc$#1w` zjrM*BInd9U7t*5~^a@`_h0HepK4>^;&Tbn6k3i3r+!G;1`-T39h%X^F+HRH$XQoW+ z>uJkA!L2Hwr^a`1UM8kZ09PCpl_KMSi}}#g0QRkQ*dwcVZHd2olgBB1!?nv>4~M3N zHU6l}{RKQTcrDC@)>yRTa|X-_QFG$d#cM>II#9cw+2 zmc(%s8571bUM7b1e2E<-EHz~&0^9<4hK^VKBHYu`OMVL1$Q;I{%z{VkSV!LMd-aj{ z{Rri?`B@fD+51#@IMKP}Ep+xQE4|dE8c`<=VGoVz8^D}c&5sumxls8vO+V*Sdg#~R zp+6tThHCnC$b}h@1Jv>PI%ET}>5=iBKVol;aWfO&!ZBAId}z!w4{`U8WC^H67Ap_B z1C;I^I1|L1IkDPFI2U+H8Nfw$dOSz4%mH|;=;7vETpkHMBN_>HSVW+m|JtN@@;2&^ z!{g>D-ECbO^RtJR)8WML23H&nnFd)>`iQ-ibUrKxrBx1-e7`r_k~Aogk7et;K>ixc zSp)f9A}Y7JsG!I~ZX50E$-!jE*4pF!LU%x(C+uFF8H`&(oS7L`%h(k-C&ZbpVc~u( z`H-mVkK=c{*+xTs{E_6cXOAOV^z3pE7pGHR1e3Que&hqfE9*$2zx3bLf%n^6)gR?` z|CvuhekZIBLjDjGkzs$2+`wqXQvzV%kd6&dC_dN0oQR2yw(evovI}El9f)7dZif+a z8!5;yulW8|?*(Kbfe0V`4ek0b%VC$pPKD;`4J*qnE*#{#_OQ0x3ymx1bn$Uk>?8g` z|7JHPT8lXlfSJJPm|-B1MVN+sZH3VH;eK6PHhMpv7W6T6>m2lV>w<)B??nNjnAW$` zZXOei%nB+P(pOsL#`teld{HhF6I@v2yJbuQmS|lP(ELOFypmfkiHz$OkfAn;-`8vv zbD_>%l)%ovj=RyAt&PWA`3Ud3GotjF$ODWm9X}nEdl;U8nv`t_>W}rcz3+%Bq%EKB>nF{89zL^uRcz_^OLbpx0k@THf%b|p}KJ?<~ZztrN z`}Yqn_cOJ7w|C2_!;#a z&eZglSwDe3n6^33axqvtZcx6K;e}e;LKgGg zekkDnQT4{A~_is5)yEC13L(yLXyuhu98*b_(`%EAMT^&H^<5DWTXux(32vv zA=#{t2tn0OL^NeYqAW`^Z-D@oq!B$8BEAEHN~BuEbXG^WU_(^(TwC=L?RPx zK4<)svBiCdt%X1mzutOlDk*5@dzCmeJ*a^oq*EocG$4a2VUdI!d!y8ASE%OA0||x@ zqy*>1;e|RiCt+m}+Qrt|I$nKiy2l@Iq?Dnrf{m~NSHDcdtM0kZFxC9`;b)-8;UY$ZFZg~Xg3ZQG_C zeg5T~NmMdd&9YnTS^9PTS*}04?=o8iaov175lNFRY@LMQr*KRX>WIRgNh|}hGYMg6 zIk^CEZcf6$;}6hFfq+YdLHQ0e*3*ZQK*@Rrnol!5Nj>!6PBQ(%GMkvKVL6hd=m^kn zy7YPBt(HPK+HiyO^F6@2Ne%Iuz*t?8XjWrTOu%PHACAADbU@;08>64LT}qIiNs0qS z`hmoX_c&uqA+9gIoQkhY_Q_NgaqLV*@LC8x-pg*6rWob3L9z7&8ZTH%?(*l_L!jU4 zqOgP4NW}=e3=}OK`iQ>0Aygf@Ls)uJLs-*s^=g}HTE{&K{eGMx1OageeJU;mZ=R0ci|E7}W$9ER0LF(Ius!&{1h$cwJ z7xLbh>;V1%pjuhMnW5(fvMIVVFwkx;)Nndnptxaq4E70-vMr)105W6Ca@x_KM;^Fb zXx@!~s5KSQ@r7V`KMQ>jHU88}*vi!5;!;#P6cY69I_OrZT1Br^Dm|a}OX_qMeKRvA zc+e-Z~q$E*#E(Y=$ECNdU-m^o5{=qCxm_OuE7O* z7~53|$?ZPN1t#9aiMZr9ght&=D2aW6_L{L51iSr}Fl=mNdlvF>rE8&C8L17;RAyFU z^bS2EUXJ227hmNwIu8WvLNhJlRePk+Y)q673w4mLC?v*0I&}M_he;>S<4k%r`8H@g z*GCna-YK_2PbTIGhDNEaJk3ZK>H`m!CydXymu9?{DJv?OS$cTenyHUDomosl>|a(F znC{sEJvjR(6d#o{Qy>3Hu5eecye7QKj=Tkyo2TkJuuOmGmv){C=Wddj8Rn^9v7!-p zIzv(Xhi2*tvTY{FiyJIS%=gxrph5o<8W558S!Q791?cW!X_bZf>t&CNx8vmq$hz@b z$Dw!`nQ1P@{|x$Qg6z)F$o0@25>r=an2CwsKa-(OSJ0!9G<|sz?KtJgE3D92rc3gT zB=1O$Qm|!It2u#52ynmAn$X*H_!I63NaW6`vN2PmOYF)tAL^j%o~9L!P1BcH?dW}J zS`ds~3ieAcA$NirnJ&|xwc3~TM6MccUB>~Zk^Bm{T~4d~hl@lMPHqpIEJNeXgIT=^ zxq`(avF>c))rg8*_9rSQx-C&n72Ziyd(qa!ttVVgf;!5cNzhQ={RvNx(`=%_C1`%w zvXJ-^7sg!0|LBeIv;GWq8CK29p=JA>w@Cy9639o{Y*eo!6hk5e)*0yM=3W z>J5k#{~)Wa`5VV;cSycE5Yz5C{+%^CWs&nq7IIuDIHw+2DB*tuz0@m&M(7Vc9qjfj zRd^lC(o+gFCdQ=WAi#UL5`UO|DS^wPd@Z< z%O!UF%jr)|2}7+;2P+#s2)`>Wl%w;`?kCK$&B)qT&%{^ z`+WtrMKE~jHpgQ-dDDMj6=69Iw)OlGdM5POS3EVc$U`d~+35K*y~ul>zt*E2RPCh5 zuJvg(NO?ig(VXmIT&$tVO*xajYqL+Fo78(KJ21ya)o8S;)BMCWz{Pbf%ERE1Jo6EXm(*2R27IU(_ zcBuVAFoXEa31&FSxni~Xe%M(|v^iZxPu_im!*0$PAt*`eL;$CJggAH@UM2c+>oY+oUfO_Ngaahun?O(0&#@*T zTY|cZ?+x>lpsI?C1S&&Q0LlTZbU{q+g2Xp>ER4|zka&@v7u1!rD=>G zL=qR#qG;Lzue*mtXj4FgAodLU(Bp&ncC-tT*-w8MXPxa>dl_{v`;h(!|BjF!^qNy#6{;MnmKXfsrXPNeN-YGOCHNed}@Cf`*;pp z-3SSl1e$L0u|zX2AqvexiyBc`>S6lxrv9wdpZ)sNT2b+6PRRp{m=O3!AhIH+89fKb zg-2%~7vn%}9ML^o!CETed`!ia&vK0ZeFi4(J#20#HS`c@H@@3yF95@)W9ZlRxqHFP zfNwqH4U5_XL0OSvJB9?Bs5;YA?6|OOO|dxLd=#~d!@UAzY}Y2wPb`5vl9<;n#V%G> zVr_D55?V&{&PMGAQTaI43`$Ak_o{LTJVF2QCRG}u9#xZ(?W%mCjpytPyByzGomx)r zL80_p5ZqwQg*BlogO!WB`DY6>w7h8pdy{IqYBL5Tq<2UoOl=j+#}niX;Jcc7DIxt$ zPic^+y}3N}QF1vGdN2>T{{${p)PfrpUS+^B`Nda3R}aX7IOUrM66iq( zH)o+OjzQTSQS8P2;5&ze3eJGTNL*_NqcDsBZ(;R?+5jkq6D?h}|G#>UeuAiO+12D$ z^wk9|=QpKgQ+Ju%j(O4- z;ZCF9khakNfC9gf>2c=w&2hS0Y>S*3%2eltr$7-|q#p6|`Vn@`SGT+Y>=j|vMkCHe zLk>OLf0Xn$0(qZ+ycf_i>{ojU?8Q+Dk)ESZ2DEl?n`VYJkR6Whd!-6=$DkTS0igmt zB3Mcpj@lp)ASC<{IK@x_^o)?aiu}_d6D$ukr3`Wdlvc5^l!5(`lOy-=fu~@VK^m<6 z`lUVaao_LaKZ+R9k92T|R$pNtv`O8hke#9`oXu#`@Zb^Vi~{H~XHEoEFdJ)=Y6xKpc6)Z4E*0MxQ<>-xFIGd9K3(6e ztvBC;eob=lsX;^ujjamwWy!2ix4RY>udu&wi3}16251`ISj$EGfE)yGE${#|LSa`f zs#?QRtW28o_t}axr<;0M+7fJ-gz+(UqABNg-#n;(vfooT**~cs5-VUfulKYF3TYgI zP_&`zO@>d1S&js8nctU{v#@jn^wMG0v z@_8?Vl>UB{6h<)4K=41%9B;@)YE3Sx7}wmdy~DRtgneC`_l16Hut!*6f2p!_qhS;R zh+Nn(KhWp2lE|x~U{YTnm&re1N5-PJmy>I|=A_@Pn({v&PDEF=*D4dCdzH$m?}S2! zHbMMpJ_dc53AY!sibEz?EczrI+0nX5WSO%)`O1@A#nBA#ek;k35lkyD{pGuVO|9pi z_21OD4IE}|FMAAAn>hG+RUREdB^^C<9K$nl#7(Zj;{o!$yR>b=sIJ#Yg zTZya3a6*L0$;4R3(}y3s@wCI1D8xTHGvtGveMJ2Te>SIr)%Y}fF!-sdcy8PR^Cc>P zTd%g2M>+Qr^Gf50nCW4a(ajB`FU0;%x~7@6acH#7-~`!}N&qMxIw-N(0zxn+MnO1g zl_W&j>O{neG}9wVNS~VYB$b0IoJw>kDu)kvH`VM;CUr$rdhy8UO>F!rGB4E(O}Pzj zAVo$a6;#&y4P^{w>CZa-ap5#ODvJOg&Rgm@`MG^UKQMZ_tzMwUKh}94%ddeHa%%TBZ9^(ot*I!59?IhfS z!^`QQF|V<%ZLOoX!a(7wyHnc&>v$wUFdeYnR3(kZ%8 ze`r#@%ABLj6rxzfV+{+4u2~wE)u;#*N9$x*-j6pI!(cTNaDW>=)*tTr|4LC@hWQdf1vAF8@)BUprnec+AeZRH; zJWEI*0{9c6{;#YabkF~;?rofgpZ2lEIur1>>guVGF#%K!h%b(7Q@ToI5U{KIg}-RM z`)p-M5C#R*$>Nd&Egc!q-EmyNnN|lBZjzbg)_H8VTHMRk1!97R{9(R~jPsG$ZH)6# zH13Y`=Yc&L=VMykEzW;id+c0LwuXQlXY)A_;<{a2q&G+g%8`7%4ci0dq}{I0Rrg)> zHu-TWyS}8@m854taL6llL(zrrU$3X)nMgs zTvBF^u*Os)Qif0x_@WiWS9Fmy-`1yJipwII;3C~h&HP9s=&KPqUuuTOKLOn(p)%@E6hvw|BLKSj)FSk3&dSZe}Gt13ey8s}eIi`9h> z>r>=lH8U}_0D4=hoGLYa)3ki2^ny1inJ#PbTuWCRgAI<}mM*04NpC@!H#1~cH8U@x zIrNN7;f0oGO4oApwxf?`>T6xel-A{@ZB{Py1hj=Xt7Y8-JuX|`Ay{a3ZRoSviiFTI zN6U}RDW;PMnA4-0Iha!dJup}LRx=}VYeMhKl~L8q;oQ5S7v;&!YG!MmtgU8tJGw)D z5$SXDWqUQVG`}u%+X9(UZn_jSgWg#n3(C#@0{sXpD(U;4tR!3cT!s3%-Yb+DCFX;| zT8i0B8 zq-6j&Z;E{CmL2wwA1Z^~-j_ZJ{#0Mq#rv%SvXY%ccWWOMhB*pcuw;;jH56es>-h_ZkFdyOunn0jP6!64;WfP4=-m2I_+-l|;*X(vOp2=(zQhUS; z4mu9k=YXt7^A1i^NU;pqIeNehBNq{Mfxu9xUC5l)DM|<3FwYK2e;?$f4B3FZHdCN4 zWU8EaOqQT_zLd4vBWY8vCLPSJ4n1Af&fHp?MHs#A673%RGccxM5ysMsMYwH1`IjyM z<>KkEGqDBvfkzYy_Jxcc_;0{Y0-uJ}EH(zdoMNM+OTrqGgN2ybiDB~w4Gm-DBNxFE zg@NE#*O8C)=h}(=Rr?)`CI({`&E%vrT53vEE;cgUo8^yxUaHUsmqCiK{J8P?3qNq-c2M}{nIVlHH8!$xIRCuMu4%xr3UW|cy( z&XQ40&5o?^LN6q8UsH2Fy99c8j`VEGI#LeZCs#T*HIs9H3OzDUS~q3Y&@!F!<$M$H zS+t%L_`NnU!wQt%Rv>elm=gtq^fd+)%I@Z7Vxi1zW@b40V4=PS%fr^DW=du0(abEV zEGKRGDwJmdsWoHv}+|i?m>Pkw9R(G&O#@u8s zm&mA_O_ypi{$|s=n$k6QaRt;Y%0|nI+n>%?kcMReWpy>-E0Pw4+(Iwx|Z~6 zWOmk)&NrL=j_y-?xW2;5>!fcJbND)aPU||d{U$S^j=ulFI&$PD^IF{jT4+u^>BD{X z{tVr%flR#F3~!*H?)`>EbbO!d_2wzp%els8$MtRWh8{P{%A3u+8*hT%+KAC{xsjIH z)>wZTOur|@sq@JkkI>S}dj$BhSX-#4-jqbM(SKZ((L(0pU@O?PkHgX-(e#Z|`RJmE z(pxaLN`N=5hpsOnAFmh1*-13BmG$13pm`^iY^@^81^R=s$PMF+@4rDMuX#0aec9-7 zg2KYhWhB1@$NiqoI&by-=#oluTT&KVVPJGtG4t`tQTLk!z^M7Y?g45@#;WgDTqlMc(>4w`=X-~RA_M* z7RN7FJn8SR3zSE$Ei)?Mh7m|$<+xPa$8p*n_5nJ%d6JuQJznY=}|OI|FKzH$3$YZ|Q#*ov9yb6)?_3kdMg`(EX!r#X2q@ z&mhJF-S&CRtAN{)RAX=H+^5|;+|j5PSA&AmH{Og6azsLD+Y0SS2oluHV-a&&Neo-I z1N*Cs=po(e0N6&m7thaV{o#StD$X;QjjC|yUYTMs2__KQ&z0(?kGv+5`SvCM)z|y` zuUU|Zk@0ubXY$8-2Kkdxtt?8tYX-y#nNo)0ObsPmqq(kw#K1TunhwaX=Ii(TR(>0i zr&a2N+OML{>*R5BLt#avFRkNl+w?xNkZNxX_;mi%fRB2lXTYDPZqYtI%g!Z|jd`_S zi=%+eOXp-{=rCksJYv$-G4u$MN_8AVZ$u zH}Reh<#qa;J+bwGYChCzsDNsyfNIXTYVca2nuD$yT#2X#Cs(Rj?N>x#Sf({>(;t1e zujsZ$1ucx&TLB+UP`iMg>`9NHkJ0+uL5n0}QjjA_f^%_)YEp(^Y51154ljwi)y;=0OBO?tIGyy#>XhW^aZAKvA$di=fVuLl5z zvM(P-Y0AMqsFv!`r|}I3#M;yJ&jCeN0rnl+h)y2R+_M4Uu1|HyFOY{w9vIZ*YoGAp znk?A(d*t;BDP%2pvK{^0Rv-rZ(oc=;mByXzqae!q9OzAf=O}p)Bzib%j8lTDsU^j^ zeO`%;iEhpo$f>wejwOcubaLV?B2u%e<2N9%ekYI+5&=MD+ki)n-GVumv5m zRbhQT%e>*G&IW7M>k^ohtr4RpWtqOAr5+bo;$(D|Lbi9#GCd+n4~!I&zBVFfGtK5m z9i`*tG$t_dvNsbPp#OlzgopHtNGGz*)db;b9TJ6B^hnfJ^;bUaRHE?6ZAn_NU2=79 zdMmls)=bki`s3Bu_oS#17zWCuj81)!++k_eDG3hFl1y_1b1%xI-3a|wx~v0$HoXpX zn+)OJ2{BWzk+yMPx*q@k&$3kGwKfZDc8%9Q+}~)q*vR=N+iVxj_yic@Gg;=HaCf^u z%X}2~92X}e>2otRQatp|cn-xXSwD8Vk z^Lj|rr-3<~Z1!O{maK+w&}Tx0r1!-NH)@83vw0Zc-n4v2_<}tjWrEecOgP&3TcDBX zlD#ipBfw5g5K=lN$^agmcoX#CByH~sqWn>XzA>-)t}UI-Qa@5U`BPHNys&i6S7Ur= z9&(;Y?vBQybA2jtq-98&c{4$C*Eo7+;(SX6F?Y{nEu0L)*(OC+7MM}QwI{Nu3hYlX zUeok|i>*xiG#Qa$He_h#whR?W9LbVNl}&H#U<(m>xr!Y>ce(l7T{Hd_jB$B3b_oUd$7sna(vHqEPh7pQ4SN1G9I z4%iC3DtdX-IsXP%+8xbR5|;zq5sXCp1xr?I@=%)H%L&NVgfH^i$q;tPbT2VRfzq}YIIkL@OJAh7gGW_$9r55y^2z}b5P^rc&+8bc)h(-LgubSvp+#^ zXdgS7?)RJF@9~C}9ZfYtBQx47{J1F)zv)NdWc}H86*$1UEuIQoNBU`;wYxMm>*M8M z6Z2WTKzB&Uhn|!m+Zu5a&UvSi*_t4&8exH=H1l9n6Eh_7N6;T6b@UEW2s_6{W=V=x zu{}kLUQN+L=hOCUeHZgyoO-+YJpYo{9R)+qOPVdsVlo1o85IgSuRG`A88T8v}`C`bZ)5i4Q#0S%Nyz)#~W%L z{jS$q&t0zqoA++0#glt9EqJr3`AEO+-e#?|EhBEKbK+rh>?UpGsGIez&fGG<<4ybC zu~YNU-ucv&d(FPPWcoUq(-F*`}faQ4w4#pBGcKkw-e6_z#O@0~I@=l~WT@8nMns_7+~!N8v& zC+N<l$0mHot$c4=Ex7e$QvC2Vsa$qLUy%1vuGrxZuri6~6Ujf1( zu8HuUuAZcVnrgYyC3XU)=DNk?)cGNYvUTp11xyL_|6%XF!>lN>|NrXld+yxHIWU1q zz%a}VQ4~Q@1O!1?QB3QutD9Wipswq>CM1KBljNL}B9a9`auh*wkRTvAib#_0>(sr7 zAny7}&-44^$MbOK)T!#~>gwtWC%n&j=SfantvsbW>9s2?$==6S)1Y>3Hqxw20o^L& zc=iQ13xF$m-obR`YwwO}0RnD61^qE=dcb@sN&|hrK45nHr#oc7ACiB@sHo+QJj7Ac z9nL4TD0!!Tj+kFgw;?>))9dE@=bn9|N+BJ%MV{cCZ)>|TUGh?`_cau$0`^XI1$vJA zH)wn6Lm35Qw@*G0jTU4psB#Z~o8AuW5*@?|mJWhG?>qrb2SM8oT4u?s$Jsy~c^1F zpCX~?ljXy#mh>#ZSc&W)TL~# zj^L}^XYIy{6Q3~pibLZiPIrQNQrluUsF;NNCT0H~6@yc8X~+w5L+Bh|GcVp5Lf^{IohcNy_*;#79{{0*Z;j9N6o)Nf2*imG~s`8X%R+i zO{I$uQRxVuLTC*`{@_%CK531YaDIlK$4MDXe)q4?9ets@{`W6UyMw-OqO!ifgEqzq z62y~FonP9A3FQHz^!EZo2gooDMEcwh^KN=wrP|c_3t8?n|KMwXABZy|5$FhH5?gPd zK=IzxzUqt%kcjqM^etr97bex`{vKom+XWcs-&mqbe>q_xQ$VuKZXDYT%C@&*XnpJ^5 zENbiYuD==d84g8ATf*MeLUVAIL{<}+tqJUxxO{a4G6!xGmrIS6A`|AMHIY4L##Z#EXeuM;0e6}tOlP`2k78j9Tg>| zjjBtk@n3sOC$sD9a(|{iVZjpBJrI*zD`+lL90%nr0y`&yRmtjAzQ1Q>wFAB@{*2Fp zXZ3RGLhW>lfu$g{1~h7T=xIKskB2%lRu_U^P9b)E{X!$|Mi%W?yBrnOAiA66^VTTN z?Ob2PQeQA|APso)>T{P>0bma&+=Pzs(tI@W4#+uIq(mqxL{Xy@?Q85ZR|L4 z`u3$lcfs-^2AhKSJQD4~r4zo~;d;TW@RZX;n+;F;GTNL9&xIZwA#;K36g;B7@?kK_5q}g8iT3+h$gCCma(>by zDodw~+CdO2jwNr9vie%wG}l|-&8SSNW9J1O>3j;WHIkNbs?I$bi`+A*BQhb3V37E@ zaxzY}IMAnjw;qgBEB4P~O{*|Q#Og5FLO8-OW#HtFPzihuP*AV{?HFecMkNi2Hb?b6 z6D4q7tRX%i4E*^~YscyN4bQ_(7GHp642j)CSoQS}4da}r)UNuKl(Q}h%+zVt#2TY( zs~o;+XC3uJtr^eon~~@QK>JikH{ELDnzYi=?c6+&SeCfIJ0WWLydD`mB7gQ&n78@W zSOmHamT7*CW&%B3w1y=X;{`!EoT>g`H~nAVf_E{nj&rNdbF5OkeBO7Q+I${PQTu$} zWSzD)fSbdvOii7!I%0$Fi(nsX{knfR2R@q#0FlP=V|_j3)nQulC4tT|OqeCd`lWlM zq7h$+&?5l!f-tsK=fYwsJSC8i1TBz+hi#AWqO%cZw;I7B*gj4m*9eN??Y%xC7{V2g zcsqD5yQ>KEOrRT)Rz+$HysU^#wtSHS%B5^iGkqd2`9@bj)|?%=ZH#AQt}1F%FXHgk#5R%}+6l5WLjL#YDj_USUA*mO;A0(~G|&QU(SJoNAk z8C`6~XHs2$=iOLxzeugjT!xpm2hX9-mjpCz}vZkC_Q}%V}Sp|Jv{%k9hIXqvX_RYv5Ejq7A))tv#Mbe>IKi^uqS8S?I2!Bp) z2_6`m30L<#+pMB&jqY$M&=y?$f@&28C>Qf2G^(R?eNOXiP?d3-}D0 zVa#Ar>2eZ*{>Y7nk5MxkXHN~~Mu1801vR_&a866^)$Lbpwb*^&Zx&>6HYWy01B9XV zTx0`{LHBcSgKsVD&^X{;@s6kZW30NY_Qp0UzeJe2Zj-eR`{X%}c_4%2i#n&hsu^}Z z7>k$W^1kP?jJe1 z(0tz8qM6%rpfRu65Y6_uEHo4DD3%bmrO`N)@GbW7qz5)Z-dpSou>k}f#3u_Ca-;-Oc~#;23qRhd$+}gT??pM3FFAk2_@8SXk3IGrnIG}MpT3kJ_+X=i&xSqQlUzES*Viv z*u=*u$P@QR$wjpUyP(gb^?`=!N;k*u6++AZVz&TRCE1vY`t93f6y{5qBAhhHAsB_D z&vNdEW-RVcWh@SKNKC|cHwCTj-=J|uU7x~!61dT1B*1bE^_;(@CWu+NGQ~^{s{xHO zC^s0R>;1Wa-Uch;IjMx_`UCV8V(X-!vArF773dx*W_yHum7)&_eI#On);0`lDxCkL zYy);j%k)%pCRzrknv2nQ_DnU4VpQd~Dy9~6k6399mO!lX_r%IKXy9UNLbK+5onmIh zm4*HyPHT8O{vN8{8ZYhA%ppR5rJ7TgJ|DkK@43=ObKI6FBT~%X#5kfko=se@8S9f} zbeh?g90%P!q`&LzPk^qf4 zCj9YI7t?Mg?{L$eRRMQre;PEF0>{ENcq{Z0KPTh`VOsgourloR0)pZ9M*)OR1UbX6 zM1Pj)&q4j+yX@u^>mKe_856(`yj{3?AdlqBx|+6-)uOhfy998J6g(N`d#M}Q=3wq6 z$Xr#lhh6OqQEP)`q9!d|Y2Adr;gA?moofe_-HNWNmYUGmkM0j>Y`n7pGc=%HeIMIj z_PG}VW>~noZ_=hqj?PYXWl5BI=FX3!)X!{oG-xMkV|T=^OR*W#j_aTKP>B(`szbt%6=%?>=uE>%w#w|!+xbv;!%FOU#M-J{~kD)M;!%$ zDXc8?-Y{ur5rLrF1+?U-Kq*QtK&OUYB_Om4Ljus$v2c$v{lb+!F+7_hd&4t&qFIU1 ziaSS0n`lLefM$zMWs4({p@G7n;TI$HQP9F-^|v=t%V6|wU&_8v2TYHk1Nuj52fP!h z9k4or4k)0ROWhi0B6VV)f~N>>j*(3772)6(Fbs@0-<{BV@Z*Y9y98)n3s(&htpQUL z>Rc?`i)dG5cEM&KQo-+_iFWX1g!#_WootWr>SzaEH(a_ZESqXt2fTh!rb{3JdbG8j zo*c-5#%dZqamk@OhL@!_LLbt=1L4Zy1D+Vg2V4lfEVL!5tVgkX3lYS=`A?*_m?uH9 znZjtsRq|8!#nqn1PKMqaIu1UcM|PER9CCg$&EX7#w*Pbt+WtqNFT1jeiPnpTe#fT= zp^3WtIx6?UAYLzwE&jpISCnK^90NeoL`~rLJ1_>1&1mSw5n8HaR10W(4q~tO^X&QV zo?(5oLMYIKTp;;^`h}>9(ul<|C>iAie{Xw+Nz5YGVWs}eRpc6L!(@-g`W5`Ro_q8J ze!mPC5LNjo|M+XDjNa!Fv1LLuwkX_2C+xAeWbEm&=Oy0iBCcr4z?+3XZn4K|4>I0UC%44YrQtQzI+fczvd}* zuws19{HLyK6P?Rp!H8?C!US@+8f05XpDy}wjR@fWHeV?km9F+A<WmxIGaLQQpeKfDM%zF#^dxQBHvM@gBHFgGTqbMyecHZe zaGzAf-oL4N=|6vj-D`zBxzZT*fCt8d0@u7aWbR77C)~t@PC{emVDI&a`bqqy5`ccAombwEGMn5Z z{*_VY({Q=KR1#hW8sn&GQKnl&vGOB?LR&afM42{`N`rESkSDSfnILPi=wMqArSIuk zwvpDH^#}(3O15`j{4UJ;=?75oG=e_qZQ~Hc33V9yE}e#sNgx_ zbgSU_NXhg1(^dQ0>N}Q%2E{U`GGc<4RNQHgq{E#;$PLak7m0jdyDWW*!>s6BxWYmR zlTEmHI6M6^EnV@@p_%&MO*i|(rg$VqL`D-jdU|9p%~=orLMhP8ls*zS#RVj2Mxu-< zrRYq=e_n6tQ;GTT$0cpo%QvT$CDFE&#_R4;N>PO_rr!?#lMK0-X;x&EfxduQM5bw- zSsVK6%rt)KxZVy39T(yi3-my|I%7b$mFM=vE7aNAc#s^cKri-Jg5N$&7RH;dxLw5~ zFse8&UQN5E#Pb1VD;+rMo{LkJJ=w?gMJoQ4nV4M1GXGtk5j zrJy!e}Gs@B*`r0|8V+?*`oq^Sp z$DrTy-%TNG)!3NgFb~}$tms0tSr#V8FqRL?g6riDgk}%ZRbh2h9@nxFMIJ#* zSuB;@9vd6{Mlwm1DfdTI1K$TQ!nVA+1rlfukM@$jli&e*RJxkJE?#FrK_7?2^e|bQq02IYg>bzu>oND*4g4QSmJwQh zJbo{wG~g{Xf`W;q)ByZKs+kb^1RNZLho_m2(R#<8n6+i7!BEFkoPT9&8kR`iT@s*9 z&C_7#cR}w=P)Wkv#QGHNmLz8hXP%^&odkHZlvzgHcK|$-HL&_=OM@lVpHC;HF4umC z2UM!rq-sNbje#_&VPErgw90QAP@+4loaY^KIR`KHBG4UMk?}Rzik53kIW+zM0bk+g z#aja~>5h8nnJ|8~txIT%Z`gA(3Ox{N2R3LyuHNz?MV0;o#Mn^TI6d~?A&;>%D42yU ziO~@R$~1g5<~WVnNuou=b~bcLbQy9VOZsOpjubtRmIxzPK&{f6fjlSB)EA+<+PoUF z*fGB*ueT%M^n^fWue0NB=SR&dg9(wX(F`26_NPSMtS9-MW3F`Zd!5vd8+?ixo`V2x zjpwnq-sS~k9duQdfI81D6c3-a(V|i~I8!76dZQ#9MJtMQPCNux*m8dVDuOzJpC@y# z@R8G%3)_1wHC9(IU96`04mjKW>J*GMEilc{SHnET7kLKB!>j21uZati9@O>s*ShTf zL#bh*PDqLJ7T4p z9Q=cCx;%etD1O~9P@8WG-6TP|)fDQt5yXrTH(!m4@09MIc|_fZXb911`S{VxYYVUl zw^f#|%iqVn_9*z|^U#8}n&#r^5V~n8-Q|?rhvKuFUj4CC068#}`KuSPNI{)B5lm}W zK4!1t#;w9`#L`RMWcavVZV6y*kPkh?!vuG(uaCot%r3&50=NkKVJ+yNqx{)AbDYs1 zMqrbNQJO9SqAN_5q&xA`b8ms}jrnz$b|o~zZ?xO>zs5{xwS+n-D~wcpq8zt1P) zG4yM}bnX+fS0VXpV~sY-{Tnp$32=$MryzG~W4TG<{rr9ERz9*%oE)p{3pTU~-{(kc zMl;dTH%KqojD*Md`#TkizXfqsD4wX&tG^0hP!?5W;?=Qn)56z5W-yu-g-S>1wz;AF z!i1hD_JL&dy@>g)O)I6+NIaVZxX5h12-zV@YddIplw_;$W8ubJ*dD0xnYC@MS%JUR zj?TZ~C%OPj?KI92mQr-?TJLz+CLWSzBL+|W5z>$9snnEM0{DwM9$fi77two!cCGY3L;sSWz6Exd4%e0$M4u+*UAm)JxcG zP`L$Q5B6D}EXGjd$ut6ny~_95+LdoHGk4R@_%$X&_b_Y_iQ=b7k??ss=o5$x{NUzg zC|}CL-%I>BN=gFs6*lC-cz+yy?H%m%UI&@NW92vHw*Qhvy7D87!;puwl>ON435vzt zUi&kPCF<<;e3df}2NS;FtKa(1y!z)9Gc@OF90C@Y|02#ynWt&rUt|NvNCyWFmA8B) z82`hi?=Te9A9}@h)pd9*Fw67V^!9=VP$*!D(9jk0Jx>qqI6KXEi=YuI+X@ncAINDj zuPH`b%aAhX&Zj(7MC0{nr`C5n@g5)mq+eGh=%GG}q8p;fyYd$poFbTF^yh4-g6ik> zg|y|4!uon2;s95+@-*JFl<{P#U|&oD&LgOE^yk74pXh2(3Y4F=l|LC~BK=po=DbKL zmUcpKk7PHWErR6EUT zw0O@pwss9ch0*NKpq4lqD1HkY-q4f9}u9)rwxA0#@>KZ1L`(E5@FsSp|2ptiZtW>WuQOD5;77QV`XT>=I0|3o9ne8Uyr4H zK;Dir1Hl-KM2?UJ=R_c3djyz~RiM{_e;sMID(a2_dxw&T!nNd(h@26~$AC+Y#Dqnl zH$-Tej*&EtmKWTWcFa|)P{!_brwID2zT{6_Y2}#}ZZ-^SVMx&^UCC~dd+iQ|bW*V} zyFLPw(J|D~sl!&8-Yj{AMxc=yE~^u~#ri{Z7@J$=PsvNILT7^7F~Ylm*Be$=^p9tT z0qRb4F#U#5Ix>PoUsL)M$(=n#2RrBLv4RbfW`MYGwMsBswsPpOaX74w2^cXx#S=Dy z&khh?wCHC2L4aT{D*c#FbkFD8)?+8QL|boXJA2UQ`Tlkn1wceh=uf~6y(#;GNnvKZ zr_!A@UK+Ih))x4by%F`j0wknuVZQ*JH;^U%w7p?wxqi5u&*z7kul(pTd+TI8R)6N` zkA)(zQX=k{Q^)q4bv)~>cN~WSmwSEx72SWFR=wj@B}6F8z-OS9>DVQ-LQ4y8fHYk1 zcri3zT#u(i?ATF^&mX!c+wVDqXTz)L9_IDXrPCYf$?R)*HXv+*XEV*>*$fUtuEBv} zhu)%nSj0klLm%b)FI>mU-SU(jCohvhILhn?rnO72I@@%&gfaIE`?D4 zoY6QKf5h~}7tw_<%i7J?o>AvO-IB49{vXA=V2&6l9tzU$u3_#R0VYjx!~osEsz@Tn zVVC*iIka|5CmEBbNfvzsLu2r9&{83gK}04xD!LGON^6+zla8W??Di5gfU@{xyceFK zs_JsuaLRHWw(_f8&pMM%a0x)-Ep#IeyZVt{a6MF}`oTqv^1N$(a5Fq2db@UKCwZ2r z$x>($Hd+(l{Bj+#L>44psi}wM)c9 z>`|zDtg{R|zOzYcuXij7M~^zw6R>-cD`4%a#N}*6(icf!tIDP%vo2B=QzYtX=+iMd z6rUU`Ba+N&{DhLsfmrF8WG-5|XPg{JRB;j4E{T)fit(>Cd=n>|6HTXhrANlg@I*7q z(re@OhWq2CbE0}{P;>tTp&=6zl)qh1HahBlyvV_gt|z~>XIp#h`4Pi@k4GJ6w{y2# ziZQ>-?h|Fk(h)IiHRYVfhLAnj__&p!TPZe-N}<<8DRvt47Vno_G>eW#C8O^iurUHh z9Fy9xKlN*o1AZAAt3tQYv1WLftiltLm>%eT0?Fj!di5^qCj3e*a15NIfjhW%d3ZWE z>=&WAXn&|-IhvqY^{ecMQ4uy5kzVh}lgeh2Z|$_h+B2;Dgb1@W>``bO$td%AV6tXl9%AqE;9y5S52!Kj zHv#j3^Ds2KIkc4Tx>cY#8h-_@jN1qr@j;t#?Pll&-cxj{ubc}z7KT{*p}`SOlA79V)bPkGS62B;(l3QY#zZZms8GH z#Y}A|JUQ*o#~4NXfWzp_VioXDE!IT`yA)O(tWdW2iZ2(L4u~*{)n6EXU(qr{r5xqg zAU`Y8BP;YezkFS!0B|RY%xv`3MP^-C_ShmdyobJM`E3H_DZ{A*S8CMp&>+$suAncR zHnobh09cW-yMmc*>9J8tPmF${YXvh7WW5SzYRp=P1a2|gE2zwsY%txaZbZUrXL$u& zLX|ZoNucK;QmbHgTY7e~aM@m+jJgp+f$CDV(Wg?Sb&(mBrks;$%E3T~+V+*I3Q*OM z^r~-HFk8}dFBO_g>GBmYRvEGpIH`;VBZ|zP40)%>T*=5=Uj&4Vz*&%~*RIPJQs;d19&6Uzsdl#D7*##X6&6nA7y1Y4(E!)bQ zGug7Dyt$m+U~ze~K1U{%$LB9^M4=gz)UYA;|t9EG7W|onBHZjM}e7IHt%v-bEK?-dYvh& zZR=b>C#@;wXRrP+=*Fo`n?OhJ0GPygjKzE;D#SSGX@Do;4DA9kh|;1uoR8UIMR4q? z0^Q1|pC{sPXuD7VY@o$4QHxYF4`?*b3_iJ~Wu)0IRoG$sI}i}S91lw##~v~u&;tl5 zLujACvr31{*+?@gJO_GXID;Nz4J0SJ*Blwza5kui!S`?`F@Qf6hXDh?IOtVs1jJeh z$y&I9jk;R_y0u2%p5mp9@!@Oqm=TGPZ6c(5Jw@B-Z~qpvgUq#C4@YPQW_lU z1(}Nb20cGU_Gg;Cu}?rRi<7>Y02kyz_s1Y3)2xke06i>0zRfU85~N$YIb!Lv32E>N zc|eS(?TH1@U6N#crs6f)7MOML1sfYwURk@o} zwe*QpjYri{1u%WmI}MBMuzc7feUU#&O2w70&Y-^~9-D-{D8TEVykoR6156DAd7n z$D{+B1`afS8IPHO{|RU$ZLOm~|I38Ng5eBW{y;YL43;Ts4QTmgfnK~4?1-U>JjJrM zETSp&&`9|V69XN6NA+inE=*T#6YkCFiKEV3zpDCI_<3W9hT5Pf3}dr_rRi}_RAF#? z2V^UsRA3-$7Cy*0ck53tt!bS8@W|IKV6&YRP{yX|x3iKd*hUrX8;;me`d~@ymyXyL zWAqYG7z9=sP6vAfx?{%=u1A=9PmK-}OjtPm^+Q)1rtoFQbcfwirI+|7*gO8Z#oNvj z%#d|?;3x|@j;QB2{rSs4@8vELS|^;IJQRShVRu4bz*Hcd?kfwunzbI=nt+VQHYZ$d zokyuG>hq95>h~2VI8!l9ajOF#hj4elzAEy^NYczG#H@cM6ZIFFt;1zFa8MjUG5!cw zSO&05-%$e*%>^dvB795{qKE?~JEP2SjJKlHzR5mF5l3deMK|pb?sfV_erts?IIhzc z<{}A-X3puo>FJivt&cNEoV0dSVIQ7PJt`PmZkePnWG?gL!#gr8{d6SV#y})u%f=|R z5JstcK0JLu6hXcbhvb+?>#cbt51l^jC~jj8-uL3RerT)8VS}KZ0WgNcp@gQ2CJkY5z{q9}en< ze>R?ROYMYry+!WEfT|hQeN2`TD=2zSPY zM=TFFpJ;`A2El){v+29;b`LE$;-dq+K5)Gw&A70}&}{MG<7;;XfdQ?H#5P?^o(OMz zB+}~5;A>y7lY@;zGcTPQv#Q7<;j}#6Z6{_w*6PFw^(hOVPJI^6e&ur?#o*$5@0cH@ zOJhk~hWy6-*Yc&kilz{{uBLyceaf(2KOdXwA6LsZK|iHKY>Vei^*CRxv*bbbwE>E{ ztB7WJNycr8|I>->s@2ZUchIp>i8ZgKhQJS;N>fxsQ%Edl zOzR!8o^AP?_wWhJV9ffbSPnms> zT+lM$xV3XFEND^?mNP`e(SCht0}!^|Zo{gQi zIXdiRGCv3?8^b?@N%{rSsMU^+=BBqE!BP+XW;8O+T@DGvPbWD+`BI@*`tC-nLRT`gEdix-8mbks8q-;Q9|{^|Dt*vK&ZZ3w4!_rkJjpmE<*LIqA7kr ze{h6|FNik4CX+a!v#iPj=R zqLnjC8`e)Pcy0H_=0cTpaX{L$x*`1z>RxlGPAp4y{d%a22J0z|-G{wS=ayyznFA(h z#35(7&H;!RA-~l*00Yn=ItSG2_VeeKG%b6@sm88*Hx58<`gctEx^m5tjvgE$71E*M z0voFZ7@Kr}oDYqXL>+i9MUQn5!Jzb+9{M&4W;kve>yLx)>rA&YBNd!>q^3I8Y_sHd zp=sxbPaR#3?59v6GvaJ7{fJRozx6t$wkY1+BnP8slA{5;aDu2-JjjnO`4OYIqgw^& z(kpH{I_yEba5%>?<@r z)n{FTeV(JnW?R5K@|?cjy;fWc+0jSQ@iulgHI34;G*w4KEqPrH2<+n~Rp;*l=OuRg z3te{NcDGN#?0V=1-gC;qx6&=n)sVa0^lL?aT$dGYtMc=D;dV0KlRC4aR$X9$9=)TG+St%7!IZ>JBILuISCNc|)!^n|5Ir5W!udd-!xPp zBi-m88o_0^Xqm5Ur?qt1h7EGl5caQd`8biavpo+Lj7pGVqopcA1$xpn3}GRat?xk?<=*?LPbCyB!q$B z!G^5rOQ9f_7B%Ex(F#C5mr-(OPlAUd({mAaJqB$}GEiaDVWB5Z>+f#y@KPM+KSvi6 z+y{DxPAF71Fw05EfqY8-=DZrw#tE+U6bt_2W=YLenXfuLHrPxtBeb94C%@(Hz{^xq z%$<;jLm4-kCB*6`4HX3L;CSQNYj483@v8a@eI91pBSqLp5`{+hojM=v@hhWanA&uI z9OlB_tTV)WflnQ13^CdMMrvuh>!h9iL>Kl)Dt%Rg(xTFP71gzDYKa1HO)Sx{H{(kH zr<0x~<|Jpw64S~5r&$#>?)Bk{+@;d)ie_opOPea1HQ)kORMXZKC8kYyS?G=70-qzw z!V=8%raN;>)L~?0F`{D4I2k2W1X2(5#OPaFb3u%9j>KryZDNJ02^&E!(SoUBImqo5 z&2GyFuZbIUM|fOOT@7j0AwUXgbi9nOX!a!VKtzaujp5~m5;HhSPL+U-_AH#0U^$hT zE-AwE4owlBcQ!#rE1Ffr7p-Xar)ciE6x*~^z2V?gZOHqnTIQ2fz2T))IbLMOrfJE~ z(&T70MT*#2&2%p%pHwsbN+r##W)_!{(bZIn2K{#WT&G_(b08zV2SqdGTvanMQ=sQ% zX2Aa@Q}$Oiy|dCbS2YW>WMfsc+tOW2%fhN=Qt4OV&&-x7@Uvx1RTYc%u4*Rdq<>w- zT*)bbGb2|{S23UD%HArbQ=XQYnI~MeIZr4vIA1vv@?~8W^JRVl^u>HxSj8+Yqx@ZE zY!m3u%4zPm<&@v4KAw{B7ku3b5jb(h$kQuu#T-sc>$^ zO1)fNm9Z~JknE_fC6U@TJJQw0{;{{B5b9{F$ig@djUd?=b25t(F$lfb)k6QdrU!E= z{D$faW;;i`!yMF+Lqw^V<-I5kdkP2d$_`N)yB;+I2gcJ;dhq0e3xQ~IM~BP4C|tId zI3&jFPL8hlQLO~4y`ffwH~-aI8!%m>#&uH8tKAb~EOf!0MIk7y;n`3zv%Nok;nRRT zqj0@-5dV<^Y~E1EScxNPoE*_T8w0pJ|JE_R>w%!SM+a&j=QZugDTx4qyegG(WS%>uTBB&MCkRdy@CS zS)BZ}WAR*G6{|)x=!e=7VmH?G0q-YP?N}&?%nPi+MSj-8R$<#5IJnnbi9zr%$|W&H zmw+z`+8j%~Vm+huiHe4vPQdXvJlIFNBnHF=8yI`vh;aRI(D9r@bVE=nk*{kG!7x*F-L zu?!B{^>T309fM+BWaM*@x8U6hv4t=I#lgFt)5F6;j0{s8e2!#dJ+NhUtMGB)*#ug1 z=;LUds~K!yu}T}}-oMMQk9yRv?xfJOynn#wqg2(M7WvBeyYqhYnW){w84+l}g5hrq z&6+h8(B*y^>SFtj=KmR)YQI;~AL}dUwXL=mIWYPVi-^xy+p#Uwn5Zfwej|Uh`)hr^ zQI6B!xesYBvnCVSI!7)WCsF1beKCUo$B%T5MO1(>E;14N(@3phFZ#16 zbJ)^dq9Wdj2B>Xz6;4j7MZIFHHMn ziK}SESV4mT7wU)7Y9jfpY*uL&6eDV}6Wo?_l(z#SZl3c3+gLXhXHJX^EiWp7+d&O` z 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
+;Z+QGZ)b*~hA zO+#VA#mDBDt5>>75bay>C$ZPCU1R^I)n~7XepvE;N?uGg-F^CiwSsSbE(#7GFbiV z5W4iAM5G8?w@Z08TTWBKUWKrOT6?jV2Sb8<7u8&>RW-kMW-xU~M_(*IfMo33D*9q~ zavyfS(mUbSFzmuNn!2dxCj04munllderTWAom$vnwtE-;jw;mZPm9Pfow^fnms1}(lPHSxyJ#^4kmMOKb$Jj7b+CICza_h*o?H&nD z8j4$-S$dgdD&j` z+d7@v<|NBB$%2mHNkhkAaM`c%eF0q@+inY|z(O#14_H#n|s_7zSDh74@q#~k;dyoc^? zXn=bOFfQNQ^QJ#b)=W^N-t#8kRs>?nWWLy)x+$(qav2$utCHuR1_$=Bn%C6HOHQpi zo%0g{j}U!!M-Z{EjA-P~)k_z}9f4IHP#v9uXlulo*NS!LrGDn-hcoFXw~KocKKQ_$ z2P2}3>XE1hgU3r$BZGM^z%3p$XCp-D+Uh{6bRcXtC|pQOVq_P)Z8`pbBce!Mc?Luwbg2m%Yn3 zZr&MaxMYcRLVmb)_IrEAtk!^TL2$bCe=){~=#fVyLWhewUEGdCz>4YccBOQQOZau7 zT)U&tQpn?kHtHyDAv>GxhKXqJxHW8N(TLWU?)fnNT{AI!BRs_1V!v>aaktQ9!SaL_ zNEix|vkSYDtLjV3RW;w$^Rf1cHI01%R@Szz#-s+oVvH-{RPaP(Zj-s*Z7GAiyTO+P zvDZFd(l6F_6J7LOfo=LkYy7})J7C?X-4i+*qZ{RevrUS61V(e=;v?{}hAz z=gFCd9a??lDQ;{(BLTROm%EQKE&IxF@{F`O)(7^u6AWE|o>;j6UNsEXu`HVV3+7<6 z;~plExf2JTq@znFT*H>Zuq{twtxxAg;>z-cuzQRD+fE4ibizu32;CBVyBPr0*LM_E+j&!1re(k^1?WCU1mE+Q<^K=TZze#Ny;N!i0 zo1bXV)dvUEE@+7$hz1@NU~r3kO0-kle*Mt+nC<~sODZ8_RNyKim*JrRWj=v32z^Uw zc=LhQ@#o>vwSKwiqBqIDRgDw3o7n-?2*6KQ{nl!3ja@7#*0FQk0*FCC-UjkYn~w7i zdA2*)UDa^hO#-4|oCvcA1~a@RAP;3TV{{g}=3qpg5!wU@~cdjtDkZmaDd69f2s zP>gEa%RxNm7zvf&Y}6c}ckCU*Mr6Glu{KbPW_ose-JyjDy&_&hK z7fUbUA^q-g;xYL(eG+$_anhgAIPZ4#4q2bMtkR%FL>0i2&}Z5k7rpC7<4!U{Ho;pa zWv@xP0ME5(da-YsMOXKy{7-V}o2HxC0nG`Po@{s>d~7g`+JzgBQ|aj>v~n#a;+#j6~kcj=!6O#9Bf+t(tN}9D+Aa;Q8m)xL--pq z69oGqZ%`;!q&MI8GVP-9S_8?*8dO_e%@AoiOP**;E0XJsEUQfM?m>{vchV{R1u-7I zA9#Z0uuS6L%MVpat%9}>q8l?A@SAj2kPP-j+1vR0fC~q}Kg`7t0g#YhJb)T(Um*5K zNSzLVqfzH%z9fu~y`pd#{?>FEP45`tFy7j&816oZmxotwSzq)vowZ9Gn4UUras(%* z^mY+YcS|(~gi{z1fyi!#!@*jq<-wSb4Dyr&mt3n8Dj^S%=^lbHd*7Ry{6jQ`?pQzS z{D-&tq1-l~`dNP8i`-W_5y&LOgT8q*pXD~%;0*(}Hs|asZXcg|^X=|F*$EP_n&S|{oY+zCz$hbC8{jL0xY*>unVNyOT}U0m zL6w7@!CJ>+)KDT#hSa#2Qe-;ljUuH#*LSm+8R^7!0zl}*A%E|@A(Kli3gYwbqinIH zJ|B6Ns?vlMJo^YPxmHimsCUjgJE_KD-vBwlZJUn_O-O(>Bcf&6-r#)-1+2c3z~4*J zTTGWE^YDmn$2hIB~+GT8k^R+C~PV1yE9j1jlY-47M6}z(G z-uD_lm8P!^#6Qy<# z5?i}_5`ep;BJX0!7ZLi3k6;yrbSENlxVi!V@LXvza{!mwZ)6F`+}aLPHFF?7eSCH%X@F%h zXZhiMYgsptABL9`#Mp6#H-#nRa1&jsuoSm-x&G&niuGBRGh(eDuUYzJ^F$>5o%9xF zsZno|y3s2v`-XFk+z^KnZg?2FQ8~>VZEu*J=X#aO&U3wTZg?%%YOtu9p2>274Z${t zL1~AJb1yp}1IG)k!`Ll9*?mzl?=Py}aQ9z+y{q z-QS|ua$J!;t;+Ud{q1pnd5IYHM_cMrMBnS%Oti)KdQF;xELoK(1p-xG7;lChrLUVl z<3+}9#xmFnm3g!dwk7#u7?D|G*tJj}7!ah!tUzrwbC9K!G*V2_U(c+@sSr6BXJmHtF>1juSHU>rCErcPLDs>S6njRUgQfR&L z6iX`l61`{n+&;@FJLdF+08VlYSRgT3nk&i%){8?{PJk-kGFlswHSqMa1+vL#V}juS1tvykng1FvN; zTs1H(_L_3;Df2uwCMFjzPrh2lnxDAWRd>iU%SPm=8UNy~ozkl(Axk;LW4eCYk&|3T_&S|)J1yza6h(UTEhyC_uw-{nSANp>) zU#CsVdsQ0ZmmbQz!C2V_8e^Y1V7UdEY0Vv52w5OC`_-#nj-MmDbol=$eUL4^oh|*) z<p4Yboa57LZ%3#dwwp3qEw(L&%OiMNuO4~4oZngwyWU13i?Uku&fZi| zs;tdASfg-!_p39mOpomFW?=C&Nx(7fx{AFd6V!RRs=HT(|FeQ~{Do&vd?2G3rr|pS z-9Fkj!sP+zuZ%A84a@#>gx=?07Ew?x9FOQWu==3ei@{fZf6P`%KNO)A&PGJH$Fef| zk6w~2@Wckmt2JnRW_fFECplkvrq7xJzpH2P3VcwcN648C#H(B$lR2FqHw7Fsz7P*@ z@fKqLX&)ey{=QSVP|$&hn%Dy0Ws;| zTHehqg}lJU-1DQUhR9xqd40aW0&+I(Qq{*9TZDI^zmIjRgHn*OA98jaz2H0=<32(>F5tCIunEH`g^zstM%f{+-#ykGePTYNO!OrnBe;$13dwtffb=PVfr2>d9V=u|qwv&sZa}uqXaFyEg&2$P zrJwoC&X8(j__DZ3*I3bIb%=!&%kV}&^xuFCap|6rni!C%q6;i>DFIfH35~+py#cxE zXdoA8ji9ia&I|s7Wb24MFD8Rqo|VqhI%HOca1rM|TSa-$Qu@g-`T5f8F~jveJl<16 z{?%Up3-(p`DMNH(D#?CnHkMcsH@gBmvIR3$gAKqmt zr@S$dg`~YDnHNiDKD}qe;{BR%QeoxXqG6~di?uPKOtzWh%U58%@FGKL_A-MMP?wT2 z=9+oZ{wD;Sadp%F1F}h7GW>_@roBKF>A=yt{Py@p*4@|>us-iKIQ_{KWS74ujG1Gj z6#xUl$KV_zuwT6Grh5};YIXJmvZF?))77m56i!|aQ%0SJH6_GK1Arj5v359bAYyPm zB7|lwkeLF|=xz7?9eEbabP(adwhWxaZ@MxX%ST5!nT7aU)?j98CryMod#7h{!b{QS z2n!0KoVmlo8gg_+>eCo7MOTm7p^uF8>t$Zz(maj8OJRdYjTaJ*U`>O!yRA5RgWOtACG&pP>`n(_bS@0$Xz>Zps@ zl+;(VjuBQ-KIM5%UPMN_=!phDQT_#|;t-#jCQmuRdq34me8Y+1PA6w`Kuz^!>cd?KB3NWgzK?<;xlnFeERAtRo;iPPW*`OW^J(M$J88j6>yS5DwXAdJwG8mw>#) zSLBm0&X#6VSYf3=9&6qveWJg`^02V%BE!?owN`s|IIzeeWpe0Aa*l|Vvy%ml!;=7DW5s z(j`1Haq9s8!xfFZ*e@s8-ZLu8ki-=w257kiXSDY50+=`qxw@6tNfR#f4UZwEmG?GM z%92*Ohh~S&;)jj4ZTf52H%~NT?f?_u#X0@oVIuxoIWx5WQ0li-hv>IEMC2Ly#{;M5 zuBKFz+-#_1hXI5SDSJ1SS{aiUoWm)@fP+him?A%NoyDa5Ii}>o{qoE?!>_EDyuZV* zkdoXCb^hySt!5v`R1JQ^R{R>tX|*|hzkx>c34~V-tI3v{IfjDj+;+QY#_!r~qAoSl zoo0vwtnzA@TOS$A$SHiTd~YDL9%(J~n>CPGm2~#YY@Pk=If(J3qR&(ECVKJRspv)+Xd4^xKXieF>&AjX~o07$e;wywam%5<*_rBROqM8OC0=i`bTfU&6_s#?* zj^UA@%*5XlNzcd_Z8<`D*1vec<^FV?_`8?-?)9)b73xsa`mzgaw95I=FJ@e13ou;b zHX;F(EZU$^z9X6gLPtjX(_iH>kUp5BYm&um@^TtxTRW~V&h9;bketIZb8_FDK>K`Oo_PZLUg`N0b;sJT%7Rgi&UhX?MZeg31Ho7ie=<2w{ z5z#m|G|#Cf{C$i66k4DH1BRGvHoKT?gqs$9{C?2&(mD6Y51H^t6Yw5J&X4e=(!g9M zJNae=00ZP-A?6FAdT%3nL6{=$cFoctu8}hKo^s1!eO}^|l=ITp+p`>ihYGIW0LsG~ zal=9(MoLFN2GBMB(&TOvC`~f65*3qCdzv?N2P>PJsx}E!DObWUW`uK2(or956+Nh( zEuAwd<;d~5jbA-jhU-tg>9V9;IZ-F@pzED13c=oQ;jv2SE)eYmkp0M6Pqd~?(Afik z)Qi&@nA&zOddmW6(7k3U@*GGgQDw3~+UwM`ScvvM8W5KuyH>KsGpdxDrxzLLKn|e= zxO;i?{rgDK;&$|G6-=(ytc)q8jg75hHIVkfZ_Hq@eAVm|b1XPNy45Dx1ajF4U5(UP zjv&}U;@fGF!QFfObSb&Ac}CST@8FpBj74_8P8#*gQ;fgWSlirg+KcMz-&Ql0y~w%V z9dEkM9dpYatJ2--2!(uo1Ocad{m$O92By8cOedg;2!H2fTkne~aw7-0mM_8VE=iko zGU8}r&p8rZhNXb_RHe$5K}nc8UBWOt09EaB#~|CM=fO$9L7UZ<#S`+NrCSvHMWUiL zJKz2-^Hnt zZ8DpmARc0pH4`m}G*IEL+$Y>)ZLYOuj~u8@CR~F(Qc?Ic82VGxKLgG~OJ=i!pFS}<~b#jZa4)j_g*T z5gVfj=mBrn-$zn<1cgIFHM9oeWxb2J)0Z?zPFPUGPzKD8a``9ugYk zkg_-2(LI$cGyoiY5HXzjC2~KR5+$K~5*sr$DA}}3Q6rLzvb;#Xs|);B zR!SWZE4P^tYrcjvF;)uSA*zZa^3zK;15@N@rTpx+djr;!UW~;*$Gcq-AM(G7xx1)K z=A%NlHyaGd#YVNl_60)QNg85Vp|X*s6TI&um{s^eyDOLeMB7*4lbWl|Fh{S}&qv#S z{aw-T^KX>%i*DL4B!kZ&;y^je4F{h~m+Bu=_yj(rF_O?z^gH~!0{^!`Yi2e(6Q9;@ z2PY0Ym<5gUZbf}1ee3Eu#a@4z?`(!okFs3KE!j(fPIP&nTU?w-G+#EDp^G+@gGCMj zC)nk4Q3&-n?l_aQ9>AbU!itc6E4f#(=4L2%1>FEU$Ou>DCDI<}+`1$j@s%YZThCwZ z7BPkm(;GAk@TKmf$2jFn{LCm!C&=7~^gY&M)<%}$s3=IVibDGg|J08>Z&uPadb5KP zYLzcZ8p>A_8T(rgqM7@j8;6@M2-%Pt84yJksx~gbot7E}3UYEmumQ;fW6XCkdLn%E zA@#L+sEhe9b{l|0V$~Te`prxCD-ekNht0K&5a`F;3^snMk`R1!o!h26`&Zdy^ zhJwPfA$ZPokuZJC?8~8su&x>G?b}NhKwtK?7S7Arw+ti6U|o^9UB@Bzcj#df+v@Vr zl9H@PnNQ3{H4O{Ydk~t}LSM~l!h%b4bUtrU zGMC52?pFTZ7wN8L#J<<<+YdY(;7P4t1V!)8l)8T>&M~k?C60Dbz=%9m+W*RL zCRoeVvn|eZmR+rH-oVz|N!rJU;QXLDu=om$T8LAn)2+7Rw<2=Iy|>_|hNdSKp68JU z)&JN2%})0OHB<(RjxeMqs8iv_oZK5Ha?5xjg#IC3sE9iWVCBOEjL2Vzv^PN#ZF{!W z`pp^oJKxm&qUc?oslWFh^>gq;ocTGw>IrsiXR5iW zrbm7?DeWdwHl&-*nQCYHXTG8N)jm<)oz0N5i)1PIMW)%5sZV8wx@4(k`OW9~_3`|n z0a=$myo=blt7d&gPLwyTa_iOp?Kq!wPBKGtOF(z}ycLHfccKMmnB!JyXGdOk?Tt3) z6_+@4Vs1|txo6I85kKa(W0lsrSPP9ukWyxI+8`~cxSg+R`i0FEA*=uC@%`JXc zWbp@k2_N%GE$oPU9n%t%vMY4WUE~A!-c3WyZjZw0Bt0QJjyAH#`^0WO*n+Sd!32AG z3sNQXX$DPw*Gwa3zy&tC9pE0;&&Pafky{wKw>0rgpCQW@UkV9UvBV?hscm}t)WfWE zy6HU*Xn%_r#{^-Y?*@xDS?aWMx55By%un&^Lck#R51PY}YzO2z0F{0eBjR*$kdK%j+*z;; z#F&w3Sl`UxG*&B3x)NP4Z04uCC&QIVnI50~L2hxMAkR}}ZY<&Kk+rOdNd?wMlC zPm!|&a#iNHmyF(@r9DM$H>Jy^baylY$1c|NNz*Qsy5N-<$n@k- zZ+MIOb0+o!y^tN>o;WiN4C|QqJ1C;FSgiX-%o;2vU%;dQ?|q^ax-MmfGaCKg;B?cy zk=l}OwmqbJf;Zoy-@Qubr)usGmX``4AbvnwI_3s{;;W9k!8mI-9295 zty2%G#f4sI-B|4{95=eDT2Q2?{$ybuRlikt5nt6jzK z*w|PdD}E>GJobMk33ghF=w zvyqf_;u+KHRd>s?%Y1Uw8qR~4)!LWLSFfmkFPD;}4_@hEZ!_~XGwfZ}094Z z16u05^XV!FTj@L_$TFz4eq6fFIBULI&M$rTG=FHcN$qtFIX45;zg*L@qfV9MMQrQj zX)f?rZnLB_i~~IK?#?<>&Uf#kbB!Z*&5|xUV=sSOchwmm@%GksWh2*A?c)!x^df&o z0HYd!p^AHc!k@1=+{j-kBsw@eTHVfv4>Tn>rkWQvpug9L&7lOfJzV4ci25{6QkKN= z>FtawLc$;!P)EfJe4OwN10m&$uhcoBdL&57$b`bkyJg|fQodG(^3QZ0Gd~Ok77X-g zwc5kVuFbEpf-Kn@EBr<508!R-4-1R#EM#am!s6pPI;^(h7#|k>;;1+YB0D5b%sTyu zTkA932z$nsAeP0w*%vGRqoKtTxDk2!%aHd=Nh$#H!JL106qf zPNOlt`^}_S39viMhTWUb#xo!r&#waJ3kdY>Z1Dg30oMHQAK-=&82!rThPH9p`hRo;HF=>7!SwD<38>$fjkeObVauc7u7D1h9tpy5Q%f?qpav7ksF_x+nyhZ1IP zb+xR-FlSVCwYKz^nzWD0<{`sI0$p-_**=o{;vVIIg*0=3d?qh(>Nzp z@ENU`f@4MA6Z^t0?Thw~EVeJ#zqFEc2bj5XG1O1%o@_e<%-ar@fS{ttIPz z$+}0fV#04>wo29w+9DDd6s}Q^-)Jf>+k04?EphZ3$E^1Vet5L#Kb|M=P3&Q1&%4(_ z9YfhWt=P`4da#l--sW@_)&z9+(5gxsT;E1=buG9-T_J6FNgR6S>slkQA3FJmU?Ife z3J@ZyAP~U73jjVbZh=_A*Fd09&5;knnPD+3$k}fuD^W^w_Xv0B5{-vD7js};Khc!h zrn#XeuW|)ZpM1cr3(>kxA;ex1iW&F<;`c6!OLVu0^Sx)fWUKq%*_nme40}a+DpD_6 z8B0H$&(yMkmuQaP9sf3erh5ziyke8J50iR_StG=Vgln61*?d7koY*KQy4n+f^V&IF zVXukgW=nUc|0TK(I+AEP!6bq~-Ec`RX%z+8^|=;3GUxM_qDNvjh_v?TqCRjQN9^gf zb+|yWf7nNTIa)Nw4_NfRAZVoc-yEk{E5@^+es~%_26p&1pH)$mHcwzT5up3)R%hEj zCnv8}V(Kk`5!J;&(wLwcARn!DG^0vYZoz>>{37s=`&QbF858j*AIfF6$~a-J@CyL$ zpg%7%m<~=(382}dw4B)~Q|k=n4s)IIKcRb)JGA#&tIkp%wp_J6w#4ap2`Z28_=n;A zdr&OMx?yJg4J03mH{I~3k)^?i1T!Z=O@%5gL9LO56Y|3&K&S1uAMMcrXT{aQVT zJl(CwWk2sr-k!iN;w$h7qeHhGPEdzJW?q6i8A?X(Dl_({VS~6yO5B%SZ0#}nTY^M8 z%}!gZ1oCljE1A|;`*E@URX1Dbih&QA$<0=#;2m!dG`IxcxeV7Er`gAZLi8ErF%UBI z>kX;#^5V;yPg!LN7b-QqX38?LJztgQiWHBz>Y7Y~;dE0$i4yS6Xze&Isfr+rT8+D2 zeT;5At05=00}pWZKo?B|h9<K^VL*7}Qh z6A;O20mJ_!msmrE*VjDk%k}UBSI5u1tn1H-ZaY3dnx1Orw4?6%gvpYc zBvob(d&z*kdZU(Q$g-)o-%Xdg_pa%|D6!N&T?!EvO`_8db$VzHW|T%BOs4o>HLIf)u`5>XGG8XXKV(#&+@PVn6)&KV(8DGQ}*@}XK)zuYMK zE)xD@J`iTHEHOMri%+b`-`ntysGGuaJ-gCH+`1Teg`y(bMlvxia~}Hz?6c1-3<@jN z#Grt>I>m?{^b`!L#_S5B_BRAj$0CVQeu&?+l@L(^r~XM4>r^72d?+Ohi_4o39;~;* z3x;6HPI7Sm_Ww#nsLEyE?7ym$E%Stc_h54%tnp%Jvu-1lu_eF9xy;WP3rv@UU*&Pp zL)m9eY^fiE0uS=$p&qe051Mjcs%>u8LH3(C;kA59-AC;z9o^JI0XSJ$0{PS0>Vg=D zos}+Nxo{5Vl%`%e{2n?RO@&i4-S z7IE*U66n5=+3qM*n9(YyP17GZgR#B%iixXGI-<>cMa5e?QBIehUOy^Wo=KdgNmKymxUm_87-uajDWR>XTirj zLPE~+Ss&0<5V87qAnpvapRlyiV0#=H01inVTg!+(M1E#^V|$|t&sYjOroc54&~vmi zN;5SQ(z|tlWmF-csGU(uN?c0tCOe_6^$TEoyI-9%lH3nKvtNzzmuBvYZgwb~hirBy z-em$5fCy~5JI8cPRKEtz=0rG1`)Ce^hYF2JR2xEOMk3+5rfCj{(Zz`YVYy_Hyw|Ve zguCpcc(ErPPY}6%geBex>HplKLVHa=IjCD~gWuJGZCh0Tu*Gf^mwG7AgjcI)3|936 z((vcATfY$p4#kAnc@{brmz2HEu|v#*P1mBzknWrf&dXhcgL*9>1hTnz>I6hwmh8QoJZtuaVH7WO zDlA~cpTayXpKKysz``0n&;kA`q*`ZT>pCV2OI_fju%79uN8TLGSF6s(kP)3s5`z5pH- z;Tvbap5s@oVD49){el}GEMJF(iZ2(5e^=P4|6kheug1J(m0U^nnN@j3i<~>4SsCX3 z8!uFO`Pr}R8~r@qlK`$}XE5eKXfX>C_b)Sq;Am|IQ*Q(0(L( zi1cfaflYJbP~Znmu2!Mhz7ZMfY{EdfzF*Sa-{w=_C3V+>G9~7Cr%d%rvLUHmN&=@R z$gX~4%7ch=Q`=~+Tb#>q&?D^&hlB2U3Is;zm=*$mY#UoPa~ z`OG&NYFs{pJT;%>Uzm?VzqAQIi?}j_AG&4TJf^*?ii#U<1@pbc-QMItpRrg-0>HsP zCU)euT2{$mp}24dtd-9Qms6lPcG6<+`oAd6qSXGNw8TWdxfbR>mY&b*QmJrK zG!bp)v)r?vH?rg^^i=?4SWx2R_6pAC0~z9N18M(fOoe-0?Ya7JZcqMtD~xl_2#6 zfLm5if`!_am8&}13L$jl+ner+hZ(R3d!|U~42CaZks|CYhM%9rWL2!uTCVuwWrP`S^YXn7dLFkU+LJ@OvJ!I4U-a(eD*y zN!V0Ug`j1VeYUi-G`!sBWpRI%sX5#2^^a2{)yeV*$i64}`xgJXKD9dh^b+KGhEb<{ z%x{Zj=#%!Y41(ca(^1&u25Y(;l5D#BXSa6+&es$FLwGC1^9D)E&GtmhxP^m91x)>> zL3;p`E4oN&obTj^Td>#l_8-^7!)NBcL8>u{PM?M+z(~zH;0Q6~Epd;nXe5iSBhx>l z?Rh`1hsuWwnj7&%5l(-5oLr2*6$QKatoc9-Q}y+d|EDfE1*2Vbw0JuU$G~R0vV>U6 z&c*Azo8~N6oGd|79(+Z({cT+(+{3g$hKJS+Hpp( zZ%_1~ju3gaH!QviTJD&ieR{f&kGU1lJOfh(#Q~SF8>8%goqF?BN@)+LuZ>7!SqJPh z$7NxTf11qM1Im5vVN@FdZpeKUXSbogOk}V=2V=yNuoYGqzgYqz(9b2G0Kkk<>n%G! zix;xD3El-A%%)&LF4`cAm+!qr*}tCd$NkxG4h*n#XMWueurL6ih|UC)>nT18krxPNju(i`3;fx>zs(>W#X2K3hd>FF#3Esu4`z~0J zlyBwT5jns`fbDa2w)oPO3 zAG!zm)7W9o`$@9a=io@3>6fH_j58E+ks#@bsQk^2L^V2|j<7yHxldvg#sIZ2xras4 zM<+tXct7%RX?R-yNTS*-;(qzzaSO}pw@RK>8oV^f{YR@J!CWxOvUVa{1Q+>I%Lzgm z_cnlvE1aTs>tYK?t;9ShbgyS+g5gBA;ymL<`suSm#{HTwe!eS`)n`uhzEbbji{#eJ zxpjFY#ytinDuA5r&X8JvICtm(Z@$NGI@O!Oa?6-`EkJld?uDAxewXvLFp_Q~exM^x z2W)L%-nX?+37bbju_<*UPJy-f+ccV9y5>7F;oT3DHv}WQVHE-b2BaU;fJJ&U;<%E$ z(_6q)F0_Yn1q=+!i9YVjh%kBZ(fQy@eBYQ+@VlE<y{UZ zv0(woOXysD(M<_1ao4$?hW%e%pY!`ydtg4_z;fU6K&wOvw$0YoQfcoAcW_8K5pVh? z3Kj-=N`e`lsCq~zo$U40emeg}T55?iz`rC#9S9a0n<4~vi$RzGmc~2=05eqpn8^EL z@{`^rWZq9zeL@wH*N05!RInrI$frX0woX+CW6k*#bvoAUO;H!D+%9}G>C3}rWs3SD zTnQOsZ}LNT%Dwu>8SeXG+@mZ;;y)F6zAU(TFDWvLL0C@*?<0LXyMu?zVfBy|&4bZ= ze{g)a)p0%IozKIXpdj+ymyS!@&M6&}`-JnDtB#XJQC3zW&D?9yD7Nu}LZ(%Oq2yMH zU{KEt)YgpB*Zbr+^(3eI%PG`A&AGm-cj{YRnWGkFO@ey6@}dMATrq(Kds*amPSH^b zLRi=nnsuijGE1ai<6)G09T{B=(bRu+H){^ydzl@t+W5`!cxYb=A}@elGG3j-t^i~( zVAjU7t8C+NFe@fwe!N7U*`EMpwgU2a5IzZNS}1~y&67N9Lxw`Pg$%VA5-TY)Vk?t! zAvS4soaz&nvm?WDn>Ar`F-~m?S3vF(XZpvh!EurfAc5%b=fu1~6UNtIgnG>!meJ)l zoAUpU=e|Z)DJ1K`$`YWdv3R4~pbIReFt=I|-1lDJ$VoQan89jJExWX&sbk@`MOkDu zb#i!6`$3!Gy=Zfy0{4r4-9I7oG;ulW?23d$>(gGatSE<2IqB zeAiEko7YQKKEV8{E436}T8U$VUWDn2Kw>WZ#)w@0$8kS7QL+>nZk9MI@9VoK5Kcmx zXOSbk^MLtD00b$#W&H3Q89GVSnva_2^&6o!fP3UlR51FF;?fGbz;KUqi@LHkrVv0fKwU}rEkdFGOkq=ZQ9He7lRc89Pft`=w z^CorLi?1dCP;Y)IcQdbn1)_hyU+|Ev0yvoO)fgeinpBc@8DU2O5R9D7cUHf*zG($M zFHXVXG3o=??G_{UY-mhRyAjeql#=)PnjaPl*M)zd*(WAh?U4csyhpQbWTUNF zq}cwIw_-)+#@BJp5r=F2RqBiJeebqmRhxDrnDd&7e zKS4bT?kNsSuYjV~1@a+dk{J;v{*wDerz+R>jxi_V6z)mC#t91tDPu!&)uxb{5U+m< z$yp#Olz%3c54=s-oD8cjvQ-=wE4Tu! z2*o{2yV~qQ-AQ0^Y$%RtC&75l+MqChlE*4tq3;=CT|nuO)~fWA$wNK@e;o;kvp%`M z@*6tX34h+sF=`r<5dP2sN$D;9W~JA8p16|@4_mABRf%9x+v=W)qITc_?^5Jme&?Hr zu=-6)lYq&oM1r2_4bf% zf90!}zED+{7I$tG7x@2tgJYfJ(r4hobwVIomOG){jtgpqhIK=oFO$vNe&q4gKSj`K z2tLjGj=NWSQ#U6x!$xUX>bR`x*=jl=DC@86Q~wltPPBJyhjB2p!8EZ%?UDpuS6+J> zwBhwmU-Rm}7CaVG&^|h?mEiBwwpn+nkql4rHBWLSR^mqQ!~P4U{z>&;E&LHp0UHo2 zo*#S;3z+YW!)MXP?_Uw8dic%val&NtL!3I`Z`e9seGn`(GhUqznz`{pse?QKI2$P38W+c95k(9MvXDh zrk;q|s!94G)^sAQa<~riAlAcRGvcH$oI|z&*@y?Tus&Y0>}3@nQRfJNlb{BQMimSP z%4zw*PsDbhq>@-S>k8cKaT4q!@%)h+XYu??*k?Il639VX!aKP{os*l{#m=oH#mSz{ zGXFKb-R3DOE1B}Ls1@aFV=>@AZFqNuvWH`MmrLiZMfD^n#ess+jE2Uh4OO);+Zt z{dPcEns^&PO_SwY`#g>Ut&T@(HE0L z(^J&Al+ePIE9!@*elrMu7VEknxw4pHl(B|QjKd^Mw*$`Lm-N%oHl7%3+jzHQ7RE{& z{}M|ZbLS<#7C*%bYs~go^>M%;W8`6j7?gy4K}l#W8lvejlQr_EGD2*UpHuSFFKh;d z^_*~MaX7nXbp8Jv)}|NK!|eDIR1a4+T1Q;7BVO>$q+_U96R+kNGcR8FdGPY^yJVaZ zkeT^JpeXW|pc%oYDn<%87b6!D328=xniP^tH-$dboLCq(8#x`8Omn2MxphlNmRD?V zcV$QrVV=)5D>4LXJsGQ!$+s>;C`n1_;5W$V6_F3JhR7h=x@n)Gy2gmyF7{uoGSvB4 zb26WdhZ{51*l-_*qz&trPN*G9Y4>4Mx+#{qeyw3B%xrF~xWeWn_kS4tb3FWLx^N~SsHu6HbL#_N~TnvnLY zWh8hpnwBo+g?a+HXkoz8_SSqA*+7VRLAKPDp~+grXxi|N1ksj#zYK;PN91nBAm@-$ zT13;X$|K)U5uLY*Xpc|~k7AJvoxiJFxYiW*l~(<6f+(#PCrJ9a1k<~;>J~AbORIhnkrzcI{pW~jS6X#VGYsQxrCn!ojnpf^JAfMcEe7^J(CDak= zlC3k$@)BxmhM8YnbEX-3iZ`AxSn>Rf)w*)>Zl@?n;| zjVW33KIdl9p^j#~&HX+pSh8Iib*iAbP+EOZ$eb&!#uPI9ORLF+%!cCXlR}cdsE{E~ zyTVelZiS_0a|%n%Ru@jE;3I`+Y6_ZFRPMF1sNDVAqVgz%ikX?ERlDNlkv}g^^$(Ze zhdv0O1ul}zu!1?)o^1UaD$b{~|{$Islj%5R9mvDuHQp$(>i7*xB6^8%)4j9L}I;q$z7N+?%B za>)!poet?j2yNK8B}**Tb4jxAKxW^}m5?MROVE^4No=00AhSq=;2=;9aa7R!kfgQ- zB}=OqGb&k)h%rOR9%FhW3%qA_l3EDSBYPF;%4cIGW9zV)mZZ9c%OV3OnwX?M4?lvu z5S?d|S`(Ln{A-+${iDnPE3~WOZq^Wl4XR;VF<6xsFo9*lwBiE(y3^wtY*pvQ=z0k&k-kGw-E?2 ztKs63-zU@~$CF8Kdg#-f;+$(&v%P4hmOT>4kR{$CvvBRVECmWWpfi$$+6(x@9H)jg z9PrM)@i$x|t{x@~(dpPm;kdRP^8fzF#|6t21V1X1%DZG>?bX`BL<2&=&MYIn5w`HX zXgSAW^zgBOK?DS_&qpL3Y_g}N`*x5XMJtqS5CMfYUMh&<2j=t7MZ`ivY6l0$ZWcZk zC~k9CE5$)|13}XB2*dFbf}2RAeP%CVT8e9s*c~jS15aHNw#dB>_~@qG%e$JrjCVB} zrb|~Ju=WZxO!jKf(GVSMI8wMb`XN9OAb)M_RE!)Mo*?3)| z2Q^saHydAuNc2bYuE($WWwkrVVnywZHG5u0i6wTu-SK9{%h;zd*Q;;R&7qgo{`B=U z1K_A-FRS(Wdb2;>UD1qvSzWBSmD}#DYEHhazN@;IaehM+(+{}`akA8y=4J`yH^&sc z`!RFwWi_zH64)d*zc@&@{=gZH;fAd3it7FgH6DKdeD}Nbv>UpuYJ&EovF z%qce5&#n)^<4K>3_=`{C7#eljNkTj!XM00i9Kfu+*abq&f|i4>vPR&lT;-plAU)k- zSlnRu?mv28RZ8hc`0DjzaJQV4hFj#_r$7ThNiB67JqmI$34OB98Sl*TyvX3UvBf4- z_#5^?tCASw4L{)m?#&p4F2^6qZE7eP_vOV>69N!dvf!?|-f;o9wsrQ(p09p;{a-wv zrx4{<6sJGzlE8_;yB)h6KgfDIl{M?EofTc=Snut7SAk~YVJ^sCOB@Kt=$f|9*Sdt0132Q10N zxlX1iupn#*0g74+*LW7#UeFfqTBsIR-6t>lAtn?cAk2qDbuo(8GL2%QvF|a*LS;WNw#4wxmDJki#04&pO0Iv-H|-SY5H=LmmAip#@w#au2h41+eI@ zCdVdek+$9dks`~KYV7Qrf|Gm}SypoLX%#oO*-xwSrQ>Q)NDH>mo{y9_|KPee?BMmv zrL+e~d&xQ+{wtc6S(jO@safN榽*+upjT|rc-eGF0_~T|WHr~c1jZD+*@v&kv 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

%JVT4(=BPYx^v!81~zuOlE~_ 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%0DYZjWNx$?H`Qo0W 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%0A~Ozr)T?ba6BI;rN=|A%4&m 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 z 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 From d630366cd0cd9325e9f2a8062816f51f03e8364c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 13:11:39 +0300 Subject: [PATCH 131/757] Remove `pdfkit` gem config --- config/initializers/pdfkit.rb | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 config/initializers/pdfkit.rb diff --git a/config/initializers/pdfkit.rb b/config/initializers/pdfkit.rb deleted file mode 100644 index 6b2802b88..000000000 --- a/config/initializers/pdfkit.rb +++ /dev/null @@ -1,8 +0,0 @@ -PDFKit.configure do |config| - config.default_options = { - page_size: 'A4', - quiet: true, - encoding: 'utf-8', - # :print_media_type => true - } -end From cb76674152c715f84eac14a70276f6ed069decc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 16 Oct 2019 16:35:42 +0300 Subject: [PATCH 132/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bf3b9af5..4caea0f4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 16.10.2019 * Contact and domain list download in portals changed - buttons in stead of dropdown [#1360](https://github.com/internetee/registry/pull/1360) +* limited epp routes [#1364](https://github.com/internetee/registry/pull/1364) 11.10.2019 * Fixed mailer previews for couple email templates [#1342](https://github.com/internetee/registry/pull/1342) From 397136ef138783d037cc28259c594362540111de Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 14 Oct 2019 13:35:28 +0300 Subject: [PATCH 133/757] Handle EPP contact:transfer --- app/controllers/epp/contacts_controller.rb | 6 +++++ app/models/ability.rb | 1 + app/models/epp/response/result/code.rb | 2 ++ .../epp/contact/transfer/base_test.rb | 23 +++++++++++++++++++ test/models/epp/response/result/code_test.rb | 2 ++ 5 files changed, 34 insertions(+) create mode 100644 test/integration/epp/contact/transfer/base_test.rb diff --git a/app/controllers/epp/contacts_controller.rb b/app/controllers/epp/contacts_controller.rb index 32b2050ca..b6a26a626 100644 --- a/app/controllers/epp/contacts_controller.rb +++ b/app/controllers/epp/contacts_controller.rb @@ -76,6 +76,12 @@ module Epp handle_errors end + def transfer + authorize! :transfer, Epp::Contact + epp_errors << { code: '2101', msg: t(:'errors.messages.unimplemented_command') } + handle_errors + end + private def find_password diff --git a/app/models/ability.rb b/app/models/ability.rb index 706d85180..3eab0569a 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -64,6 +64,7 @@ class Ability can(:update, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || c.auth_info == pw } can(:delete, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || c.auth_info == pw } can(:renew, Epp::Contact) + can(:transfer, Epp::Contact) can(:view_password, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || c.auth_info == pw } end diff --git a/app/models/epp/response/result/code.rb b/app/models/epp/response/result/code.rb index 403f67435..2a65f6747 100644 --- a/app/models/epp/response/result/code.rb +++ b/app/models/epp/response/result/code.rb @@ -16,6 +16,7 @@ module Epp required_parameter_missing: 2003, parameter_value_range_error: 2004, parameter_value_syntax_error: 2005, + unimplemented: 2101, billing_failure: 2104, object_is_not_eligible_for_renewal: 2105, object_is_not_eligible_for_transfer: 2106, @@ -43,6 +44,7 @@ module Epp 2003 => 'Required parameter missing', 2004 => 'Parameter value range error', 2005 => 'Parameter value syntax error', + 2101 => 'Unimplemented command', 2104 => 'Billing failure', 2105 => 'Object is not eligible for renewal', 2106 => 'Object is not eligible for transfer', diff --git a/test/integration/epp/contact/transfer/base_test.rb b/test/integration/epp/contact/transfer/base_test.rb new file mode 100644 index 000000000..e76fce5e4 --- /dev/null +++ b/test/integration/epp/contact/transfer/base_test.rb @@ -0,0 +1,23 @@ +require 'test_helper' + +class EppContactTransferBaseTest < EppTestCase + # https://github.com/internetee/registry/issues/676 + def test_not_implemented + request_xml = <<-XML + + + + + + any + + + + + XML + + post epp_transfer_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + + assert_epp_response :unimplemented + end +end diff --git a/test/models/epp/response/result/code_test.rb b/test/models/epp/response/result/code_test.rb index 556ff17ef..3c75303f1 100644 --- a/test/models/epp/response/result/code_test.rb +++ b/test/models/epp/response/result/code_test.rb @@ -38,6 +38,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase parameter_value_range_error: 2004, parameter_value_syntax_error: 2005, billing_failure: 2104, + unimplemented: 2101, object_is_not_eligible_for_renewal: 2105, object_is_not_eligible_for_transfer: 2106, authorization_error: 2201, @@ -66,6 +67,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase 2003 => 'Required parameter missing', 2004 => 'Parameter value range error', 2005 => 'Parameter value syntax error', + 2101 => 'Unimplemented command', 2104 => 'Billing failure', 2105 => 'Object is not eligible for renewal', 2106 => 'Object is not eligible for transfer', From e3cf266da0105be3f20c7704d223c5d0e6cf4142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 17 Oct 2019 09:58:26 +0300 Subject: [PATCH 134/757] Update CHANGELOG.md [ci skip} --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4caea0f4d..c1668b298 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +17.10.2019 +* Implemented properl handling of contact transfer requests [#1363](https://github.com/internetee/registry/pull/1363) + 16.10.2019 * Contact and domain list download in portals changed - buttons in stead of dropdown [#1360](https://github.com/internetee/registry/pull/1360) * limited epp routes [#1364](https://github.com/internetee/registry/pull/1364) From e1de3f528f66766db6831c73987739d8f97d2c84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 17 Oct 2019 17:55:31 +0300 Subject: [PATCH 135/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1668b298..b6508a9fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 17.10.2019 * Implemented properl handling of contact transfer requests [#1363](https://github.com/internetee/registry/pull/1363) +* Test environment tuning [#1366](https://github.com/internetee/registry/pull/1366) 16.10.2019 * Contact and domain list download in portals changed - buttons in stead of dropdown [#1360](https://github.com/internetee/registry/pull/1360) From c022caaee10ae50945e071b912c77627f01b29a3 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 18 Oct 2019 12:20:25 +0300 Subject: [PATCH 136/757] Remove duplicate route --- app/views/admin/domains/_domain.html.erb | 2 +- app/views/admin/domains/partials/_owner.haml | 2 +- config/routes.rb | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/views/admin/domains/_domain.html.erb b/app/views/admin/domains/_domain.html.erb index 6431833e6..8b69f9010 100644 --- a/app/views/admin/domains/_domain.html.erb +++ b/app/views/admin/domains/_domain.html.erb @@ -1,6 +1,6 @@

- + diff --git a/app/views/admin/domains/partials/_owner.haml b/app/views/admin/domains/partials/_owner.haml index 611cd7dc6..f91cd2177 100644 --- a/app/views/admin/domains/partials/_owner.haml +++ b/app/views/admin/domains/partials/_owner.haml @@ -4,7 +4,7 @@ .panel-body %dl.dl-horizontal %dt= t(:name) - %dd= link_to(@domain.registrant, [:admin, @domain.registrant]) + %dd= link_to @domain.registrant, admin_contact_path(@domain.registrant) %dt= t(:id) %dd= @domain.registrant.code diff --git a/config/routes.rb b/config/routes.rb index 4dfa7cc86..0486284d5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -269,8 +269,6 @@ Rails.application.routes.draw do resources :white_ips end - resources :registrants, controller: 'contacts' - resources :contacts do collection do get 'search' From c53b39171d5a8b2054e68df82c712d7d4e0a1164 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 19:17:41 +0300 Subject: [PATCH 137/757] Remove dead code --- app/views/admin/contacts/partials/_statuses.haml | 9 +-------- app/views/epp/contacts/_disclosure_policy.xml.builder | 9 --------- app/views/epp/contacts/_postal_info.xml.builder | 0 app/views/epp/contacts/info.xml.builder | 1 - 4 files changed, 1 insertion(+), 18 deletions(-) delete mode 100644 app/views/epp/contacts/_disclosure_policy.xml.builder delete mode 100644 app/views/epp/contacts/_postal_info.xml.builder diff --git a/app/views/admin/contacts/partials/_statuses.haml b/app/views/admin/contacts/partials/_statuses.haml index c39075754..f29a8ed23 100644 --- a/app/views/admin/contacts/partials/_statuses.haml +++ b/app/views/admin/contacts/partials/_statuses.haml @@ -1,5 +1,4 @@ -- panel_class = contact.errors.messages[:statuses] ? 'panel-danger' : 'panel-default' -#contact_statuses.panel{class: panel_class} +#contact_statuses.panel{class: 'panel-default'} .panel-heading.clearfix = t(:statuses) .table-responsive @@ -13,9 +12,3 @@ %tr %td= status %td= contact.status_notes[status] - - - if contact.errors.messages[:statuses] - %tfoot - - @domain.errors.messages[:statuses].each do |s| - %tr - %td{colspan: 4}= s diff --git a/app/views/epp/contacts/_disclosure_policy.xml.builder b/app/views/epp/contacts/_disclosure_policy.xml.builder deleted file mode 100644 index f3ba88159..000000000 --- a/app/views/epp/contacts/_disclosure_policy.xml.builder +++ /dev/null @@ -1,9 +0,0 @@ -if @disclosure_policy - @disclosure_policy.each do |k,v| - xml.tag!('contact:disclose', 'flag' => k) do - v.each do |attr| - xml.tag!("contact:#{attr}") - end - end - end -end diff --git a/app/views/epp/contacts/_postal_info.xml.builder b/app/views/epp/contacts/_postal_info.xml.builder deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/views/epp/contacts/info.xml.builder b/app/views/epp/contacts/info.xml.builder index 068622203..38a96a706 100644 --- a/app/views/epp/contacts/info.xml.builder +++ b/app/views/epp/contacts/info.xml.builder @@ -75,7 +75,6 @@ xml.epp_head do xml.tag!('contact:pw', 'No access') end end - # xml << render('/epp/contacts/disclosure_policy') end end if can? :view_full_info, @contact, @password From 9fc6d6c641917ab6b8b0c42242c06f33318f8ed3 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 19:18:25 +0300 Subject: [PATCH 138/757] Remove unneeded html --- app/views/admin/contacts/partials/_statuses.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admin/contacts/partials/_statuses.haml b/app/views/admin/contacts/partials/_statuses.haml index f29a8ed23..3131fd4ba 100644 --- a/app/views/admin/contacts/partials/_statuses.haml +++ b/app/views/admin/contacts/partials/_statuses.haml @@ -1,5 +1,5 @@ -#contact_statuses.panel{class: 'panel-default'} - .panel-heading.clearfix +.panel{class: 'panel-default'} + .panel-heading = t(:statuses) .table-responsive %table.table.table-hover.table-bordered.table-condensed From cb3d298bb30cb94edb39273c8b78bb45259b53a1 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 19:19:10 +0300 Subject: [PATCH 139/757] Convert HAML to ERB --- .../admin/contacts/partials/_statuses.haml | 14 --------- .../contacts/partials/_statuses.html.erb | 31 +++++++++++++++++++ 2 files changed, 31 insertions(+), 14 deletions(-) delete mode 100644 app/views/admin/contacts/partials/_statuses.haml create mode 100644 app/views/admin/contacts/partials/_statuses.html.erb diff --git a/app/views/admin/contacts/partials/_statuses.haml b/app/views/admin/contacts/partials/_statuses.haml deleted file mode 100644 index 3131fd4ba..000000000 --- a/app/views/admin/contacts/partials/_statuses.haml +++ /dev/null @@ -1,14 +0,0 @@ -.panel{class: 'panel-default'} - .panel-heading - = t(:statuses) - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-6'}= t(:status) - %th{class: 'col-xs-6'}= t(:notes) - %tbody - - contact.statuses.each do |status| - %tr - %td= status - %td= contact.status_notes[status] diff --git a/app/views/admin/contacts/partials/_statuses.html.erb b/app/views/admin/contacts/partials/_statuses.html.erb new file mode 100644 index 000000000..15b5af7c0 --- /dev/null +++ b/app/views/admin/contacts/partials/_statuses.html.erb @@ -0,0 +1,31 @@ +
+
+ <%= t(:statuses) %> +
+
+
<%= t(:name) %><%= t(:id) %><%= t(:ident) %><%= t(:created_at) %><%= t(:registrar_name) %><%= Contact.human_attribute_name :name %><%= Contact.human_attribute_name :code %><%= Contact.human_attribute_name :ident %><%= Contact.human_attribute_name :created_at %><%= Registrar.model_name.human %>
fuVG8pJZQP_ji8d}UbDj`wBu;OylRifUnpY=x z=?utXu*oDk)mvt=j1mJAz#0H#jq|NPhWCrAlY8c; z=LX&?Eb`B+C}7rQNfZqyBRfCQ?~U@B#-`<1avCr^E zw0hmO0lq1SzaBiQ2ZTh(_6++^SxJ$UCc@Zcm3)=4aRt;(YX&cb z{K^dk%gjaM$>H(ODj?^d&68Hw3>1BD=%R2PPl++&UmY%71=V7@wlGKmd*3`8t0BHB zg2d-T-t`WAOQrM=YNJd4#w~%IaCI8nAhL7{`dG}3Ut|eegf)9R->h5-i0?W#x{Sz z`!2tl7^x2oc*-LM{d$;Sypf|ZQ#?QJBRSsk$?9bFP;$iZV-00OH zMCx}5BUh%kbFCq7oKIxHJ1zJEY+J&&-S%b_y~IpI`#{_P*atN8Ap($n;+7#j5aN{U(vu@tnTfQ z?P#6!oj4zvgW6lT=xH$kM)h!hyr<=Sx>(`$?|&Cd{FSjqgxHXh;IICOJ)Ohm|o#^)0#|Il&#)qr*&0} z6o)O$epOT(2REZ`^h9b*gJmOmp*k4JU$}5jCv`#4$+fhJ=ZU9IqEPuVFGSh$Cac}y zhYIgUT=V8-$Q~^GS^J@ ze$WfeBNR^hc|nQeu-xZEzG`>hy>wsa2lpVj1Ui!B$>G-AlI7%Ij9?7!`<5wWKdg{o zz!G2f7k-;fkRT_WRRQZRg{N!kmTKn~^9R8CvvVGC_|^?iEE z_lNvaG^%u>PYGw>tD1r7@o4k2PI@69NG3WiTnLl7!1t83J}!3DCH3QMhMAZ%m1~(o zjmuBEQio+pr(htj%xo!p zUCuqr`@GNlyw7`mLugQWx!ZpE(28k<(F$;R6_1T!vsf1{z*CY!~u>Tp4 zUkbez6eATFgbqGUmid>C%`ccX1I(UlvJ^ZpmX`Itv-B3p=e(2FMw9BFn+5kO@#_ z8Fis=^$LwuZPVuJY6aR!N%C&$-J1)qjm24J51v}DcI6cH4i}gKb}Y*bfcKX^(|jg7 zyI=!Lx4EdKxpzkxyHqFjhP@F`oYX2%J-;4}9Mega+NTHW?+rdy`S^=LE%BvB-gq-r zNm|&UV^yzC&e<%Fp%bYePbMeT#zn*%*FsuOhI#=`R_m&X*Xo%3pvh0U*w>V3bz4K- zPUQun$SNG}J39h-mmupn!Q;o0ER=v2QF7&uvG0xFT z)9+;l?u|JZiPoGsOPmg|F`CGj)1eb=dUS*-Y%yF9@)hNdlJlu_Xleb{IvrQ)7s{)H zN4A|ml(VF1a%UW!evvR`n|TX@)tN)e>}uqds~|KlbHZLh4cH?mmRPuF``LO5^A+RR zC2&GEZoZp#Msq_uShHmZn#&Y3!Pwej25++~;eU)gC~tS{bey5@dyyLnCk)Qi2rw8$ zRwlr!JOPXEwJq^_hy|ntf64A;3qHTX{C&3A2cOTQ{#oHpm_K2=p8}8NMZ2V~NidvJ_Q~2SHi)6oSrq<3k5eQ=0Rq)KgIh(~4$=+4G7hR)s z^{^|ByCM5qu&Q}$_7gGL!Q2GL=VwfdbyZ+hNcW*OwRKVv(*BZExI871im(svJ?I}B{{%2zk0$E%lo`>*rf0j`sM2IG5 zX4FiyRmUeE7)kel_%QRZjIZkW9kZbIT1B^5YE&s5nFi) zGA;rcv-|Lvcpi6CHakR1h_35K!|(q+JeY1^$Prc`te*+aX*S0S5<-B7L`f861>^;(VDFkM2TU+rf0JYm#fST^UJ^e_<=;+U z9Lv9P=G?C$oD!RtDfSr*UB4D*4pTIn9kcy5y}W|BXZe2=JkD&W9M|}2FC%}vpKDB! zN7eAh#r?TE(!6-`rf!^aThK3!@9)eR+dus{Y_ZK*YeRHK(o2vR@P0)&`Eh0ZA|1zm zM@7wDunG9+pNbEA3$%1>e^W>LiAeJ^;q*)4E8kd8sl=ZnUR`9wK8ZhYRI5IGRCVHi z2stofOikif9DN2HK4w57Lr%*PV`>u}s)v}U^CIY%de#*`k}SBg1iwfh5Fiv=o%Yw)w>tMPPE@g@@~F#6oyW`e*Va2J z+2Qf7i=MQSS$XF1+@DG|-`ww-yELBMUq}fWIm@e7ij{rUoo zAo^v`uiSvVFVpvA?lsjs^H1j)%kR-8fb`Vt)|y_?)A*jv&zGody@^+FmPr>15jwIa zy&;@_wkYz5A0*UjG~$L@bNo#lX!zOEw7KXS>MUGEOxm#}Mh^RO`(@1)mwc-Q7XaY( zw6W2jGxn6^Yfkbb@*6jq#7((5cE7>_DSk)prNVp_eP`nXIW%>~_rOy%H=yudd6t(B zzF|J&8+^ke{x)@|7d0(mcVE3<<=mxPxHK=*rj=}4IrKU^4WN>1>NR4;+6m%f;Ho~q zUipl1=K>mq|7}vST{gCiuS^Vrw1XSr z$sSZLI14H;K-2{4{zp&bthzz#Ndws39dS-wFmH(t*jN*u%t>7g zvgA9$3Nx_|#`}ja%oVvJyLYtE7qclMKV(x}WuL~%pUM-9VUNr|bxm3MYw=V#WNNTa zSMW4a$+}$0s7^Bl^?9Uny~;+tkqtbb$Y@WKa%v(ln!yNp#Z$)+?BL;tA zPP&|q|KbKn#5q~%GW(q2$c3Y3daQ24ObgD%dPh1ca!0G^9o!lqB4h59re8q3_i>=W z8jl=m!tfU;lIY2H@YlpYAr6Yg-{hJp7I~KwBT$&zB+Nxr%Q;8Bx-ANRf(_caWK)DA zn4l!S6Io(Yh%fAo1{oEHmj4-RqYlKl#k8Py5I%yrih~lt?=V6jIFLa2!5aiWtA!f6 zJg-!dUS>htkE?xj06zQ-@QD$(~4q=Yes?HD^=U_#t5(w!Ujhunh&R5BMqcqKQp`;QD~ zJ@lbE%4Z)L6`-B5z72>t&_1%(MymMCj1Nvy$1E~IpjI(Cvo5~G%|PNwS#=gK-1KG8 zESTo5_z~kW1Bp}`Uk;tvKy)6`H|%QRf*mtb^e#m#HF>1Gv3%p!cw=kRZY`nT>y%ZB zxU8QLxpl-jHSvoRf6Oa7aue(GyOc|vhP&+&IBx( zGM9nqqieEC9Lat}HCF#+_gVjr`?fJM%RN$@pWb<^OpwkJ5DRqvuVLBS$2IqX4=mXa z&G;@viOR)RVyF|xL~bKzx?WUx&HqufL@fiN>BZ4>SCnWF(QbceE0F+>ZB2FI=)X8V zffX8rpKuOdlyENH-NX#*_Uk8;LV0hIo?1=~b^eA~<{ZJY=7|=Pw%_d0&W8McO4ObK zrq)_660@njD|aX3*a5vM*({T5pedZd6{B44iD=2TjU6sB(eG>seEfx zCURIs_GHbqm3LFowA;3=NT(KbV#SJ#b%8l$QBm%`{1gj5tF%wDne>jYP6Dp<1`NlD zKo$R)f5C1@NxLGegjqUbBwL zGMXo(7x^GO;ih#4L9Em%A}bR%6&&K57K*K6M;g@Nxa$R*TJ2~6NM~Gznyp0!x4oWZ zH~nQ(p2ydC)@wZQNNeiS8v5;IPeYLjPvFnX52pqY?bnBh0N`}=PHC1BEo5?c#PkKn(&dxY7|ixJG) zi~x21TOJ>FbRob+#|rg`c=vQs2HvEFAK4c~^ry9oKVvFdD>o9lqE*33-lMQ}EI08P z6y$Vh?x)55i`YfTrjdm%gJ;^+ZYM+7R4SKH(=gR}SQSrY&i7piqG;3oM^=Zq-KAo3 zm^al$j&WL@-`0`uXS^+(Tu`ZGs}a|m!Pcy8=!bt2Tu_eU)hJn95apvc zPXA<57;hXcdr6aAF?m^S1tE_0((cU1Cs*~8h0b(YvtFz(-hr!cHs7!a5@5(>wXS#A z(tBR1^kcivm2nqVEAd#^gPTvU78WG^c91~$6+b=M)vk-=s;)$nJOZ0GV(gNBM--H5 zO0%lzxP>{L$P++6(GPn4dJghdZI}to<3)y z`jox20513+v(=eR?~`rgeKtxSnHXyrV>a^e#um3GKEm~OA9BMhnDvaG=z935JsyWF zoI*m@lWQeE*!`NcUYZw2=%JH(1#kxIzf|5+zM)C}<$CAC`d(0%c)*Uw8$aFq?=HUf z?)w{mD^Y>(d!^*s?Mt_$pI`dXmG3Z?EBb$&wuM@zg%+keRMJUZ$zS+~%WEp)X@2S| z;#WyQm$$GvVW=$hOMPnV&yk*|6-+TKEAj;D*8Xeu602Oie|iLT6ER5u1`4mc4auZvC@d) zpXFhRyWVwt58*V9$g|9st=1&mC{asI!ewP>Ou|2+8^-ykiwkRuz60lL#>+17x0!##vkE|aL_)+Fhe7KCi57TlXz?=MuXQ-=>h!To?KL!PIhs%Fewc{g?}&VH>iB=sq@TN2uS?>b21X-N_Nwy?Qaj< zh5kGv6T(d2HBbD%=}*J9{rSb}lKwndZ~G&Dahv@D3a~4Ogv5_rQYZlX!x3ZmM;Spp z3mgn3b#8oUAfuMPnH4hYtFk^_VW@=2g`pGxqfYYQo+`m7$o{-=^Z+i6cro`>Ko5VQ z)A1B^7}5Tb^dhVB=n8AY8O+0<@NkuVxFnq1QW?JsJwT!*l3q$rvRV|D{-D%Q4@XwU zGp61!!I3!HaMD_w9Y?ABdNJ+fUQ@)gm!12ssF@4_b>ioRH_l)0-2ZO;Ea(1cO*s7o z`iVDqeoWYEC!Rn%@l^bT$@J6>x4%hIYz@&!ykz@fL+Gfi%}tJC;-zrtW9NG5GP2`s zC++$p8_Ipn_$}mq)l8qzQ#{y8vgAElF)Pm;sM4ePgCRg@OsyG5T%vl`lXIQy{mpr8 zefHAg8nOIo6lH@Aq4wDI)y&J4YeYYg5i*mK^-bY_YkTF)nR*;58`N0DE2@I9`hRSF zh+{TK>eiaaJU*6%*0!Zmlu|A&TsYG6{mFBx@RPW_29FMZ_3c$yp!%?snxWlA1Nf9fA(J`}sC6>>D6N@9Uy>faicKoLx!`BcMtE(z1G4AHi- z8yhz3ZRSSv%0JQwUvF$!p@*o2?Wf1pcsDkz(jzg_Rq5l{cMstfD|~!m-&Pm=Kiy{- zR6WwY1SrIRDeXq5DoDR-?EAQ+8=}!Lj6A)u;Q_s+8+Y^TD`2imn>Xtr-LRjUZfGki z>4tpLO_q}+7fNyuEKGmCmhX>dD&L>sx0QfpylS%jnaU;oY3C>3pJ{qafAq>98uVv^ z9?~ECsp-!|J<5Y6zMsY)^QICS(eMi4Dw9(&JmP8{OfKISm4?9|!mt2bXt<$G*1 z?KCelPAKpCn`Ra;i+oTPv!1yp-=PKmrr**Xp_JMb(wMf*oZ8Df8#ePuC`K#lnXmX$ z29-=v41viKVJ=74aJh=h^ypfXY0bhRY?DBmLmaq%z>J_r3!KzCeP??0w*P(8E4xs- zO|QTmy{C7b`VBCR%NT}L0>3bhACXP}ho)Cx7&q#Y{lsFJ9u?seg(R>d!6HO;ix?GL z#gtOazvr*OC%rI_`Tn7%H|T`q%`@Kg1LczBe$#|w)Gnov|FTs79#%x!$tXtK$D>Oq zHf&9kE;mSVG;K&@#fI-cGfQ(Ie}#;KT5FsfGsR&K*Qu5sR`^$#%26t?Tvfjj)bd*| zSX)Q?6M}S{e6N&-92a&qIFnDWH%e;t$pmOh$UB_FwMo8Ush-htlvtc<``AU6qc?UF z5`XwpDA6m|FGVmkzwy-51G(D9QT?Ir>l63p?l%0xzfNDrwurvY{~Y?-Kq*mF))vIr z@B5b`fo=NV9T3qlRmh9d9`ey{)xLFT{ z{`wUP-qz<%n(ex+3ita@e7oz&qiPc0=_p-kDo;%RiwuoZz%zIt?8PfenYvW z<1PGbmmaUf?q}!d@u_s7K#%)%77(#Ok4G0ew7~CCcM9|v3A`2v4Kl8trG(<99K@5*^+yJwBU?J3F_f$1j>a z>fb_-Z`@gWY;v;Oywg{%(QcP#b#a)j^9&c`&FKPl!k*;0`fP)sQ7+;r4mtiHARA zjQ?!e8z{T|a>FU7X%R2Iz~ASN{3P}GKV*^+O+eLRC{Y7m+UYpLtY92o-|??Y1&H0_ zq^{E15ZB1DrqF6?0V+2RD%K~DSef+D-z|g)z{km-`JXX9b#+Lk=pz;_#5J8 z81X%@*)=K|r(-VP8ZV2Jxv(FbZ;Z9dJH-s*{)6^gM33fkwT(=99^07w8@b~wx((kd zxmE-hV!-9k{y!}}op=n>?fW-tX)t(w%P0(?4nW1D7?}^R?dYtnyN=d5J|*cXj~i#9XPPG1HrRNK_^=DIi0B2ukC~$sS_^0bYeU|hG%UFI?<@2 zbi#gOIx$p_3Z3Yf05!_W{+xWsg!=#x{%x~`DvJF94!-?sL0~$1HJG)QfLY`B+y*&! ztHBC?*}EDD%vr#!!HmHh!_$dbyNbGl^Ssz`l&M$`wa|p?4M2Q&Nq~_v)J`5FS5a#) z!U|eoWVQT=@6}1GMk8QS^vXZcv`sQfy=0{3Q`Ky-((EUN(WW*S5_k!)F7U$Y2GOGR zB6&$8=<-WbCS1UY8~+gW743x=Hq&HzmnVKz(&bsEb7m{;;*u_Fe-fjtE=z-?E_dD!IDny`~wb8I-!v~3Lh4PQMan5wCoDg{$6>Qk`p9Rx#NkhpD2-+x|4-w!SD+lMtT z7Qfw#)jqDd%Z5U38NQr!Qkm+?0)uVv!}8aQ67zFiCH!@fo*NR2{9=)&Uk7DxrllS& za7l|rdqv_6h21`JeQB83?FFAlgYTsnR0>#Yt6b;b_&ZIrz}@3dyHO0cj98FW<|P^; zzALX_PCH<@A-+tOo`pmZ!lA3q!*t1f;9oc zn33<8>c%;-?TF$ERM1NpaQ_Az$mwe-iR_|gC~RV!J-ccl)>`VCTvzG;$bOI~s{vJh zaz|vfz<&nxenvMsk-dwV)l&)=~GBsZvsBKv;zSF9~E?>MW62+0l#9ko$}8o z;Qd9wqg~b=TucrUsdsT32e>~&t3$U z(gg}zza0vDNTIW(Bz7PPhD-W9tJvo*EB^zWCn%SbItFUh@8FoI!FA+cAD_ zdk>d?zfF6Cb)YHM?+-5TpW0i2m}uwPi`Sd_r9AinU!rgFU(#F^>o-IFvTD6b!Y943 zd<#!z>G)%xuy9uT75T0grxShIXTf(n?LWMB2kjqHY%QXNN`9uzop#-Xu#r&Wy$K6_rcWokIL5+n=t) z7wFH)nQi;Cr`deBh0pM9;Ul&~OpbimB~c`Wk7SC-5*MkPOE(LnD)MmZ&OK5xdu9F- zWvr7-u=De`z5czueR#EOzkiaVRczBmj@Kn!Oi=`P0VD5Rlz1>Od6c}fHT^VZ!RecE8=^)gd)nEms6yflK691&evxp=dp68v6MPF9ea>g zSS!@&_zqXvMOSGz1%a#0S*MiUEc-H5PgD!mKDqGB1@_sy4zM+d>roBM-V_LTSVPAF zd{|)FDBs6y&O0vuRM5lrp#BR?{dvhGQK$M-AivO@)W<}FFu+c|#}(@#-2*6(U%Gke zyZpMFR_c&o>cZV1^?)hkqMpQYii9NkxCO~{>VM6P#hCM+mh7%v`Vkiq*Sj~+dl53= zF;n2E{Fis@%Q5=$_x8(hdJ*4@U;0sasn10$ylI6?a&`kH1%UVuis7aftw9B9+CEt| zgjK`QT*)6R!gmwGG#_62k*-^yDMw}+>Pbra9h)mLY~lyTo6xo%+g~nXtynpszU@oO z7ofsbpVsvAiT>fobdU}IwHkga{IJj{Y~=UmOP4RR`f_nN`4L}!MDtwnM--ILHqbYv^s`weSIrUGT;8me7m`i(05p3H+^BgznkwDb2n1o8%aXE$(eIW zeVz=#%tQAnPT&j(;0;`^I21liF|?!49CemNo5>C-Cb)Ku6sk%|} z^_z9UKQ3pP3lO04HNMrnE=)Dt9=x0#ywo>3_Ua#(E9_MTC0`C6tqLBgq|WjB$EBeY zTvBqNp7N-!__iguB!~tvRFu0h72(31oq0u%r>P#gKOJWx9d21Lvw5SNDO}&pHJ4M} zNmjy5NaY3k0`ulw+$K_F-Co_U+wH$jUsrwYj^9SocUGrLUMnm1@x2-tojLyd73mwR zjp^L>8;S5*r*v3t4L85!lXEK(ALvPhGnw03`F?BV>Im6`BL-s*;zeufB`4LOZzdt2 zut%L(W>8^(u_nStN2({fX{_XKH1aApJ-&v^PCiPHuie40dm`1-pwByk%ECxB(B9Et z{w07e8+?4jX~3ftti2#AaD65;uPcRS5sGfoZX6X(>N|`ctJ7gz=Al=P7J}9)!L zzV0pb)_*SajKFI95c(p}i&UM3ezm-BLfJ2Xl-qp$InYb(7R-zyD(Ex!1rx2l3K>GmuMKI)kJ7 z-vT|~I{&mY`&PW~)b@>^c}OL{*BJrBWanTjwk1ymLw0_yWEhj3la}$qstTPB?FR6T z&d>j9-tl~*o^;%%zd!$P{u0ZH@{63G{|uCKI?m=V8+QwD*tcgY0D?@wCrT@~3ZY~r;L$x%Z_>l^vIZriujvPo1cJ4pF zX7ZsI)J)#A5bgVZ&Ybi6w;Xao|0~~KPoae49WtWXNk!Fr*)Ns!G>dAFE;cVS{h)vG zT}|IQBr0bS;~F+RwDgL%vRxE3Je|JaOsDcr>T8lnm2ifqtm1V4n$(3Q4}XVvC;Oy6 z3+j8^xlVaiIy=Njk-es#L1@pZ)2}ymD0UGL zR#HiFQKPeUdY$AgnfEXSt*0VugP+BMRsm%gu=)Bl{bo;NYIx}Crde0Vo5#D^$1S?y z;RN&WFZN+fH?7TGJRfhKPvAMsRQ2Jd zIEg4uKj)e_5BtzL!Yn@^xmiKEQ{aQM^Qf=2`6bKKTt5UozF}L$&r~?qE64|SsR{r>;J)lj zcFZP{NXz|I+1u^?Fj3a<-BsC>xewn{75+ZL@bEzDWZ~_8_LYZJB7k1t{H80s|AKIG zLnZv>+Uzu0T~T|!AKylRk)7A8qE^-Zsvcr*xkQQ;oUDw0)v6dbesBL?H#wuOKgl6X z&|4W+*2_E|o2|3tW=Dcgc|i@A!<}3u-0XrMe3;k21b+A!oQ$c5eZXH2-(Wld_}o;q zqdKe{B;rkquoxbNmxUQQr$q*G;mRld`Okl{HIf;|>c@XYD#gH?!1azsz7)>Kb?ms4 z@AQrT2055i5O-jO6!6*xMk?Q{Y8ybXh76Ksa}>kV7>{owKc#Qw6(#c(ZNZjY6?ts~ zj?9c4Nvyj_(|h62-<_F_W&zt60+GtqavU~3%N(UX7hnU?af+TuUUVE@`Spn(n{NN@ zINMraV`1L!Yu=x3-oJco@LrK9px5T%rl5=22|Tp+2>$5&Ga0-WDgz~;pm#}rSWtt?J^)aM*GTr2foF_mK6 zg4-lZC}d9`w104!m||(6{f^&JX1k(_GJVla5?VD{k<;mUxtx(-C0;BUn3IYN_<`Y9 z{H$PL@l(I(pl&qnRjxv>DZTY z|BOYRFd&!_!CNSnI3+-@ze7cf=>5H7V~Wl6`M@m~pWAs1YW^LBzF6}s`I_VZ{M-fl zv0&~ARw#Tb(uV+NI~@~}fPH$2PzL`WE3fT%zN9~}QG8tJQ!J0~qyG)~4qlf<4A^;m zYng75&B76U`-{c5@t2n)+wvl^fzLaIZ;3oToAF!;7~=ms`1$Qt0%`V%iRVS8QyT zXtYn_$>i(x3XAV(%Qs1LTgd-$3;|!h%<(9QX0X!l3+**GBq+xE1rEN|XA8ci>2kmMd=UyPEJ%of@1>2J1L!Lke!h`r{gB=`cj@?krpuQ{?gN!Qw|tI zgI-WQC*pmjKZXS*Ewgz}vhVdu1a)Yy%4I)eD^E?>PUW{_V7zVRk4k5|oywo%h*s!1 zfttTXjjc*>a-peu95HT@ly`CC9aHCpYrXRadeK3fUW|lRhn?8+O)DZHg3!elMye*o zB2|~UKqM0Si16bdg)5)m^di%Q+pOY{57#$u^Wtru4GSYFVID{N7xjE%dOO7RI_qf# zbJ8vZCh>vZs77xrskKai4Y|d4XX`7mnX8O743q0+#`s1k_DJ*Mt)160r80>bYO#Z> z;kttJ7qV~&>WwUuJ6k)DlivaF5KPobTx#+LRz5%QZI1abVQKxcmjnG%18S6Dm!SmVqVl+1-DK=DuL}zw=q$ z-xcKkC%WIF?qBqz?S6~8PjE6~+I?R42YvDGOLVgJg0auCizH2fn+!KJGgn=7p_N z2Z}i$(gf@%vG;?I}U&}*h=^1s!-`3q8O&1)w(kM+)}7i zvBFK(w{7~_abuxAiCGKvU2f_-lW|{IsPAm^Or2D``t0xdqjO&9jc8_SB@6rFFOADo zYf;a0L-U=hzRN7)Jc(VNj-? z?{I;CcCjD3m-OQTg@#ZcUj9o-A6DnT{j0vU=b0URzkl%kEv4U|ho!M;`!Ft4py?I= zvYh&Uf35Vd|-I(6*lrkxJ_wC;Aw3CSfXV(BZbMbq#>6~7} zJlITj<4=`P&@rcU~yL`WK4B;sD5ihVOW_UJP zycbQ(1S{8q`BuD}w2p0cx0Sfhg+3-EyWKp@g0n#UHscNjd1)MMSL|;A#Cx#nBpc@dcx0l2{}U3*Gi)7 z?o50Z@7LOv;aAOg+iJ|5NJmwRWI7MYo4POtNq49uDa9t(xG2ZixF}=Gx(PvMnIoiCSs&_Bg!hiarARKv{MMTFjHs8?Yc4jk67IO(*Os*@XpB42_4ai` zFT}q~Bp4#fTnJY&9NJBR|2#qk%*(Hu7aflI@ZxJ9=pL5CJy-KEJ+P0q8U0sl3Uy z1~6?rl^SX&?5E^HWxv<}0JalPMKNd%oz2HnxrKT@E1t@q_#mrL?m_*;W&%Af0X-Cz z7CGZf{4nm)xH{QSd8WL$Q~0j;`et?Gd0p!tI*w4l@i2lVvecULkpam>?L|9^ZZW)~&&rxz>MXY@z<)J6ZoK?IPv% zUtU_j|I)1tOQHWzx~*pv7%oCQ(;GgMetsXF>mW0pK>N$Rf}Kc5TdQ9k#86jpC#4#P zGt_Z(V>rvZg_jnaELA3IqwZ~NN$k9Uj6UPAP?wu)>8A)jFox!zMh;ve$zei9mV&NCTq4>1(&RMnr~Hwf6p_C;#DH*JgPKH6u|xvf(D!v`7PCp};hbaNbIQyH&( zr)U9kx0cNDw)@h1MTK!MolsCs^hzvVKE}pU(QoqFbpTP6{rw4 z2?i4CuK0Tx>Yy-YNq~ch6molT{y!BhF|TdDf>Kf#e?uKOXM`Eg^B8cLLodi*Z=^uD z5=V&U(1HPI#29V*L%*TPm`h11rD$M?+r6beobGN-uLtE>DM-LpQobfVuz^v=(pz*U zt=oE2ElWeR_oom>t*6?^;B)y}(viquMV3{#6ppjnlH2QaG-3=xBiLdL+iJor+67V; ztR&!nh`a|wRD9D5KTK4K(5CoFATEpA#_HY2te*1q$_j5Jp3xT|4*H4hQ+J|Fe7Pm(3q&jbKd{!9;(Pgj1%l!6fG6FbGZT zQnR8H!ylEQ;JIf1txPmRJsM1YoUfA~XP?=95_`!)ROiLNQc01&B;Da4%GN#J^R1FHbIz5L2Ey|L%F(jBI;yoXjWg>9`m)+}Jvl82!>>nvpskOK7J&!Ig-9 z31&r+4+)Z(6iHfjC7Y?hRbfW&bdVn_A2m+&4sf;HQvjFOG6advDV9*@vt-6kk=peH zVzIMk-}S#_ikoo2gvs@PxsplrJW)OZiNftxdB+SSmK5iV(L)1PWgTr=`lW|inHvOr z0hLB_{}=TFM`Q0uH;Q|rx^GYhAur3-W=Q=%8e+!yFF$rZ0WEHAk|59{<2+Z|zOb?N)9! zb>jJ&-6{QX;#k%TyKzfn`vcEc1CaP|H*?N3$W-&f`S`O9FkbD4ZUaL40 zS(p70?22W@ruJ8fg8G5|&U)GJD7f%&wvoCD6A(K7L#_$Cc#`C! zmrjtQ*=2Z^F7SV-4{x*LuQ(65Jzvdq(1xBXtRByX{VEd%zm9T&IOH+PRiz(l-6Xi?h z*D#)S{9_N_;`az&+bdW6um+`yAJ(A2J%vp1^8F}eiZ@^~{B}N5JW$h! z#!t(x63IzkCinjZTpE5Y`-Hj554b}YE zxcjcHSt}?r6ufz@rQx*yCBu_7X8W68A}Y+Hk0SVcQb%X@C_PTkBOAHpe_uM#rX)Y- zX%1f`TH&4F!?WBghJNhidE#?A2md8;n5!mt zMl%Cy-DIdDu}k|U^%ZeK7U6y_lF2&V(!HeNfma%xJ~m zxuN%?>1CWd&@`QJ94Vx=enOj^R9F{HTio;qu*p?!)5mW2$IR|>x9JtK>Nu&8-gmqd zO}{`O%fx`J&wXbsy(p^Km+T>1j)-ph2)dKVwaEZn{CzA_tq9mKa|2${FDAG#@4y&g zhMFEfDpTFh-SjF|PcMlNZo)9FkOU~G51yRG#5#6n-c1eB(6VTH`9-_MGDCK4^DYNj z4v%JzKMX~~!pdlfU<`-1r7y3Tz9O2OSBch%WJKR+3q29%gx6C;Q?!2hEs6o1CMQBrn>`z6`-ku}VTe4Gyk{KPV-*=m|*`jAX zg*p3pfMY@f>3RPx$=4mHPO2r_h;y|e(?EM^)=fXewl$e4g=hx0jPTDd-UKg(z1e3wm!KH@%;m z-j%9=6Ds(g#G9qOWO`{9@hHPMk!qiJt~tvrv-dko@~7;up6omNGW~w;SDc@dYbe*x z&1j5ENEy34j%&++%4k$@|Y)iSI?0Kn59@) zMIQ=Sc<`b;79zj-YTq*XO=iqiOG+c&PZ-0;>5HM*gns-^`p5xpX5hdQg^HaMS&U(E@3s@mF;<8lM9XXw zvGlj1$ptlSp$$&Q>kyHi(MIxFz?AS0v!~9!3u(YVa?jd%cAGwh#ec?4zP;IP`aqNw zQ4LJ$b&pB*N_2&Cbm%PQr4O?m*YBd=uR=h>_0F+*P0I#NGGZyX*`ri zv#;2k9SU$$r&w|RFq{vx?gqv%hl-jY8^=yazP?{_%YZoPD!WQ6G8Q8KkFMtniM~r; zk@(4v^1_JyicR~6@l0J?d!WYTbPQs}wWZgWe(HaTGTAC#l!CYvzMtV=G8~EQP-G?5 zv#X(}+o6%-)k_mP<@a0UDoc>SJc$Hmk(evXPr;5qsU# zKO3%mI+A`bl78K9BCMy);bb4=p*@j^NXG3~nYs`eMoJRN8KI!*XOWDTcQJdxHZQ>wIwEzIZKXwn*zC8yUh+#^LuEI0vggFoq{OU5|Nsp~UC^Wu5 zi~9k3z15luDlEhu&dmRXqF|47W=&v^q_bLbZKd#sh*R$$U@_=>CfwIqJF3V@{g8TR ze2I$ArlPlG*wh+Yb3s*W`Yq2hAcy&r|GGPAEe3*!oSaJ1!2GGAd2N&=Xt|#m{B`EI z{qd&9nV#_NPO6)s(90Qnx}2tDgmmTWsyG~49&tvkR*{+V_yt|C0B{EvUvHr!pSV+vXh8zW`mQV+cU8eW8KuMWuJ9b6KhJj7?nPn?Xbo zV~1G?BI0LvfxrQ5jO}Fe z+UB(elX6q@^20Lxd5ED3f4)q*ppy#7^DM~ox4_@d$Akr5O@Ae5#$Odl_JieC8)A0*Ph3rRTgXH z)n%~;9~+apwZ=F(-8dJ;8KGzV>^H!c=C#=w1*Ab*S%Ne>jW6CmM}H#T^+FisM`phw z+Rr(yJHnX%b7tzSSx$ih@qr}9U2$wil=1x18vlSD)#9Yi5YE&(_lNV8U_P_F3W>u^ zVT!~#hCznAvNHedZS*hiFg)K}x0I~;ha+0g7Ig`{rwjr<4zzT~N!c%%+h0*gWYsMA z$HA!h4Ce8~;ylKG%0u<4K%Y#ngpv*@Ii}Fp3)s?E;bf|0Rc?~LHikoMFP{jWc}W4% z^==Tg(vkOOIK95ES1plZjax<8_G$G9Y=!~=D#`s##Nr`lTcWD|gcre}M4Fj5X53P2 zG7?&Kac9nBA4}|tpa6u~k1xnlo!#5u$^U!&Fai+ex3Kt;8}%9ZArZr8;0M7Y0S4&t z`yEx{q$chVJ@)#1^pMoXK)bLdjHIPr=&|_g0eXmpn0;gKpgTqM_-QZn_~E~V9^;E- zNcn%u(V-rtI3_2|Jk^g0f2I$ae(80>n-;rbw&1mvTM(96i zjN`b|e&SyylXtz-Qu4os%d}0!9dOo0zTWR>f zcIEY$aOlLTe_U!c=pRQX?ryd>dNHebIlFjycW`Ml>FA~>sZ2Wh*OTnxFW@52j(V?u z#XLGaX0-O1Myh`clh4|p<@V<}{YalsI7gWA{Gri|XUQf1{~u5I1nuBO&2NqW(65c9 z)_FsboQ5|psEzN+Us$&PVmU!%jq>bKz>>EJ`Z?vHp2ke;_mn}HUz4au(;z#-(gavp zJ~CEXtGF-IZrf(vx8{))_yzP*I>#_?nf|B})Ym3vcAsRp_Clx}qr?>cK)Os|fUxV}`rdlBet~@|10;%qrY+AV132|K?3a zyDf~%ASz}j?wn?z>vW9alhStcTxdT3#Bxw1l733)kB@@S#L3vBkrOf@j7=Qdyxt*o zK2_SVA3x!$>YSE9FOBf7p=z{B*UPHT>CiH6f7mQFr(+U&(ikaB?b#=^bgivUzEzd{1WZ(1m*gi%R*tCF2`Zfa2MQIQ#XLhKT<;#$JT{P1M3D(} zf7C}F95YR7l=LE(n82BVSC2US^1Z=a&Q5q3YDD?R)3a_ei@nhW)oxRFZh_#-!I^9| zC!p80iBnp=)|Rl>HZtrbhM~9?)uPBCE^p-0U+|0fp@<5T&z~vyT=0WFm}nZ%N&QaL zAJhX?vS;C}+kojS=TD`BpPKjn2+EsUQVs3Y>k_8vTGfBpHHvfRbVy}l@EIQT%K4g> z5+SaUZ#O;XcCYJ`ULOl}#a~2r)vOrwt(!a6B8#g_OpByn4J*8W)6vIFfHCB7z1dw< zHOh;0{G(}odSMZi*#ML?e&PmTJieo1#35IpPE7FyJv8u)y9SoL3mtO#8Vk(-Fu=^q zJ()jJjU7Dj5J>iLuv}9U2~BT^IoJL-UyA)Fs#$~V?=X-d(dk%kP(8C=pT5o{ z)iI(Xbi5#e7z=;aCmTTm*(1q9g=SoI5cOzqA_i3yUaQn12~|1OBL`qz6-|;ZWXO^a z45igN5?l>Fo@&hE4NQ?hiCMJ9>p{FDa*zp_reW&w)+I(4m6g^{@C?>{kcecVHhvU% zMxFa0H?hp^Cbn8z`t4}?Wn-Up9`apO5x?Orq`fx27HOQnoZQfmuh(d`flk*WLm@yl zZEGh599mAX^!o-P{>}d=g@Z&dJ28SE+rdfhRYx+|fBqleor`17G zPl|4}9BFz#()3XgB3-r{+Vuqq-R2?jY?=RpH#*j|SpvQJ*+*o6AE18BS~O+*FzP%h zG{51K+9-`OEvopGCma_`KY@sO0y0cj?s+1L29I1PbtaQ8s$={M$7Lelhbm(8o7#it zY$CyWVI0HTLhrf^zQxIypf`-sbq8a67L(S>KSDyGp|MI|Yf73rFsaea4CzMqc7>B` zGx#cv^k^U+O+TkNB+;dxj>`=A(Dgz>>N?e4yY-n=mv9#h<1YS`i()dCIkP6#^uB6> z%z^hzd~7gdh<1NU4v6(aM!NAjv!iC~7FIV@__N;-)^Mka8l@j(LRt_HN|Kg|EMP8? zNkjN~{)fyqD+`;mt zG+H4uZ^tul-J7e74^DtpvZvgdSI$aV5wQ}P)=Xk++oX*Ux4y;~_C7FJ>o@9MqrE1K z9PcQPk;0vrT)A2b<_s$hzKw&Pscr{LP-cDXhTe^jwtS159AR`J5PN`!2+=iKtscUs z_R=)@?{!KeGOy7My^>gDs*Lt9{i;8I=+;H8p7`@AtPu5o<2RaIS8sekj~4AJFf-vF zl5N=3lY2C%E^msFo>!>Szf{d4PXFUwlHm9FxAL3Ym|uh?{?5iyv5^H=9r5nhSvnlr z=wy_=XvF>6B%SMZykuUh+a|43XtLULkO_oT9Nq(>RE9RZG) zk8uz;tE^^n=VNsm-I(VzI$~M2)Nl)aV{b66R%l=2f17t^*F!^wD*r2R7QY02mbjtr z__x6?qS3k;jB9%IB?p-n1vINz*iuh5NI#NY0JuBxyz6ynVj+HERNG_IgBpV;V|yZv zwpCkV6!!+^dDx>dsYiM=P@yUJ)Sta7+^U;YS=b{*MP}5%^w@zM36F26o}32xfE}27Zs0H^T{BKYvyI*V z!?V;DHcTZ)NAKa;JmbmTddEL5^+f;tO4XixSS{Pn%oR7T_pljk*>O})^v{1hqtA4j zSb6H{+38=^(a^L_r~Tar-LG5KNBMYa{<-m-X*%|W z$MbD{2H0QUn{L{9dUOTz!DRjUG7eqE$(p!Nad7irvxB=+Uop5r+Z!BnMi$r-ky_K{ zqDrw$<%4nNW>S}9!LVV*x$FVeu}njcOzZw85@}c%AHP9#i`X~37R&5@`%5U?npU|@ z7~cejcfE8_aN}Sn|fvPHHh>a>R1Xz1nm;qZ4m&+k-TE5bJqh`*dz6iX*65Z6~T2R%CDRfj`{d2p^Ll!WNW zloAlquUIHid%=&4bcz|m;|cQtxBz$rVk8)jpxST*f5_YQ>?~i9y@2+L@*`1|2{dEu zSjX3DIG^KsZ=cVzUz$P;1KibVs&ov<51{^ z2PWHpyF^3t^<8}|{bTxldWCb1B0rDIjJ%ywb(J4}3iud7pPNRwm)c^$E_OFl{Tu$D z%RX)n2~KLI>DM#43p)*uWIpes&(l3ovqDf{)5KR?kG##;Ir?8?FGSQ;AHG&>_|DH+ z+tqf?+z=9@_)l0gjqQnvaSc98C}TPUhVPd;4MT{lfZbOaDDM4{#hY@;0$GGT1cgsnFw2 zY7XDWGC$oM%bdTtEi-X*?&~b#lxk&tXi?-e?)cznaxD~j4T2C(gx(LrTc795{t9A| zSZISO5rS2($-S&~m4Uo)d}~@QLL6;+R?Pg7x3Hr_)j7(PVS9vjG79?fs@wEpN%_4g zpL;r{)8Erm%DpujlJd`s`W{jaG#9ZI#p0klt@pTO%b44TXn}yLW7@*a;=fG)mGt|vk(FnB1 z_*q6DWlHsLKb_>DIdPri5!(r2KyDkMUN;k=Cpz-l)$Ls=9?+alW8O%!Ag8Kls%4r& z&$n|UEF<2$N-_ogq9cyPq52l%ipPOJ>YW4>mFI|RwT{}|%%Hilb&ZBzaZ-QhBaE10 zO}?94wKEE%~EGsQZne3OXs-8dCRdsFa7gj?Li6;M1c~M7O=tEHr=W5xB`p06*1eYoe;qBLYP$Fg&?7N}bW5PE2JhFWNsA`XHJ<9V^Wj1+L7M(PTf4>eCyh;w~n{u#?2Po#rCk8yeq752vZ} z{G^$N-oNs$t!*;#qk-YkOf@^WoHCu%QeMZ1mR>K(nGr!{hSarOe}{#6CIk>{mjL0x21=`ai}dJMW%XJ1(Z~aa=dZ% z%?q2obQg`ogw$6qUiwi}_Xv_KI2o}qS{j@J`_yxVn1QWpkkL2S)>Gx6(9gAIoa=u8 zi9$}So8rPmB->)Y4-t6HTjoEQ0y2+1N6V~n2Zn{$*GzCMC0|@akUR`v=8MPOW)HDUFp7CaP(`xy@Z*JTC z?o5;&jK5_WW_F{@xWS7D^P9CBdO}2s4egBDHt#^^nv=~c(M~*4d{%}3iv_F{$t4#= z)3|%2p68)}Sp&0mJ2a*{7Rp*nEI0i`?%V=JIa%My2zomdCBbf`efo=0lt18yV>zo= z;^W=q0zB~6#vl7UqHjS{0wYhcAeDESaVh=bC_CWtVIf&{a@jJ zk=FriZfKr!O@Do37?=QTr_3)0+tYwei-G#*=`x+m{j>n9gH(72u!`RL&%o-k%Pp+L z(bN>7C64AZNpO1sT4xAa$M3%_w4|Jjvb3Y2weiz1@YcHbccVS6_v~4$H~(wf`Am6R z{p#(!m2Hgh=8%=_sqvrtyA~@q$ou~KUoa7W&ppL8 z`-Oj-Zo6`i27GhwKD+)QLoUe`l@#DqwL;kZ8f8)fx zz*%`YM{na^T%X@1klUt=cW%U+Iz-X?IyN!Sa@$ExYpHNLvfO14H~6&^9=*@w9H!x3 zAI^L8=2Dva`)@AD_3}KT^eyniZHhM#O>a=Jydd6yjK0MfKc4t{PQq==|7v{6c~He& ztSI7*_<=ah#j&PKKpI9^7WhSD6Odd`QY`U8v}tX$>1B9eMS{ZiIhuTvpVdcah8*nw z;1`lepapqV9(hB#6K{(u^I{5z6%uc?ha7Mo_dv-e%Bzs>0_1c z@52tGw1lTULfzioy_gQc|x2b2JHX z+4pN}Afe=^Fcvi(i>10h%SnCJe6vuD@wNISb7Mn0zcCK%)0!7!`r9xCmH}RyEgnB6 z#?%tydV;}6WX>aPMIhvj zPUgGR>D?nBd1b?%v=RBioJgfFy>QVWFIF`XMsHX{bc7s8)9*VS2~gd1#pMLj7W&k= z<_Ri`W(IDIg|;|X%RYu~)IMgofb@HC0jTb>eRO)~{2|GB4@}W!H}vU+KXo6ZGX3ND ziL0thYJqD`0LD5s3wrf_&m(4+F-K=4@g2}g9>;6Z+{N(3U-g??q3iGyc*b$$4LukC z60UJhYATh;h`;e-k$B*yF(^InU@6p+uW_Onum_4m<2A7!dkih&NBILia8Y7wcExO& zqs=rsl%u8yd*y2u9^xZCu@wTPq7aajrg4 zEQ>LHE*X8#MW9X`?iyg!`Pc2U%|50bo|A)$7zlCU|L$+{3IPP>IXo&Q*p@jE?Z?{L zz(9Zm1BI3J|H6)9HDq)bzoe%Hu1`_Z(i?&6qeK8Mp&1a%zF5Ii0gji;eNn0EO zTVYT;>e&zNDifPGCEY1`s+84daR|WL0!7n|!LE0+L3fstj6O317SvEm&YtV{a~8Z$^!uB1(x7+uE}yvo*Ou5!j9VaY{1I(gQT+8W=L=_Ibe5dNwU%E`l>jpq`2+R03z z9D^R{X6`iy=$n<@1d-h0PnRRcbv>>-}(|?cZ*qq(ROihG!9EXNs*6ZJaxvZTe zPIW`5s3QAUQ;D5Fv!E<$HP;!`T3nRwEDcbL#g&}_Bv}WbzpeL%;gb7^UYj|OdhMD< z=of@58>0owkEn~9P@^N&lBvjELQUIw{0p#!=nHl#vIJ<9)6KwUHKTwaAWB zi{sy9)-1#vQZQY87!d@sizw;YhuM3%rZ#(*dx^`1xkcKKjNdQ*OGX-7-(%z`>Q>J+ zUHlc<@u#8d&`~wa8Ar&be~5qbQ8b#EFV_>#PVytJ3CkEmJ5Za0!{Ehv_Kk60L-+(M zRbWb94-?#_i`rDPsIC4{Gc+@~uum8g)5Qb75k-<5x^)wsWFJPoAjqwdP&-j{(k-U6 zi|cf>>K212l6)J3++Xb}Y_D!ej|Pd3ld`iFUFRt2I$L+ScGNEImwgqxv02n_c7D0z zk7xIAQr~C%L4=Tf4W1eKo*9>ox8$UxAI)=3)`Tz)BY@T)Uf>;nz-IK5CH}dzhzK@} z$mdyFBjjQ7@ygki;cJmQC2IA7M@oV4#z?~?$^BGHIKjWxaD-`*iqVJmQxZ}5%)B}6O{7gY)8`L0{}ihmU)uw;s%U8{>#Nw$lsH0aRP zh9b~Dr+V$SjnT^G97PC!d97-3XQN~uC%nZ+3&JaCwIou=fN4ytH~{khE^v2+?iW$*S$(ZA9Ctg zqw5@{za}K_3IVk);n<~z8%V36Qz};4(8@#F}0Qs(GUj$@;U+6jSHD++Rz^W1{(3{8-P_ zhffrkg&=nCA;^S66q&hZK=p8CXbBh`61f<9ZeFk`H-FEWIg>ewa+W~m3fQc+S}*|k z=WQ0BkN9d>nF89m&IB#?PFU||66>uR`||poP+CW&qu>;nl+qfcN!%iM)*6xfD$|?m zr5}og-iTkKE6T_X{Fv#6+_3@9=OJrm9SM)HarNP4T=Vj&{ zB+$Z<+6Q=`e;($dZk4tHXx+IiSEi|6 z%L;X-PE?FdA&21uqjH_rDLvZsY96oKuMAG_@~TF|)zgSm(=a}|bSvH867Bv3BTw0GDjL&DWAr=! zih;SqOXNjJY6lakDVAOv^}dT`WHd8qO;IHl&kk5S~!S6)!;F;5I&POMghX zG1CE2K*%7CYE&(fM$>Bc4mv9Nqp@HyeX|`)ze>EZBVtJF>+vXw4L%D~)TN({%?$BX z2(#3GRH5J%PC=A0MP6{l?zs`{7i}E%4sA>SLv|>HiD7_aGpBt5*bWVEeGaYXO7x(d zw$7<(Yx)NjT=9Hf4=;n84^02?@#j#6QLlPwKjeD z9*E6QNs;+ zSL=<=_4~ux3+pGigViOo%&FRyT0;&0c81*o*{xpC31xzM;TFnibxb+ct;`lo`?9}= z;a9u$S7b~Zs-3YC1xD@D3Y{ovpv5#0*LG+c;H~tew9*)qGYzaOHZW$5sAjiwy`u65 z1+`9vweSlz^qZj=a0`Y&5QN7t45um3nW%^CnGj3?WJ5L-^GN##n?C`2z^@7ektKac+<-f?}FM$)sJd6y%O;*9a!}r z16=PIgxwe5F|)2Z`F2(EQ%*iZIg%zntxD|b9TST*ZE0GaUM@_j54S(CoL-<3t7mrs zKPPhF7_TSIFKM|!Z^k>x)pAUs3-#$&+8>fsjq>CB@+@Qh9%7k5$iOM@ZoTH8^kw<8 zq^`TnQ~SI#xaRTA#mifYm$QnOw+ENR|I`8AaFn8zb#!lHC}kcx$&2W{JLyJq2VBNO zM+X{XR1l7pK-Yz`TwSHMU2h;ETR3PT?8ANJ&8k?{k80Yyk%V<4`pTZrROF4#Ywdp0 z{T6tbi(*n#1KCR&;VjV!o|SAZIHR^nZE4QG=`9fsA~ z?xgj|yxzy&B=IKl(r|ihTj&$#stwQ}bjkxO<+?I30$vPtu2Je=!mnyxDzoQu107~} z)0{rq!XL!50|C)2F3H@Q8F*~vve5fV#{_Zt|CoCh_$aGu?>_@Uf}&5XQKO>9HrgQ3 zCW@65T4!Ja6Ac;_1aB=ZNNKgFR3}1JAeu>K`Y@PU+uG~l^m6KHwY45A)~Y0c1UX&; z-tblswLZh3pjf~gdB4B4pP3Aoo}Qlf{eM3Hd|;maJkNgiW$m@sUTf{O*QyNeLGcGf z^8m{O6W3h-YuK47)TX?{8-wIq`vsm(Wf&%)Yfb%!0dQMv=d<{{8J`)6Utd8mzAp$l zC|Lj^u5ScHbRcc?4+iEvj;d1=l{Y zGpm@DciM3s6xV=dbW?g%$R2=3LVds|aAE-y=|)|$gmmQ5hPB=z?L&2}Yw{}%(j12> zjb=uEEYgKNT=P2)z~?U&fSpQ>DxH1>`3Rq@dtfM%*FS}!dqUanHXmQVJl%W3uEg}! z34iDl>`f;xl5P0;>9sr8b!U%^tWB@!-ZZp+O?qv2c5waLOhtzFm$>_i`n7T#bfA-K zI5>U`3UZaz%S3$^^MTgQ{rpJ(Ty(T1G1}1qW?239Zi_$4Vvqy}64FkuIIox#bvMa=?jmEJ|tMk4!o+6t3TZHCK)1OXU zxvmD6DA=pvTOfnAl7FVq@Jab_fK}LuDd~=6cf-qbey-13uK9Q@GpV{SF@2prOhg!p za`ojP`+jt?cNb9&{K0X6t7Q!Diy*AlHCw9sI`06vvtM_MA{b&T@rJ-dS!UA4TlFsn z-$uz(Pw#$dLz4T9El7FT6-omlO*#TU^5}eBMKzdDg%zC9d;JD1F5SV*;4`1s2Ks|; zB}xv};-fLwpYj-r?6n~2nf`*^m-Fq7E7y}QQngc!Icd=xngUc=NgLCfywo{1NVOEp zQrbA2Geq|<;md@-@D5!vr4Mmo$@(vtnE^l{hqI90rnQ8b8QR`B`cUtd-}745a-1D{ zJu#eYxdCYmW!_I7D660N=!);m8`z$UsNVUm-U*qZBRxA|+ZaLoTa!CNY}?x1&6(1B z8b_CTw`kO*f$8W{k!xfb%It2~MI;y8MGRlgf;i1fO*V-F1|s3d%63F`{PUB1m|y&} zB^oH7_x|}D%j9U?rdayv?4wwf>)caQ=Hk-k;ma*VwWJgSX*kWA{ZrB}y@X6qy+Yyy zLKp|h*khVM0^Oh189Mw{@Hxp+QvN;Sb-cjD<78Iug;;ts{zDZ@&Y?^Fo59a|nVD&lhJ+F!+rT<4u*?H>$G2ROJPZHOEn9>AqkG|8j8 zJDrs9Z|S1@poJ~SP11lFT8QDS%pHweO|7j>Yu`IBQ?W2M8v66LfoqNM$I zW2+`cQT&&G9Y@2_%mq^)-Q5Q=RmAxz8{Qpjcy!*$j{WrRYkP)LbdtG^QO?fNP=jF; zGh@N9HQ51B5G&BT?qMgJ%T+0T-DT&8wpwt_^FKB89=1!6^! zKeE03Cu3&e{3k!n%+Ov4f?a+a!|O1;W$3VY1dN}y73%Nc1p7?O-AF`CIWU$fM&Z?V zZlrCtlT5{KijQuGp_dtTznkJu{)&!dkQRf-Tb-NYI@u)F(NoGOxG9dFTI8mf9hfTA z9PJx7wy!>DA4kQ!l&4}Yd$=lomiB_yvGf79I3lb_`oSTu%!ct%n|D>*zurpcl8}7Z zBAv@rNyXDt?kp`SAqsXs2Tf zQBNNxtBR{1(#8m?X|Ln=z|Q~AE_&bZ%!78iZKJg9*azEt+@{f`LXmxp7ibRBV|f|o zghuKbD_N^s2jvbIuj9-Hiv3;dOui(y;ALEJNf~tb&%s9RjujkIJ3AZv8EeaNB0lBl zq1Pds?<_7)Sk}b`3wI_XeO(ZSIw6*dm(u~MYy?@cb=TQhi$vuT_OK6*sl4FuS)9E)|t7UJjibL za0$JO$?RN0FET_nW211>>?PjG_BHzyiIAV6wN`%c<0c{~okgRaUMk!|IujgCDVoQjc&S0tkQDc?kX9Jq5b?Kr&%0yEZ_`s_BZ;iz=za+Sh zI_SLt3?Q4S>Bb6-5LfZFtHv3{djTP#XKCQ@qdW3fS zF0_Fv@_~Im8_(I#(;{)9Ra)3yeC&^4a9{8gS1o(fuaVkvMK0$EV!__tVz%74<#y^Z zyCiSvl3|Q=Fyeg36N}4K|EF5lajTq|{$gVEPnU3W?ZG6(OnEnFVDK8fWv|J2XcA{P z^*Z5qi1A?on3OK}zo*Y-z%!1lB4@L>7X^1@EwiY)jeE#TohbY)VDV)gUY!H8mFc@*o|zTTUL@@?KRT=fu*O5=SAs<$Y6?^f#0*f9oVqiYwk`X zR#?ff)OCJ&$2!=mT5oX$?cmfIeQZ$!xJGqFn~?nyu+{vw17ka&Npb)B1d)J-KezKQ z^krmx#GhA^HF%775~&!`1EYph5 zab@g=VJyI}H|5do-o@S9z0VJ79B?`wqief(NvN{8x-Qb(QbRo3d&aP&$)s-yS1hh; z;tjiqFuY6ghHILq-%yRsgLO9H8w}2FzX5&HSij-{jc|$A7zbYH0;P-lZy{#K)Gle? z=;5NrOAP=B+Jb*yWK5^=-nK-kmkKQ5&i6wixa(h!WW>c@8*L;&kGFWDQTM`7$WY#y z>YKEJ)r}12FGE8JL%mYAGOZ6gYc~J8_tN&ra+r4vUtLROfXe;v5c$hkfBFA+E99QIA0(u(Xr`d9m8l7M|c9!x(rKDj(7MKM>mvv6U!l$cCrxb$Jy!S z-eMUN^5txi!C5ftP=~to_Uv{nex#oO1av6Q_|Ugz{)<=(R7Cg!ZUPbS3eQRyQa#Il zg0+k9Q;+hhhBzTC97ZK-@?;^K-;H)ngFgAOFotuCk}{L)T@^xJ_`k&vFqJhX%-+7ey(;(dMDFPPuDo?!Y_ zd)O4a{Wxd2a3P!0H*VR*S71#Y;BIj~gn`f`v$Qbop#Q*c_Rx@0Z6tvl8T{)jJMbio z$JxgGT)_582WHKGU-+WYBmUSM@Ea&zrZ`ndE=7vGe z(PzF+43pX^CW8CO_KgE&3V)D@?``gJ%>R76(VrO=H}!ECIb#G+z015Mo_4N*U?%o5 zjsHZfZ9e1;JE3+BV*A|Ml2(t3Zc>AtrOlVMj_;qY{iwBIH-C!54OoL-zI3F`Hl8=^ zP1+{U4M|%f{Ual7uC_?qgVw#06P;=tf6@;LmGr0d z5=#N-kEzMi5}8m(aQgH2K}^{p;Xo+vyqp1Aj&s{T6JJ2gbRVW+M8&`n@G?@0sLZq( zbCz;SYtjwuChrWMnD9{_vM3gXZFxv}9bY+^nx|u|n8@5~9T&4SSIwX~jw+EMeXrB6 zb#FwK1gT&aP0H_oWPW@gIe0QRe|$RHBf@KT?qP+OQ!ArbS(Hz)k_z}xdDIGKO`)ymqdC>BKYppJNiK7S`Ko~(XvCItJDxB%9Y?cOxJK^84zr)<0HD!nEoiV zyA0!)-9dj8jI;Gkt-8UYEn)ixw7!IOTm2o;*61DO$zF?NyG90+FvAz8dx`whzLA)I z1Cl4uvg9y1OgvJL2bovd0m%dPco2_UZ_BUC@)9Fi^$;4KUoT}rS7bVOpiJhxjymnf z5os-ER?_N7$5dl7wg!JbMe1}hS8(C9m`8w4{Kio-_o4R{Ts7#qI9Z)}dI?^1d3^g}AlpPcX~#{J8qun{kD zuUQB$xnA}Bq}ZLBQ_~)bFjX{znFmNkabLFmLdN^M_%3t>9`}bH@BdT}A}_A}V4#U} zjKtzG65SYq#ivU!^Y2zw=E%D%cR**Xp=EZVB$K8lGD4rk#Trz)ZL*mKjz* zV%Xrl(fd-mXy|ELnz0Oxqkq!G90rA|L%|$r zkt4a5;m=1BF!#7p)1k4+M_#=oc~0DQoempS7KIa)^ggZqeEAaZyr|> z+b{N4q$SBqooFOt&#C!Ijh&>A<47ZLzOb>beN%++cKgPEJhGVImVO5|LA>?e6!%r68EcGAJloNV)~cvx(no2}IYcNOWbPp@ca=-*CB}b37t7$r7clKg*s?O657agFbO6 z56m0xw@I{3l<2jUL8=Mf9!XBa`PRcY)kpAR^|y@Z7p24$JvhH;gi@N+jz+EI|Mo~t zED`WSMAwICGqdB<6fdZJ`!uAjysFR%4aMxL0Y`FPJhGAVv5VgYON@(X8u)!7fv{-EJbigIo_&!w}V*2N^fz34~v;7 z)tInq;sdWLFIQc|Usnw$tA;#6c5KnkS%{Hd$6wr?VI}(m+-1k{L&LLWdWC-O%8}?x z%jvsrKChb{jRm>zV2&c1>S;N^^F^4z3dt*_~_!!7L`SPmo~#Y^8*v1#6mLv2bs)_k}#! zyGYYMeUa9*Nn(aKs*#y+|32f~c%oked}7h6)c#TIkD6H-i}JAeXk;TVb2&u7Sj(o& zWy*yWm$z6Z!u2oG=q7)$@EFY<+`w!$!%Lw{j)!#ds(I#L^{nF|-z2BwAzvk>@`ug) zq~HwSS<1n~7ZL;U;pf~k5mZh4@K-J0<)!{eZhvyrZ;WGL2EMbRZ{(4_tYV>mjdXB6 ze$&_zSuDA3p$z5y$+L}>{UHzht1Ahi<&UlKFF>xsgmU=m;rKCrr3wzeDlz132`8fx zL)hAKHdqNty6#(Ev4tjGGM>_p zV4q&2b+^`A^dtmQu5isRI{Opu>euDgCAo&WCg35Er2CsVSHpT?lT1f1X2i<5GiW& zLI>9x0Z$mlgqnnxi(y{oae#(T)~10bK{1v!5vEuuPGK-P)*o3DTsISbVL2a-0*z;N zzkmErn3>^gVIQL-jKML~1;f-7Z0=^$(8Y@7H0h;Hj|~Qgw>t9Q1Q@S_VEBDcj_< z3+nsTIvMXyETe8QGtLb&(&vSi=VI zmPZXyp5di>5XYZcBWiQDh1!>w#?zBI`O;mLTPpX%^)F&J*$3g6H1ACAj|=g(?S}P7 zm9&`#E_hwGMp&DKn9 zxzDzddJ`Ysn>`s^h#8mkYe-z%b*MhS4&=_RkUDg`HAj3p5 z*aizXCvV*DUAB^p0qLHG$GPkF&dYYZ8S@fbVv%5YmUp|dI%FMwesbaS<+){ibaqAV zmcss={9!FL&_h17LuVu^SagQS7W-1VZSijs&6g~9B}*rVKTsP(x~B3_+WwjP`LbC} z=!w%Pi!vqr?`Wh=Glr4ffm%W9;{L}8S?Dc(kCA7I#kqqBBXwcK&Q2PEX~ShwdVoDu zEpm3`mdT%x@;kaHJkqsx7lFdO#pg3CB=DQOuBOMa#AbavCsT1&!vEQN^2!!9#Z@Tx z*!)9Alpbcty}XQF5^DmE0v=8HH+7K%24d`pic#LOZ%Nx}^BaBIo>JWrd5+>>5-f?3 zlUgq&Hf(Rk>M=@mF%q^0U9eOLJ;rn6rRx>4OWu5*tEo#O3**%j+LF~1bkYy+Ts)U$ zNg;+qo4%J-6J|PIO1o;tjO~cIfEY39go*=VETI4)UFruUP>@eRMpYm+$wYAZA153J zQ68Y9P`kb`4hC^JXtBuO$5_Cexy1MNO$a}S8~)f(29*80gOl@$e3ZPB%7Ci=QO50|lc{WwP*YO>p+KnrPoJFg4C^wm& z>1?e!PGYhs9iNd*a)v|^b}`2uif~e+C!f%hr{n9cnt~J)ps8v}Bzuq=P^h1QyW>nJ$DZ!KnMq^CU%F8{Kkmn(Oy8tNUK*C! z%o9_jCgbXdUL~K6P=z>$tv-4HB8101nj_+Sy(9bi^ zAUdjd7VC+j8cPYtxVL)#zG+T9-;!6)YtxZBXGX*xYzZ;2-ZQO{GU!W)Bti1miB)V}FPv zA`34a87YJft?w!%&46O>`$WT>M8Y2*O{6EZBu}#x=#6*0Xo4|7RWd%RYhgUw&OL)& z@@o^A+qP~eS~nqREn{w_v(JFiw@58Ubluq$%uRZHR6aj;v<}W4j{iZ-J&~^3W}fj8 z*;=b5mrj|KpEyFa!-cFZ(P(q_KO?lwCM2jcDpQlNxrW-{9JHV99z>Gw!5_$?fLz(z2QD?^PuyTssKVnAyqA5ZQSoKTYaD z;sa$7@#aoye`9caU#a)K?vB2w_r0DI-fMq5f>(#foCClC4e#7=pH|h9735A#YJX)g z@n;ms@CV&RXRkE^k$2Rh^xF;ZT#H;dw@lC|oiMX~*MZ4l{8lB8;CD!}95%q*3*VHbJp79VvNqie=s14)~x6RM8&Tee>Xn%zIK1_2MfH;XL6$b`b3FBL0<^k zjs*{N16j8PNn&uaQEP+KP4gbUY9({9}DJPz$mXv9$lC({@M1Bo%Qn+ z@1k|s3p82vad8W5??4*HK0^_xgO@UC4xAg2u1Fejx?ar%=oFPj%U;HUHz1Af+ z`(sO)k801Ou0<8VPsOTL5v%>}^yM&eKRa@?Za9U%E<15k6c>93^(p@wQI z2zBzCXOEsVs3duH`pKPZySE-0c{2STv8U_bOF!AYb#VQYnV}B}QuXhl_1in>ba??^ zTp1R2I^o54?-h1hJ_o4rW3EQxk>g6qYuxF8kUl`yG6*gw!n?{RHf;1dUS=T*eQ&UC ziE3qEIK_>GW~2F+U^;HsRD?nVceM@{G?O(tTi+AR{|2|W3#!Qjs8BF=iW*HNuT;wSLrnlR@L*vz# zAv~w5?^I^E#&R+(a-VX#sD(S{U==2kd~4mY4-;(p7$(z-n87bLZ1y|No?I0iQ73M3 zLool8&9KVP$}#*>W4+>&yUl+v1ABTsu9m&;-D+e1Kx*BPLk+ zcJ8<*_~`P#^=0pb$mHpP_$k%9Ph}xOWRq5a@G9S~Jj&3VDZI>65_i@7XX@u&FwDri zVE8Z?Fw9Kd5qN_$F_v!jr^)ku5~cPAS;GGU3-MG}lNWzU@qg+-M0ZrWuXC>Y1w)cP@|H>}&lggD;$HJcu)g&kTn8j#!?y&h_<}T?$_n?PeV|F#ovX6h6a1o3X!tG!M|VJ` z%~cT&={A-Pe*t!GGI7t_Um4g+{p)qKwK4sgbn^IA7_uobBmiPzECIod-NNK^>2>KB zS)M8A^{S>JPbY@FY$w%oDp)PZ{V@+N{2R4znT=tNm}4*Xgl4A?2d^Vz-Q0LnU^!N! z`OBT-_*G-`yi?a-dq`?s@@fvw^I&RC@@nqlBomkemPhNDjjO#=*Iaurk3Y+k79LOS zh5x0RuH=<`mOK}$i!-`54`k1~^*8#cHg^Z@R~far2MX)4KCaDm7w*FvYg-rVo4U^2 zPhGqEOS8!7{rUHB-I|=HP0dSpj6b7{&%apXb;!((a^pi%40gC#JRIsaNw~JV8&4mhLI(?Q)m7c7#PY)p{L&0L#cUUPZ6>YT$WPx>2#q zD9_aZP6Rdi8tmQ4lt*1&&8u8_P3dcOxCe4ad-RK9mtRyY{7$OAEV%y+5u&H$utw?vo0*;5U#t7S zm@^j_j~A4QN{V1CiR(u%p=tPwG*5r=OvP#Gp5Z%V#B%TldJ~>YJ=*Md&Mjpx0lr>Z zodl}K4OAMv6a$gUSl=e2f4nP~7>Gjw@|Gm&%?8?A!#ZAPorNYsj+@g%tskR;>34i2 zjeiZ~k_-T;kJA6RQe1f#)X;C9-(%u0CHHL<{nK~p#zgLZhgVi| zy0InqKw;`y;z9-j%JIRnsX$Et%&T1no=c;cZ0L0k|H7RwMcSr)x@+c*(?*r-Dnudc ziI(#bI)-SaUE7ya($uP+XpL@rqP6Z)r^~A7NdBKeoABltjp|WeN6`~)(e2Eh=p_5S zsIQ2HlyIl@kWL3}6?q+3@(2fqzRp?9KlET5%{1e{`>QC(`AZWdJGwfPtF&V3jN(H+ zXDN}OFU8~@nYG1@Xl#;V7Ji6D#bkK%^xs6!${ESi+c(}aq?ePn3n!eO{3<6Ml2^3v zw)ns37ckI1t%&~59q&MOxQIymM+3auy780SzG=gdH49tL2w9reXTY;+z6TR=qL)a#z*EPCUKGT*sqbm1g*nas}jn;KZ{uzh>%H2@S6K;P>RJ0#* zSdZJGxz0R2K!Gw;qh)bZ!63i|%1n^VDtCIxBV@6is5QIo8rf~H)z5162;_J}J6}x8 ziXeW1Sho2ritRY^>&HpWuU^fs^~@>xUco)f4NSK5NBxnl@;eh9xI=gjPb{)UIe>}O z*D@7Un9Qz0{W|uS>bqz<)^0PPS_CGIQz%oYK(+wjRLvuf6VA|a!mFxh>tNyBW~_|b z=wYa0F3i&nL1&y*S&`s+f{rf_fEV7%K3wp?SCLcF8`yUf7h4kd5*ve=)GpUi%=A`A zAzhVU{TL|fPb`!Eocs_*eyRMvizl_eI+(~99HFC~?H^!n^cND|eV0t;EV3O%K8a@7 zf!||E_|aw-y!EgEXjZy|gYDqWkU3vVWRAUOd}xr4cEi5 z91g#&3nV^cyY~g?wTybngkNa7u-e%QZ}%==ll+wC#mOu+YfY17;c&G6T(;hQaydQE zXaB-~wXTh)H*<(L_8=`S0bOge*~i7&-Z%C_j8NM*MsmL9m3rsZ0JzH!?|A&Qi0f#w ziB2XVEY?9Yx&ozNLyS;~OEP8Z3Twq`Fh~Sd2Ikz%pXpWcBd3B<=U?hT6N1gc2 zdaZR-_DvqkpC9osXgEPgra_cClLz^?N?IZ&(s|3{4Z(tc5gn+U$ec~^U2=rT^(gGm6MtY|KoOP-{GZ_V zgoG;t5|w#1Y{oJ*9lRjU&DCHg6QnCUu>BP#$4%7AS4^B50DRr4t+iG|49e5us);NQ zu24nGK?U3=A=90lRs3_oms4~dO9~~_QqWX{2Jh7FImaq`NO_5u`Yo@+NFp6u?X$QH zXl>APw}*7ywV*cpO+!aF9_owXK=O+kf6;;SRJ3=~*C=KmL}<}DgMJ*i=Wd$pLL*>^ce*uR2eaS6+#Ax+(*1%5WepJ9;RTn(>Sv4Tago5F| z4A8>@M6wr>2>mlFRKRwY@)nLAshMsc80y{Kj1$bLg4eQ+ATn^W^W^20s?7d^mOx+2 zC)c?ZgrGM+W4RK|=V^sjA3k7}B!NG4u&og)IdvjjJmc|f$6UK9LsC) zxu0}_Q5)3^9GEtl>(XuKN`(x=l%ev_#SZhWePv6YB$__L+#3cT{kV&fxUekuM2P0G zNzv2}i`39MQUb&sRjrr>+8`t=#mCd;;4?+|!~W!q_Kh1Bj+4t{Zx>Fna#IObc!18M8x)i;Pq16@Fx*`}F8PA0Ge@1&svpHym#q0B7% zYzDu3Yv___mlWV{^o3Yb?6l^dgY*}0<{7pBphV7XdhlQx*r9QJmdR2octhH1tDx$jq6mBh3wgck|6E)5S<8KIJplTnA38{<5I4wi|GnfV?^3pHr3?Zd)vP z_edyOgmgP*?cg7leSpII`8BgHzn*SpMxHt1-s;<^fs2mF;P(u#}UX$K?)fdXA>))0VfRdNA8Tfsi2i8@8C8@Z-VSKh|| zt6>hT!bZ)#zE0JS>RQK}3&^b0Y>m|1;H6K5XpDG|y^7(Zs9e1IDpLs?8c)lk@vJ-= z%j2s`sWLPkWuJ{SG!}Kl{BJ#@ zRUTwm1@}9Whgms?WuIe!_BEvGAD=oaN#nCIx2iBcjp-h@Uosh|y0Q|xT|)5^pdK@((!n0QlGRh=E zqML+nN~|8HzHa3GM{jC$(-z)L)y=fA!1rzyx|qE-Q*=x zrMMAht3jnr)1c0hGTs%*^ivrf*Q!GZhg9%j^=uwBXWZ6F@RG@~Y&|4ZEn0THW$@g# z3y6@azQNukjifEI_leAHri}+VZmX7kiQ&i8wM4H;@62xnP{<>hHs2B( z-4myW4^l@;o4zyHQnAmDL=_e6wIe}4tKST3TBf7=;V|y>od|<0H*KngJ^=C@-$F;!P$I@M1yTY$)%rs(U z-qLmPOuQU)9vI_0?DiTPHiGAk-h`FfmU4SiBAUfR*AljMD%bfx(C)-#q)-9P|2D(i zdh(8OlC>{%QqVcfv|70~RBpy&9P}!Tm`Q%TmU2SbMp^c7l7*w3JS9KEHQA#yNY1_i z`f)qC_o462ek&mylbWBiBXbVRb5ic;=}qIUf~~<@w~8Hdh*JX(<)!48SW9g7k4}zY z=rz)f>5a15lm^A9^WPnC8{E{-=twy3fLR`dxSPa_NARF{1Q;1}12eV)A+EfgsCY@O_h_u%JXi#P>7tbaltK4Hu zF1B%Qxy#*og-p0WeKrB(EdHi@>+$tH>0R*?g68R6O~CfNOlfJ8UuSzn(*8F!Z1+;{ z((hRMy`9g+aMu}&ycfsn;thPDKFLEK4UW~nH#RfI4oLG5>%Um~{aE*A+{wO=JqAHe za)-EmP!;xT3QM%_?wjbvS9hR5jlZ8M9ZUmoE-Rali8%0g4QTD1h)vf~O+B$P8iIKk zAIgFG>h>!uICFCJ#59W#p*AzY!3E0-J8dG*cHH_48rdEh7R*QW~` z;cdk@;5Pb-GKrFIVu}3Ad?U$S-K}>O?H; z;@*YBYd+ojm*(lXX$Mv~e*a|l38Ns)zr=L-8BMszO3rmXDBQMjM4mG!q2em{uP>MX z-Z2XzeT1QI1`#)CorY^iLwfy-a_9Al1p79|aAiNu3~Q!Tq1r@_>rJQ3{JlD>XXh1W z1+zh141T@aw=la0&G;j#0g1^+0)I4osES6}zNt-!M5clX@qgv5mO1p+@%8xkiJ#DA z1HBobC8pzyku@_@!6B{#<-Yb}x1Xx9cn8P8n~y}uOur)^w(soY!}i(kw<_wNZGQqE zww?Cb4{RI`Pz}>*>?Rd_q$`+l@NqUR7xpu%YX~dh!-U3AjYB-Ni!`?;c)s&t24M=k z$Q$o?=Gg^;l2TrcY1Qwg!6Kwop&Bf^5u%LFM;u zjO6iOO1~OCUslIY@HG{ppzJGyn=Yb?%%B(F!8D9bfU1~sLR)#L!)eHtVE-FU=~Bk| zjEDYnBY}bGf%HRF!ATHIX>w{T9ud3d(hB~eOl5BfUOB1A!ZtQ#AO5w5krw|-??e7| zFzlY=Tg6anbu93&5<8}eZ`BG~B}Q%|uZ;;+wvd^X496>RPkDZp1t!nJqRPY4hOk@UN$-&HM7NEt(fo#aa|IZeGVKW6%oB%qNcwnVC{6#{EEw^)BJek&K5~?VjYB-jF#CdO32- zk_8hv87A^3YvV-ZaCEap^4rJ%k(f>aCZ}`FGnL{mikQl!qBj2=Q>kG9nr`&nln4C` zxQe#y)FJ9s>^JJog)>lF_`c2L@=xp*H#n!;_z?`UbE*Z z!y_AmMFuSdhb{KTgh3d}jdqtGgMhoerG_@1QG$yDZAD2Ow-H#FPjtG3V_SoB@w}KH zfn=?AeK=~9T_AAf?YVDUsrj)Fe+Q3N=JX2N<{a8Dhd%4wbhbfaYw*r7l0&UTBT8SO zRMnNOB2icmH9=?98OX$a3S_Y0fUGNoy+xTT;&=WoKiH4^ny_MHRiH*Ec^&+f281Gq z2{TgF8Vv3#xXZo@FWBE6^$S;6mFnD_ujG4{z`x0qwC2DgfVO*R zOtM2DT+$~}mzqIcm9AzrjyuiI>{pBnZQ}{;-5PWq?I30|AloA_brx#;g}pQl4JO$8 z)b~Sji_eQq@oF|Y70TnLyJls(aZ7^QOf~M~j-7O~kAon){<3V@k@(2`S(+s(Sg^($J%qT`Qz7V8shB8+= zb9aso>H#~h@S9|jrA4&h8XgErWTFs!+P9rm(t4oulU>0;wDb!HxO6G$*h2bnebg4s zKcX@Bzg{X$^>0Y(GekN)95*VK9_Wvo8cUZ}`{OQ4AK;IhhA&JVYC>;HAraGl`nMUY z-5XdXIF5~)FV3YUGGg~qFP9=SW7O`Y9vf__Ay|F!jDw4qB!vxhjlvy?ITkd);m-8F~~FW7n!YuM^7lAf{W?f?!y_DayX7}j zrD6^+igiCtZ}O$ckJjvn#@f7&|KxrD{BQEd)%b}SgfY0Z*=(HianLk|-pea!>ESqA;lvM0NUzuzq0+*z$Pw>kY_br)C6Dto!;kL1%_ zs8`ALdQ{SO)kwt^%6&CT0(SvU02x#Yjx0{(jqwe3;ylc&2k+s;J8VcpOaoq zuj@8ABWyh)S?^7GO|I}4QUPuJSXQU-48PK=5P)X3kNL)dUPptlAjXgB^&Of~P&sl& z?$IWHKy&)J|9(^u<_F4rN3eG-bM4r>eW?SeB(`JhRcx<*5Mteh71@bGrXAy|aW3*j zWoWx@Mv0fch-8z04*YD49q6vsuNs~_sXc3F(wj#SI(Aic%if4`<((i3Vyj>Ba1~I~ zE*#K8Cm3tlFW%5%N^$LudCM-W!(z;<*~b3T3t-OevmhG6n?0~(j%MK*$DTA2RJawDbp%bLux66&>UQlKef2?=k&@Z*USGC}?z`N}|W|Q_cco4b; z)xjUA%O)NwI7knH7(Vb8*H9u8F#qxVRkZ4<++Re0L^a{~@pQD7Z@gs_&ZgDEfT@mZ zl~!lv9A=R)ueQ zRINu`Pt;WtvPOw8T^FW<(xYJqp@K5nxoov&;m~UEEk8vaNVD^hFU*<%WXX*Ye=+93 zWa*fy)VDWohfqm!E(BCl*haW-YRWcj}|p9pI&Ip<7q4!p|QARND^q+^c%Bxu|8w(7yjC;tF zYw=y;8eD!7g-J--RYZcyy&5q7GHf=$iWh|ywpzDLG9OBCHS+Ky-Nja}*<*1gQ>-m3 zil1dVvm3X}Vn)(f$3bdl2vPFPCVTKb6GqYglAZ~dxyv+nnW_uS5WhM_{4Mi*)>zhd z#f**YJ0cFAjmWdemK<-{1)7K2We>$T9Jzotx2p*LghER!MH(&n5&qewe5%*x0EUG} zuc6-V(YumGV72I=5#f9wj^e%VEw5U;(D}ghI^Kk-qKS2UztVlq z2Nxu|HXndP==S#`$)gprTZrOZtDHg4m*F5yZ!VzuyLqyS zH{5C9_7>+LUV?~n0|wQR;OxW_u1(V)A#$w*h`Bn?M@16LyroCYZ2tgiega5A3QqI) zE(KxFuzb)`@!7gs6H@EEj;{%Vh$?$5E7u-EE3H#rhr&P3yzzs(Xz;~ltP&48zQXI+ z&UiL9yyY$W4URAy8~#SAIhF3Ep688g$rNfORb@4#CUV#R{b<@2%S^_8#&xPOy#<%J z&6zRh8=RMz`Q}k4%SkQr& z@S`)Nko!0}n9^?MA)YX!9iG@kF-WFX;Rw_uQ>Kg>xXVhr*JLkwk5lPZhGj?C(TuV0 zwMPKHNI23TNpXC-BYC?$Z99wPlJF^D`=y>DEs^|{lA2<7SWX@X5#8RMzs2F__q!5! zmzfI#_YJ%8$E`A5xNbo5t9Tf;EzW(l{-j1b;+wyi*%TT{}o`M#Tr-X~R*!j={^5qx{@v zoUID)mSO#JJ1A?z(>4FlFez3@c$YqamKbUAQr8{?N;v0*#O|BL9c{>CFU=^Y>4otU z0`s~NtAH=KR#@BgXsSJOU^ujKY7ym5O<{V7c&E;_1f23EBy5zO$;sHM()B!Os{k@| za!|1G%)zp9){<5v>lG1u0d&XMCXO-ghVjUj!o&fDVq!#~pEp}I`ek%BB#_VZnPAo> z*mj%?%f|ciY@>L$PDiu~3r=bbm0PnnKu=!Wq zF4G=)H?Kufqe-RN(UvJifg!C)evxhuVda?F>7_RCwlQ->0dC0~HG`Irm#}ey+R|Yc zdAD2zbPa@eD?9!Re`kdjA;t=-!#~IUCaD(2CHYILp}(#xe^#;CYl_+<1TsVs-V~M; zwV;X`^J@mfUk2XsM9YDsGX0UP2%oYHa3?1*V5ioJs{D&ULs6|4Tu;=Mwaerll3F8b z>?4rz`-l&uLlFhJgBxY23o~d*6vq^-KUj-HxcX_y5VQz@Pi(=m)m)36mpax;piH8vYAr+68P#Zr70ZtXMJaEwu2QROWSt92 z=$3s{WUKkc!15Rg0NKk$e?pjska%C5!c9)oOX*iEp(5wOXa#!6a)*Un_oc` z$({tJhWnv=(}lN!?ssfFvS;G?vPge@uj8T8&jok?L^?0WW%{uh*@wxczS_+bB1;wtad^>U(C09nf($k9ewY|hr8&u z;CVkeoBiu*V*Ug}h#QL$qA~qO0U_ceTyRi_5sn4KKa~|DM03bcM}0-e5c1K*_>h?H zICSs(%f)gJjFm0C%?vX7xkATj(X~a@&6F2M1DD{+n6_}yAIV81b*H%(b#JHITbtz5 z!nYvC3_ay~g|0%3S(eSEXNT$FxC0F_=&l>`evU1V1LrXa;+OKXXh&4)tr{?+ZJxAS z$B~lLOTpe^1i0DXb{!`JIwE?>fD7CSzX>K9AN#~(Mh}LBdq2EX{;fCVMQ>TG4mq=T zAIeSZZk5`~v{c8=In1IM`=e^22N&6e;@+IFbB% zCSDd!HggVsk|R;?2dgm0b{durfjV2x4{d84Rm5v`{5ykG;6aRY6np8oQ8G`QmQC3( z#s%=b=9@g&y7~4LsgOkETiJn?bNNLTUb>ei>Y;|&|8ywNW*@Mp4wMct)>4K;j2=>d z7cqXLmmy*_`(MOKw+^ESDbiYGLKva+^_GnnQmo$}Qv9fZ6eoV^P(zAW2Ri!Q>|YUW za7j*kc^SD~_DNJ) z6vYaQm-+Nq!7_wAcZv8g?h2aTYLgl z^nW{lwFWV_(d8Tt)4;}$8@3JdGR^s)ci}gb3BSG=2R|Xhjo`L@RPgELO{h&;vgeZ< zHy89K{j%>c&T)3KV<}5Nk47^wrfNYwYSFSW5Sa^5GN^Rz)MF#$AnLvVsHQX)D&=r5 zMW*^b{E9Z@Zn!6rekS`l8aT5vrE>@9nTNp^d&|z#7u}(96@{YQ#yUFF_CC6f4muBN zK&kl19g~@xt>GbO4P*C<80JZ59?ZG3!}T=O<4)WAbGBq!k3ltmn){yWyC~ag(3;$- zZL~FB=Gm=6#qnja^jc|kfx-N{C~6O)$PQnw7ZopF1du(Y0V$MpnN#pWyY{Q<9YfRk zXi>EiQuPipti~k#l9;mLA`dJqn&F zo_-r9Czk$;o!Zk0REH}G|4v&Ca;N9%MF{uvG|G_v&elV{WsRrVXCbV6!3i|y^N*9t zJeFQB_(p**YVxU1@s6PE4I370igQ+hQw!-Qvd4iqfcZ5#k_YplGybtYeLq0vIP1_JwU2!94`; z6`=DNaQ#V$AEi1>{NHu2A>TbZ!T9rQZL|*EaE#(N&~-ZW-*@2zDPyK|!E)slHn3q5 z;87)@L6=mYy$jdIxTm=UhrOD4QiRL3ifKV!I0-EX+`$7SKbLF{MGM5qN+sJ-$_F8b zfSL=>d8^Q6f3N$5C)#&Jvg^o(eTJP^|G?;~e zzY7L?HS2BdmF$r4&n`3bm>2D49IVo;Q4=$*l}!!1^XIFhlk^?B?j`i)>`cWMo70aX zJlw%up^J3?ZtnFLLW1(>*KPI@LB4q^K1kxJ6IQ!OD-Wtl0Jf5p_}52th5Hr@yIN`f zlK}p!;MO6dzlvt#G!0TgvV4%ciT=E3UV_kA(@bOsFSU`hv!}R_z4_M? z8BFv5kzB18%LKMJ|623FFJa`goI#pp2zM1Ec{T-zG$#cQN21%#(qK-5hTTB#+jy>b z04T*p*A86;84*(bDc$LkCBYfH4L0WV#FKwhXi# zD&y~zqm{10U~xtgVY%&Wv&r3efo*O_wYhB+q8#3Pa>9171IXVdNZb-}eQwjN$Tnz> zNB&bT9c&E87CwkaUdQ?_8pEZp_OaiP7U9&u>$n`SdEcJGuMQ){)4Pm)gM`LdrfX() zLVs(=R3&T13`thkuXDTBA9;&)ikQqU-+b+)Kb_ksI2c>_bnCM;bo^-{D`-n%Z*IBX z7lY(s3YjS7m=M_vSBU?IWouV+dQCG5H949pjKE>9$%K^KMn6GJbG*(l60J43^ycJ9 zYgNquN-3(&%9#JnvW~vi@|gdPq4-2CYdhx(Y+IvD#PSQLX176$96zvQ+!c{l;>qVa z^Kyv%w(LFbc`@7p->SEIy_CGo?ieSrTnZWO3{S4jeuv^ks(OA4bZdIEH*)VB7;u+s zP&>l)EFp+Bre1UV!Q)R0-5faXfem5X560NXTl`s-$)0FD{XWocVPSjFzO8>P_agaN z$lkSu`OvHW(GqrU9| zbqzOdKMkVy@5zRy+R;SDxQ)N&gN-t4%QX484h^s6;k6>XR)yE<@LCgIYjwpra9v4o z$R=7)t;`dJUd0F*P50V0w*A&DZ=lrsfBQ z{e}e1;-tquMazo4^_9f*31;4($jHrS!}8>qM2}o(_vuKz|J5>oPFeeeiU?~^dO~@o zG#cq@*fwuS`|hZB%R4kk=jad2i_kjV?~cqn$I+iPcdv-B${5;0s~6f}|DHW_2k|e~ zypVn6l0il1sQ+J_!)Ii*agy!%%ZCu@HtM7y*V}n~%%_UZ$VdwF+W!t%Sckmy-K|mFdg!P=&c_zg9vfvA)Y~f@E-T&~)NYA)YEal4*X-o?d zSwnjo@4oAGusdNb$vX{5kBjz&sinAzENlM&%DJ2SSo&q@)4hc{NE&C9BYnY<$NmoEhmV#J<)p`4f_d>E*8Wjs zW-R@wYa3#j#@&Ca5(Z?FC8hU+rA79oY}QRG-97Wh_m`A-@wI$VF&Ok8kZ9P}`dVC} zl=^~;k3(SSz(?dN=MmsWB%;0rplG>w^LaEPO@OO0#{{da^f_*HLRo=fuO^Mxj!=&9yN|Hm<>uJoG3BmBH<06?0`)Esi zatZ!=8-jT!CvMNo>ubuy`^vJVY-_W7p9~|ZC%q2_H zkK`65GB;FLiAydIzIG>5g@vt3=W?p3o}Rs!9N0dhO{D>NoS+{qDtsJNMzf4xH_f&N z-&mn(wl!#ahH19HdDvnZHUu@wfaqTt97jqZJVH(6RO zeOF&^wic!~7_#pRT3nvJO)t01)mNAW?fKz$n5KjxBdgXso_4h^;i?ArzVmN-nae>e zxCX&*e%+UQ+EJW6@Xt<#jl!X2)RxE@po%}gRBQIdBsnei=>@Fe{g4Aihk^jjJ}1W# zLyh(PP#`TFsQiDsn6C~`cQwfcw*Q$#!w1RF8%Lpyzkj@zKi9prqW-z|CnGtp-@Y1I zGDe+)>gU>vsc1))owfI#oHSUn} zan_0nGRU`Pa1q{1J^4+_*Y$jB2OsUf85e}jIGJqNySk%nHr4hwSE?=dhTy}s`^*fJ z9~=EEU_M`yyu0vT5MO;65g$FX^qLc;_rtczTRIZY2+ZtY^=Ez$fUb#Jz@U&m)bGgQ z4g%1NE8Y2Ps4zEG!JA64WInW2Q({Gqz&MU^eVP~Y#l(7)KOULbG5(4Ht*F5ofn*n) z2XvyQO~~E8GQk>e?Nno6ZR&PJ6GK~{mR~+KsjqXkNs-B7LW6pnrOgq?UkAC@3vGa4i`dva z$+yBw$<%q@mOTBC>*bwK_D>eCqm??`!J+~`+JlB14ViqA74YM^Upf4!3m#Vr{P^jc zd*R2uybylm<(c*^RSEypgtOqLammv5ua&gfyka^tpOT2s`_83PXr|`UAT@LU^XR~^ zC!3zQ3yJuO0ZC@+xN>;|lbN9Jyno5{7dVL=Tk!t1Zj#QEUW0-Ke9@1>0QvfnONc$O;!GOiKd!75vx`&bq(|^FI70ayFMzkyA-XT6#$Zhv`=ZVzC+3DxAy;PQ$;%J&N|5{+Va0UT=U7P z;kt;N0zy_!fvo)xf4qvWf+>GS`k%>?9J4Opo9f~zsJ?iqxs<Q8kw-SJWr$+{;7a)5dvqEK-UF) zVBI>t(4L3?8n*LQ#ywl7M&+sKAAauU#*Le8Zq)Y${~A8|x;^2j;EG@ok8+@@qpI`6 z4Cj);@f*?~ua}Uq(c&Y_sK#?Z-dTFmIZM|T=1&cgko7p^D*tC2K>RyI4MV{%k*=uj z>kUcH{+P9ue{wMS$$#C2M!Ps>dh#-gv*EE_kKkzewr7SRXSH$@^RP7cehB9XxiIj)Sy5nLQWSqCb-J4xz&9Co8dFg4 zM@YChYOTjBj9H^r8n=jSq$u2po+JW%?&BXqQ-~O!vKY;@^RkCN?91jD=5XC4mR2e8 zi_FTY1#@eQCw8==haIlyVYmubJh9fg0zJ)F;{t}Y{!nx2wkDjdr(e&0++fm1+i32f zR9W*Eh2L}*s- z8R-$b-Wm{V|0|a8?1+52A8v(q%ndvAJ>F$?Vl0tF&hkbga0%=<}jAr{b&SM-6!nd5d3U46TBT? z%LN79mY=z*AN;GUIyQx~Q+Ob21Wnm?dAf-IK@gZi{mxOcW}<&VDVuY{hU4WhmYFnE z+$`)f?na)5i}g}TWCX=9Wap`$UL(@Y$GH(A#MK%we>|tkmiCO##7p`b8&=Ml+ki)2 z9CH4Vm*m1FQgX;18IG}Ur}4V*I8GeX_H$JlaiiNuxG&{AsV|;s9)-WFHFHjo>{)?E z63=nL4>wEuM9QylUQH#3P9!FnTHSFes47748T8|S~=>&E%MRW{DW@@3dw zK^&-NZ!uJj?h9l=^JazYD+bxj?Av{Ukj)FgX5ce$NkYv&W`)_jR&V(-#!hq|;M%w? z4=&6@9i0RvXtNdp25+x7@i9BkxXr@P7-{JOt)9Y=tVWp4&ayff2-7cmDb37c9ix4c zy_=_obL49=S@63&p(VjnbU{T^Presf3ppq`Kr7XzAG?`w&#T3g(DpZNUsFC(Sen+` z{$^A9>7otJ_AOJ}cMrxNDx+zO?Y|q!oWp5Z`MU7Gg7wtciJxhl=%s4yjrcd>YVOUy z!Mkk^jy^|xTWe)=8Xp@y!9fiLm#vYmyrWi|^5z)*f``SwF4IqMaKb8?f#lh;6MD3A zw(~}OoLD1skm@86*ytkGs4Ll!CnTU?B8?lp>Bh(W9eQ%@Jr2*#T`7iveF2jav@~+I z{VJU;PF5$Hfou!ZW~%xB#B~rrK*mXT6O5zb39mzEp|L5*Hy7Cl1DcK&p5}gApzo|y z#64)NOf-ze9cUCm`(XyOpPpci{;nS6*8_Zr76P|VsY^!t7k1IV&k+k!>w5MgzH#yz zPjA128@%EgDC_&g5l6CJmc!_N@X0P)ysvkQcTc&~uS3~v+1Ac=Q~EFY72^G6;j;aR z^H&}tB$+MS<8@l8IR0okAKJ1l%PcH(^84Mac;$a@**;6l_75J(FWbiohIHXqe`MK~ z>+RT%9zv#mQK_!2tW0mPGVOG}Zmqwzo)c$5#-xSy{C^T36hb5sG`~JelCph;{Cb-Y z5PBIeP?2y(o?1(cNOowo`3h@qV-&E zpdDSc@>$Pc<_VloXYx?3=Vnc*_53a#=LhP1O2D1HE#)s1>dCLy;=i*|e!}%SWyuwA zxqteBBNXWk@Vy~p`zxO1US-urJKvN&y+3}X>HCZPDQ_=IYmwhOp5@;8|Is}>L3woH z(m&cPkJdyN-aQ&x&|k@_oAs){JqiD2?M@Ujz*~R`6NH-Qo68AAxkz$&!e6FrP|)PD zID6*&(hb1aK@-_0^jphv=0`_y7(80b&!8Uw!R!Mshz^JLB^D3iZ~gWqCM*;TOxm|VWS3fl z(_0(Us~Xd|O?x_)e!Ow`M~%bZ4W@K!#sAMRLr`Y7f7We$#Fg>j{vR#pb$CBL8Xqw$ z9{iGL@e$La@$}b*#nV?*_HSZ{${__@B`F{&DFA&802t*!DtHD{-aY`DYoXXVNPj_< z;M2Fs0HpqG(>h}DQ%rSZ(Nl<+XAm!eaH8uwBdaDoWG!yk<)wb5!ASolc>K-f5-*N& zLEeCx)PQW{Fcu*{3^7=}ijR@+UqA^}mP844@a}6~;><Ay|9O^KTr4Bz_cF1*>(9rqprBt5FJ`GbZCKSHx%OI~kkcx}$X<_iu7fr*BdSAW9R;@5-K zQRg&Uy!TQXlFRhNn=H-4Uk`qj&(i)n%wz4zxu+bs(5Lk!4~9mt!%Ud^3FY$-*lzVQ zsVhrbiJQpO%S@rM&oKkb`!@cw`6n}w3;%s(B)>4$JbT-3wWS;d)8^977ZRDdA`xY{qsToT z&Q)z)NUNa|{-_dI8UOaYbP&&lI&!>y6rXc-X$l`)Oa(|3~fnx1ayx_8lCyua&%l-yhfS1;4_6P+@@G=mzcI z6NM^=F!bHJzElHj1XK}WW);2KSp4dd37HuumIMj+-q>*a{`US%h@F|*+Tg^!vn=V) z5=$d5-tgIyproiC7yCGD!m0^);|^ZAt-pm;B3fY!ao*_@kLH@@gn!4V!5H%0Pe%5v z>etzxNWNJyf-C7O;%KevV@wC)8?>3bzD{+QMu;TnR$a97i39D^ahcjP?YVjdIP_(N zQ~R%n1@nbE6G2rmt}K0JGb``KrbJc1%;YGk{f`bOL;v<*cG7^IA;0D3kspm}KJcHd zhNejC=5n757LJv)AORMEZmN^?eWF3L>Rl zWL!}~Oo9Sb4anQL%{Mb_gY<%Kc={o38tgoVJ`$|D)legR4+fhqG5>y5@b7!S*Y}*n zw?^QHBR+hW*8OOFxb<<=@ZPYObzv`STraiqCknilMnGNNs7|l1M*G$!C`<<~d%5ahJv0sXLe)R`2B7QR&SQ*UxotbI&%BsqK8T;2zV ze59RU^rd*1TqSz>_;%tp@l|vB8p0>NmaH(9FdW|;76`cvLvfBk)|iNOzfOry#)kw8 z8xtB%8#Eh08%-Np8$-v}q29~&pzkQ~(Ys(n4f{j>y#xp%%zXyI7nyA=blc<+sh#iN zsbErX1SR)Ln!K{kVrwCi!)qVg^CzR9$3FdUu=B4ayPannIk?YAIg7MJYg#Rt$resIahrETIaSJ|?*iZUD?7azilttDro`#^!q8$}A zDvpgt4TzekXb{kDl0XLoMp=yF5{E?`T%vY62ndbcQC{0HaUDlz9Q;N{#%&x|6op`b z;D(4Biki4mO@qM=qoRF(zf<*gzujrn`Ii5^_xWF*hrC^T)v2m;PMtdEl<3Xj$P%iG z(;7&RXUOJ?#^Va+_2ggwkk7Bav|`Bj^Lkdo|LQ`E=RIijvO2uRpsX8(-QrO~?wg=npQ2q{%bbt5uV z;@Nk4r&d3PR$>Z~jf8#=2ch>Y+>?Dr5+qmINw1;+$E3q) z9w+{~&}C@j3b0d4m))q*Gmt$ob?J$z(Hh{G7+)oL2wmg?iJc-H@OBq*( zUurSqRxoZg@9*L38v;6B#d8Tmb}lQJ_w?A6m{z=5*@tf7Kwpk4vR;dPln((_q`kA} z8eBReS_Qs@9UagHcQ5coHI^jtoO4_FZ0Peah;89hS4`9Z_wfW%!cAKu<+`l!fwC_e z404iAS5hV8zuX7wbxM>><7rEu+9~Nt7BN5IurD07lmvx4^EHa#y`s zeHZH5a%?*u$MnV30c&2yVR9q%wfaEM5R_snl~r*rlbSP^(lOYnwR{RKt?vk`Gz=T_ zQf>mE_~Ee@*saE=AgJ-2UK*|T(%}9`JWVA2;nT;NQnDT1>+um2^zbZeYQ1hkT(ooP*KX@rZiL*4m`UUfc_ z(UB{#!tgZMD)#Kc>cz>#Yg~O^rd^K$iA@Xw&a2dH1~=Hp5xpKuH)2JWfvwR?DAu%? zYk=mcx5?7FW+oX=J#SvKT(1c;j`sq9BbIG3Cwq|R$?KztkF@W=n(es;%N0>K>8KyD zl6$Tb0Vv~D>Fif95-N8vxasTC*!^61mWqoB}iNi%x1Q!aNTFi@{x7QsoOsr0y z*VfzdGM_7LDcPmh=&kNmQ~3+9t9)6udLnKENcQV5!bceMEcn##1U|v8@X=A(@Y!Ql z3O=i$()hmtKBvyN;Zw<9fX|^XWx+@IM`0X+*vwTqm`NB&**qlH6^`Jy`*^ZhC~AN( z1YD*5h7}GoOtOI;$=3t1bFlWxi+PPMYY+EqktH_(RNWwe0>(n>PAQFG)+#=Z{?^nL01xzwL>Iu%;~5kTc&o^b z519rLRbSDncgK%J6gnM6rEF{0WQ{vcnX|0p$G?ED7AaE@v%49|?s_E5(N}VC42f+dp(y;q z{h9;*ZVfAGRbSw1Zzt#zS6NBnhpjiEt7M)mT7WqRx>@)EzA)RGgAe~fc`Z%UqVmX% zO*LRNh)guXtHW2_dMZhW&O+-qNkmQjN=;qJTm-XMjpA%85PL$%9SxAaR6{1MgiKzZ zT7-N1PgKw6Uxts|5XQ1eo%1xPPvf)tH5p9&k*^^f(_z?lsWF8saddysq_3iGCXO`F z@PWgz=sGkd$C^rX{8{s4(q}5ZPS;U_WY+OQe_aQ|ILBw!L6bPU4l2GqSmZ?vpi)UD zSey3|DvYIL;x9QPC(LV+5sA9=Ga;ZAfGQ6;u;jD2;u{!?RF?0Wx)8BdqSW-pZ9<0e z7zBy1C%O_)=BnrpTSCrewbhxEKTaQe=)$8OIqez!vo=LU-x*7GdYfbz*#viQXbsOZjwIY}n7ixa{EUD7$f8CeMi5MMy`7Od} zy5?!P5Vbnf&y-dw00UkAf~@p27zWOexhlRDbA@r$R1lYRsJd0$n5&>~jg`w)Myzox z5)-f5Ynd_q8S@-tWT_zLRV4^mcovU>Pf!Ke zDRl#*rzP^*)w+JIjyjO$7Q++Wf(44lb!?4DeeDFY0F^4AP^fSTBm|^n1;HNvNPZEv z6IfF!agq8!yTM-S|FoBSRZMfqIJpD62CqPEp(EmLNKVVcWlvPu_@zT_nJW&Y}=(w${o$j~c(EDctVN=)!Lg;aM_LLPLWBPafJs24FeoJD3&8O{)w&TC&_Qd{7 z%jaHC%jYP(N?pIr-?9dCK&4=;4_+nKjDt?gxX4FdDziXwa~$PaPC3?ZKn(oL@JGwB zv~?z&&{LXKnHFZ9?T=hdFI{}kMGLfsZ>B(t5644|gllt0I|W)ZAkdl(f!5X_3{(yF zKN!`^+yMI{gBEIiriEJDAk-oUQ$^ZEE`^rci}0o8_G0-yDE8#E+$O2wqv*}}0^4$| z>GKV)w-fj9yn^|2FWbQ--FQz?m{}X~qPiLeONnK1L<8hJ+tsUqh#8J_%x+XN;%Hcd zFikMWgIzii+cjMWPiw3QnRvaQL?*nQm*yLZ||Ad z45{9#tl?>9%7V)A@!tuiMISJ2R5-{jNAyHLL^Y7_K$f@?xI4w)aj`>vmu_>`s;_HMOgwaBt|HSb{<2?0D;PdSBK)}Yy!9$2zy+q--wVpyd`-`Zr18D_NQ2^J1 zq;J&RJDe0FHqr5ie{1Oq&e1q%IFsY9-Js_EP0BX#Up z_CxTsCrTNcmQHvC_r>>=S>bp9?!c8A6EFHJFfkQfxnG5jlV6|?wN2_Zzd*&L)OjH? zi*i2BGIW)2S2~M#kcLY^{lsk5u?yVLr^Rs|tC5lg)L*)NdwD7JR!2#}D+=N#Nu}sA z4*igTJb-LAx?Q}FM)hUS5!D08SR3k!k2uS~|A*ZRg+DG5`9!_hj6h_jo8gU)Z^hYRen2rptM+bp~1@1gV=w40PKHocI2P zK$9+irL%nhF6FPY%TuY5>PwiB%9Ef9J+AS+N3;RVDEvD%%Qlo9!bWTi5zmn z2x4JER@Mps-=KeUJkh(jf=LA-86hEDyN$b&BoYU;d@Xy24}Brr)V|mw1FUcJ2%}i;#s|0xtGSwMkpQ=6ca%3up3YQM`a$C1aRmOSjqI_nF>{f8C2L7+cin=UxS!4`xBB;eoCf)*sX0O2&!3JH*d3a#`iE@wTc1~Y#(ooj3o)SAx0w1c>$A{y zWQ4w=!lZC!x*Vv7B9F`i3f_*6V7ieJQ=|Q<+OuPX`*YCUMaX4lCq5H<%HW+!EUe8H z^dAE*gwnJ)pGq*jrym+;?|TT!AimP)L*5iQ)8$>0l-v}a(z4P+sdjbwa8`PKRyyl* z)~~rHX-p$ZT?wJpuvife^$keRi?b482J%swiwwf z;cz83rm!k@a)s60Ure7H`#~jaFJisRt+n62hMU9{pYQ8hYkjfe!#<^7SZh~&zH8~) z#y+CBr^9_q*TNAZp5Yvr9$(eazD2=O^r~X5yo@RiSkhHPdGY&X=-n#o9eUfr`h@?Y zDo^D*Jl~52B^6LGwY0PygRWOu`7meON@Gef5t17b6T`>e2fS!hjF{%F6QGGcJrCa6xLl$GK zFaQS)!TvdoG=@lhZE6qH2hRYOJq76Z=!Z}A}H$JIKSE3X#37`}?Hqy`$N z!|Ot1*hRg9Gr>?T!AeaAhOD~sU}6Hdx~!~=!vb-dAVph8xCxX%>xcq=mwP1uDu?Ad z^WBG%t$B1?V@=N&nR%;Ea<%#jnIZmLG-Thi^8hd~6cGsu_KANYSY2DYgB!#fhzMf| zCgFEn_x7tv-~dby0AAJ_h~2e>A9yf2EY5SWtT$VcgFI97rAAEBf@klLAyyt(?8YR< z_CD%#s>q&F7l`c{81kAYx=`x7ydW^-vVvf6u`9R)EKQAY+w{E0wW%_EMO4n$Yv{n6 zA4W7k0Ug%gZH#d1D4Imq2>i1}i z(kVQKX)i>a4#OB(3ciUJ@Y~@JPI9U1KYJM0pH!-k50E~$NbNyXtepw$td%|33c&7v zge?|2ZPg39yZe|B#$7r2&XzpH76+1dM zi-^tY)JQGX_bpm}6k-ZalK4Zn;a%ejB51 zWh;5DK3SnVdp7vPp%_*pCWkoOZNr~aRuv27sr6%l?P7;6WiD*v^g+DJz6;wfh#kZu zHldJceO+Mknm}Ve2%USw@+x?h_13rR4O)N8ep?xDDeqePR%2g{*1xp$+sg1-3$%V1 z;1Gbr>*#r?81Sxm3zFc9{y^!@YIh4nzDtJQ7L-1%iT>ycs#;NiQlpDRc=eJtjXzfK z^7i0wy1Kg9XD%`Mx9amh0QV82`l-zjfsb91Ge3;X`odGzI?oMnqS`?00ODCUoVG}| zhV{#Qhz{;4B^!_1)A-f$RDa1s!X2Gd>5=Qg;1!jqyie>D0gq6J`hb1y4`GGvvT1MbfkUs>230>Ugn2UQpc5Hr-wNF%ONV+F zS)kRt*Lll9iB{p^@>QOO&$y>!d;fDtyDR+ubQ2EocTiZ4%pK~3Dfh|w^Wg{O6v@->ONbK77QGMC{tjwvjT%T5wI>W5q<=gmVzovN;+V7GNZla5Y@VS;R^oI}IpkYza?olp*lj2OoYlhT?T^ei4Ec zH{i|+zd$kY@*J!Vp}&hD1rC&?7V*!aqAXX;Dv0Gu!>=`+d66rKQz(;s?QJLVsXXh;_&zIuF#)n zMVQM3V$rL2l4CrVN*Ru4>^e+he2kotq}}ZCglFvm_pcsg(ELtoc^x{F7w;}beD?T( zFyg%KMW!gz?fCJC{~lSJOuaZM#U~@&b;|%x2(F34Gai5?+;;1EdguP}K7Gc;R%%g? zA~NwIOqp7{d>tMj%UT zzGA?q$);_{G{7u%+oWNoT?6+EFw4R-0ZI@L?-6kLiU0k$i0Hhh!qr*n`WgeAiFWF# zJ6nN)25~Hy0~|tr#j8#)+YI`0H4u9cw_aaw=?(D%uQJbJZ02X`J1=wTIqT66V*Aq8>G;zNk2LaXHUF4djxf<_m12QgKv?wNApC8 z_H5B2CcJ*%Ymfz2p6hvX!njg+v%N>6OSi++qIq)gY4 zM{#ZhQw-R7m0>XqLuGLJi0d*0d<@`Qfql(yz!0D6JPf@C6bJ4}5M9e`{81-AG_n=- zq`gs41%4~%4B#;&JG>_2C)J(#4=}=9zybwWTu)^PH#O6I)cPe&@|(=k+wuPa9gOfXfE7m29d*LzS*?Iawv8 zFH{cL1ZTtpTH$wh;Hz+4Tg}Dfpqmr#iBmlQ(Qs1>|Kx*KU_P4I@5VnDh2?8|O>a|Y zUQ5ClD$`Rq9+DmF9g&tDlrDAU8-qA zHz(r{V#7AUe@;RCTi`jHU$#1guBh^}c?kqPPSzuZN?GXlD5THr-78%?1QfLZh0r%G zUXB+#@d@s3$k=Fv7^S-bOi!P$Dm;Ux0HrKKSmP(n7m&}||JZE4pbAB5;wKCGnE_8s z6m?YMZO){+Yscfs_*ZGfvk+n3+31OzfsLU5^*5p*y~c@!22BDMdIP@_ZwrG)eAG_V z10jIe(}360${oew<&R@#0EBO}acppx$lSvG;E@$pTy_+0)!Xz*f|?#A?S*3IN)i|U z4r?+` zT|bQ;bhJu9upnUU1|u_T^8B7#fT8fv?N0d0_RBOgu_PjVW$21hIJeP?2eVPpu7;XV z2XdpVqb{d(=1!>u^cj^fS3O&t$z>Ww?}(ch$k(jz`71fZ^nC|!6MPt)8YeGO@NShu zQ;$zY-+rDg?r*yP-8H)VCD?N4Hl0MIE&=-C5@06!uilum8uj&f|B&}w;WAuMMgcn@ zoQu#IT#Q^)bdh24xS{LdNf7jrUbFbpqnc9xt>{p5NL{Gqz{o`yTn6JysKzaqUaSP|#%(b(1SBpG~weeyz< zaOnNVy3|Rj-pE`D%A~#kd*szUN?gPqc^V#&XjoxmAUv1mK5D#jsqWRi^EsPnT2wii zpRh&K0C0V=IzF%t$)Nm1+Cu(us{*QF;Z}(Ep~5Yz<`w^;c6mW> z^Ba23W)`d0dn`j_UYwd@(jL010T{1Aes;#oPA6iaeEOXkj7Tls!)z3&3RJ9D&ge5V z^RfS5sSm(=KDvY^)+<4Z=;1P0qWUA)lz5T20K^mrT&o58>pzSKf_Q+D@A#sSrL_bX zGkcBtav~D`%->kAE$U+g(a*&7sjV$P9QL1)Eg%(?PlAU6*lt_G8KBtZQ#p`~@CjX_ z`vDw37D*!L)DaS{t;1&XME`}H+kJ!KKtl=r3Djfuw)?q9@hnq8Z2C-2fEQ(RoZR4i zvj%cpPxNjiS995*zqJ2>knT{Neyx*u={=^-7SdfLO=uyVCt8CL1a(Ko+3oasU3x<~ zKm0n@NN+~y-u#xm88c){Xdj{pu-{N?p2SgvUPhnky#*@;(&j+y5!R?8lZ2?#3asG* znP7nu;e~rWubR9W6AH^KZ(guxdXRvAF+(M&B0XfaeJ+jVC-;(a9j!0 zPzJoHCZD?memhXL8=ZGbWVCNARvR|e*P?py>0t{YJq`asV%9kLz59#^lBz9xpvJgd zBv~8c-+?5TzAzM0ZqIeR4;k{xmB%{zVr`aQSTCSM0rmDd5Q{brUg)f?1#woK#)F&> z%y&5^qd8c0t3#p&ZYYE8&9Yd2gV0H5XQ z^SIUW(rkUIu5X=sss zg3{ywcO8RV@fVPw=Xs3v84oN~jU)5@*2H{xvo0!{X4T~Lj{dL(HLw8#4uo_{vs|Q( zz&YyEM|iL(jE+zjLh}gv ziWKKI&VW9*3BbTO6JQOmVhQn;rT9Ahu=~FW{V%C%9M#8fozaK=KhEy|@#z1U*u`!* z{{Wo4V`5WfE_wl&x1s?)l7XX4>H6sUAkSqG9AwV}%|3YycFx0#2+KTZK6zuaJsFq> zSPiRp@0HV+dyI88cvT$!=^006A$Yl&fsi|X9U{p`b2y0`()d*`kNmjSsq$gp;eHP9 z5AjWuOMt25Aw0|(ZJbR#hTm(nxa&-Ndb-F|j@m+{1|TZhJp zN^!^R13K`zu~I?8N4eP}+^}I2E-%4WAaCfUz@Y}zA0m)exV9mIf@_=fd^79>36u}p zIXcg+%@S?K7Y7fUC-BNW{+~&g@u$<#ztU#BM6-)-Sp*_^ZuAx%!F7zYFVdcdZ@PSJ z7fN5@*b0+CBjcl)F5?V)H?``FO1pdH>z?K!>(j{RA6!D3rm4W%s!y)a=9h(t$v1U*Py|Nt3+^`|r%F zWdFtgaTE1h8+#16Oov}PhyF|&d+dj>NX)HW)pLl$&X*hDN%8Zh?r`c-==siCFO=7H zrI&Kta1c!~&xHOPCBI<*+W}%osIUQktFEuHZ;68wDq=GO)PSS}rML%JG7GLRv>On_ zRk(hvz>~BhRZfYU;R__$R3dpPZj*-jcoeJ9a%M}B5@FXtc%MFnQ%@JFojky$oK0bX z+4Hv(eqd+gTdc>o!7;x3PyIh?d?40FipmF1Y+8o80HI@;^jOl9WY^J=i z?+F#I&E3IcR5R-e3e#ss@vh?t39LJgZ{7Rc7R=M0x~v^#W6IZ3fC%Njel<>T@eUoq`0LC z{nv=u(f@7iKlOxgrMR5jfc2*JmHLlU&|7MPlPj=RxLRdW~r zk)yD|N`!~0&p6uBRT6g|qQVH!H3}^Y#8RY}H%Ab%`eqU$#UK!=< zbCut9&i0J<-+oX7MEd_C1H$jJ|I>4o|KqS!d9HI0cxPTw?8V~|*yyhu{%V9l^0{qx zNAP2NPW(|Oa(Z08fYMZ1uc#612Nr9u0QV&n7Y10O3XZARxj4b$-xt<}Pv zy3h0E_IMCsu4l;o#9=V5&ksPEkT!^dza6@n1wV=SBD)L^SayFz&IJ@XR`I4PJlXd#?DK7dPu{#P7l{t13J=1rjat zK)}uT_fxS)sP^@&Xc~Yt0$q(zPn8S(!zFwWZl5%*B)>(%SrH3i6d<0O#{wsexB*{D z6nT>YEfoV2tgs!cSXVdwzoR;ps&2pkYIVGY9lt%98~{$hwj`s@Gj*S1G(*GX5~cv$ zk>39~*Pru2YutoXa5k|5YUyQ|9*1A%382El?a({nui@jUv>C3B;YaxwnPe^Z<36eT zJ1GtH9IVyqp6lu87lwz}Q>D$k#^j3&w4uhm6F)`fN`ncSLV+Qb5bpg*sKp|h zrB20elGvqM&;zRRwuHeH4UO>71VbH042`r)fcBc|9zT|Z)kXo}3-@Y7cO#dyS8Lq5p`n6%{VLkM=iK2o)FJ=kHbp(XTHL=KVw7oO2k`Sbxli zcNRVgo@COF$H@qm%5#r0{GZrAb*OtU_(BvB4@8@ozF2LA+7mx3j+p8DcB9|*L4_59 zTjr|^1-Hg;6Io#xwQIpjoaQweuJBA(X|-2aUuX+2g83g9PkaS(aK~}KYsz^b;K)(m%y5WVVkc?f28cMP*1Mru*T( z#d=x2|KgX>A1}n)yFJ58DfP|^9mzEY&K*dHO$NBGYq+L?2XU{9g+1NLe*gf}JHMgU z0v11cYhfKUH;qVe^p3+4PrAq=`0=+de1rEmcsfoOA`6=-^Qau~t(Ie;3=ph?d9NtK z;&s$b_8pmkTXiPkrS+*g&EvBH$ioYvqvJ-iM~pA(+Z{4)C;<1t?}CaW=Ae}oA9@2l z;e+`jFAmn#J-_EOAKr@YykG^IFNU%PLNj~=*4dJ~*tm)cphoX&ovwA%aisE6k^1n4 z9drX5Xhi9Ng_~a(TeSLdY5|U z4*i}KFPi+2z*ORA{SCf0Laq%u2X8!p0<^3b71b$hFD$n8?|_ngz*qjr7T4%le!Cp*D)Y29NN#bL;A6@OTPrcDyu5_{ZVJTxWxcm06RkGh z>`)6BekvVa(hK4HI6HcOZ4f#rTS^?RiqSMS8;xXe=&gud8jx+hR`gN)16BoVV&hKcv%!g>RvLHAX_!vv_<4o`0Sjuqz4NWNvw&KhRo%MjIDapZk zCoZ)xPWZioy-htbf850n_yHich*!;@kdH#E=-R`qJ#h{2S4Z`LkJY_)Qsm=pQ1RcN zPt(c2%=4c0CN4=~v2J}uN^%AmH>|?9p=JhwEf0NM@kA%+`}LG7V;2CM6ksw6lON`& zPyEzcKZMSQIJbbrAN&mDy*S~Y3g^m;g&)LgnQ|64ZJ>qZ>C}R)EL~rAGf`OZkOlI^ z64kA-19Vf0_lXZ&N;lvY>|Mrr7Ly(2vcPVAj;yA7g^y4K;ZbjHMg;unljiduev&ftAAYvW5BW(3g8vXpu7Us5 zw+{eoHTI}KUmCjb8`A$f3ptyukz#!K4?lS+BtNYPdl9g1ruID&%It(z+4hpBH4?C6 zBl-cVrEHH#(5sYxQsTT-~I9b3lsEw*Ul3vx8VQmW)izXg8c z|1Y*w;CH%?7x?YN-;H~BoRrG_+vq4vkTWBH;K(&G{=|=Oc9^R@Jn_OSAz2^pq|xO?dv? zB+Q=_KKaqlQ8>RS@q9qMOCLS{6U zb_Zv*Rn0!0&f|v<>jC8>IFE}R4(=B3bzrUY*wN@UzA}P>VR1le_CysEW5uG&^d5dw ze_AB1;&bC*#Msr)et^}Cw5x$8G_vYyK6F&`W~!Q$%MDMoHzEypRpX@t+v@;ikm4{t z)s0gCL#RJ^Q9n1KSN-d(IK0+Dr9~VJ(9L4<{2gGU-x4Mbe~=4Q<2kM-k#poj$0)!B z($jNPj|+Mpim~x zgu5^C1cItne-uWas;!j2$moS6rF$AJUfzb*uel(~VPz=J}7nHl!p|mFRq*ZY>p>mP=fGj08c%R+gb5%F~jr2n8c@AGW zSt@nX%jZXM$U(-T#!E${LVz((w0V2V5g2O`=a-vVl8@0rh66E;XZd_CPF%A!-idF( zS_gKxyODo^fpb;I9wQ$*rg0e51(drAPeGuff-ytB4W6La<(Sw}n2Fr><>5-I*LA2` z$fv6!tKBFTf;x#19HDu-C&W&kOpUNxOZ15bgDsOy%ReQerrPl|7?~t(yRxAlMn?c7Q*&?D94jGa z^#vL=;oNuBM~I`lZ__OR+$W_hA@b_5IJYTEsDAQGIv?*vD$H15Q`MabSU6V%Q@E7) zbVBKNT4@*B9^ihD@!=S;Np!uFO$$WIgljjbT^&}sH8MLtFGh*=s+4(T0W005f@-{N z>VpZ;odaJeKBif{;A=(x9w=J$-Fc5yEN8b(>eUtOpg24TUIHXr5u2LNijB_zB7_Ia zwSsUIHS-uVs?z!dkGsF{WtC?j+?We{^(CI9+A{B0*O#7J^F6P}*I$)DKW`=IJg^tW zWOMfDU9srT=%Q*zOGnbFhOTChUY|_7D1DdyXUk(DkI>^O-AHmN!x5JKOYWNU&=k%X zKf%t=y$fd*m=%|!3qU?;h4>kOB<6h@qWv6ZrUJ)hBQzXu8&Cbxt{t~MQoS`$>m2|6 z@{Gwe@NOr((aFs7VJ&DRaA@0{W5Jfrfk3r%Piz+u<+M^Yd@)e=lhau65Oj^0`iF7Q z_Zsr4oG0a+2-0NC1}LV(lwGxovwAiHTr`d$?vK&qz9hd$z2(>Ad>EC1ROJ`tqA}bk zEz25kFkr1$+zhR*4P4G>q(!|kKttf3%Q7Kg<3mVSOOr6%#Q9OKXx#qo6-Cg3=~0Cm zFiFrIaUOVPKGPTb3B-Tw^VE>TBWJ)Gs`X-e*^~<&!6IVRSqpu~jTrF}VF4pRdc$m} z#(!LZA<1D3o0CKZOh8UW{C9nNML&AFjGYpdAqg6&C{OfZqRWPjWO4{p-Go=&*Gz~) zAVOJA?pmX!*0WJ7Ul?xK3su>2Wby!$)n!Mfq{tI(DKdpRA|L{XLm{$UxATlynP-GN zh@_AQcuWq==~!OBj>1iTCA4TD%W?Z%xbIJknd_7*-5zcsbp5)$m8{><9+Yyj+Y?Ea zGtx9SsM7TfT0~=XY@tnsAyRqOuBNBLCTR`U&-Hoa1Srg@Mq3_!6MgN*Zeg zM`I28ijl4 zy$S1c1@3#ay>W+n{wIY=D_G`5E|Br$>Db|wHHlly5?-bDI9xB`p7QNb?_5ICzKT>m z{V)4I$Il17&KR-M#rIQo$O3l<@TON|k2^;5uy9>7n@f@Y;E6(_vEb1<`cTX%A_=d8 zF}m??suFrxC6mxT3(0;X`3nv8cqd0;cjGVVLQKDkM3d75hlx zKpo|cwIumcM{Kl6cm>{s7Mi6?R)Ed$%YXcBA5zs7r-I0v!LWtY08T`1Jpce@%;_s# zRgKRUb+R~Y;P_QDmvx|MR2yw}>3T0|J!-n1Jun(AuxvXj>N@PBOe%ScuBqD)YlE+A zD(`jC;~!32N&lhjY%^mbE1}%L6&$||7_f;$COoPe2f>c>$Lb*+!4tJU!8vF#$BvjW zOz(*DvD^{#N3b=t-mZlZCD{2--Un%t<>D6cyWz|Djtc!Sk}D55TvBb|KEQgHcUH>5 z+c*=CMc7fkp+{EwHz@2(Z_TP)YaLf`{8GP_m3~#KJUKKs?wQAeTc$ix^0U8Wr=4B8 zSlHX zEL$%}oLDix%mls@OnF|mr_o81;E#Pz%7H)58u|Y#{Bi6lX^8I}f9y6k2mUB~=Ko;) zv2;wva&+L2(m(uX@W&Bl8h><$p3ncoAK12rnyCNy)PX;y8e}5)qt*lje>`9UfQKzcQ+!i~R#Kc>Mw*?$gyWb-3wd7OSP58^o6 zw%PWz03N)SCnUcpO!1U-sXisO*=p}D`ofM{K&oT}7dz z=ewPppymwL%XR!HG1B!kyl!e0cC$>*WWVM;blPpc8Hg+ugdIF45Yqw#vL`o6jY~;| zAxpQJ6a2K1yLx*hJg;TgHV=OJhm9`v>M0PRh%f=<-xH;sT}8~7U&+8!;%jrfr{u$K;|Qt_ zH2}S>0-J$TU1*)D$8kvzr@P&hd@UuXnEdyYoC0!6EvLBjcrB;E^lI@*>L_I76mvIl zkUV?_<(HOI>@7ndMuS+j;{eSRzdRYMpE(&hikU%DpF*UAmhorydKCJ0!U;L(+pLrS zTj<-;{}%qZ;lIKk7YmoE`9LQZk-;C2t4L#n4Ei=2rBnRzk)v|Zx7x>kj=t?Lt?!IK zo?}vp`?~VDCz;gT{BfR1C3fsu_IbuO_SgtE#mR0>T7b2I)r+`gHK@Qa%U>U(-zT=2 zuV2kC4=vRQWUumHqIdM~Z1cJ{IN5g@1^K;n_oUDn_m|G*umeQlf^GT`hkPqg+6ld%hOGObFP+} zfY7_SCLr|Aj{qic|H{k>yyIF#V{^ZI-oHWbLjLsXR>g1p61}^UPSXB!{PG!@FQ^14 z>~>?I;#od~6D-s#wQvNon)LC^D3YC%$BL1jU<}fpO1_c zu~R?<;4rI9&_X5fCuGcDv;xDDG!!Csd-x613&Z^0lBIzs0mw-Fkq(z<0evl0O>TqH z`-+ddC;IX{D2_`LZvT)D&w>Uf#~OrSL06>&Qp7^laxOysoivHe@0nK;fvnx@RKk2&7H4SLiN+$}zDgq!(}%JI0cq;uh7j{2I<(#gJ`R z*N-)xd#B;N{SdoU75UsXwsFdE{OE93yMC;K*32fkj5h~on+&YEur<&kZCmC z-kdv1lXz^FHhS>EgUKI!*H_>c?k;b}FrU*GF4P3o&)4FF&T4R@@&Q-^3QoC@x{AUs zHys!)9msG~U<0qQ?<$NK>r~*SW=;UC2+MbgJqTHm1L*5qtlh%EfDItWffYY=S8rU% zInZmWaS)^9^pTCL(t@hShniU{*YNPWQe1);I$LVYQJO>W+5^LG@**>YGYuT5I(r?P zhLBgCj$bBM+>OO!rY(LdJBMB%Q;B+IFU>CeWs+tW&`66aM9D;(W)y6B@C3QgFxp)+ z0mF*e1$afg}SQPmG1Cd zTI+uWaVm_@Jp;#ztv-Xu;II)dn6*1K#-k7?L;GW>2bUhD8DdRph|wl9!~z*&gC9W(+dXhZ&}UXJ zdvL)Z2Ih(4rpY<1PsBk?dRSh1A!wVH9+cM}R9`cw5vafnYA$_g)HrSS$J@i0h+)V+ z#st=_#{>?o49IkG@~mb|Rp1$nP3A4oa~*-{(<7o;|L&Mg$d1Q~QNJhJ0oq-+sK7Ze9|nfQ)fwVUp~4>6$c*_p0?RRW z3fDMvFN<+UrCrW(X&4QJwCLZV14_w%rv9i_9tAjy2Rv`BI|AheT6l0BZ>{qMqJS)e z+>k3tL9T)RA@p+3r)vrZcMiFFSrMgxt^;uE=VdN*SrM;Hu~!7wE&(?-4LBbvZ~~5A z98!SG@ZwOq9>y*35ZI=6T>3TKu6zQ0!!e$UPwBT6R-#w$!NIRk2Q~IBcO&DABw#0P|BBlZ zYT#DVE1;Ob4p>!TT@3q9t)PV#FHpDcB`pFI1=ONRu1^w zr~z;G4_IA!M6d{2xCb>>>fs%ll0y3!%nZVzKs`3 z^-)%zS21)(z~{MjRlM$dW^yc=_~R(nq$ZtU{84;^&8pUZ2VI_EeBeKS|pnN>++(;^G&`d%3vmP*?m?YAvb=omhRwmGv;+fFm)XBm9w+P{KQoI zxwP3?&!x@I7;_mgBhX4E(8>hC#~ElP5P6O#ArOwe(bO{-6ny5E*GAgg`3hfcUktnhjj5pT7*CX}a^`qaWTr9@ygjNXE4Wp7VMZ>ieL z-d5}0-htrGdRt@n_Dy8cz5M}xU^04p;?8tp@X5n+d+0C+p=0oAZyFP=jnj&if*-yDN=kExII z;S4P=ko#;jqrPm*zR#}0wARE=BA!j%hco8_A_#ofm9jRx*Y_1rr-5&2GCoWLSHnZ! zH%@Cxgf%>K^lw)ijMLCC#tDGw`@uwWDVEhL;OnEF z!H+ie`eOPd>QIwUy&JMxB&pLzJe^E@l6YI=-F4!ZXqD=XN)u}nU(l5t%l}Y<@G?H` zyo!8d;xXOtM2Gp_uJN?}m-2C(j$r2(uwbHQ>(^373reJo`T?qMs<|a0)5bovpJhNN zFX_=uFa$PNN%)j;USJBr*0tL!10}&q?)2cr8cnxcncg?6aXeAi;7u-;g9#)Kh$#nI zC}noIAn3rWRTfO_taj23EG=74idITc*`>4q#=vR+nN@gCa}DLq0NtX?NLBFu@6mdm z6aUnJbo(`xtG`c!IBzWJ->O7H+_9}vOOQYDfrgM#RT85X(LdhC3k1TYHW0h6U1red z6EVoU2ta=nHwmz3g}1S|BvM&T`)$;cmFn0ad4XmSPHuRfG@l*_#WN`s%lx)x8MOpY zKTvB64n%K&g-?U!DQFa^OfX1l>c#omzv7eb>ieFABNTE-QN3sr=Ve%%vPh(TQ$^4A z1?8s&Vh!y~$ap)KQ(qA2?&ABeG}6Ev*v@hNdJgoHh^H{nolQU~CBsUL7>l6CIuFEt zUl89tji(6r0;~>xryqq!OZe<`=n1au@A4VlrcOh2Vle>Ez$f?Wxd>Kk&I3ZLRq9nl zCbZp%ylFzLu}(J8A}#akV^^v&`;593Em)vC zx=Fq9Co)PPG}MVhWsd-Sw5O!}Sld(bq6oGkzJNEl2dqeHG4^H1l&^a34_-GSK7aD? ziU|hy6tIEat(tmP^8|8MMz>CD3XQ=;mBOhs_*zfHZ8Ax-3$~9M-7Pp=oqQ*aID-TA zr3P$KV$Uo_`$UfWXs6WyPsKJ|G0eoM)cgUfxll}Hr6|cR>dHI~SFj-F5NkDuFy_jy^&x-LGqev|3%vEss@^Mn_P!f?watH_RM1tU6D^IJkjskbZEl|Q9!p#u2J;?|xUg<$va9I=Us)ZwXejhJp_sBbK)#yGn}PgfLl zp?3?7V-VbB`v924mu`3>*8mO#9cYC8(j@keD{_Jb|GxLF*{kiPNU+mAa3W6+0f4=#v?oY$WT>a5-!3v`;Gk`h`j4L{Y|`=zH4qXTTRM1vE#&9UI9+N_qr zE+}9@6HOcbV71x&gn$ry18Sm2RTV`|iO1pZcKx#63%Qq=#KE&O6Dc?T~(+1yt|gUOmyFrV%h5F)^9M z3oO|71B*bjWvI9v%OrQjHC-z%gwQ9W;+l+#&vaJ2 z%~V`v_t& ze9RBz6gj^Fm3t|!3wH`DPOOneFB zpOnV))FBASK8u$l21rQvPxVg4&&ENQguV`xS>196F%9UVU-Q$Ly%sgkM0yy>_nyC1 zFCWZf8RW=5ov)tx&M^5lF;WDBd+)E0OmCWOHOy9GvNal~{s*I*GpG&h z!SriYK%4WoECPJRBum)TwAjGtf|r5y#pCn#70y6xEQAE-d!p5X5+9?uirpVPA7eK> zw!FeG9H57mm)RE z+C|&@4Gx8DBTpuq;LZVu-bICw%&8HbHsfd-*Yfsi>q9z+GPlqJp?=}fwhTobU4Nl zFmz5FRn)lE4|rBC5YrQ@EsteHo7FXI*(X*(DwxM18L=SM{xw>N$7Q!v$U)pZ-N9)w zZw;UPvJ7jT49h$?0}b;gjtu|w;FuabI%9qgml2o(UB(xerHCnN)c(5-0?r(!y7}`i z)5Vs|;O>2eJu~GwK3-Ya<10i1W_&+jkDGH48x+6mn6I}4Hj#D?0(7_r+Y2*RgCGXg z4EuJbK#p2d5ZUZ%SZ~!7coyCygF+2z@p6Kk_2G2?ixc$XSI!Ay#byj23Uued$Zy}< z@C*&n5$&hjl=~avIox0V2Ka1>jKHA>{~L_dRt1{Y#P^Q-$Ruj~7Kq4u)E@|LgHMdc zS#D-on}P%I@ZzsE9?fI@?}#i9?EycVcy%D+Up4VsU;iRUqpa_2X%g$kv{%Y>$NSg) z)9Iq`-v`Uj?ljBqNT*AG*JhPpW~XPPixPF#>#`_?Mq;m(aOO$?RkIu!A1uyTj!T#* zS+N!~9<9F0o-ZEO(H-cvJieA#Y%PYH!_fLBD1$Q?quU8tbWnUTk*AH<0 zQr~l>?HaC<1Jg_xG5KKkK;UTcb;f)SXC?=Hj}$5@@E7>%*AjFktYVzNQ>0!kYRS!- zwgpbqG)sul$IqfhEV5%wWF1M-LX-11CbFK9mdV*uBA+b^6P$=Y-(>z`h^`hmw?z%( z-axhQN#rmHKwDIq$+$-1jFW!E=b4HhF%|fjxwpxDr->|Kw(|da<3`)W{8ufCoq#Ki5Cr_ZGpR{oHxmcB4v5OGk-Z7-CwL$q1%$l@X|Ga1keO- zZbhkwqG?nPIKVQ?ixW~I+?X0ZDlKU8L>HhG{KAX~xPwarvC(ySOJ(YV8*y&sW5>Y* z@ydrhbR4?Ne(xi6ONxIYK3b@^J%R?qc;!N31EeA$E5pnl1l7NI3=rK(zPWeQGO zzuWfrq$nO6yg05PewnN;Jz1w9nKd0yCZHC1Ldtt!Qxp9U&IFDO?NSQA=D=4mv7ZbT zB=oyqc(g_ADL;fH&AkjLGf(aJj5wG0)ZCocOb2_g!33HDz|{z^v0cH(Moq^i9YCpY z@Cdlf0exH_+<)kZ{NL{l_xEmWF3(f>BhvEg_$k|e5`L22b&&OCfYlX*0pjU3iIrF? zvOHq*&}G{^Z4H?Rx`_I4802$ISJ#arY|8bxCSl5az!x&ErqI6n{F+ea9Ban+PI`Pp zaJ`8k{KEKB;22FTD;fZF&iDv4*i+6)(cjd1reLQPiDm*}Wb3M8FST`bj#pk!--QyL z4mGe49BOQ~jChzV5*cx9oDT=e*7BLGvbB7=)C_=ikB!JDQ)!i7M3?cPYJfka2em%4 zfc2TYMIH0GUKrhuckV&T9PIlLu?L5c1`-?VmGpH;!+N~VSc$tY>n%_82DDpYt+3$k zYm@Sb5Q?rsxZ>sm$=T9=m@I=?$&&Eb_s|ml0Q}8D@$~KkR=TVi)A26qMHpAT49JWx zpylt_jJCXDXZIhr__MfP}a#QOW$@rLvDcx(5O z@&0T7|Eckwu|<#f@Z-9ScLL-{)JSlPw=@q$Nn9YiK#uPUjmE3J*q|GOqiEV}b;QPA z6q`65q*M*w=V5Zt_M6K0&TnZORm}jC8Vt{gWQZ`d+$&{exd~>7PWENh@qiLy+pe@`~0_TK@fe|H`&vJ}GYc1dkh3lJ5aw@Y5| zM5v>9!gKMZ^fJakoc@N}SyCgnH>oXwiNvuqV!}E5}3l0p= z-JL2fr@EVh1MtP$SE%yoSx=$LKB%$}-)PbFU*{Znsyp;Hsv7A|yqU?5VtRW5Ph$yc zrYT@$y*HE<&VJt|JDmOAQFi*5o`N1tCzht(-N{b>-yP28AAc#FJ>Km6|JC&D`u<-S z7|g-n|KA1=?6*GwUA2y)YFu9HD0$v*^{4{;qz4#q`n#?kRfteOhE|XA;%AZmS&W~9 z^v@FfJWl^C!_Q&*rw>1I#AdO84I{KS;Q!P1mf&oLYhQbkL?7Q77Mh3iY$5Uxp*rT0 zn2D^L90H1eA>I26>2kvDT0e98d6Mz*v7mCcgh{sw=U0vA^e8KJ}@{`N+ zNBhmI?EMS|vl#Cx_#^En2M>sJmIn8UbRHkvBhu*&_K9@%=Cfwfj*ZvImIiwvWX{<( zgSwR>Q=G4~{zr50eF=keeFHxV(L#a2&xW-P?vB$DhnK1cZh>)TjHiVKD7;ah?$Zyk z34Emw|7LkF8-uHVo2}NZ?XrDTz#ZzXH=#M7!#XJ3i8HG{CGK>*G57^nyFn`^a{(~_ zxX>P8)X5qL-Ldk(_LbfcE*JGV7jL4{M4PKD#cC*?n++JSg3w{(UpEC&-ax%%few0ry zJUEBw@$9m_900@oLl$A+)g9bTvdN6)Gv`=jKhT5MTV`RP%h~JizZ#~H&N&12I<<$8 zjbGvW%-#x;B|DtmA8am&Ebt2ISIL^`#_N4=8N59oGX9#{NqCG8_c+eJuz~FQ{&$BX zpL^#2L>E0*_5i3LPXc~D=2(}tJutcNBd`|i#@FjAu+AvN)p*Z@Q+UyYo12>@U9W@G zK3?+v`|szBfBEH?bH*=Nupnprym|9-#;=_`IcNN|Y14AXuiEiL&iLe;Pvndbhr`Zz zdm))G@jKqr-HylXZ~Q>v9RvYX9snxT047eED?sO8mPGn;{!x>Dz7+F6a||*rqpqDU zQv5STB>yAK&p*rgM|Hlx^NvY=c0`7-_GfbH0b_mqV|U@Nt#tyx^XY zU(u+gfVj=x51@^800$&=kV$IfP(xa0mT+j>Zeds z*FVhE??e5j9gG~Ms?4nHGv`q3QVAH zp3x&i&G~t%{<_a_Z7)g}sZA*K3)nk!uFa`TpkXa^qis&5(&khky!91^XF~Vr81;lD zw&T;9f`@GnZ$NWy-V>C&Awu@q{8FTI*Yr7+6p@e=`i-nwYzNoC(54(J-r0?EY;ZT? z-ITsRd7jUqAxkIkl!M0;H^1n-a*2G;w-&w%?i=~O8x(D=w$klNoxLL|bPY`kKX4`P z9P6M?+wP#t)(3*8Rd3u^BWYD>bK+z4&nb_B%-A^KBo~NQJWt{!pAS!te0ThnyCVPb z)Ek-nf;1I)y*=>s5_ev>IBza){?-KBV29-OJT(IPTF2sAecC^gp5VbcYYyodh=j%u zo+n52^dD1EblKuBCN>DMCAczGSOtwA;gS2dV1lX|~St!FCN zp_<`Ly+KkR4I_aW6f=x=W|*Nfuusg;$qX=EME#zq7=p)U7t&@T(&|>Fli4dz^aPaA zPftN?b@mf3XrJU4`G-J%kA{b|`|_XY%LmgK-xJ|X^kLHnZ+Ko|Ug&VauX56%<_WE` z3e@$WW*Xi0HOL5PxSURvy;#o%-=chhUA~a`HeG&ns(c?)9-`XvKBhd^cRS_B5F*R{ zNXi}pd;Ub2`$0*Qug$G&h;v(DgI2mT_Ov(H4=0n9xSCqHg}lt*0Rk^5fu!LnGvn%* zCZg0ZXKu*|KG%&qxK#cmy7KG#bDZuE9t+OwkLn%iJmSj!Khq_{hd1usI0$@Pb6|4* zHE<$Pz-JPHfk}d6;SB)c&ve_-U)jNln^OB#mscpC5DUs*JD$E#!Z%nVEC8>YwD0Wc zKQj>NZxydh50}EB*Rz4qIrvJC?%*>vK7p72%3R~7K2?WWb_VpQ@Lszf#Uq@Woll+v z3OfHxCziavXd6`_EY9&uno>H0w&ERm-#v(LhuS3HO{xuFF59=|+ooRSHQ? zTf!aVX?OvD!SZ;b&HSO+9@Tlhylu0m@hwaytd@@_y^;^|e0C8waJR_EuIR>4->MkN z2w0|G6x?_kK0qyzSKQH!o(7OqQ3ID`_?xp;P9Q}Bf(Gq@jz}Re5~?l8tk%oLG(e~gr%p$n+br><1!U-8YEHQ1rtee z93k`9RFCwMh<9fmp&PLYa|jGt!_{qIi3Ckf!OPa200 zVdOnhK7{SqqZHxz8FqSXU$VFE2{{+cD}tUtDVmgq0UD;P)~0hz5yXz zVXGPs;RZXaJ>^Oph;KgzzuN=B#^H~eTmz9S@o{SG@5l6`%v9NeHG1L|fsH${%BF1k zOZv8s{4t0e^eez8ldx?AOH5+dUTxtKAjpWO1ET;>ol+}iP1_;1`K{ktxNm3*-V^EU6Z~tWbGP6fkOum=!hpuzKZw)_yrR%v)X!*4w&k-qG_@QPqGCsuk<_#qvjn4d7>5QX?1LNv48t0 zbUZo=g=xQ|@!#@1q^f_F*_Jz;*+Lr8JzPaM7PB$?h#1p=St>6M?&CN1M)g2bfWF__ z6+Qrp{oyG^{$?m!7Yl5npO6RPgG7ADqK#U#UcfC+4SbC!EMxCEi`GZr6q3Q|Rk2Y} zc5M!x0T}{*tPhTa?jnA?5IiyvyUNQWl$gkOPQ&Y9Iy&IRMDx9qMh4tnvC6;3r`j*S0Wh zKLK-}q#AlEofjn4-?m{$0DEGMECDMn{#tknNH(p*bjGIu8Fx*p1J;aJZDSIP&#Kf>Y4O@&ZHV9J)bkl$E5pmCV82JS3PsIMgA&&SM1lc@FHH7U#_x+ChEG@VI*LXx3Vocgjc zdI>E0TrYw6eCdnP#y;y(%^E+`huE|Qg8Q;fON1^hW(@WlBp@wnG76Je-HgaYJf&u$ z`Dd*qI)BSLj1(J}v@j)yu`9f&=>-hW<9RAt#FO3XXwgc1@?e0{ z%rE|pvA&*mXx_HSn(ouk2s1%ab}i9A1!bXqDNJJ>{$s8+Qn%>KfE8=x0S`4jVroL= zkMpOaI_5z1(~S0u!?OCGxY2N9!qs8N5{qCn^X)Q{$f@IrLneFaf`{sVg<|>M3H&{2 zcY}n1>3AT6#E*>ztcEZuw!1RT5~{^$i%(WOl(BVZ48UOjT&*7XEZp$sCCO6QlLmrvPqx z>;vgj#yR#2$L(zFe}#Bn@Mn7LY!sSnLAxK*tjam*QCmpmsH1F{Sr*_2x*BE}{~TRp z3TN9Ei-r#6z*zxiTT4YlK;lnQAd0u^qLVRsp!2MBrmnQ!REqY3{OPEiIS_pnqxJa5 z@0uDvz0zci9|pg<=l{8MtE(~9p(U)|jB1$!(PuJRkG}${=w|-m zFeh{TFd)u7eh-#h*8HQ(|ADI7o77oY*vf?XCG+vU)JfOc91O4%I*1`z9g^=Z@||dezs^W!RCox+5--sVD5T@2)6NJJS1kPFwRqe$8V6= zbJUv9ezW%Vvv)5OBtxS`Z!kW(5)d?Q#jZjL4T^*4D2JBvHX1k=!^;hdFhr}?&#^_*xnRSgxLNgwmr1;*VPAyekKvET z`%qTKqDKw!J%DV|_q~A1z#C)=4)M?=~DKrZwqw&RzU+MCkNw07U!{Ftv92 z2Bs&$1?%+x#om|4M^$8PClDlP@J5Xqm652eMnz13Xqw>IfsWi@qZwI5MMQBJW<*8l zRusWNcMI*MH7Y7IIx~zbuc9*Q;D(T}1#kldL{JF`c&`nDs4Q;zp668E?oJ3UGrr&V z{W1Cd(zo_Hb*k#rsZ*y;Eoc0!Z&LB>E@uh?U_a+;=c|2WmlgcxH<6W+S(isdNsluP;7^`v0q!ST7w+3Zr7}5KX5aFGq zGa*3MhtBDo{|yS6Ko2bd-MEobf@=$$wHR4$|8Wu@gpSGx;#q1ng*hD{JgJb$%ZZN3 zYeWYz(_I(iS61&VB;q9Q!T2b*kj|_4f&QTy(W;Qp>oVS1Na9r`M@4RW|G zY~P1c-!Am6^9bUS^{GO1eJn)Rr^na#>>Zx}wm1$t0v~Fca2)(`gB}NOVZ^nV{vMQ{ zO7C^kKLx0MM*4Pc`ttx(i|MJ4mMZ^)k2O3!a3j3M^u3$F^FMC-H_$6BrhmCf`M0|1 zy91#=BYmZter7XxTmztIq+tJzn>O+VJHQ9}px@WKOL~NU=@&e@C*Q8u2i7aN|qU;fcd-0!x_S1B>dRo_krFHOP9yX%yw zu*$j zcWLG)U8Y%1t?z6nK6tg!`2k2uIHIrBs#$vW zTY7n$n)z2Y^UrVQf1#QGQTWqD_~iqkPR%1-ilp9yq#p7hoRE=K(udMm)v__(lkzF} z^XVtMgq2H#O26S6CL*Uixh?r%(~CTrZjCZ^L&=;Nx0mf+=*D>8emWBCb$(BSa3o!w&BX22Vxs&9~!fgmbAIV0S5)d0UF}rkI2(bL6Z=U zxI)I^Tcp1(=g@;`g>w)dq8q&>{5hLHo%nMme>#I3sPMBiXwg;RLI#S0qdy&`a17?) ze*snzL{^xT{|{w#_UX9J&O`p8yf5$zln5qXrj!Vt{y-@aJSyK$?Z4p5P1+2rsy>kafm(U@u(&!q|!Qi+CU*arABu#?TD77cqeF2)#ZsT^JDT`$l zi@B>0)3Y0^*o^@r>eU5Yh9&bwv^BC+Rny;y&@264B?TB#Ks&d9K`fxZ5#0--LkO-0 z1kW*t44}b2om0tPuSEuhkK z_Eu#l!a_hnziex@qM?WEo(>YD3FzYY6#?D-bs7PkFi54`h`=O;!24~W4@v5v^Z~}8 zxBma84z$mzI#;N}+3xUakvf=&ReK7^7sXzyq7NCcqtj$tao%qaL?2e8i2u*%!+oE& zOdk%024<2z;9}9(0(;Ux)$`Aw_AWazt7eM{EYd1h?LOAEy11NUvYlF!ML9_zsIf8^ZQ`Q z^8a9dKeIyh-5I;m=J(e3)cigQfk_7GAN^IzOavz9_b#JT?Jnc=CA*Blb-0V%e%l>g zGKU-e>xSdu_3U~)yq>)2r?P~9Xh&U-TTV6OZFaV8e$fZ~X}si^HeI3TQ8h&L&v`T* zFKIodN9N_ubcDfk^29Eg_EfkNn|NQSx2oAS)eKyj%sv87CJRupE4i>isB9t5#>*OD-J3m9rwl$g4Fj!%*skp>+Ck45?)p zO6~tVjzg+*`&Sos$-MbWvMx{c6TBQGAi*wx&Y#tC{!4ZKTao{kv%WMs?PM9@-=U1y zT4E6zJy<-Ie8`Qy2GNO!(f>$V%IcCylS5w|x;=(>K&m}^`~GNqmfo(~<19dX{=f>} zSC||eSd2I z!TJWF`h*&eGJceuW!%3|c28($MFw>+D|~(~OgxM&v=?1Hm$Dik?QCETr~rPT*N~4@ z3`%!rRO-bY)`YOAMQdZda>sXW3d??3+4TJyzgS-X*(F%O1z*=YrH)HdW|UJy6u`Kx%#Ew;gTf!W;Jcs!Ank702dLW@(D$TB&!&QEd{lYsW<(ESVa((bLD)&OiyoPc%$W}hB9tYc(4`bka zNB1Bxuvekb#9bI)Vcb@8g}ScxZ2jZP*2zQL(kQJOcjW^rW8W)&>Ps{Ywe3#pmd;n{ zZqXgUV|m$p(UD8Kh223%7@gT3#Qh`HYl4_y0dHMkwtsj7EO8JAi-YaWcz;hv+G*lz zq%9{u^Lj}Rl~$FOX2H@!WxF|FIj9|_bH z252Lwd~kWvj+z<^o72Yv)QQB*N*#4vQRh_&?*BjKvHabSy$qc+_iYMdF!>%rKYg=| zk9rO@p=O4y66~p~H;Mq=P-2VFjSvS&7~G?j8#`G0{-T1;H?1eVzFH zRqln^tTG(TFyLT+*{CdI;u=h};ecm6LcN1MqwwHb7D1r0Mm%efqyzwin**TIPHrjf zn3mJdX({d4=4rVV_Zu&d^o+-qEC2$~WbaCck0E%<6b&uKWfx~BylM0&UXl4aM1i$&#i+wtrxR9NcS9u<%F zSH?ax`5rnCUZm7YTpnsg*xuhbosZE4Ukt=PN&H>*Z&2dS_Q!U?$X(U&@ZQ10F*3#* zk(=4y;k_psk++oVU}Nh1;pa}r*gFmZe2wi0e8YH7GQ4+)G3irqp&SjPOz&DFQV21- z8XM@R0(XEMV!V9#@EFD#N2WVO%fpL7;1S}CmJKKJ;pIrY3~^*epzIn9v`NpPo=Wd3 zVT$>;4#YASlNd*HTUg#lW`4%Q?M<#}0;BrA#wCAN^?G^eNd9)PqMpGlK0> z0|dmN)bxTP1dnE*NIGQH0EHR$kfrP!PEhQgG0OkOIsp+zd0tOeg=yAmoHPz)qc)&x zsB;bw?XKr~dOQI6OZxOMBJGd}Q=|aFZ0{pd?m>)`swNW!G7hRtIF5(#_23=i4cRj(HI4ju4cA)UX|&6&j=5Y zGUN$ZNJO`qE55boKLLWKC`boV5NM5{9O-}dcQ_Y5d;7HzwbnkiWA3xBv-ILxK8Ax4 z;_TA$38lY=w|?!Lq&yiM5YRlPN90haoWQ2;n_>XuoAJ?^cF$z}th=KiggtW!j!{}l ze|VGh`=mik|1Hj5T1vm^akqUezY?XYomx8vY3ZyQ)En+TH#Dp>Q5#oqE0}+n+3fxko2+_W|b8 z+Oyvzan4bNsq*a${#!m&;3OQwIcN&5Ga_&aL< z^rUU0-Q>almS+!iBRO~qoVR4aR&zw@@q_WuC7Fis4NKN{(Ejzw_-WN7{YA<4 z;30}eJei&yZs^0Hr8iQ z*)TQ;hWti=(eZJ0%c%F|^TYOn(P%|NI8+nDp(+Bb#Qr7QgBL0aSh&CSel@uI2*u8 zBhJKem5N;|vCJQXV)rqBVSWg@!A`Em3dir;{0i}h1aUw5Uv@zHzW}X|txY_dn6Aff z;vvNcyT9d^;AKxT{VrQPVVm@FJs2jUdwik&$G6BA0-iWjFA-R2-H;!^W!(5nT15ps zGUKK*0~QeQvQWX&9?&K(qX-5;;6emfArn;V1V!{L*Pc>(YPH8lPlNWDjt_$m{C?Tx zg+}B_P&ZhvX=Oye6S{@X0(Q=~d+@gFT4ul~G3iHnCB3FXTv2g4Y!Kpzqm-d2_{jQq zAmo^*Lw#hmH=W8PkErUg2ieawVDT&r0BrZ#&F7GML;>AW!fc(ep-v@~HgHz(oHk|E z(})@bp8MD5RmsmY1MMg#VB{Ea0q^&?dzc@rKr`;$)g2q3J@%VN(q`mtLR=&e&s4oY z4gxz8Y_4F}P&QZO<;O|MJL~}{8Akvp9Ph+&7MFGK;C&0$uXkERFAj2|4|6OEl21Ua zLh>!l!E}P;B8_AKe*9nSfC`L0m~=idkNA@_C0^f&m(1D)InY~$3i05RWPTj^;(h3j z^G{Q0!87vM2~h&k&;sn1~T3~;<-jAg4ne649GGO-9WAlIFF2z-BKE>~REk!a@>-%K-!CrxaKoM2GaUfg zw`vdj)gGxm)%08mPvUM?@H&2k9}yRy!CH`b6F)VHl?0I5GVs}*k-@o4LtTp^7 zl0?wX(Vhl+8t+H)GngF3eTX02zue?fZuKSoMzoM{h&AN>;|bfcF?F$D>>z?0P&cGl zZ2zPCkc{0pFvfMrA8=&=0*P#_XF=Ek^JQCudJwB0V@JrBR*mQv1kMWK_AQR)Hq%pf zb0PL8;A-=b=6urLeCRaOSRHzf;EKS8Nk`!FYkO@_Bxz!m@xX@C)bFa0bgqTr@_+l<9nAsP4UyGcGo!==a?18Jx^g;E&yq~ zuNK`#MSnDbe{fRKoPV(e@Jv%~hCia6fE#<{qq7JQcwP$iL|Oog$+84Ot+N_Q@!VZG z9~Tp5W~$uysI1#wV9&+fd}R94I1GHiz3@Of2{TKo-pG3R@B-aTsm&jITmV2M;S0k0 z&p4QHI+AU;b~A=jaMox)TuNlWq!;LV`w$0@SrY2#AJd_>k(tZE znT9k40zYs*hho_^tpT`(=EMI@SWL}Q>(Z*SAytqI8@R+>H=1+x_rwy(&gV@T_jz85M#KcGILAR=wCAw>5RWd8e5^jQOg%W0Z6ervGxzM z^VWEucdXBd{25KaMaT2~ywoW7u6d2)VT2M+_ATJ_5zeC(oH^UN2%KXGoPzUQ1?K<_ z=MZ`Ur(|vk&h{G4Ew84*`97<%ObzFoiQ_Sk1TcRo3}{8Kzywe6_pqXE^~Ab(Ymqf7 z*Lw>FbUSnblKb+c9S;$H>$cLeTY&U0fpkvLiMmmI>xKN(7!8M=p+qOYskgV=(DIy2u)o_Za!jkd$ms0Lxvf>ui^H}{ z{!pBGGgq<_1%R4^*P$+?R?PS)lB{@%sp0sYz@caPEHshxWiX_5ST0F`U9mLR%C!Bu z&M*Q^=eV?p8_e0(vAvl3@4=}kMO~sm(+A<2AqTJl^ID4#Dc*AiB#wbfCt=bR;I? zCd$4@2dc`A==HL~=)mPVWxMpi0)@tCf393u+%R7#KjQjfMCZX3u&$#~3&<L}uJ@6I3|@w_niHFR-C zvDWhocuiD!Hm~5-WtMxF7H4 zS=iVo-fau>n5{?4na+cFgts!hFw;#0XV-VWG7p)Y1h@R8MT^3;$|4cgB$h6gW=w!c^*T@tlKWKPoce*2QabJj&+3?~#`{b2d zWH`fw_*MfD!vFaI#Sz9*nU4oN&L>cdPL4nH-xyFxlKci_Ga?V6i+Hw+dC33_c_R`= z7#`jr?Q9F;jF;Dq=yVWdl0W0+3>>taY(&;!*bYB;D_r-2fDS+R!~$F%go{%#S7?wb z5fc&JY2W_|^^=7bPUcY|c2P`aC+@_a=w=kI_n+~SyHB`C#$4T*L;~z;lwS!DS{acm zz|g|Rgb_IcRTC)CFC(&x%SXJV^FB3wEaY;Y1!7cre(PT^v03qwKAR+g_19YX{nit6 zZ$4d+vRd4rFF}pUZe#%0O zVmVJ&5t}Yi+)kns;M)t)q;9XfZmvb+qFA3JvxsQOhfok_-s?!u>z9)OC#ZQfKK#RN z)Cj+6cVC$T!7&D-o6%EhCjt(sAhu$7*U3yUd`}&2f*0(rX0n~3qpiu+a734e+E>3K z1>y=L0`M+6!)1I<_0Va&TrK%AaQG!1fZRxcHX={U;Lz(j1JQs(jvkOn_3}o0?-?#G zI35wz!KZMs0TF~0i3p@ITcE17vy9n0?M>@QSjgbPyoPljVK8GW$fGpSS?3f)z_u0$ z>4MltMx496ZLssEfcxYs&}dh(mUzjsjcPmkC#e*I0gk@wB9s^Gk1O+bg{YH^*;53g zUCeP4Hts~lpL>FGw}#*dYw{HMl0dx5a)~KW6QB`&$7o`z8eepr6xal$1`X0OHQ1I7 zQ6OE|0!YKVR*f3IXFf&^kTF#uqw2;9n=~@2MwID#B7Fposu4|*F{&vtY+ds-HA<>< z&8tq6PMXudNJjl4c%3(J-(?2m5*sjEW@M}RVnkQKSG*o((6B2h!#sCt)ntmGtq{jP zu#ms7@fPx1<4mis@3iG-$c^C4H8FMND)y3W`*FRHix$wr&A!tXm0^^8^p(Pdp8yO; z7|GdAmz?n%`<$$WCv%TW&R+dka^6s-$nU{yiJJQF7P5yy2AQuVUgEhwD_-KxXB5*R z6_Em8x)T(*HHE*eA^SC=mGE;l8K*N0KnACq4$SVnu+bTV%RYp)%7qn;(xf*Z0BX|P zUJeQ8NGf~O1PuOo$?+W&z5N}bRe&Gm0**ptMYs|7;nLx`idW?T&-Q7m0gIjnJOKm- ztbzFfZxzh9&Vdj2-B#j5ITQDerQ;!%cnvpi5N__0aM=j^OMB-T(d}qXjWbCu<{pxWe^Z2QXOA@XpRwoRSvyM2hssO;n0AR&-rJ`V3M*DxMWQ4yrU&8Q^-XUXV1`1`mPgfikqaSWLWR?8mC& zGf=T}vlM;gc|F%>I$vXX#q0y>ARKb1dKp&GWS~3QPDu~c^B}SocyMwMlU)C9zlXbq zM!W75)YJn_LhU1T*s~1#oeH}M@_45EGs9j-F-TXW!=em(N`-aOd2eLc0yWG(xJ>1} z0%6VRpPU$TC>6<2D)Fpm+E48hzDHk!4R4T zTtWVp@9@;;OSoZCeOrH!&9~5*s=ba6y0y|bC3*x?m`CE*SJCKAx_!JN?tW!Wd zf`Xa>;nhGerTxfw0C6gSU|wz}0mLYscj*3kzn8PUIg-*I%Df3VXx81yPC@~`Tz4ru z^JI4^>&Gb)FZrEUEoFI#AR?1XneRrujvc#7hJs$lE(UenZxLH3a6aN0D&N#1c2P9B zh($b7U7Pi45qpAOuu#ll&lm@|c?r15hy!qw4HxbZ(yOWcFvc&U{#>fy9xMf=!ClRT zMuUFkd+DIxr&g8ypy$SdT{5Z}^!G-R&@VnoD($^aLH{YefSx(*&u-s;33euduqRu? zNd=H!JJfB>Q^>Dc^EStCyyVSuRBP^*g40^#8>gExb!B=}F2;hrUpsgUk?p8%){dp& zWIKL1QL4M+1J#a>x*g16pV(46I$>?Xnp|pCRcXcrg1`QgBc9Eu%*n>lk1=~Pm!a-c zgr75_U6I3qUOO`S>hQhuRro9-65+WFN4i@0?bh1UK+o>mR7s1OBep03 zQKOoJ%=Q5y6RQ{^J%NyVo%|tP0Y^PkKCi>?(BVEE{t!#Jk0mVEAyJ)jfKFMY!>>cQ z^Lr6Jh|c7=^RZh)6VKG?2rX->(D{$l;beXoekQ|FPX@}f3v{BLb*fcc8B?WeYR#Iy zB}QY5oG&$Ib9Lm_TM?;@`_55vP?Ws_frRBBEDj~r>cp?=@R$ytrNjTB!*A5#4LUr= zaOB?!zkRz-6iA10xo*vsh;%LiY$*-?bbEwfY7>O8M+mcn+BhNY5l+~)ge6!9;Si)e z_Kv)EL`xKu171rg^qDm6EikNYTG*Ht(iP~i^U~7sjyUsPo)%{6u;h6*G>nJpunW@C zjnH97;OplebccP-yR?tGOZc4~_MMy2FY%I{XZFTwwZrb+5hqr?c!omDEE;;z3&#HJ zL<9w_LXknzjz&fNc28y^Pp@Bnt?N|Ox4;N2)pltW+UAda;g5YIue$EAX^%Pa0T#aq z5)d3bmB}aV?VdJmkUb(2SU%-G9kD#^njznrBHjvEFNqP10EYv@A(774fa`1d33Fm9Gb26NM66#Nf|Ap5j zy;r4oyF5doKEi9dru8sMoiLP#i(iz&s|KN8Bec(NTCek5+OD6onW{OkB?j#V;7chX zgNJ+WuUl{+94eJl%y$uE-Ay!F4|20r0ezHA>rSpx*59fb5c>j%#jRJr84q}T6ttMJ zT~wEa{4-$R3&DYdGdYX{w-0_;jkfXDlnefJ6vI)+i;e;7T2p#G0Z%zAqXP3#l+{fu z#ZXllK{zYpz0#yoOn)i@K~2UPg~qvh0r8UfN^+t*><>B&;Yc|fLY8xZE%2W{+~Vrn zzuX#tqx@QC9i{Z|AvF_)mt5oJrS_)X;DjhzrNA}c?#cxY{7CLaQfLH)DrF4FCVImY zK&mPlu7t{dTWl;~1yif+H`=Ghd1l&ZH~x(V`f!wffOL&hRJ!+dx={y6_r6Z|Jkpg{ zk1NTz^$I=@ZJ!tCRXI^DUu;iYApk$PLSf;(;}pP!6s9}~565^l(0_nBM(a8*Kpkjz z$?0n9PC-u0LDf+`!OHbin=87m6E^c$V_Vp!zBJE)?_e)$y= z?hQC9@_Rh?#+s%l#~cSy0EF6JU#@^Y9<}*nKZyM2cwr6Zg(-cmx3ds~s&nWrR8dnU zQ@!mRi!&%(=Y1D(azWPfB`%Bc-irOhZ)7NR!&%3A4l<4kR2M-`Bf1Rt!sRz3vRtHWCJ(mbMT1p@F1D3Qex02rFFM^ zo|PJWTzFYIRM)Lg zp{3+2Dhc#Y5582jm67UBI?6m^SEIy{xsLQ*^%A)OiJqXo_!mA0!++Z}0> zl=RtpB;Z7J*Gm*ysS_TCgwFlQEbWSy^wr_}jzaiYRp|R~skUrEm?GXl;~*9~oU>ca zugci&@&Of`Vwhie7J0%p3aL%+8tEWE<`?t{fK;ubX_aTwO+LYh%*;YcQPIRfSv9j^ zv=;{AU@PH)qG8$@GJ6?wo&AlqN|t6WXaUTvD%xnqFsNf1AM$YI^G}W|%vhc$5c>wf zJTB%RoUY0YoYf4%ADmpC`3EP71OMRU8qGgfa~R*C_K(ru+x2&-{$8WMBlLHq{^sg0 z&8R`1dkSV5TWk*->AF5>+zU#&C=*w`&cSqenxh}BD>SWXOOQv{kthNI#9$U;hRZTu zp##r{;DZypb8uaY)Zb_=$%8~r5sGXD{eWhQ&vUitbVv!is*72n^y2q zlYL?&5)#_H`Swv54gOezS=KtVMwMRzDma+Mf>y8tOxA(P8sLf#bxB~H%9uVsF4p9t z+HCtK+3>4&ELZIaUVtPDFsPBMcM}A#t{N~OTK;2jjmIE#;bL{b(O+tH*%vi!beO?x z^f|h0)zd#-{_*MMPguxd-HaZv6A+4<6iygOsv#7D0bc;zob+rZPIq8#`W%P1(}C}3 zEix6b!-D70K6*h#Y)576BP#Hrz44OOqKCGF9bsR01PFuolaNhB1!9Q`>|;=90oEVP zgMxr{5;A-Zhxx&3RS;- zzHUG3Z%2wHc;tAMaoc3bs-Y?h#2C1^?FbGZ=UJ3lyiA=@Jx_*!^sW!K!+t9lH^V}$ z(IURYK^d$OsY9&dyWHrzFgB5Niy#(B#?xK-Z~&RIB$G993X&w#)8o+MS@HVB zO8h@iX=Q<2eu~QoAkJ`ryLw>nSB>#JJUKF?(CH{UAK41Yff|-lat}RE{krk|xThfT zu)7%%X{3rAfc%Vf&PV2C`8;`3<+nj*xBRa-PTarLem=HZZ|CvG04@v2GXv^*feG6R zF`ID7jnoL6{!i_r-r3sd+r0=Rg%lDlpV|j=)j#%m*{p#-gdRUBAy%KEyty$Hcu2c3 zijYwf63g=J?$xDL@LK4Xm6pdG7_zhGRwF8XGpF`(II)?POmR8XEW=}fkq@MVZs-Esi#`AwJVS_1&#FGe=?6?{c4X zhMFo$3Rth0IMd^%sZDvfcW!3Dnl(rQb~8Zkt4|w&0FLOaaIf47F40398`cr*>vLpRn#VQlK0}tY zcD0I^?}sRI8sH`C?W4pq$5V~MZ0|57Kdhyv$M4k!(t|)hC?+)Q@PLo5W8-|(aj@j= zf$K#j(~s?)X@7GF){4Uf%fJtB#>x;f<5TrDAt+Yh$~ua&&%+*F?#s*+Zd4^?dmlm7 z#6dPznnKm&vsC**7N#Lm+Mmt#GikE@LpXulflem30kP_glZ@sfw;DvWPLR1)Kl(-SYb z{upkh>g`3!TZp;c7y)!>(r_2FhV+#KE|mhUVCr?b8Uv_yHsiMib&N z9-4@a3`-*lX(JI4}6oPeTRMi)6*5D2sNZpi3IHSah6kF5&An;6VL)N zvjO^$xJPDq=#jM9jj-4vDmWT|n{u?a_$KZ~AmpuJMHeyOWX10!@RSez&PY;_*arCQ zwO1nfJh;TDq>f*w5r$PodTasvfrgYQ&Y6xLV$Q!Y=ZDOx3`+U%rU)sIAX?zJ$0CXI zJn~76h*5CJLx4<&(rQtfJq+b1mb$Vc#MtF594dMwj8QVEU>qRC2c4~vv`c2<)IgGLRDD(iWi%& zj8I!^U^XaDHXiAf_F3oWV5R@U49_DwkbzfE(<(!LYZ6CR>>z8>Dt=ovjZKvg-6K}8 zKx~LKs}qk3OX-xEbOeCKyBljtWod?_ODGov8-)rUEbAQz2)_CHo2S3I{E}gW;x#ie zPmR?ZkH-a&x=AWbuY6EM-1lKZ$s(xdfehk^kl|fUdy7w3yad<2Zw=&_hI=X8$2Tz7w`QINW*nu+?trU zV=tz15uS%APQtUHus#62t)7FwY=UB-&J{Q1I5)iT4F*j$3e0d*HHq)|^#1YK@9rei zYC{x4hLx{h0fB#4rLM!{rXIg({Na6{kBqKQeaS;pK`A_m&Z|CC6vB^ITngA*1V}!5J z4F6U%Nd~j`M)HB$YoPDSF64NIdTe1OxW^F~a3phQ@CT1h0lp0!PTBS;v7Hc>jm?(f zl8twzE%ZvS{KT_0fJY_yWYQbpFmxdpA=xxA?8D;5QtT%tqW}qAsNi&e0bMq2By9XivD?M&p5|CwDS0Ug4dazjTKucSqmdi%*RMBx}~$5fB$nsMuT znbc?w_#+^?ns~+lP=2=}{Y}Tu*J=HSSsnX!UKMh3cAM6$e6Wc2-Oqo)deBM1LsWm+ zZz3oVdrUa%{kvK4kMS|m9T!q=I>ErJT*=AX-F|l4cHrf8P9ab@WBYbKf?Ecz8iWvJ zUha}y>hsypPM^-ZTD6IGsrFfeImjS>K}$Kns!<5$+v$rWp-?L|9)1BleVf2@2YfBV z^PB$!9!wn>pYq-^PixtH3`DiX{tGJxp~$} z7K{6;S@bKpP;&nS>$##)iW38zx95M|=#Nt_B}!UGl>1+If6QcD(IhGaGhC@XwU}?W zc%FF-GNg@Bj?V_-2S`ePkJ>%b)<}95fLVoB6=ZrNvMgUt`DxovTW;2EDX7H1*=}`Z zJE#w6#HA1zKoF4yB-lr6(>UtX1V=f2k~q3?L<&dlRUF`o80H?7IBM;p&OHu(TptI| zRC@`19E^Evw?3N32aqH{Kg0g2k!KEq4+2~f+uXO^7KK+LjCf*Wl!PKyYqneDoT>1n z?D3hyZotq#8fjoFuhZ$K_cOkB2b%OAslw$jRMZ$8V0u@Fj!$%U!?;KcT`WoGqVSf!{UKP>JW(?Zv=U{Cq4{w9DtL+!! zo()#+wEL}ntlQ7TqJWJp?=+cml(P>h%-CMPb$LzzPlDDp6qtLKoAJE1W(;G{KFTa! zZpP-Db(`9odsdp6^Hp#*gX4L%%4Z}K9mhnpCI#Vsozt`Z{#aez#vFff9bcQQv)h&zFXG39ID5IDy%aHL%{GajxH@X{7d6mna%4Ct?r83-a)pb?I|;6Loe{YoHOAiEv!ZUt(V6eY_5q8< z`(p3b?Py#4Zan7=wyJnvF{UZe3iK@@`j%uSa`ieRWrz_MAkZ}YKL`Ss2m+hd8Cpd? z^)ORe{0Kjrhl;U@#3A+ZRx}qLE6yP60Sd9gwV9c9F$vCG>Rn+>*#tBLR-cVhLaG=t9WTUNIzr+8UxMV-^Octt!f4p=gjKd*R&JLnYuM+$Ttu*C9~n^xW$n0pF+ zmXfz|9APcbh-dlY-44&J_3ktRyPShT{M5L$CJ{}73=GR7tcQrfc(;sr-o=?Ky}OLS zPGV;_E;|OSII-hAOtE<6>%(=7WV81!=KLO0}AbfLBq zXBCxoo3n=3^s)SH$mSan!a+i7MEHmgCVY|}Yyv&dQ=0e#Jy0Z|0rY?*0F;=+`Xw8udT0@ks9 z>)MyU}wkn?Rg*65`=Z1AGF|85Y~4Q zh#(NweLdqnWMm_-0@NV(O?lmCpbX!DN`#kzu*&{d3VTR~#t)5s4gZoTOhEg;iD$J1 z0Om01!@lvXZVG_Va?ruxF_rb@Ty-D>MMlU`V@tx<=0Q??Y~L8RR+*JC7?9|dYxT>+ za!m>`9|lV?+P@ihnmMeIy(CpM{If~Gq z^A!Er$e@B4Etc1xDo5c zW~>+P+xLm*$(B%SvU#Ra=dvFVCbmCXz;J8(7v)8?~UDCu-LQ?0lV@x;eaWJ>>wDFgBS+e7G~@a?%?Bn zvcuJs2W6VxcSEmUj%D1nzAgL(lEUJ}yP>}~jR7Yr;YRd2u*yy2s#%@=-ckG8UF0E< zS>H=|4}3)+?i|uYAVc}2_vO7PA?S(8*WL$aC#y7VD$b5ei|~P%UqyXHWp*_@ThW2-pwv;{XKOufg}t@Eh#LjNsdL z;p#b*q8gD6@KbzyNdRX3s7byc_BTgt(0iy%r;HrC7_c+fj7C^u%WLUrYti!(=hJpN1s*>}$Sw$a&0<^@80Hk*k! zqwrc!%@RyfXQAe7Qid>v|2Nfn(wIWK^(r62f`ZGmCh7AgJgSR&c;-}vc}(jew9930{%$jHV2C8aZOcxC$#AN(^8wS{ zhYNsZw1!b&kKSzq`ZB>P)tz44W8*vn11&xpgN+y2i*Pr1M5X=BI7!Hh6-Ah5<+a<} zRv5Fl`(uuM&-<;=;xZ`x+CgO3kLXkr?&6hBISC7jBuN$PPwLGBfR6VJE>RCG1TVtv z{p{U6f0rMsfJLi9M7A%VR+MRU?vry{*ANKk#W>8lEjuH03beyp!M@F*fUMLEOV7g? zfYG_m2rC2AQm@zdYqf7^IV`KSGU@3uNw=2@x=>U zWjL#v2otb2rOs1g@2TUI3EO6%y?Am91g0|fR`Be!1CP_~Dc`UU7VlYGywt4wp&(X^ z5xnPP>}w0mcG%SJg1n%>{&X>Va(xJ!2N+U7VHC+v!GV%n$T}z|;d#&w`=Alu za>T!Ds@HoncAlr-E2m4y5R6NlN9s~VJ&$UZ0S%Wz$!)$4FaDTdqZ#YqF>(B<*91@- zMlmGcbriUcBG*ysI()9fbRC0S$57WX!gY)i2WZt8oMBYcgFiUcK*t!)4Sma%TD@}7 zbpfbILQ|0xQ*hw(0yZ0a{Jyb;vDLvrzR30G%@oL^jpSW-(kJhiEw#BS;=^|wK zBfjNwN6<3{1eJZUF@UY(&p|&gbrdq;uh9nwK>xj?)6oA?9nk;se(0~^dA5D(o4a72 zW@xO}HJ7Ka{p=;^A9!z3?@M5%B^w~OQ?Ot`uON984JL@sx}kr_TG?%3Bb+N57FQ5; zG6fK5I2(Vr3lvIHV4<)#{ZSIx%NUF~aPVZF1}{n^QiDU)|LV=ZwEjt|=w|g_)wKSr zb^U#G{dY||K>gldTz^|#^o}YvEe#KIMa_Z8hz#Oos3bC0!>Tq?+HXjX9rpKkYG5F1 zTdj2tvh5q*_@c3T7+#`?w|P87q&y>&q&{3L0}_L~KD*iz};d`nSMrs!Qb`XtPf zz-e3Te21?dp{DSbopM}@Gmw7*j>IJB3uAi6w%A|WDoNs#Ce*8j^p$e*0=5Xc4b^ND zzG6EHuF( zz7Kxp+fW0CVU!XbJiU@U+}q)Cg)EP>3YzWkq%l*{Si2*$fofkgfz%rJg7Ho4ZZZOr z??K_gK4^-VLYQzt#@#o`4$GwC68g2k#8N(;HR2D>8OlZH%#?Fh%K4IZn%2ZxI8A7T z$O>cqWeL323ncf1J0D*#Q=;94_vY@EeUxlLjmW9c4K$$_AsO)uPCjJ%JlEx}XD1zC zibzj=*dzqNTl)fW#l`Xx9LY4TV3J6aJuPBtmIPLzkO8Hxt>{^3Bd?KmXv6B}NTS`n zyN<%8FjO+H5CGa|%>X{ZrwJ&~c8H;f9rmqw62gS6$Cy2!Ywc%Q;Z1F0{c_PQ-hId}6FwQ31hi<_j*1*~)^w(&^#f%patK>PbvCW6r#vp+EHC}FIj_GI*TEcFV z^O?8kNFI#g5D_{e%l}Pf16LzK9qi&%YKc(4c#dIO#isX5Y{sCGc7;BbiRT>_TT{0+ zr+7{53m))(kviaAQ}=mZ@tW{EnThu9{*>ptC*kCchh1sK9>!zdPt5SG**L@g7uupa zZ2Xg)07`nX$X*V9pJy?~?0#-X4M0crQytX`2$zoH=#q}&=-NFW9rY<3VRRJq?O;zA z9>~;^eYL^us|xhhfDW2Y$o;=vZg@w4&e5-4Z5pR#a}I_#x( z+wWaxb6*|tkiR2+*oiNe2ft?|7MX~L0ufFbZtnnsL*H?5v5gGLr z1^kGeEw-}&lCW9?B+0V3UKxTVJ_@kXm}L{$DkItj1J?N$?#5|Np88&@++M2OUIj>% z;dG$wXdLlZ;+eSUNM<<&YdKYSHKno#3|4ovqPKA+gN{A!%ONQ7F>pgq2|cjzw86f% zFDE&sj#Ix6{6N5(#IXb&BO{^~ft`Nqp{7bKMgKmj6TPamV`!-6EUAp=ED2ccD!pF> z2a6ig47Bm5j-bn9P`RQW)e6y~YC`X>El*SX$ysh%pmw`LTg+jis{)R&b!BF4z*`4? zvz}&E8m&p3f7Z*KJ>f|t37NP`6_ZdLJoD6f+)?2leB%#W@q;;`o(OVI`ateQed+39 zrV0o5n)sW`G$i>2atpMQPBn)IC@hFBrMMxRuSgbPh!3IwDBq8s=!yNGg_mN#d(O9!7#s;e6ft0f<K=Ah8|I;EUNDQ7qBWIkd_Cnj#SGr4zckrFdsgGx&{IVbrC z=Qib{lf;XEaFU+!FO6r~i@I<#n^P*u@_|`80p|jx9P@1_>vbf{gO}X|p%IT{;;_#r zcj0B!p>)Nkie)Hjr3w+ZQ8?-Ra{21lh=65bm81}Oe9T5{3-xk77x?B#9g0bsgAldm z9{hL3B&n<}lhpruPRj!^Nqk>k*4{J40Vc^Kj$GKUKNc?Gk`9A|T#}f8{82W^2Vom; zT7e3~Mmw_ETh`;EJ4Q_|1>q6)L6Vnk?J2-YhP{RjOz-3r1rHwm+1|KJTU)I!Cuapo*V3MS|Bk{>;_X9BF_7ZoEnl%G?P zSITSxn*zEF#2eAMC=t{GO{HP2*YJ{s%o0+}d)QDiPaOWFp%1_wL9OvX9pv(VimVJ3 zCazKEi7x+Szd0dAN0U+heJ)l zm<~-ms)z|*jj?--$1@{9Oo3_Td8C(gD(3R#QkYm7GFX;Na-MWZ#eSgzT4z z17yF8II!h94GvI!(EpBb{Uq6km<7OVvhU*rW83Y|SE~s|pzO>F-LWqDdy4JUbloL? zRNIy&0y`joT%yf%^0!d1Mse4FO#Xgsn=I6?iqvo5FQI-1fxiDV-FqHwP;_s|LoLz0 z88~h_aHoBitvhX_IM8Wp#R1Jp&;cX53_cRWXdN7B#Bid$3-qBm9ptFA_pD8$gO}ko z&h%9(dZ}K;q!UMuN333^8K5`D7h}_)C&_ECu!~5qrefsSiH|lz4RVgAax;a>RYIlp z!uajy@_|Mguc|QMo0l__k%Q$YiuGp z!8HGOB`4TURK^xp)_vZwym+y+;cy_)AKU3ap_cmWiaG=0gQ+I}dr@%R2`v?|IJxU5 z)a6sslp|95@KVIHC;~E-mMRH-9I&p2veR|kf(K8>@p@h*rW$^No(`2(-ws?TrfM6e zcwZFAFd}i32eXaYe9NygJ|M4nshx)nv~1$Dk%E~K*~3$bLw?5Yruqe@8F9)DMPwcN z5Y&&jMeEh&07}r~IXI7}uqSwpNGx7JI+*oD`|CbCde4e@&cO$`EKnX>t}a?EmunVH z_E)2@zshK#j?g9(N?C=3iF&@&_fFqrO%)j&MgUWUBOY!PGQ*!`0v$zgsv86I#~mKt z>l@!5B4tl(@robp^)N)rv*2)F?r3+|WARlR`yG7BPljUfbJ6LtWeCC|IR>?T6j*MCvWPgY2l5-kLIzG()}d-0(ZD&3B?!C+ z)suMTSKW(uY4Wdhm#5imqplLi8-$BZC))?XD`lqKA_-vL_2*AErMEA+y~wR)m(7X~ zZQwMk)YI$=PO%lFR42~ZmS z=;aD&un#AQN+baK!HvJBAB=G6#}T9-pn4ED3IXY}ToI6-m6(^9pWX4rr8(S>*%5?+ zDJ)Ll8bCn4Z4BB71AB|TBFTpUg6bMjcpCWt%|L*V5G4g(%1Nq72wWf`f%r`6XG#f1 z0qLO=oClFb^ZklqiEb+Ng@QL#dbb5{qdb=f6%^^lM<;t7{#2*m=*2LLkM2e)_?@rMu*c_ZL4cwh z_F+s4PX>yyv$Usxo;|%)jE|nr;Bl_R>7Z)g|NcJA5u@yC17Lcw1u-Ij$0HhM86@3C z^kCXgy9a&}2iQt;&SiHhH}LIDg&C|L+a5X}u`FnP;V`EFw$Y-)kiiQ>$uD_k5TCIr zo>%ZSq8A|Ctot14oC5DVMzjomJTjMC&V8N{RhI3!Wh?tjEqgyQh1o$77_x*R(N2)K zVqTYeWzz;L%7p!B1g7yDX^=qwr?JAjBmfX5BYyy0Oy13iUWSNDfKdsME4+1h4g~>T z+-Ov`X9#<(BrHZaE?@!X&kJxxCVB$=<=$m%)HEqkN!N{Nwj^YUpB4CV?=iYZTT{#p zV6QM8Y5m@{9COR1+z$|2$rl^}K)H8;5nUq5g&u?MDvCM-NtuO&#)v-26lsln5dIYQ zCd21kNU4v=@G&dz#KRoyzX$k0hseI`F;#(cwN5*IBr#>;3ytV;sqov_O-RpeB~@)_jlPG3HOLS=$Q_7cCEE)B?KzpgzptDe&ynN|PL9+_2B>A^%_cr^t0@j1eV z+xOI=On4;uMD3A++RRrmQpH}xI34ZYmyiHtd7LW%sxceNhOTHdw#*qq z@L?rq6w~8-IldaNr70T071S$|hG0obxa|B*6ucKXKFPenKE|!-Ng#ryQDMoUq9-@v z*+5`_C7Ba}T`3-fMFGxlwgGFRU-7MJ-BD`4cRAk&-BA7tGB=jLin)_3KEcn#&lCSKe)>J#qK%6{b`n4TJSBx6tWpXQ%5DRd1ZDvQDtD5k zQMt1gU&wsfjcNA#?F&{X@iOYke*-Ti7*6it48FMis@3tTlnO^xVfAZr$pGXSRad{( z9g8}s_lpE4rLS59WB2wQPbICTP(`}|UW$YpFj#58d?5{=;D|2LmRn-0HFVmtFr<~5 zwGpY85^)f;J#?%?MPcqQs{0}h-bg^G5n-=jf01pk`2>zSyRb*A;Kvd$U~@9yZ3ze_ z146Zl*HY_;-}-w#z@c(`e+%`u8^5q?TV%}cRfP1V^ivte=Q>O}7H4^qYKO`!&Wy}ZyBS%bHh4|_M$ik~ zPr3UGP{3YA;f97Z&BW>px>Qf@RRp!6Dp4C!cnE(3ixjPa7OP)CEZS;$x%4k}s;G$n zrEw{2;{5qiWfR9~2aLG#%^A6&DKlCHrzY-HNmRUzeuou=gbtcr|B$m!uk7PmL97=T%VO)cKQdlhc__1F{nkVhKC^_*s)48Q_U*fiZ&~)6b zX5lPWL-SaypP6{tZC$#4zNzfV?B%UELs0p+o;T@whjO!lKnkcYw&Jz7Wm zTLn~c^Z}0`c7EQhf(qmgR7e#_h<JMv$NDF;%JHI2_-m3XV`k-#37&(QVbu0W;jD zV9UpuNqc$5?A}Gy7j>xy?VQ}ZXh99eku2mGMG#ux4ng%~Afd4#iT`F75cW?`{^&>2 z$J_i-!Q*(*)9kNwdleYe%3j4PEV2LF_9|#DBHr!hzVWQDTzeH%of8uiIjH|vvsW>X zlLi(g`?g@Oq6q-XUPafGN+^~?S!!XjLL0AuEei>8ZCdPS$-=bCvtiL9mliE9$b(vR zSZvXz&%n)0bZGst2(cstFA-nvTr#ZADia^UGz-(+#<01u# z!ue0w6Zr_%yZ&qcNYwdgg6-F^C(^xZx;+ux4}v1U+=0us=doYoZN~J*0$3lG0naY1 z4|9#;pBZb7_|glxK!&-{VeeIFm)<`It7&*T{PkfDVE$pA)Q4v(H-cv+T`whFufT=D zpJBh>nX(z^X4cz-U%(6vyZ4@0FC|C=3*U7o9PZPvAdvk8hz%MJ`zy$+C@-2?)$~42 zllE=sAnluW{*SkBP~WEQ8+6})*uFhyCfj%WKU-?w&8Mc?cbhHk8!bR2+n1-?_tHg8 z+sFOVa(QYIov5B?0KX0U0eg7)s6k$B0PPupN29VTaq;vlh=loq3yz4uh>yhW2kdi9 z^2e|p5Txw@Jn4lFfb9Uq&xY^F%?K{DyPd=))Z33NQsrHuj&956s0^Z~a&2xnEJK5@HK2c`E>JQowla*sN`mbX zgRn+)3Tohs1G=&R?AWnB@S3V}kf(MC!QKDHs(g7?;z&>{G+i!elX|tWOXu^#esgo; zlt@?th@zI_H13(lB_y^^9_!g)$GbuaYbJtRey@1DSlCXjpAbunBpp)eqd-_`Mx0W0 zT99KnMZn(Wxb1;5&^5Rg3|Rx*PJbzsQV*nognbD_#t1Sk!2z>8L~l}p>@yx%?X+Les{{?>Z$Lyzlg#q=e@uQ;na{zu6Ht@g@QF2GJC~BF9HNYMBf1L=>ND zQ|0|^KJr?eK{eqc&lYV8WhV`n_nl!VGu=)a!!AOYnh>&T@To`8YF!)ff@kZ(D7~ zAOvcce%KvGO-6(m{}nZinizs@s#es6O1H4SxjT4eY#D5qes=VMHEM8a%e|dtq~x<0 zB62^g1zn;Ka2{^;%;uF&AJkga*NmS#VfDwE_J{qaH&V>w*LM`VN6oRaU%o$6Bv88Ah7b7H4BK3bt5(z#h(ocJ>0+Oj3;C5(H~ZF; z_$uu<1aGz5zrdtP*5YP#*fiwGFd~0Idlaj~otR>W_=b;~jQXYXZyCP4Z`4Q*5D+2(WUq7i1R)~gE8^`a0sUj zj1+MT54lX5oEVoYRUm03@dYD5Lo4kqGs&K+doeQFH<=XXXVcr>Lju+U^!^B?ms>;hZ338ez1f+K}9#EgyW}SnvdN?K1EW+0m zt5&mmyeL-J(*&Mj&C*Rs!4t3^V@s)NxNn^@)#OL#sk<}baYY#6cVZ#r)Z`)_ zUL#Ch^)};bW2jK8UPq$L0y6>^Wr%kx1R=&0&vd$hPlnkiC&2QajDi&&o`WkLFNXq9 z6|+n#=Z->mp3>L=JDY@}mIZTgXai$FK?iIfN|oY2o(bSNJ|n5USB@JuVphzxGDc%$ ze$o;*xi&Rs4ai1^ECe(JfoKx`8^^3ztJ(>i1>J3ro| zJ9LK&`nKCq5ry`qQY;D`g418pBj{CLVPZ5kupn2h;ka|uP?Kw@ywwDUQsK0VaI;)z zwG^e=vv$uqa61LDm1eu;nNX)?N!T&K$!)gVOTe-MHiRJHu25%(3FS+Zuow|M7u_f& z0v2w}Q7Y9Y0bwqDsDWKbr+xF;X+UPVKr)YQU57bwK1$LBC!Xb)I{BT=FrCCX%@?Pg zC-9><8oUp~ac9;~;)j2bI0g-@`{a@iBbU@OdjUmM5fv+1Cz$xz>ir-0^g7?}d17*t zJ!yP{(2+ZiM-Z@#w?ag?&~Y(GZX0vKy3FcQXsX=9W@-9jhQ~m=6`RAc`P>zr07M~I zV@;vZbrpy=AXVUGz=F-B&xrPrBCxz}l_6JMi%IGpUo>7iLip4%H%`0o6vFk3k^#8$fq-~2AOw|UKVr$JY{081x{$NyLU%U9 zUR}rAS=7^2)D!0tGYBb=fn$nSva{%J#7PUN*sEJM^L36^()d#Q*x&7iQJyZ}v*eGT z#3K>OB4o?0w#2S=#`LZ6-O`abF@?<OhbPR2LhossveSYB)$ ztJp&Eg#u0b1YF+X??cXlsH=aQE>Rgk`B%3EnXXI>2SErqzl;*0N$hs_04Gg821L4S z{ZP%;Tf!C)#cs^?$rwRXT1*ce6K`{eRI@?Lw3HakIkw$*>G+cULE>*I{I->GfK7vZ z6R)`IN3-xdK@7OUQJmKH$dtJ0kToK1%4$-z{Y17Br&XM*L;xRA4)7MHY;*ZA@nv>x zj<2J-|4e+1NMc1`OT)^~!PiAnjf*dPXIlUb*&%v$ZY`R6`4!Ig_RuGnd7|+4AjZcp z$JhHur0}(VmEdcYmn}?I9b(lGnH<^UXW%QpOLKf}E&ZAJ`p?E!$0k7Q@%7q4zxw!k z>hKi4o_SC3^|-V!iLVM&N_=hU-V9&+zn8M#n+Qusq|OB11yQTOu?S>mcobnV9!1!i zCH;G$HL?v<0iZ-wh$NNa@3AjF9xgoCntT^Q-bulgk~WwW5Uu}O52fsE`YwVIDL}pQ zu7MG059hz}K0;oSp6YV23}CaE_R`1F1Dz4P10rNZ{>tE6AmEE?H6a!`O z84^iHXm%G>R~ILWM+XhKvryT^X(0%`t{9!@FF>2J>qOTJa8$xcFnjbDT6YaCe<4x8 zt=OFMJ>~m(HcVmp#`5*ijjmLBzg8enDNgDLYW{!VOauQ$A&vn`jdW0VbCRv5YOfZ= z!dNGI9nX8nc(WNe6l4&r^I_%zNf}${dX+o3st}{Alcz!O4jSsXaY_t1$ywXI;{^w zfLW-*WS>cbSBHxoeHbMrEC4vEhm0{o7-}gE5;C{k{|_whVYU?+(zvi3$}XA-o$KdO z+B1tAxGOb_yHazxD>a|HQVV!?b|YXx!9~a!_ORtG`>U`^WE>a4PZg}(+afCh#)U;_ zwNHOeVv3kWFwOPB#Td?VvZ(W;4IX5$Vom$8d2YXw)Mb>8_1&m-iCM6a-(rnueJdFl zds^aAXD0q0iFz9|^4qD!Wp;S$R_9{|Ho=nKD%c0^qH_CDl-D|3&0idH@;im)A{9%@ zG6wc4@`EnCe%wLh3;l&3NQ2YC>f8NeJF3PWz_~xJgZ_%{MH9GfRD~nCDq3$J>pyE| zai9trTw8qDN?O`t%a5@56cVzZ%Ue=AY+W<2nf;xi|I9iKzLz}{6+0-X3C4kca<@^7 zm*6hI{X;GGIot~WH;v{0=tFZM>T3KV1c?03l9X%B6Hnq&cy}P7P8>9EIUyZ|ie@Dc znC53ip+bZ>`l^uPc?ZQ8q9B_sgOrmMTR=_C?|BtHG8F-QGVj<*zAO4r6`u4E~eA$eV7WX@Ke-_rGA)6y|8bbo|Ygaa-}5n&e^J z=2j;+eHO<%Z3)dbDTZ8(0}9w=>Qwk5|elet9hj}<+8_NN=ma&}gsNO%rN^u_z9E*q z!<9V1f~(^Dl|*nXYEqdPf377G__Pp0S9h9!*hkt_W_Qz2`G2F?oz>L{l?QRS7Gm6U zI4pptN%4q}PqFzqobed682eLXgDkky02k*-g=XJ`eb2YyMm_#qkrjT3nc9&RxIk30 z!XhLieh)QP1;yM`GzyB7J|uqPty@`z$gaa#y1R=)-^aEP#Wm0zh zbXEIu=@oyh&h@SoIP}aYM4Ngo0P6xf03Q?9JwH^|0}QbTBx= zFQ_?1SRE7J4!&9vaDumeYD?pJ4M@V2Tt@z9OsJPKwwpgdXE&ZVS-pFb!^QZ*m+(|& zd?UXW>GMgEY!uY70fc+_8^I=Tj>t-?BR$D$G%8ZeYkie2)ywG7-M(?NbZ-{LJH z{eZcm06xg=Rp?xB!SniIxJiGY};V+*yJ4{plq_xYP0WlM(KC!dVRBPwwE(OX9p!m~fQ^_$j0*z|$)HguXd60TrTF0thO4K>=1DmwjGw`KO;2);9={f~8m(XGaVIJ@&!l$G9awT2ttfj&a+I z_j?8lQbc~tv^XUya|VM4h_Q?odlMqK>QYPC&1*PqIItn#BG?rEt{6`=~gu0 z$S{Vbid}~Oq#bnl5_{*3bcWUCAD7`vE6s$*EQ9%xjBKtf0aY83V2y99R!N>-Zu2vR zBm(sEXpT(KYJ5t z7@rbgc^T@%0L$R3TKorikhoEIq$Ep_={00|jaB8J4|Ft{d8KnXK0OM_wr-juk5e-mx54vw0tO#la@nfoh#>Ub$H@ zi{v)U2qI5f7J-UkCBGrbe&m-KDTBKuKZjRjbNzT+avahzo)`XBO_y(-s;0}IjD{=Q z_GWCy{dVFw$6c*i?3glq&@$}di_G1p{f7JFG|Ud?MoSt4Fkg`My?HvkV(c>tPKA;x z+R_L+)M!^r1O&X>JYf&#(%t5+LF6rihmPX*RW77v?)};utmS`wM8>5HHFKm^3Rt}q z=X;dj>)@X}@EVL4zv_hsF@V?;BJ2+hk2G>wWUf_Wr}=P?n!Rsli3}7o6M78DTjHXd z{3U}ZGKk=A^CxoKX&N3WHLJaSV~*6`2_+xd-ZP~1-R2>ewD-hQ2Wqcxi)!yNs$|vV z!`l1kk3La*AK$Iodk;%QvsO1MT6Nm}^juOIFrFN?2m3&(@jsJXo#wrxY?PO`G+uLV z%bX?GOw8%kYfAK*QoV)?g<=EMAik~56kOc^2)c#oS60$2^qry>*E?vU@$*WseI0UU+sZ&dHHg0q!14DMfy_ zAMqAqEevm*A6~h?dTw6$C#l~#ks{5Y7Jp^{FS^4Yrb^42AJH|eX1NAgNPpPSa`~R8i_GvR)>07-{JA2*D zsP7ERe`W?f=lptW@~toQkPCi{zuQg(=lWlNwHganC`@slSW+ zh7bbY=j15+hZF`%Fcg6sT7VD2xjb&ypE)7Ha>E_cro0oZco&ylIAi3daQa~7fa*S+ z0};}%ci(c`1@@uJ|LyI6sPZ-dL;b~=Y$IhR9)MNxPIyk1G{JpG_%J~U1U6QZJR0@4 z*I%~4k)6fnOJ?rR9_=e{`Ni(1fAb_uDsSoQNb>Asn{TyO=1UFQE7`1^RFh&^#D_^d z^Z*~+N|ksZA>*2Sgvbb0bl-F;mp1f=hN2)~92T4ea-+CbSG3*q3eWa>kU68sG!&rCu_3c`0 z1v1J+F@JyMc+fTZ+Swaao#cPd#d!m2Zo7RY-m_lYL@ChDKGZ4RbHvS zVV_?sHL;HKSM2g@7wsy49sAE?dwgTpVq0O+p8(VXnfi^)V-jMp2aS>e4zpOahr4~l zdMS!R%8{+=tGQMESaBnY;f58_$gOM2GFb5w%Qn5B)fbkq4qJU=clax|qYm5Qmx-0( z*ml?oFS-Ub@aqSyN+eGgO2T|fY?WqW3nH*N>R7?n7R>PqTR!X!_{Q!}l%7@bt`^z_ zbe#=!eV3|g04;w#`7+4FYS%uTtf;V;q|1awuQFwReQXEjwia1{jl_oYNTZUI9fs&u zPheQ9l}_{O`V!eggNZOqy}jIa4{+_}H9r`FHIe=b?Xy7%!PXs~B63eMQh{0H-= z%=cG*%=sWBX#`KQ_`&^JS}qlTcbxdY`xMFcC=Eg4Sl)5>>J zSD$abHOc-cd=AeVwm*UL9ulrI-!KHueXY?CU6JDvLjL%_li`_ z17#t0#&Cr8{<|JVQ}V*q#veIM%r8#s>DwP=+Mw`xV9v;eov;L+4TBjf?j~!}E|N=P zJlJFBjO3da^;rBFb|C8G$SO*nsE_^p1-r=Yc9CzYA}dx3#9Fz`7`ryv3}}#SQF2T8 z9CchHyZ6Uad-_s;w)wcR5N(4iNiTXrU)${L=cLn88`9`&t~amvlHD6Nz05tuPWgCx zIRgI<>Nw6k!`_B0SdBVksQzwW-2%i3Y>90Sd+94~nM@B?hbT1QPhHR`0FV5o{EG$e4(u-G}%J1`B{a zY=aNP%Kf|fKJC6WO#+3=ps?&2^2~3skjN|cW4d#jW6tkkh|4g|W#)sgT2KW zJ?E=v@oBXkzKWN$dq!XiK`=H}DFoP8S3w`IcZ(JTV6MjBEd0&HUjr5zXxbfY>FspD zDPz4B;%Oo9K+_34-tM%efp^e;`HN@r&ds|!cqh%7MWu`R^!JGm`KlApVPt4kCEE4j zunuj-)Z&FrQnhH;`_XP!Yxf|mbtM6fx>|)`z}+l8N>Vl#L!TO_VO4k}XIb)Y9EoD& zY9;G{Qth&qzPgEi*Us`5EHQjqaCHJ=bn-Q_Jj7B7? zHkUXIxuglM=rS|}49;V%ACX~I>WwV;TeOm-zE3OZMhRtHUI9K#pzvED<0tW z?7?SUdyWeQ$xAn1y74kH?6#q?*R_&Wkr61T%qmAKStCza$F0s>AJ#LLG^a?OdHRvD zvHoi!xyN{HOYEmB93of2mTDMuEI1Lg=O*kw7r=__63_lAV4+Ez8IQ0E-2r_BBHWAEzTQ7H7KU9u-vn^u=8gHa-H&3b-J+29$q)TJQ$Fi7 zuQ-Z|#CG#iT+=bJXy0Gr&ahWEen<8ZfLjEno)Sa`z}$goHg~`{SMA&4Dit#~?P7g) zo9lTs9&O}j_~vM;6R|^G#r>Ho@QJ|>ETBqkp;z=#dan5ZKS&JTbNe%vRxw}ZIs!m* z)vhsoSY_T~$>ys~6f$<3U&V*1-@;V^Kr8zJtyDlC6riwo$~C`PfQD`k7*7%~-6EO+ zCbc>RHnPT%Pg2jSa#HUo8bo{`nYaS_E%Wuu78u7wyM|H;)zKu$c>4&T8JFZCKp6B@ zOlN|&;*xwrav<^azEL0awRRshtV36@3?Jsx7N}rzfQO~3I-(w9Xzl{2LV>QMiLP8y zE8hcc@CNFQr_d0Ten>I?Gpx_k~U9YM}A{`sa-L!)*>D{AIroNF;IcpQ2)W?=q&Jv@Se z5j}y5%K6~}E(Yy-Tl~$YhxSS}om4IW40LX^kyrc!TBGag6tBZKtSd3PZg`X28^Qzy zkw@jgH5!DaOOiugCn)l2yl{dmc}>PTjP&xK-%<2(&JNJa8+MNxziUJ(N7hqXRm$vV zt4gZR1$j# zA?H?}zU_f9>f!J#<&HM|@(x!7&_)>{X=sk5!b^HFKBuUVSR12v6y-(W?>%_Web}+d z2-6_v(`6o^TlCrO{2vykVPANL?EF6n68|(i{{=R`0r!}Fq%&U-r{OjnYijvfRq0zr zh{CBCu!cosNE>001ifkPNjB2#_+aIIsi!h2oboSJ7yaXj`ZD5)`t(=KAD)fLmq&Z9 zG2c0>rw1P$IE}mj8eJ{=H)KJ4o~jtkf>K(%mQtf?ueBbalMlkMj-iO7#ed2ooTa)d=B{2O z2KB$8p61J%y#$E-1%^k^m*Dszyr%ww2*WD!S}LNh#)&Ps197Eemo_4ws(*$OFiiL@)h!#H!iKuQE{Ff1tIyM6XLHeqEwubSS#(NciEyP!61?1E zSje7xw1ezrNxGm&&nO2Y-(^+$M&I;WeXVa=5L=M?0iFm?Tc0I6OyHU3&=a|`@*ywez)ni?Y zt!s&OE#=kx6$l&{0fFN*y)W70ljukPm)k_etmK=wPRSfK)gjFshVpiGu5yc!r|kx z`5#PxXpssrL}EBt4)B&UzUh70`w84995|*=+nR*0;peA8Awx} z#uIl6aY#ZLW#(ub6JRXA0TAQ|66t;cM$rHO3^GnsFuX3l7#~PjArbHp-~$)ntZ!W~ zQRU`M15+EV)LDG!upZ_nd0fVvW>%`iU^$2$@GxFtQMV2T2g~FZdrmA%*&o1bXDAMg2H47 zOgsHtnp}>is%M{p9ii!Y$zMQ=zCw79ku!~L*P=VWVg+E<9xPkPy(Az@9u$(7v$By5U9m_!-GVc^( znT`!K+=q(Y`pdXZEk@W87?*$#lxVTPDYkYACK;$Jeqm*B9M}MTi&jr4x(Yd}64uJuSxhC1Cjk;p)aCxJd&(hM!@(SHzHj zUgrV(!qn%13|-p6-5S)zi%FE>zo0+!Q`44yfi)2h;K9Drg2~v}@U?EsZJc#(OLW5^ zU-WtJoF%hhnAB8(QP?KqdYJ47H2kw^!cb$oz%&g@bFzU ze}n2%RyD7%qEI$NBO5{zl)})y!k5&%4#sj&0W`uFEj&tio9vz84uU;?MHAToqm4~B zMJR1!PCT3nilc;G39`W+H%;v+eh=we4r? z+aI^|?N6y0cFAh?HPj(7Tu^Jw?X!r#lGIAd&rs6h2`EgCCXa1aHnwk%h80+rqY2J4 zZ}%1ug4Iv$UXdmP`e6M#a2MFc$q4@%7f;ApkYztJ_?vhiGB9}u3g`^>RzUA{9N-Ee z>;BuU&ktB@Q2Ggd$~7nyJlKuq*);>(o^NDyQUnTueT_)(Y&LXL3!pg^-4pP9-VJfC zzt4fH2#_$0peywou=-$(BeBdV`s~`CUVl$L9%aMyeqZ>jLaJ1jeVWGG@zL1+#rU@0 z8eG8hbXQoJS;qI+Xc#Qk_w{M(`+)JS{DCa+@6cd)y=XYj8J+z)_kK}VsAR1b3HEy+ z86lW%B|1cVb;U-d9PCW1BdULw}AM>)S^?FXo?0P3RA^Jxncxm ze~fFr-BUxT+VrA)v7^i4Pq5A8;(kVQDde+^Z+SZqe}z#=mA*Plzq5eFASiNBe+B1` z`0*d2Ya`IOk_T0e4bw{=nkt znSt4R8SExNUtjQzw68DNfVI%D>>xifPVqHc*vHCKcL?hKZ}rq|3Bp0?B9N_hK*m)v zwREHTpTbf17@NMtO5qV12Z-fi^{|4TaXto*b9Jpvz6#2;$B+0uTjygakEy%>ovH=h z$v=_m;pi)&g!G=|Pvy%`Bex#+YCpO4RIJeC>U zc(n&M`l5$BHBhk%5o5sXO!B%O^19y4cyHEG5N|{mLGS%4_}qJUkk7#eU>3p?WA1$q z*vgbSMoyGq#SFi+g?8+%Z^2UX#efUu{96!}35Jqe0*R3=>IsIDRwfuqz6e7}7~9~J z)Tr`Rn9fIcg=TjIaq9U+2~3Q&#>t_I&hWfi9{v_ZsXqO+126gzrP!Akc`_b+t=$E_ z^4I+Oi>;}l{_+?7i9#xFbL_N2q(z@~r843b16FtvN*%DM$krg3p6JblL1p2H+V8$D z=(qo#iE?Y|wEQ9H_55LY5`@f}JoEA)%lhc)1w8CFU!v$UvPj?3YL0Sk+0@Gp$XBx~ zCe}3m`Dwm+Dn3>7G~vUS6h{Hj!2+GzA?uC-?MIBOJUAAvd^z;jFJlxg_bA6kEGljp z?~A_eqHR;9%*;so{mXgiMzM9G{Y4o<3*#FJ>q31D^d8*bpn5o-kDLARhk;mEE%%9zXnYxFKw9i}uyFKjm2ttpM-a2U6k%$6V#pX20`bnE)O*XvPI~=LfFGgs9o$8o z#Pgf|qccHUlit?g>?z^^8E~}+Dh`H^flPWH+TEzdsV5WpsxlwgTX2Ohx?S@nY7WvU z>pN@lQli!vSk!E!y166^sf_zlVxjftlGjJ;sw<*hTC{fv;wm96+B;N>Q3;39TD0Gb zU5J>5NsVi@y3&1BTIq(=b)1jY%Sbg}G?Z`+2alb9)<{Ue&nhL9)u|`YKG;0`fpQ!| z9K(!JozKA2+iE}wktx~=Ap_FkdeIr^Pe;lJjlc~Fl5sAv;f@7x;}axesH`V~LU|++ zRL~P^jRtS6QC}xPLa?<=71`kR)5=`vw#&=WQg;Ar-G+6(mef#Rv~LjBx_h+PYQVu0 zOvYcrT`)1Fz!%-;LP{PCli*_vTSzT71<;V>LO-dy!3af$K0+FL>-*|%m==GQ+~3G8 zUytJi;XD8a1sp&E#uyvSiq_`~RszPQU;&rnNcT-Ju|&8Z7-8;$R&_mSR7>1?h$VgJ zWk8LtgYj&u2uAGnKnclVeUhq6hhX)#WDRBrz30!@%$YN%_0XsT?`%3ac5hW8bc`$c zW#q)0>C>i7lQ&~=oW0MrDLIA}wFp+>{joYKaY3z8!{nnZA~7G@{!ZA?kgjRu3waF< z3V{kd=1*>;de{B52WW!{L*J#aU`2XRZwu;`bpnM3z-0ndqEcxq{+ql62m*Ru5m4{~ z^y@G>>I9eSYn~4zIhkON3TI2Cn=XHkqNbWefku2>%^A_iMF$93s7& zVD{UZe2J=ByK$(uG)+WgR(~_xhSm2h6W=3zyjP1q4^%iGS#9}i8Y$R;?X*EC%t)2l z2nHd~Rn0~7RSQ)C2vF~3g(^{@BOpj%s&A~)ee{7q&G-SkLr|xR|7!*Un9LzvohX2< zH=LG6Rl_I3x9MQj*iFgJ^lg+mMOvT^$KrZ`Jb=IvKNwk(BQT(&@8yQih8K?F%i;4- zpwiLcmp03nV{hcD!Pnke1`{wGcSz+na_b1NM}@q~T?&m=aw{J3$%a%rCT8XDkAOH- zBs>T2!4F~4x(^yU^6wA{n8FZPL7?2XzZLjT4I%y)o$Kw`9o>$RJp&viWE?BpWA{;{ z=^npvMS5~8C=2N8RIo{GZo$W6E2N!G0avR^hP1OTkSJ(TPmp%3OptaqLE6Feuoi=S zRQXzfrCZ3lP$G{c0QcIhLqcO)gE)X8WVkrb-6$~zp2Y;K?>X>FYx2az`0^u!6ZGlp z5OfH^h1U6^>s+bh()NI&v$zW|)SSl>5hlqgF)(%yOAHw0&~QXH2RQvD3fHI#bqxuO z?FhQsLO4J@R!JBw$=p!l1{`G4>haO`6ZpjW*Hb71h@pk;Kj#fW|K@eUt!()qE#}4h zDjr5K6*t}(q=s{`Tv-ltWp7U8RJFC@$E)R7Z)!1~SDdat^?0sY#yl8@^kDQWIa-V% zov|-?J#K$9f}4TkA)hYvV9Oj}ZTTEKRRLo@HYFEfi?XH;8?IVxzw~FUxDo9O8s`Ql z-R#EsMF0_mlcTehmnhuJNJ_)Rs(TRf1sIrAKUYxs7}#-n3k9+U3SzT@`VLg_OCYUx zab2XWXoLD%?3X9kV3JU-{?)K$#gHxJ>{C-{p8vs8kqkRIuXxN7^|r`*I~s4ns0zVY zim>130jU@2ZLRN&f>+U|-mw7V+pl*0K(7CRGQc9Rm)`vqs4#d3m__E*IA)#z^i`0p zU8^>|FTh8dtKVOWTzDbRZu4>LnaW^R?P2SAzLozzJPWSF6L9%b4n}gJ{$Mf9RrPyB zFQCOu3?ZtR8*~s7^tbv+L~J0E2@8nWc+mO&%5w*4ao#cIZd~UytF&M8Ue-zQ z@f*xx!YCPG@l3lyw?IxiRi1urHJ46jAO z1EHor^XJO0_)uOO_~Y$s_5w=owZ#+hSLj-!#>!*Xz`F+Ts`T;2J_KsxMnuV48lWmN zUOUKTxh!RD7^DA$SuO^%q`0aO=Pg5Dxx=tmw*@os5t;Ir0X;rF4<~A4nGW%FIiJtU zLxIp19bRB6q39!a2#w361*~=GV~kVGPgLywI*X{jfveCF8n&40E6^FZyS8FVx!%_D z4m@~Wiq3FwMZ6SJ0~faoFf>SWkug@i=pY?Fet+fMJj@?I2F0c4j{#~SHHh745&E}C zw%Fmqc>-c?Ms72)5!T&W>|(qUgd0-|AgaTlL0FVhhidVMPWDKM}yxZ}F@5#8 zYtHC#p&N3axp|1kD3T|QJ<~D>C@y(FjsqiHQdB^H)h;*r7=Qt1*=4mOv-#^vl+`Mq z`GG!6E48x9ZcV-l37#Fq|EQ;Zhk#Ej_)Q=V~5g_^*$T5BRZ1|+fAmHeRBZWq6E z;po6nhc%@cgDR}qu2x-Tj$7nPjzl^3`k3WksaE;PVx;4gKbYF3Hz<;4A~Z0@4M}LB zE}$shUARx=k1rt}g?WB}SS zLKo_**dO$;_5cJuu^F0sHU}P}06|tzUZK{|(_&33Lp?LJxiBbg0YO`eMycu0A(SWx z3-~1-eHCkc+Qn-#FiA+nB(H+Wo255EHyLyq9zqfgKO%O>`m4#ekOxdn^$#ivKT@r< zHF*=bo7juZ;Pa~F6nXxH?T&TN5m(DZpYoGChz1NH6`@QW5H6V(>w9EfCl+KIqV|0^iJZ@-OSGlgfC|4SsX{n52W<(t{^y>t63YJz%oUGi_j zY%=m~7&zZasy*PLW)q7X1o0B^&4pHZ6V-FNygLVmb6RG-s2RWFuzc7@sZ08h&j!|K zPB<)6P_L;=ZXwrqTIe1i6Iw_c5<63$nY!k1Gyu{zm@`waPk*W2*V@wO#|-2zb>o2k zQV;z}`Ahwn*Tem#Y8`*6xs}=eQgiu1VsL8>{iQmeUQRO98HWYd56KaK+b#WQ878M< z_V|Dw%+h-02lIIVNc|E9#n`PG(GU0t1^j9OE`C$xuP)8@n`!_U%WtYV^`e5G+N*Xs zj<7$UwK*TK9CMA|kv)guu&Z|Bv;2p(mU?=)6({)l$ACBIleK;oVtjysu zIvby*Z0WHwLp%pgc`&2LW-<5Vv98B(2Z{pL{v`M|Oo{r!&zW4ORIGs$rIuKXf)Fs& zLtEMfq5-%LDX^ZRGT`gD^?_-?!nSD3;ke8D)B~e%g)mZs@ zq#z=K*}P#7Ov`3_pr5n>@!;f-2ZTYL@8rtI0+X_SzAsTYBoqAT=WXz7ZSZIJ2X8~l zt|;cb{6t~C4GdM?wtf$2at5lpnj!nOrl&|`mQ=q5Z6hE&3mg&k*VpF0&s|f+J z0Bd#ySX^vfZRTyy!EC-_t#;2v;8|4_+qLgj3G<4f1a9x|OisvnmaojW-R$~gj=X4O zJ_j8p%Ef9g8~Y5tN9x{4nfb6{0bpt|N9i3MG{Nl2GF6Efhk3eh z2!Fu*GR{|G=^+E@llyP)J-8bz4!R2L4%dkfHZ|E;e)VPP!=vv=Gs054r`WA=Fk1TKTsa{)c)L8$Y-7A z-5ZzU^LF!2T+{yCjL%^X{a%Ms_0C8Z7%f>W2Z2)>*yPXK@@%xdDRpv&J|x=S3mMyq z7XZ0q{p*&vBS+=U=x&1)f;CxU@B($a0Jm%8_AZJh=CDVk^cl&y&!dK)zP!s(UO>v) zz11nJAYInw>9UePeYhj5c|5=F)3z^Zi*r)u!gQGrs9Uygo7}4QjYXN50%s(fp8KcT zcPq+M?bFg_m8Q$OHCJ2CkEzp`|M$?BvGnHX$z@fqQc6N8tlTekOIxs6JHu5W7LhhN{sjQphc zRp*oAx5zC&`MTW7CqaEAM5V5PadC|VNx@CRFWi(-kYQoYEy9pE0O}JFu@{^@< zD@{<+HB57)zUQKHtnUe^Z}$9sr20O5KI(gps&A8ECXMowBl%DwI#ZOHjUh zqg~(lD^3%Cu5MZ1-EuoXeZTXNs_z`&IlI1;H8EU4P&sO9sDTwfUl+jb-mNE;rm?mvEJ%AfX zM6h1pZcZ)b*)!Q@DOrH5YTH5CNr^mi$HQ)Tbp`?51VFpZ5d@T|FF+LEN0zcu@`kh;Y##KM0|sww)2Ms)TEk z3ysS0n4Dnm0TYGo=AJ9i3Lb2`-8|zgHfUgMS@SmzdhNP6*_Ya)p7&{sa;eu$t@{N1 zPmM23B|iOS*|a|$1m!m_L*=2o>p-_W(}*AQ6$W#OzmBMK7MWG7QbuqABR8mX zzsWj|5I621M0oT-Wf5=C1C=l?V%0#Wyus{IS;m_(+)U)nMBI3JX6ZNxjorUXMT!DxB`MA!_hx6 zA?@Afy;ug=(~&(r4LB`16go|R-j*yH7nkLP&$pTHxd`wIGJIW&uLlM0)y`atzYXS& z&nFQpR*TUhM!Kq!F+iYrv-k%Li(VjqRBm$a<6t?s3C3l(y6f}s0ROpT>hr<~P~oo6 z2LQg;?qit6W9svn2<@%PL^WJvE)#kzffSNwwrV@W&hBC;?or2k?$E{@y;lH#n1f0*j^$_7vi2O85j@Hnw*_lc0j z$b&7C{GghDm#iiptteBZML{q}S156P2Hq`!v`2s5LOn4#8JJAtUFK>Wrm@|8=@J{; z+s*tj8Q8X_>8aBdj#cnlsr5&SDj^*M+wKLs2Qo0;uPdN0vwOjj8IRZ9)HIWEnrq{*4{Njm;A&aS2s^gq!SZX|q} z0oXpLG&g~)iP%Di7xh`3kG9g9KemjYAzE8ae(G69a^}fmZ9%~v;@=H$oJM;>9rCbr z>7&@8D}@Sbz--H`YzvT$G(I2K&=Is#Bs8~>ooTw;5Ffo`Ag;+QvB=e8Pxn4WY&N& z&yB(022xNeg6pNi-^$P*8P~bF!nZP*Poa3IWZlFWoXWPFk0PO#xWi%Y;gdMze=Ie; z!)^8eA`|AKCd@iZYSd{q@G2!mmZ^!(H`90JDuP9TC~e#;cI{-fG*}gB<%%&X%>Lze+n^g4PrAP+iLTC zq^ACiyVQTP7~C|QXEE)UnUL-$q{jg%_4u6T)GJEvPQ9Q;=)m;K)!{eHMjP9})E8OT z>yZ#Lz9GmwnHahX2@JRcyG=BeDW#|&vlh#>lVcp?3hEhbm&ssH4#%6!{>qd?h5Q8| zRW!4RKEQH6xfE!;lI?R)`*)GVfSE~>snh)9gR0Zs`ZF`nQ<-;$1;^Ch5`gpdFYT{C zWD|j&2)<@f*WsFaBBQX!_?9QirM^cLvs&xro89KEC@J+$%CuSCk;i`t3;}_KgCIVdVRb3r|J%I>~;jWG~WUd}Q__ zWY^;JfJcmb?e4GhW@Y6_d^r;K&+$w7ykfd%T)k(1n+EG@d9EHku5$G99u=1>+Fho_ zIrz1e(>-&(Snrv0psmHF#c7hT{Aew%sZYj?s~oc&t9r(EZ(MjLj3ZtJv7!nW7B?>9 zBVAosqhhJiUxDXl?e5LEpgtw2PYLVOhUdnGHk75JIctkCNQdgBiv0hq3K zCm9sq(q}g=B0k+07HRR{Tkng+OND(>jPumTpt1a_IQe;XcVVf7zhPP_-d~K=0L{oT znIu7HS=0o7^mt!AA_XEWrezO8DgupYG9!5qgKaP!-7#OV35aL*rp%a5gmC0lenQ%c z%b;)R-QVU7UoQEt%===gKBsmpG2bThNcYn z-^D!w!9%T!hi*JLm4X$eob%m=5r%i)!R}sTw@2<@!+n}x;0we^?~QinHXg**{qZ!; zRP#4$p~XHxZa7nn(Ko0pk+<14KkCUaWnOuwt+;Vabn6Gvw{wT>X$rt-^8(CH0W9(_ z0HOn>M`++09?Szgt8zX^8eT9yXTdJO*J2EAXXCF3_`_eI2>2`dbofKdfHwq-BJE|h ziw?Z#t3eS}-mmc((BA_+ueia3^MO2QOtkxhVSAgn?j9DXSjP@p&klOe>Y$e`WJkO6 zwAjt~J`4Ug6#P63K4VYygI^Hs-uIF4?VgRDA;6WqX5;Hvfj_}z!OzWrKN|HP9euke z+N}}(=#QyCPwtDoh>?<2|28B5Klv8?KjN`p{mY`=8$YuC4l#n2F76Ni+X}whg8x+q z{z~9~Wu0fvlDAu2bCz_Ue`wg=Iima+uoGa@EWV9cQu+?1m12{-_3SjVuQtP{2Vr`MnI zD>SKUTLI@ZP=8t}d}JQ(cZSai8p_OvQ$1D}>8XBAc#@IcTv}>@MRhl&hkHLY9+5(C5}7&N%d=;Yqc|S86f4xI=oM z`4D&-ub2OTtB6H1?Kr2mmx6n%H3>D2=SmiANpos)@|Y;j&a>S-7J0-@Ei=n+oGg^S zc7LB))CA{1xh*40r}-SRK>U@0j#dk#@L8&m^wN&PCe)c?r4^=?mK{kK@)blYX9?IZ zAI-j;ynS63f5E~pKNYjrpZH$Vo%M|$SdxBm(jf-VX*N$oMUkEy=Df!zz?C(Ro4MBe zHQQuYOF1LCN<-gyY zCJX!Z$##bxwl+}xmz7KddnggI`|A;roA1bPHXprcgp}=aaJbVCIjr`cefW!nT zqS_PP3da7yuysw0&jGjjXxBb%#YIRi7`Bce@|%3fhlH+;QciShnU$G9RszV%YD|S& zF%^RG4_h}!w*cWI%Thx4#$ja zVUP~Yw_zQmI(v%K+37dvYY6lR(ts;aG#&jqzF4}tTX5Q8bu}7=uAc6Rb{AkG2h^r1 z=xIE&r^gp#g@>aD*qI7$5DHP6mAGWWYx!Pe(FNHBn7KALE&Q z%qHZq33gU=F|+1pWmWm4gEO+CgPGNnl~wweP`#N@(Y?&tn3)wFCiR_=uCH{iRbM1K z^_>vZkA`D5%!;FND z(t9dlhwgEZZDK8#X+JDOmfUPFE+TsE3PLD*$hLiHG?j>#x^460R(YJt<$l;T=S zIOCZMxIcte%eQvIhtggEvlDO<4SFUc;ed2YI-y&2NIIdbQ+gvK;Th?NjD*F~306Y& z1Xc#}rBfL@!Kn-|KOXh30_wX3^cKEQ#xgz zu*=Mpjlw6bl$EvY0c6kQlRh$cLL|!l#SV+)H%zLPULb?CQ~bs3hg#_ey9VfpDs%** zJ>mvE;V))aAb>D)N?&YsDF}AThr(G1(@uF`SYc+$f#_B+!iA=#Z`8e;IkY zo{4S+F~EIu(e7s2tsL0WGcaRra6?~WIrlWa~>7dJCBOy?MI8^?MI8=okvCO&ZDArd90j(vK>Ni zvLEfT5es$o#4P{Y^3BN~Ljra7S8xQ|UMwTi&+C(O;jfZ@-kiK0o43w$0L#P@%8bby z;ONBQQpV(B^NhQwj6GnUD%b7i3Aj?&tbPPS81qn+bs;eYMtwWQnpNiB??5lyoO%oQ zsb}$nBK%NgKanAP;?|0{XUl4k*FPUHhCneI_EGXIq^M`YIf~b1fQW8U3Y*ulU{T^+ z@;N3)av)1#$whha0D=>Q^wW@+gl0=jSclN&CUd#+9cR^J)Ivoz4S$tx9m>I#7v#;+ z1JIFOI;5#?h*1mu&oum17U|FoX1_!Sfm$mu(^}JAHnnOi>PHL3a>#>XHHt+Wn(9f4 z_=eN)rz7A`K(W(6v6Yy%T$GsrACI-;dEmATL==vMD!hL`+Lbq~4S6R>QhM+Tp@G9} z&5w2;;8|np8>Dpaj&5~lJPM;ozZEW#eiRm=9zn&N7Xg{85!e$cvV{(=k>rMT7}itC z2xwR61cyDyH91~1ORKPtqt-(|i7C>1_UE##G=RL1oJU z!@HnOJcz2%ZvGkWZ?*d5|D8N2X#MZx;RwC|Urrtp|JZk>740AV8S}^enezuCS0r~~ z0s#Xj3;x^^HTr6oF6D%PRC73zV0dl)qju~AC@CQH2C%Uo)@EE;-XbBEV;ttNXUuEF z?iuF#ueuS*HkbT)1~y!BwX>^oZrdFGvc(Tl?P|WDl^_Q6suKAS9|RF~29^M;!lwtK zYv3uXzKlF@+x?gWu%21yG0iW^Q9G+s(K*dCt`wykYM?48r?|-Z-c+MtC6BF+v$#1Q zY*)w9;VN6v=D0>Q6|Aa1pMuQ++7L<fe>8Vk(1_KfXaV%M7ALD2#!1NI^cCD#HRtMTB2$_hd0 zZ%LtOzsV@*s#w2NfV2jJ___nFUo}saTu@g*=k^7hy9a9uO!_U6(G-S8UkfV@5De}W z%_Mi1Wi}#xpIKDt1TCO4mPX_g@;{=0kv{=;@6k(9@`?3fH$Fr$bMf zc)|YU88%H>>4JZ!N6g9iG)R%}2lbB#;%5JZBHkLPER|rl#yp8x5LPkY{2dqr=*>d4 z3+c_`CYBv|38ylN5KC>-|CP5>yiDl!~bYN`)K?x zy;R}-SE-iLB_hX?)_G6z5hv9LHwgO4MXfO7q&%vGK z`XX+s$~Q}pyDrGsY5wTfTVN<#(AuRP=zu3)4kP>xFYibcw(xF9c?Tkqb&oi(86h6@ z*4CuEyj5Q(f$TbhiSgezPN3iDU8toWK}TYj0kppHz^2ySCo*KCzTVfm6#;t@qj6*F zZUpSzm?-!Qn^gW@IXqJFHi-~+>k&3Hy55yKTKJj3(YOpa*cZ_JhvJB->0ggPdfA17 zUt`^HjKUWWXMvA}A8gLA4;e7@wRX>wC^x>@Z=C(K7kA;K5_#Ul_+woy6+K#LFWE&~ z?|*@DtDx45&x-TqjfD{~?X>+1;2`>@3P=F{K{qTr;8Z!HwF*wAK_!N9!NO9Htw z0kDEU*kr+r(R=|$hy5%ZdxGYp(s{)WzZ9>A=^RnU&|rJD%x1yFRr$X5Y8jTe%DBW; zI5(~%SsR}|BslvrDirgbvDyc+cDhfC`J8e3B^jsNwAdTSVRdEf%SikzMyHP2$f&yf zUm2bDIRgLp#^;!K|0j&kQ=JYD4;LmJKMmv28dZ^Q&;!IyYMwoEd~i^rv^$3e-%9Z! zHwf|9tc-AxJh?bjftfuVL4d-NKs2woB>Am@$14x?!uU`9RLSWd#{pj2m*xQXbEtzW z%)gM+Wv96=49nA7IKDZGLdK2xp$cpOg|U|KvjKZ{;O9n{C!9?C_ z9QS(D=Fr$}<^tx9ZtD%?&dcxbFPEX8K&05{j)s5^uN*8}j@HgTYTuYL*KI?zJA1(s z@RqeNH=j9rDJuVwje{uASYg-PM7dPf}S2zZ}VaO#jAB&a{~SQPbku)?IED__hbL zSuj!f17kP~;jkJBUHcj1#8OlBiIfu&(FNDSAFD)}bF4$U7zDeKE`p(eu4T*vuvdZeYuzUj% zkq05e4bdzuc)SqV5lqzN1u7uAhdqA7>RmD;^lY4_V`N71KGFr6Q0xfnJL@=e5IRC< z@o13bjyw#5yKBK6K*7iGJT*G7LDGfG)Y^R02dyqSM47A;f}|-tP2~Q0nGZ9n+lM4K zk|rZ%B2x;PQiv2UQYJH{h$%%#@gv2{l#xt<`wB`ylHZ&(U(MzoY*(_b7TZK@Y3{!u z<#mWSJaJu%{T;KjFi;q9ctSX9)I4-OKAu;V4@cB053$!?#qo)YEMD8I%J>A^1DGzu zPj>zg487>;hAbh3g`lJoH9DuEjKIA8P=Abs2|C1xP-1dAY`af}bh}Rp{LxkU z?LHaO?LHaMkSk2gBVEu4U=3g*bSyyG>r+fW(74MwAX~nut=OT(-jvZSqT>I5@j!g4b4{~00{Ou%#$qM`-DmN=Xcdik5Un~e`vR<301yh+ zL}`-@u-RCa8^>{}yB`AxD^o4DQ$`ZD)@sPpMYe0B{vM}@_hfzDZ+UG;i0ASeG2*Rr=>$ao z_4T?VtgqeH`uaKqT<7|FgkL|}s46pR$0H;Oq!w4JURCB=k6PXH6spJN^%(;VFK$)N zPI7obBh1+DYJ7DWca+*V@qD_u^0}<_wTp9PcY#_-4=vv`(8}71GkMth`Xy_99bE+) zc_Tc+$i*D9hb!wHT)YKmU+hkfl37zSXz_g*9!VD$*;OUdSmZC5H?2$r11_-H+K5T= zpXNy(qHGPxD;QnlsLTVouy}xbTdWy7y}{YFN;D(AjR(E;giioHDRSe&Q^>6rHx`M7 zfA5f25UHOLdEIG~7tdkN)Zu`PsJ2+=*V{#h)1IZn=|^P4oBuD-SD%@?{eJ*`z1fex zKo{tKbu3E)Mz$BcSD&YN>BwuaRx4nlFfR*; z`3N8=duNesVx#TvAC)kvUhqVc^P5`y2PEf*@RLE#Zev=XUs zFAyWNw&EXJj5oI4qLV!DGterM;fc1PDov3e$?%S>Ps{}b45Lq}PqgKUdO7JCD}y!{ z7)`w!46jwYht5%48Cd$n5%V@X41jZ7`0r_Hf||2`QJd(8pzr+@=iO0{h=oD69?_B^ z)@reRy*!(ypBypHQBILm)w{DAzVNN|#Q!eI zDy@nej(?$BzCQyWFnSLP zywKCQh>s6h-+QF|Bzj-U@8ZqM%3{cY6N`CeNz1USP{N=%W*)KeuStiN}h#RO0Hyvq9lDC)6bsd73$LqJv#{j-3{;&-inGc<9WPK>k368fc^1_B*3|GMKEcaAT#x5bW(y))e7`s%szWB9A z`=DSc@I_a=Ha1$EqR~!h>r?%)Q?os3$UoDt) zRYCX!(%fO{tLA9RwV*OEdsQG&x`xX>=!?$A{W*wXsP>;_TX<(a^PLiep)1z5Ip&JW z$NJ!!*bRHG|B-h`7f2xHOd_g&t=0cuJwo}`28i_k9qEGY{x=5y z;S_{-o-|SWVGH(FjhdOQ=7{Bs)DxaBo0+(%PkQIYuGV)(M7tNqJM5Q$k$!1hJd>K9 z5yRT_b;xyk-_Q^Gu=O^qL$9%oCD@-vjh9-G8k`8ua}m$qUo-QAh%bPXBEYra={K|G zok7})4dt6FUWgQ?rhrkt3h#rNElH%VuXrI0H;FbJH`R6{OcMN5RnqO!n-e`$6xpW^ zQ^>KPG#)I9bnRQUFKfpb<%64gC)$bD^DNXUGNQbt+4hfPya>!$JFSZO5ri2s!=W&a zmGf7u#eO+z5vbU7^K-1A^R^Z5B7X-ACthWC>1cm^zaqkRk}V7p_=}4?h37Wo6jN8Y z!Kg0Ct}jW37>EAHL1r~V^KlwqI_eB-xxHu*I&^B zeGseBq7Tab3J!;82kc%g)SCvp&H-%GS9W{DzD)RMS@5gT&cg~=ls8}rYqLv$U!WC6 zI9$lk8Ss0C;fdibu8~+2r zw*heeVsZH1>VK#BtY?&O1GcVd_~DVP{E7Q(>OBz`wq6*lD)wdl-DSBn^Kcyh#b^`V&82V-qG5|D#kjpLl@7Km1K?Wn&X==A7QAWx};y z->9wh-Y)ORKY>Rp{Wg4dpZ%G_L;v^Q`SKlJ##j<~V>35YTi$^!@@CAT8Uwj4N%O1n z7F9lY=p9a`caTYob4M-JY2guYsLpq?v`dz2ndK?=1HQk(dHHL3c|Bh)J!1cU9DbaJ zX5c*oKdPOF2ve1w*6(=dB$Ja;W$037{#*d<+f$%fH_;c{% zkfz`#v)?}ne$sR_Fn-c>GBAF!==I3>8Hhg{-tn3I-|&{&{7&e@@J{ac?94;;TQLVH@@GqGjFBgSEr8&IBfp8HG<|+F{F&MC{r%ug?e`oyGJG5VY5B+S&OCDevL)&MJ-l3}f9?7Y z1b^z0;S*vS{^5AD;De8pVRpG-4vaCQT?ljM3KwLqk1YD7Gf{4Mc=TZI6WGJfiTv#e zuGE1Hn79-zIdn=M_Pq0ok;Diic~Jhu@Ls!@anqI@+Jm=RYy*~1;J@EJC}}>XQ4Wc{ zgY+ebe(ya0nfaXc*^)!Y<4t5y^x$A=Px#d6!9n4ZP!X&r4&r>qcr)Oo^Z$7l9-rpV zGyE~1D%s9sQ1e{S>`|!)jf=!9TyiL1YV{aO)9(ExvMxE~mK0S#ma6KcpOPK9@7Ug}OY-!3`y4=JTkT77``@gns_nGwj- z3;0Dozfk#OFdJZqisU}gd7&mr*a3t+OAdX2EA?lu;RVWr@s!sKd+$?_SxWp29%D)v*uV*f3s??(-mDoc^?k*(v1-)Qt(GI zU-A;XrF_Emy9ePL)w@D@H$lGi%Q~gV2n5u-ki0ty?;QC~!Oi;iJv1=mJ?eKS*F93j zJK6iHmfug$v+8U#i~gCv(a9f6=TFN4;sT=vMBoY3hW|!U^VXvxUyAiK^lq^Ad^e!q zln>+3;=R8<%s4bLc_*Ofn1TDKKxS}E9Dg9eN=S4Td_e7zfTpy`X7Cs4^?JmZHEqX= zh_RL(YY=v+g#`W}|#AaUzHmllQlm{=ctI^7UE!?F?$O*XK zx-Uo+Ze#rzTl|e1pz4BqBdlE!oov#){O}xjO$-!Sg+{Z<6KdhxY2g!QVbZvC@D*mU z`J_2w&tZs3D&2FV6y9D53l~(v3hO4l*n~Z$d0S2TRt>$BAn#w=6tcHZqBbDm5+7kM``Ad&;rmWfLt=J=91+jBQN9l zV0{0p92m4m)*=1UaW$7NUljQZAYTf|m(KZByC! zj6743XX>0^wd6(&yqGqwX4>+}kw)A$jH_u_K1z$<04hVi2IOm)^Q$fd*83_`R#aa; zuIBRPA1KW{`0o{8uD(KxSE_e2#?{PNz8I${%VW*VFIUgh;*3m(@2(tIbLH}(ik}$O zGrw3f^H(`AHPqrm)%&Z))m*iFq!#ZLj=@-}h^Y!?@=@j)x6p$M_B(h(YbA-eS+Onb z4JN`c3rXCOXP)-ke?TRS_$SB$$8Udev2R>eG28Jgq|gMhs>G+A?Jq9T;y*%)cK7%2 z3vDtO(@mnYK8F0qG;UNysknW2c<|PvDzRjRdULt@4rG9c(^9dgrCCV)2q6_2UnfEGJ|oueaC`?`yU=h##UI;8gmOj~4b zbknqD=nM)Ci22t;HXA! zQsrRs&Cy!|!#a|yKptvdlSycVC?mdR)S4|{I{-(;2bkGD{uXfZ*nR;^Ms zYQc(aMQtfaLYn3&6fK*UMXZA&qd0?@Ac8e{BMbIUocR)CAou%ft7zNG%*b|@#!W?=f0G*^2tP>@WO`WuT>$TLCDmb0NP&QINODxf8OvJabMQ@}Fm1|1RT&s=V zrGRbo1#FwgC8_}-J#%vaOTULQ1E}) zurssZL;pLe(G0eq(p>Wp6HeHSElH;R^B^ zdkrsjU-w*(yA9*zT3&yjJo!Yt;hV#yIi`4}XS|7z9m}ZVR?5euM)Ki~aW*>%6^$sd zk}qUbQ4gmY)0GTjdkTbQGo%P>g)PJT7Zg<=oyYORc7e@H(?g}lK!LXd-osNSw4;AB z=%BJpEi^E*9B3r?VM2{9HRTRNd3hkcUQ1sAZ#Ga;T#5AI~;c2 z;jn3y*D~iz?)ZtY*9!?idr|{?90B%UF^^jHiH||aqZk(0vs%NR$lyBX@Iu#c$TS3Q z5O0}%ogRes4Tl|;I@am_X1?AY=#RJxXt7s7cCkEso2@)N&8F8qriiWXh(us10!#Hr zjKEV6h^d*2DN6cCp(mhzN1@xXppPZ+J+yS;wHLbW3nl?SzzYNWC09a(;&Xiar>Efs znFjwfIxCC*X$h=F=z=s$pdK#vcPmySH15}VPSb)P@LD=|yxKkHOFRli;jmw*0z-*` zml=T*C2%NGI`MyU4xV)vBJV^!+aSw^B&R?syygUA?>N052qT(BcK8RRKxB3*_9dbA zEHxC=!YoEQH;ByR0l_z&mOpL=O9CtFiXz`MdIu?QS&^)>C?wM?b2jsLvAY+9PI_4a zAHs(WZo8#>nH}wyBrEw_S5{u=E?xYWmT2{--?EBIDDYtuYnJpTd5UaRcQ$f6kl02no|w> zUQ(9z!)c%&P7NrjfFX5d{R`dwY3TYam3b^OkF^9cRb)k>yMo7ocJS)WM&Is-v>YDw zL&x#m7;9f396Kud1%fSeHb~@DphjnrZ~8IluPlf#v-{F~ljv;$eF(2TO}g(H$@Bz& z7hjb=rUcId1Rf9&5Z)-h%8K^W7akAQ#-=R&p{lKNO7KdOp;8L$=b$$<^u{#;W)OO# z61_2yzPiCf3WpBayAnO;fFC4j|KX*D1BN^HHlWkHOOpO03I~kX+kgYo83N!|9GSdT zWA-)j%yg_InOgN~7vTLf57~W(+JQ*KOaUm@UW?}}l#k)Naf0w~?PB+}z##PyP{pDCl@|@Dobd$@w3fiTh(>1*DjYD# z_XXzjD&-$sIAE~viyX{<_nStW8Io(z9k4ovYBI~4*bvN1J5V8(z%-4!k}8T$@~<=lP8I7-U;!k#+9=`W?f6ziXv>zo7Y zb(o-#N15wf1A)Qg{<-xi!yu%dyr-0tD)FT_hyAaU|!QD4A%&p8jj zII)*ySY|aMk1GHROqdw;_~zOf?x@$><5*ZvWuHJ-g;d2N9kNVrBdL^`#H9U6ufK<{Zl~vMG_@0isEtaZ8QSTb4j?Gzv5qp1Nl1K#z%MgJkd_Fa2vH zOOpI6BQr4kj6i)Ozv2AqBKepJirme$xVS&KOam&%>}$YF^nqzmS;L|lSU6xHu}V!4 zdsO7NqQ|DTO>IWwe6$L$&eGAJeP24O=3Sw4@Vr{cMXqg0ze0$k-eITVr7@yh;~YK9 z##sW_i+6F^9n5(La{`mABxO^PdnzB5pb#Y>cmTnJnQTCq1PGHXfwL8anX}P6011dI za5}1lGl^Fng#kK*wi~_U2nBo$EtyFNlnlcxbpf7Y96e{!fdZxkE}p5D@I?V}1@dz$ z`AlI;6b9%J@&gJo*~x%R#}cS9Ad|BU$aE|LzMN7Xt|L||4=<;q?|xT}-4GSERz=a# z?}r*Bxl+X{>LV3JN58{}IzvV2DvFMNtr11r`Y3C^ilU>J8Bw~Beqg78t)@G!Q4|<$ z=>uzmY#R#ms&-ppU)zE+EP-VzEvSG2`50NP(4i4cKaOB{%L^Ul3+$GF=uQchHWUoh zDtqB@yYEZRWJy-#C>-waeTj6m+!7jQEg5CC1ZWxBQa3EK=cr6eV5mf-m5jnBTCO6} zdyWE?&`Tn+N=9L8r=@)4$nH4`?8mdkGpb+VuztQTb1Z=q;D>ItrKW5*%9yhb4KA6@ zUr!guGGLLE$OVX?24>&`EIGvoi2Q)*ADZ)?B<8R8T_CtS*~gadK04l&lk0u2Y{D0a zn)ZN$_&J}#=UZX~egzK#eGCL%^xiZ150=Gqn&BH$GMf&lIm}4kE8Fl5AW!0#K$y?B z#0UffQh+c}kgJ9)mO1ju%HltAU~$eJQ&P(>hvnYYk!nbyTk00YXa~?1pbpN&itdBf z0rT3yThqyqBj)vHL3ugS9x)_90#@Q2-s?r*fw*HT&;J{N03oOQ5s;FPm55A41>lit zMusSlv@vqB5yJ*YzQZ&l&9K)ob(f`P^)6tlw}AUdbL^EBh|p&lnrnuZ-GZRMAc%N! zq8Tb{3K4fA0{HPl2_K9-d_Ybquze0*(@4|8x2K6-suqL}p8nzeJl;^F1d|p4r6HuV z1YYKrfoot(;1U*6=jdpu8{V<_Bd8U_uZ3=b=yff&32^*FP<|~*5x%Q&T zr&t09cQRplwibNH2t3mg&=E+)$t{Twn>Of}>ViravBYI*?2gxv2!gBzWrf{6@Bt#x z_h)m10be`MGV^16svUFA+p_K0F)QXEBig;30d*6mnuHw2)CS{f@1Z*|ranPD3B!5{ zhxIRrlwo}wA8KAl-!R8@Ji}_Ekgi=6BN^3Pv0<*18*l|xwualugnRN4;BLZZO1S?0 zxKTy@$v^V%Pc!HeXykKV1b4-Isb;ODXlJQeVI&RQ_qADHc`FB)Cmk3lJ=CvPiH7r4 zn)JmWkj-|Ub#c-qVe&O9g9#^iN(bo|fzO+yyY0fn3yJbhLzMU8b`Z(Z}eu$h3e~h~Y{wD0plm`#ROw2&a zxWzM}RPNdO;8E6Tt^vUx3wB_zYA|cC8-yTp??2GuIg<*o*{!Aj4|Y+~-|rVZ-Qr)9 zT8@iANAZs7uTkNt0byjDLZ44DtzT&>}2 z>|r?X;3z}=RR8yFJyS`6H^76mCw`~rlfdot^6(46Gr;xp0IYQIfLDRBhTKu)UXL1C zYQ`})UmhyO2YIyl3PQUn%!$Ur>LL5xa@D)aOrj;T-jccAlKGltc)ex#ddu+FB2_Qw zE%q7^_CFvm7(#eL)q3Ksssnzsn zd(( zk%(+`6o%ka?#5lfRNQL`oTf@#iQVH3wrSp0_Uf>;dn}_mUGzDOm7rx0W4$20!E)8g z$eZ}C!Mh}UFAAuh{eWM_EJBR5AJKt@Ql)Oq%m#3H+jdmDuRbHVm64zVC&lHXI2KWY zFkzc+BwWRC11D8PAQ&E4q5!g6>7VzXFb0_H^q5>5h6)sf1SN_`xaI08YF?g)0&0dQzPy; zsFAje=v*YOkBnnrjDZ;Gt>C|&h=XF*twiR)s+HVkwajcnBVw2SI3dfWzlb9sb{3yc z*I=8oVQZTH)~#~qPt{D``TxGW;j6UE!=7_+pYomO+VbFb*fx=I;XNj_kNvBy1B$nJ zoLH9fpyH|JA;`$kfRHQ2G@o8-gOLwtl7@OArp5CH1o%OEc$Z_TGe6Au0)%&YMd&8n z@9gkYVij2-OkiTK$j5miJfQF;Bh45v;8Aht!Ra5YJ4|Rmo>WlJLbnzfcsK!H8=?U6 z7O%W#5|alQOVC(r)VT-MVXc6`2<-kqO{A9%?2#yXZABh_^am%<*fpL$r#We$3_bl( z+&|%&#ERg}@>F7$1D!(pvxf3a=s5>KQQ->&Og=7ZGJ}INEsKZPdf?$G9MXo^E};!+ zmK%0v1P5m@&Su7)tKzJP%MK3CW?ZHjcM{|9AVk=i795<$C|IRdAZeDGR~j0xG;on| z9WOG*#V#^n8Dy)zYd-1?ckKC;Ke^f(87WxEhe{*-%ZOYy$b;HX^ujANP)eIvJ`XO9 zE$bIC6M{w~D5-ysc%KbHnAn9jSh5h;P=-?=IDjs9=8G-wShtBi0JGa%MG1*v&Ba-i zoS5=fu|9TH@~RSv;Nsen-0nGu*U!07-Ca&)(-;%FNyF1F7@`dbSy9O}4YcgS+jNZU zY7DJz?~AK?B&-OI)@YmcBwV7&u+BnqE(jN3F?ugLRcHU8K?0#sqiHX{}Q-C*27Lc>r#po?9}HYoE3`P7$3*- z;Eu=$crj{t7=6@6er?pBbsOWjRlfVU;Ab6(5a#$0C zuP}pgM+)R)h+%YPXb0dD&`7`{r9^-`_2!FJzm3gBe~L^@mlS;jJh6m!Nw@YPmEMl1 z=;H?c0nK*(_jB2uJN5GjU;=uX@(^;`XW8cKM%S@$C@~@7q4SWC?2Q;b$k0hMjruT_ z(rd=J`hKgz*D|~@9=>Fl3V)vAe=@?wK04_12Viy+YamPC)P*lc;l6^5yE;Ie02*tMcXR(~#Bl73u2$5x&qAJL2`TFf=G{ zGrpq>@uT`BdN2L6YNPuVQb@Arie6FAc48~wqW%pHE7OoLuY+OW)*9`_zG_Q-*K%wP zU4fOr^4;M18gw$YkWHMZ!?A7BU34x7N)mcMq>)(IMOGrE(c=>3OJKSgwrU_z)Z{ri zZmrBTRHok~U`SO99p|_@G7KT{@rlvZtE3F9qn`wqO>n4PMJZQUlU@opx;Ks>c^}@a zMEGzvRq}l5v24(>-C-M>let?(==XNMS9~o^&zF~Yt)5H8Tw3S^&3HvRn7OOm@4|%_ zt^-CX;(~Mhxbo(2G8eJsoKv}tOya}}qS7vFX95A_>?38WA48`1&o%u( zLGg=;>I`6`>p~3`ixVBhe5fqE_ts;txE>X|V97 z6@NeBGm<&0j6KkEAr^un8&1%|5PHA{)3B+n)^>2Z)^)djTnT2E|9r^Vi0O3TGwvI9 zu$}2Xa5nH%qndNS7@rRYf9(I`_}q$JmiX;~vw#;(d>(?Q6+Yj8Kd1IieLSL)@cF#E zIg5AdR}sK3!ROtX@GyM7z^C9_8JmF5pC7Hl_n(RI1bnU!R^iPIKPo;y{!{~>pK_6b z&vQ;u_`JDKB0lfeB@v%jAeV{3^Yv#7-{bXi|=z{s;#E z8;;&Rhev@H{akVJ{*Aah^^?Tisvk!;bUnz;wg%!xd0Nn=d8YHlcA&2fo>HtjeBjA- zUb3(jXPLF=jF%pB^atnjMZhomL02glj+ zDZo@j0VX?^fEJmKlrg@}&!slT;53xZF__X@#z3T}E5g6em5t2Uz$lO|=T8jCPJP%o z}X}ZCQ;>~;Y{scU%?OVN!8S@M3yYMEdZ`DuNw<@u|_rc@~n)=iA z9Z0yLN!UNeR?r*}O|DdPqfY7B}UOOG3_9W=Oz`SOh9+Z20t8jq`;P|PiKv0?Icx#lvph$ z4*?w0@274#5`Cv^d>3DBozPumNGFrH!C|9+I5W3kFHE-9Yh8cPzq)uHWCEmamYQlL zi9W0aKj(5h>m)2w3`c_SBevk9jAvCffLLnIknub=VK|-X1v@aDG5S-Dr|5|!jVJk| z9MA1=6ULJRug3FT^@Z_#O?{c;Nr7e=&lglU#`8&j`8c2$&p*SX6-O+0jzHx&p3our z)#Lf{?P@$bofaF<9a`{w??5%2my9)*a+AFp#kC&Jt3F>6!&6BEy$bqc;6uy!zGb;{ zqoO*=UH(cx>y9lLuZy(cZqCc{;`eS{1$I*^KPFTJo1;)CC}l}7ZXDbVakX1VYN5eA zeRR`8nJa;EVbAz-Ye_$=cY~Upp8jg`YM~R#L4t9;Cy-#F0!)O^MS!e@uf%=iIuU+5 zVZu{t-t%N4HmePMO9VcDlIoQGr-1HQs1@I29aB4@kduw~Dsqn!YMVUWycco0vFpIQ zMr$LTI4hON{|hH@!a38U%j3t3+NAw4|7Z5cE~At7#~dKs92t(#zqCK<4{~(5KOTpc za(`?u?mqocmfFJhin~?+nr`TN><7vFW6rPHA8$u-?A}KV;19y(g1krEje1bRf64xM z4O0Hv{qev9Xe==Jh)ZP0;SmQYJ0BZhehMym{7w1#l51tQ=c9Y`&DkD#w-e{M%>4Lm z4d3^^4k}*Z8}d1jA8~&b`Ud;!9$}z?zDE(Dn%>v1C0G^%StP+DW*;(*a2#DAb3wM~ zmr4b2L4w(WNsqJeI?qIWShXOI?+seR7in7R>mCRZBL_9W+L&+R;lPOJ3M8K_9OhSS z-Pn8G#1}lZgTsMM9y`6Tw5}r=GLB>jnW}h&Fs3(qD_EIe&V)6r!_8XpmfOZbnzp>5 z8GPro_7%meu`auQ_bNAjt>IuAWZ3a8gYz3)*R|178?@rL@jSyfdbWeAM{Ry`pS}*KkHPGZr zL8`dCyEkL%$~|#LEIYSNmVey`+|X9YCCCm-}Y#y zwyIVY`!L|KSRj^!VhdBe<7?LAW<|^Mj6Yg&`JOr{?r-Nwap1{U<^{Dp76+cZD(+mf zIFScyjP#eez3k~z_hlS^`2qL zwX;q>&ghI>OHC$s0Cq^Ksv&L^Ds4f{#v0;ALDldQvxa&}cg#E5&{O5I8qufY{4v(o z#(D+Skp7p(lP{Q?%r>(%JJ+L8&BKO$1~R$&v(J*#Ps2K zn!WW)$Fs*_<7xW^<5_5oXWmbZXMVzX7N{C>Jk1$*gz-F(_p{@fmoT1#sUDBDZ~y}f zbPs<2C)gcvKc$h)io3PM&F3ii1$ie`rg$;67&Q3~oW>W?7Q<6qWC8mG72# zzORUh!@Y;9d{;8x$Gws7a>4_p2i)870v6W0ka5e;$2YLGw>#ZcLos*;>7ZMG>-qg2jF54yeGRHnCb ztU~QhdGcdQV(@B*_b=_r8TT#5m*)WZhtbdRHvFg1|6bhx{XgJe9rsK8OQt{EJBWDw z8O$IM>NR|TR?VrNAowsBJGf$Vv6d{-kA#Coy>MI;ZeTT9ACiuehDHn40sf2Rq+0-;N295x9fn^?=_@H z{dyAK=AM9eZ!)}p65g^)ReP_D!Rx2sofC&QU%`7s!CT2}_Yxi-07$6cZy7PpfcF}1 zZ&dw$Aej@s_#J1gy_E`Hv4S^;*<4aTXSVN( zQNIq!@IGFQh&M5s9N%Fvc*7OEi{kK}2Zt2>y%6cqf1fbh=?Z7AU_LY{>7mNO#HfOlC8-YYyBhA+N94$rFKouc4%W43mL zcT6(8hB`!iiqT|y7om?-{ccq7isSI=Av}uq-h=dL@9~89auMK7W4{{s?>ttb_Y(y9 z;JNq)jvUyPZX8E8s5JeU#%rXxpjDcORGQ0~W}uO#W2-c`t2C!F%>_o9&AG{C4OMBj zyo@v*jWi9d(iEsPi?4B5f^(yMVLb_BV>HT!tx-Kam*k-NLPG(AkX zaK4df5)%=xlPwmx5x!)64@3%qaS#ow^uKR>OyEvMe+YpHc_TcOI8>WY&|8cDV5(*2XxVK9#^Zf~Z;* zb{EQp)dK|RRfv~$gDBT9$YPCZ_vT_~s+3xwAKt}>$^hSso`56BC*^tL2Jv65VF%>j zHuw*ucZ7690(x8?f}pn#K6fW2l1q}JmlP|{0ExX~!#BelPVX0jZ-lEu?r zJwWGDnHQp~JNyR){`H3p@IR*BR^UGf@L2#4-DK#q#lgoKa4f-F@&KK1QU9_@!MAuK zh71b&w7g+^eymUXy3nV~Rpk$+-gc4dp4$Nxw;bpnY?(&?#A^Rcoq*S4_#{*|9(N^D zz#3J+j(7nMS9ts($1+vIA=F=$!1n-M?4P^iCBz!gk0oFPnvMP`8+#PsCkSxLFVEz8 zPo@T%Tdf80t~z@1YqKYzJD1|Il!kwI$bqRdaiq+L;5F9Z?;+5=f5g?L!5h+pSEM;c zI<5|$TpGM4vov@`c4_dcEXSx-s=^fC=Zv9!o7O$@=a*G|*G6sz-u55D04+vx86ch; zThFi?nI01?G8x@ctKg533_HBnwg%o?C0-k$(hBJf@Lzt!sjkBIqi_Rj6Z{vW_(VUo zf)o80V;fEINAGV1?<&?O0p1PC>E)T5+L{fHU;~8hu?0v{3>51!LAC_&Lm3ZMiZu!G zLlFP68INV*2(H2tY^aKkLur27Fe34ZLQ2J?sB@Jf78m2VOx}!Y^4zehGMK z?;7k-*d2g4w3r@{yF+cp_Ssx|VT$LGnSam`eA^Xlf{cjp>)`f4d_`7a`z!Z@uNuD?6@(1r3~$ zKu6E~C@ELqcgTfZdu~0V@%G9ion~z;IV>QPgci48-yOC*F zN@{*3jnU{AlKLw$Q3zdvfOQzN#rPP7Ey~(%SRN6_)eVtNl1$P6N$^f+1y8IRsC__2 zIdUVHbkbh}e?K;#as4gxIc85|#`atcwWY4cR>UF4c5)EY*%f>nme0;$upPnp?h@*o z5gL>px~S{gQ2(^18e2V^g1^$Pub)5HMp5@tJU;l6tr=ljSh=NL>r*4a8XIq(kYzO- z{sr%{eFX<0oay`v&b7(>49^v~h~eboA3oQqFMhrk|KxP%A3}Li$v^#v6fPo4$A<1C zXkl1K@@pW?FY?}ri)iI@#sD>RTq}#nRL>SguXxVD0Bp&|LIUz4)X<$$S#rY#cwlm3 zk~>wBRtxG6NRl+5ea-S?i@2hK6Y#G#$r*aaMoFiN&||iAai6hS#eK<^CGIj?4qVJf zj$eE}l6EKpw#OrWz)(O_*fT!|mZ?Uqh?TCRD-02=KlsNQ;o}T0thN)@-t#hRxmg}6u5SY+UW_1E& zSm3-LuCe)8F(4^kcH{yxp(lX0^nu?2U)9)VBetzdWMC~Foy!HfBo|n##`b_pPz&cM zs0WGWszhAGKY_t&Y=2eh?m9X!-i+nykNxnIn2gfwxlEbk5Gy?YK$TPU>4#vD3W&6- z6gA@N)WUzY%|}dW@SD=$55ceZeX{T4eb~TiY)cTzq?L|+*!eax=y@YZqi2EPvC}gj z9(~Y(pRAFkuEKT(G}C}JF!_j#zd5+IC2~4;T7xc$?`0*=BrU_p{X#7GP)hPtIl)Y) zmWz-L1|6IWrRKQ5_saI2X~2t5DwW`ZWmG|z%x?G#4fV)NUhWXaMW9^-ve~2h0d=Cp3k#*XG0GC z65frM$5@enHkaNQ1BI@92d3*E&-a}G;{JHMD@!P3y{r)L*-PzIQII}{c z>4DGHMPPasnG>RIu?8u4zW?rIi28jTn|+Wkq4wd5YCu+pa{WLbC0^^RuEb!kqLi(= zwp>w)M25gEt}fHz6G30Y%`)5^!_76^e8Vj=T)W|FbYaY*(l>fYeWSA~rO`PI?;Ujb zaSW6%U>!K!-~8ol=fIG&@|>0~hguNWpj-WG+xwem&2|pLgHD6SoHM-{i3dsIwK@Lg z6|1h3dc%I&8N}ep_foyVu;=;Gs;EX)n>h=P)~( z9nU^IG5hJv&Z)-I^W)hczmeG?Pr&TSJsS@IYZ*Q>9zOO`75+Ryl>kMW_~e>y z3ZLB1h_8Y5#?&f+Pk3Ss45y_u`m+ZU#@nVA9?7Eut67UJm%s15Sth@$&_=W2)EeMpI~Y z^694l3nI$;qPOIuNH5<}hmcn4MdaM59!KI_eW*$!>&qOGf>?Z(zGgdNKsn~kc2Z8d z{%#Z@z_24wDavPrjtBBRywPINRW-T*DWfkK6*uvFbhE1ebtr)QQsh#MkK7-l#q95= zFIJ7;vj>f@L}c`Bv^TatM6O1V0#Sgf)kbKW527dRlX_;^D*m1HKTrRM@JBz7<&VCr z=1KGo!!_h?4)ZTXeF)?x0{J6=z!RAR*T@$#T)$MNR)29D8?SfWqqr9~43BTVnNm{`g?4MjvY zbDo)h$?}ymwlBauuyk+tS@wmglTU-;tr@EsVy-{OH8@oH5P)~>?yyxB>=lzo!1yit z=nfHTyD*I1Kmd*4@ks z{Hx_O*>i!DQ;^k;(9U)d#i`UvM)K5FW2;4+rH1EE+Ow#Fpw=gvA9Ol({ej-M>ZkVM zjPxLNs4BMt_LTF5j@NLmGxlKU;s6Lp#l1Z7z(&iHD3C%`&_vYVNQ<<<3NZ5k=i!Fu zMn(ef7eP)6JL3TjidI?Co<=_yYuLXE60@K26(iAT*=gwPexYVJglZY>g_m$p6Lt}( zht^fnPlq*cu>8EIvn7?6p(Wu-x%#ZVSi0d!sNW%d=~W06qq-^R10>VHC-4E9ekPNL zlt=X6q4timxNj03hYVbYUaxr#JQgj-QbSK%FWLfAEFvyMlbDq@&m}DTz1~LI$D-`e zT~Y!BD{?SEmc=zT5@SkMrp5;CyA+DcEP;!oqEV?*+j#vC1cFf-pH!Xh7{7L?0cMMq zOE!d#Y)7k3p63Eq$7NRM4jxJ?05M#d8`N?s_2Mywb|$hGJhRETtprr|ch$dX+^RTS z+`VMns?3jSe(2Zl1QvJ)sF;0hMIQzJiZzJtUKx1^A94IGK_vB!`NI*(jqGI_ga3~i z64`_$8uwR4!|)jNZ+Kd|-ZY=6yaH2+HW~UNv04k#_Hd7tTJdi0F_CUu=g^Ky*YF5C zr4myOsYL%u%*GGAUq#Z9!l;K99-O+|il%76k2U`flo{NH+0zDAbUSOs??be2n^qj1 zkfREsv>=b@q}MAo9HzM{BjeHjnA&_7@(Hm#sWV-?=C=NLvQnh5^*{G`x}{*fR0t<= zNZN%nKSORzWu6uE7iHhT$}TT{-*XMm$sNB2?QWKF2f9u_`HzRGuSe&}pzk|?=~05vos+ftzl7x@Z7@&4CBz&1@SgVG~!BAi2-Jd)8cHZRcq`rxxD72Bfshs%9!>9O-r zi)GSM#(&url7*kcP$($mRr<@D>RO`Uldp>H6MIk$_bWg0!BCr|`U6rC*6$G(T`wp& zNggrR*L&~-kS+1R;9*lDncD%B=Qdh4g@FNxlzydOsuJWYrz_L> zSK~aPoBLe+youxv-`-Tu9J9WG7RRgXR!fbCQ}Hest$^N9egWo^OR)NY;CB6k0U%m# zM|>@bq>A88Ru)^2(C934T|*R@ixL|qv?gMc6$^j1Zh<)$L zPcWDR5w?x`n;#Jh(h~|g!L%ukt3ZX1lEctU%=Ue3G_dkcxXe5+9rGF13~@q^eue~? zPtlF4oz#pz0DlB$SXP(WAE?KrI8Rdg-TVT8Q2>CLXvCD;^&%p=0V^cFJ|Lruw{M{I z37O!TM0uE6z!yu)(NI@P8d@5>8mKNwY**yR_=GRaqGPoHg||mKaP|QNl!Hz0Er77C zuhJ(FP+M$Yn5bAu#u9>h9e}D;gH;KN_mdT@eTlxFF6w?`M0zfZxBjfsR(-MXKk28i0%QuT(l3|t z6jlLSAi1-RvTod{klY+8OX$nsUSX~j>=0I;x-Eo?Hq3Uq>>QUgDri-NuY;m=*b833 zR{i?FY@tEJTo~5u)(B%ESSFS5=fNEUHy>^l+#Ya8!YzVZP2TEt;A0K#6e^Z(nuz0A5Lth6=qx(C62eZH9x-oz#d3zJ=_5Mvo{^ll0e?5!n z4Q`8nlRYV5x_^^T1u)APCcDhvyvx7IBB5r$JN`}iNdbNQo9g2MeT1a0B#0a2bBI{< zIwUD>fO(1{JP(qkzx3c1%Bgo&4}s8LTBUlh9M}|RZ&+8sk!Q1Ih1SoqqEgd0XKV$U zy0ysRzbw_0uh=l1FQ8C9)&cBwH0gs+=ER?Zyi$Z3 z_lw)$&Vwwt?Z*@Q^s?!zmSH(i(+0PLKtrx{Y+le#1^qo<1XsVzQhCRdcM(&5AW5J| zXeu_P>kkRIk{lk^1D;=+OAHYUfkEa9{a{1!eDA?H48>QiK3caRmcRZoA5q{ddg`2;iz z7^Sl9Jdz$S;oAG#Kg0WCd%x)^fBrm*KvTxGsVD+r;z>$ z`t9_ei39}yO`Cay9leVP$T0+?lTRtzJ$fbCsiCnrFU8dwFrZNXH(3Ck6$^l!Zk&su zeUwfeVD7J0W&Ox@9$CZ1TfN6eFRG25kF4dzpZ>)8h|xSBO|@blO(&9uOL~-U7F|8{ ztEXB<0Gpxk$ai0|^%!sFh`z^-;8ZqC<(Kqmq6tE8L~?NJqaQ}!Pr|-vKSi;$;6Ygu zlocz|zwa71umB)QHWu^>9>u7}L5vKGPi_4vsrscVkW>r;xt}BOEENb=9|LJ}Atlw< z`_{WfcDT3DL+!f%fi#{yN2Q?|2Bx_}rAd{8XS-um8Zhk$ho%{r=6sdrW(8*pe1Ma$ z($HK3D)0!7N(jUuff;GD0p>26oObEV8WpLjNE&Vc)X|mu$&CgN8C+?_Dkevoyy66| zw8^Yi+-dTa|2-UPaHS99NK=Ou8(9&?UB|dPXnn@V27n~(8U{%^BtywzKF0+J6oTuM z9r}4XTV4vPIo!J~QjyHhVJ?SB5x>m5xfZN5h%`WH{3}?smo;k`p6Y~t#nhz*i3knO z#?D`W_`+St`zc6xatEff+~8K0`odP0Dn$6*NMceDu`(Sj^QGfhrp+cr_Dw93?-Q9t z(nN?sCx&}FSl&3JyeJ74Qiv?EkCX@s616%_io|zPJKthnyOenyIM;0FLO?LBWNuKw`*f&|%s}!Y48OvUqs95nj!38m z^w19vw?v;op2#;CdKD}6w*+_)L$VSkn}}rcYK+<~FYK>M-ugK@ehKGHZFFfef)mnG z(UmkIMq(3Jb>*;=gBrI$B1wo_9KB=o?nZqQbl^a|jDij8QT|OC{^mU(KAfY8`FTON;;Muw3zaY4IBlOU1{fp({XIPR~KS#H~ZzN>}Py zfN~YD0!){s;v>NK&Tl&^y|nG9jMCJTN>eXS>-vVH>#87vf}=7()+hGp|C0KWE~Ys~ zaGR>ygG_AC00^yCm8HSQA8T3q9?M7sb$esP)rjC1#HuT@3_&ugb6JLJ zCg%(0E<~cZiDSO(irw#q+6Oy?%F=@Fv`|?(E-vuCP0*bI2~-?M-PTZ9R?v;(Sy}dM zcXmbScVdadu_71fNPiNBToii;lYlo<_sNpM^OMo&5fVYh(a7U^URqmgf175`G5-}CwV7APLryP<5qSQ;fapnH$Otc?k zQ69Pi;ourlKd2(q7dfztoljE3e>)RV53wRtj&LL*kFOjiTd+o8Y(a{XM9)h2EePN1 zxljwjgd!|Hf<2Axr$Q`FpNIjb#c9NVPl*F5WAK&bnOGizO@S2e@5)0C7%8)-d#`hZ z>{*TyN0xUuzO4ANdMiO}+cOn_fJ zFg?H`J*b5zLYE!vQE)xmK@A%C4CHQ+odNsnb*|E$&QkAJBvQv* zonc+5m;AYNmH|vuE*)Vi4SlkW+)J!L5XgW4g0ywyP?R$E2D(j)cCGMgI%n zFD(17z&~HXCr8Ds@AP!A#!4K3wgmO32t-PgQ{!i&vjRJ^)6Pz7at={JRS-8x+2vo` zmb87Nb6^V1Mm6c{zl~$7+SqQ%_C|MlN~60Y{vVUl6$viKx6#S+AhG7ds6$jqEWFndvq7WATnKR>=SD^7&+z zrzc1jJeM^MpIu13@Tn|bS>m-GJdstF?&(@kZ}1~P<&>of^SOp2i%Uj4C=*>B!{@%~ z$77SD{t01b_@>dzcQ1u1BHWiIF9KXE;L@It_i^9!Q-S^X!j*5@sRAz(>KsOnOy;`6Z&lHHvtG8V?UoBPk`046|JV}V=KSN*d1!^v7K6e|`A1mpHY+Z^W~)7u1AaDvz10-Lc057=!r@rf$` zzYjhJ)Q#m(mgYTXayn=fu7+c=8qE9RkUOKKEW^74qi8L3TNh0CZrZo5UhiPmFOh!U zlT7b(>0vkYRB#Ta`KDm?72wkuUwtmDKJdUw68Gs=ggl1InHGI3w*EMDY0*V7KTrO` zIxPMXcKdM9ev#+BXEm}($MZf93>BQ9>490a`?N3~<01e1v54@$10h#siL=rY;AI;& z_#r)=;P{S%C*-OskaZFZE_hX%)`YzSf1pRQ^jo*V z92WP{7S5$HO_0#!?{GxZI<}vtAHYhm@&+$m_cr3v1JoR@d7Jdw9q}EMyhZGxyt_&_ zN{Zuh#V~YRjeB{sZ4d0GB`$-&SnRAC6LeK!%N-7PI0~kszA!q$(>=IGUACNV7WrQ( zFZY+17dFcK`*x#=gSA(W(x0~__vhIdFp>H>LVxx@tUu3TIc9&_&B8E|x{!wZ+89(MSBS5IL^~+w}++2%j%i7YKE4;bcZ$apGOX42(13xY5Be{x(?_ z=`hBIp{`^w2 z^VQKk{Mn4CES}AOcobK!AF{plWqiA^B^qFYrBa{hxA-O=p2P)*`-iX0m8IOD9iOH9 ze`0(tdqs`UNv!iP9-pzd{q*>(edAYl+5OCb@%aPXUpqb{er;jhn1SQ-#rMYeMNVn_e{b z&v$shFLY-v=;B?iUSSt%sJ6DCUe$Pv&>rYTQ0F8Djjg27oe4T5yMynB(|?Sew%l2b z?o(3K4*aj?SEVcZ0`Ci^k2#DnhtMp9f-~aIM*nBWNq@s@lKzI*xEMDR@AGd;=ja%* z#_hG~HSVtIb)OFCr^iS4bZOxK_WH%?r^NF_$At3)9`*!%mEqkk_;2!N>CcNm?vwF= z*TTw9DRiHLCmi2Y^TNBD6TN3yrgtfOyk}W9IS*y07rIYhph)N>gc+BbR6S*$Z-ee4 zWbelVu5qwUm{Cn`*+($3C=LX&B?n6p7o~1;TXE{`h|hd}Ho5IMw)C0p?uR+q4|BA% z4Tu?Q)^Ag zorTjTUmR6a>?M6L&^F$;^*jY8U@n+|x!(COz>m9pXTCi4_&i$-xy`^I<)hv^1M+$4 zTFGQ^3vWeUG*Sx<0xhmtEj50m0gJVyFCwo*WXO?Gf@iJe&`N32Vu(CkhHzZo?Bxpy zcqnG#AiOG=npIj-+6L^*GZ9IDHvQmNc7`AP-&8PxOWS~#SC40q8t`^5&VkWa<-Uk) zXdVlVewDWod{gkgxa#NFX}W)rZz^9MKUSTlUFy|w9$GDPp62gjCte+Q;Z-~e-txR+ zw{&;eVS58!oNwn)R3qdpEpe5CC(8_VPOYa)!`tEFag`T3%lX9jD0nIQait3GSLp1w zpo=BohBq|0s$^)DB~XIz1v!?$MNG2Tg}20=##`cNs!aV0o${7A<@3ppEOg52;grwE zFyUQt9$mh}jVXK(lXX^G0$Y`DEPP`vfse)K9S?F0|H%fG8wl`1BZID$gK+;MIZfkS zop zQ(VjR8atBd-GfU=Y(b{i*n&*2u?5lVDhIgoI5@*=f-}6v24^NVHaOF3LN^i{=X)b| zlh5BgomF9MKNQ%Hrs$d>FE-l+@8Ev^=B@rsSqa{a{!KZ`yBHZbM`moQPbHS3jG1Ht z7IpQ9cp6X>Q_@=jSb|tLNof`6$4b@DmD11X!Q@k6$XTu8tIcs3tNde?zsV)I&6Ji( zlyBV|DdcqI728Jr{m*%wE>fC*tjDcw^xrano^0Q0{@nNFf9B8sFXzv_pT_3TpjYGb z2l56GF$+x}pLF1U9tcJqqxqNvChQST?0L_q6JZ*lF%_oy5mL1`QhmN$rNUx4LaOGc z6|5za3KxNtb&YAMns%6RUx#vl){X$-VFSWMqnsS3x)REC_}Jlb(G)j%SUqA7VzhdS z;y9@2P&w`reXQ|SsgJ@}^g+Z%A2#TM=x)VVj&4IJ`4Nnz3pq(~m%&x0qhw=L`0T$vAOE^g z%^}aypPG*ojZ~K#sg67!D~(jSlIp)QACEI2Y6eoyQ^!8iT56i*?@>MPQHlks^W zK59d*|Z34I8msOzoZ8#DBpof0|=p^#j;6~{V2 z(I3RI7zdM@n{lQxno0dZ2I1fiPW05GRPB`Y;7HT0=jksXmyC5zd!ftDvkjlz;@PGf zT%3O(#qMA*Wk?u&0>Lc7)d&8t+XPo?XG8qq?4fpnMH!O4t}+|}d0yM==Mp3bS@ zs|xfp5Hs5n;Can5=OC(VSsZ9a=$H~e9ZMjBFyC@s)B;#{1K3ya`IZ`iyoy9k{0tOe zbp$i#c?C>ID1gy{%BTR_jc)*>ZX5E2x5M=(F)iugaQ~HOW+Ct z_5;3CJWwRDhQGy^Z>b94m7bpg0>maj&QL)1BNRaBSOUi&EEM<=-z9$jVv0xhW0nC6g~twNMx08c;GD^|6_ppf>^e;E^(Jt5+caw4ywAd@65Z$`C-2UaS5L zx`-i}tPGN7h`TX<_D{ZFjci}U>X9xp72lE*;I&PFrTvmY0(qytdmXpDs}Z)EH9Uni zY{ZJ!!ccCbTp0uI1z1*NjU*mnCf?4t2btJt&bzE5@dXyERp*dO`;Z$l*8s?ZKSn5t zi`xkc$r!fA2)o{ZPvKy*GR0+QYAd!aEs_Rf_vKNc91vP7mEViQ%R#4X(|o3 z%5ba24No7dF9sqt7`u?dGHe~RVP^k)Cc+<(YLkC~`c7%|KODzg$Og_g$|q>5Nw9$m*sq-Ll_SWf zNiYcmu%^@{dbPSlpMNW!biuu&e!u#t)X#X98cDEX@_s%(!q80Het>fgm##EXhNxWq zskxFSM{jtNcgA?R_apUT)&C$LrRrAxhqriTE%*OwXFJ+_k;|?B(fKk9o7{iq3#Zes znlIyTG3Lt+>Z4Ns`e|dnJWf?M&X;B18}ntb=sIA&O#Y)WU+#I_m@f;|hgH8uK8*SD z`Wu`tYX5-&P(!sHG~0^#oV%csV_J-~OKmVRNV7bE;lz7r)gq)_gT&=Z{dfePqr`)0 zHmK6#x#q3j&e2|?A7{MRy#2`UH9vJMZnuGU+x(r|6W?pz&i9(9;koAafSnReC;nFf zW$6qlZz>Z!r@!-zvc=N`7Zs|K3X!*ORA_js3R$BdMPlzqAEiF08ugg~pue&{eT@2C z3b#CTwVaBrBEey)`4V)J6pjd-2sU^+V=d?CpXOn-(E2oK!c=JMw0N#}g>J*U${k$F zfJ^$czSusXD4_O1DvTXy!P8-YahL|_XAc_t|I<&wfca{?d$A_VRlH^TT53tA>klKC zMj!5ji+b=pp*G0Jp{|MfWYshF;{)~aNQ#@mCQ4u-%|q9+4P+sKjz?9E_tS4@Xa@vB zEF~5=(hLM)5DPRkoWS6Z(;(zyD85UCB%<(nO!+Q7`V@zuRdSp&-bHxy(OUftxa5c2 zsrV$gXh;WV*i!Qs)D`CntD298>uX}3{gl2Yqko2fG>|pJwp|Wa?kLpwKrjZ)wLn%4 zdPKFJGuR6>2(?kqVM3v@*%J~O5k?UwdJ2u9rK2UH;mP1W?3FxCYXbuveu%toj}JV5PP9$EacA`GY!Hc#~DEfK}69{ zii_>IhdpcR)S~_|_S>Tir2dgrNEjK5+(KXdLjFJRd?3drDyGmoPTA zdZ|D%*ntaX|E4}nVR+4(9m8v8fB{fvU);>}jont&@uq5US^Qe53_^>VT#?b9zq%q@ zy@Qw|;fn0V*X4>sX$nYld3BSLioC$XxL*4W^JbyJ`s~(uXIc5sr58#-qp^t~?d7qw zBU`5(fwbmn8F{Mp;b3{-I6NParJDo%G9(N`LUL-szyijGgsy~-Fv)?&Eu93a(|Ax0;~}9Zg8@>NA)zRPax6!Iilz*R6OvOQ3M7Sz zI35_`6DK4TC44+whJ=0$%Bj@Ek;(U20h#LDcxgm-Z(>gd>Lkw2a9I)>Rsfg2?YE>Q zrdH}t|Bd7U@XK$`B?$ria{D)2iNG(`-RxQ5mrLhJnjHP|he$#Izg(|Ata>&-fXnV$ zMf|cVx*XBf_|R94#k0k8jk~o=9tU!+H9TG65e_wy)yjv85PYB?%UF-O9AU52)L8$? z``rKM*JF=ut=8k&O}}_O?uSK}q_w;+@%?HZoA58650;13`QToFJHq*38iIK~mL=o$ zkOx__9&mfW?FF|N+)}uua4X2!|#FL1OFZH z^Q9jjh&?Shi;iWnykRybIBPZoLo@GEadZ$j7Y^d+AnpM=B$sCK%cPTM&S!9NmN=oA zLM{hqi4&SBZ4LVr@Q9dbZ6eLb)<~rpQ$9%nL z)<+Bs&1_b2;)G`E$|p`}<}T$E$9%VF)_w+tW>OItCD2)wtS=WA)HM}pwcrOw(WPyI zBs=~Z!8)h(dZYVPNEc_Tpd5J5#Q(DpWK%)8@OFiSaW@3zsi1rW6(Fb(K|NHEXyPI$ zrip8?+!53lsY;m&m&)TIt&Gg&2=0gA3YEDMK?4yqNc5PS+(T4w6@-ToIt>4ZW1QXN z0pN}%_ed36jZD`f>NkKhRt1fd{EhBg5aeNyegi`~0u}qHO zVwn}ew;N|Y#;C?wkH=HU6bUYFMu^4~PcW)UCM>@iXFa1Fb+a%_ZWfwk2CMLwl%uW{ zW~plhnbInJnR3*%!YsK~@I6_Nz+I@Fnu&{L?gbaiqzf)qv#qs02iEO>@B`4qeeApc z;0LV3|KNvN|4-wGM157!-MS2-35K@u`S?`Y#+@fyAUmzJjV}zf<)6pYTl; zeSakJO%Z+n0o3<5a)`dafAS3EfWE(z`u-EZoAFIO3nCj;Mk(38DfAW_d6d3COm&gY zw#@0vkHxMWWEXw^Ldj1B|JU2H%x)C>7+_Og_JGp&Ki16OM&*aTzf<)6cY~wln@R=$ z1<235dA=$1E>vEp()WKu7+)xVB|jFspzrS#eg8$0zb7)RGxGQFO`-P%BYzL{k|hu_ z^WUlR7a@NU?FCGb{C$yOjgh~XZwkF;`Mo56e=|Rg-l2Ru^4po8(&xUZ{gB}tBY&xH z3cY6<<(EqSW6k_+RDKQlHRj)qD-qw+LCA2bk-x$>h2B$){1uY_4Y@gC`}wgLhGU>N z&isoc|8Qim82N|zrqJ8j$Uj82-^_of%3p>2RnmUR{~KiZ4%dL}|B=2a^lngI=SbCl zGe6C>qx@>*ua@?U-#H$}Y{pZk%o509NS*VRLf0(|c0qRr-jHi-3H3qRNtA0`Pv=`MDwea-x^VbqM6+v3~#RuTg!prICJ7IjNrXF@~MF`+UA&bJx>F9H( z9h4|qdq*yzhr-M0=(ihDuc;_q0i>gkGNPVER28!AS8;Ukva=nr3I|w$0|GxH5z!3n zUEnJL@4(�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
bXcW~OL%tL~KVU3}lOEUd18o-laF!)a< z3M`NF8g&zQm5jD2dk=Po>KjA4HJ@-2vSW z9uJTD4=C3T@X0{uu5_=!@O-)*ln6YCzK4Kf%vnb;I5>zIn!oWAIF9ZCWH@w8JAPPm z8*v+Il?@XQsb zIR&_c6Bskp1mqT72KJklups)S79%lJ;Z&MBg{!rYf(j3k^5B<=oG>w{o9*_g0eA~u z3-UMqR?JoQqsG%M?Z6_|NgN4C&6V)ostn;&kcSRrotzM{lP&p_U$dO=ZcIIS5R$`dB}(e-nTp05br;P znN?0$;iR3~8+d>0Kn&gkd=s|-tbSoEdHzmO>}DUlFNED(Y;zUb!6*eW9i~OkshR$! zWJ9?U-c;5h^p54Bx=?is8t1}^VlYnSe4s8^A0!_#^L9AWp#~{LU5BVKrJQ589N;(~ zQTxvYKbmjzBaFX<*QqTCXAATq(x|}3|67mU!R|3ENv|KdYV>WEMPt!kaij8~qZA!t zXM*$XK`5$VswinI?C)d4f3so!q(HeeBgqWN+F=llp8G*YqP3Y0uKoeT@TQixWcHYq zjiDGPi3+yLl&~2C^yej@?0`PxD=#odPy2hmBAILJ4oN-A&SMs9>f(dwdmsz)-wcro zKopoqNUn*hZ$63NEai?LKtg*32+{@%kUi;Ei5J~vm9@eOI)C{b{YG}He~i=1pF$nH zVlhreA7UEBFx?=&@y}j`sJ}=(ViOUrGD8+8a57gPjghN%T$q!B5Et1p${T95aqRl0(=$)g5FD}v7 zwIzx+v$o$K0i%fUV4`6e&6o>H(4X;M4fDN~20!KRB2VRQ4CZjmIAhpGl7sc#G z5BSbMyfT`9c|LJJ8gu8K`fUGnlM5^_2dCSXJdOlGI)qbBfuA5-;GZGI(0rer2h3pI z6tkR3dIlJ2H#I!dage3$@9ZZs(M9MDyx9erGBA5`>cF|W@t?|EfOhRxAK$U3-ZYC1 zdI%)X@>!|6mBj@(%>+6Rd=Gf`!xuz+OgTg{Jdj8*tc#Fsolm8g$J9q2d|Miimc`6hr{atB+=#`7zDR1}qdH)m z8d!&B^Cnk9$CmRm5y*M0b(g4ltOEmW5VkWPGCZf5KIdMsq*-~YU-KJ+)%Q-)6#^d6Hx%j8AE&qM3+4mgBfW2)IE z)pjtZ(EE|u5%M{1J97IDgm<%OU=PINji}^M!`UV{R><6q`IjurE$ze`<^9vqou~qT zYrZYo%a!}dr`+x~xA$vg>J zJL9~K(DNqg?4BU(@scJie+D|=`VN^tVQ};_jrb0Y_yQtAVw~!^56}UJC}e9O;sK+^ zPf%m8BgXUKrt=sN3Y2)zAI=;Z3=wZ@K^9#ZNm+5FWb8-OXLpjXKvp6qp7|WbF>(&# z*Scr)V2o6s>}7FuI9_&8U^JSQzOQ6aCY;VmcX9rii>X#6D{ftB>&!?5c@hdtLl){&7_s%|9-~GxQ9Y zht5yFaWts;hXYZ;p&}6p|EQJlI(0OO`~%$zI>{il9P3h<(Jkx54-8hqRhqg}NR;;p zQ>26cp<$RC$(T^@7b7qRe##fH8_pW>!jB;|0sGn>=eJ?>64RQ|GS)h9@bN} zuQ8l`tdcx@5yo?%r;d2zc(gap<>C~n<aKyJ2fAhup&qf@gFx5V3?3M?2lFX%C0>quMMc@@hJ)$! zPht&VKQY$1Rv0i4j9BNEYiB5{q)eJR9Gd{4!i^Z{<{>ztD3J_k{1>Kc7e#e#DGE_}b zj`GzAKB;dn*e(Rwy)}rMTWd7kk@x(~tcxiBo68m()&6j$;I@&&)e&q=8!w+asI zP)zI#Du@Pp2hwL5Al^Xd?-q)hQ@kTqt1q^;!4AfI;(|+2lxR2Ak2ph2-Uzc-nJH{L zB%(E`G3LX!k%PL|&)~1m_6A>JfGAm|pR&zN+Y>+CPJ7}QRzbX0xw7NzzR*+lq)752IMIWY(Le>L!!?fq|p`W%xl&6hD|M@0uS>l6Tu7q0@jcFThnz zT>c0@5TAsjw+XlVG)voL_X9Z_Fg)Xw@MnwcMz26)_ynCFPGEc0EC(v$25j$r1V^#G zH}QEAws#ge`9jo9)d4n*W5QtK|ndg<^ zPW1$OqWS03NL(6h&9a4mHrH)9JKP5H&z5!@R)*VfNpu@NgYX8tLL2OznceI*EH-Uu z&Nj@$hvuJWBR=>zK4B08|J>@O?7v$rOJ!%O)Vp|!7fPKKgNwqOQVQ z#7s@Je~o5H@Fyskv2l|N2>1-*DnJM}gRy4S^i(yKCi$WGS3hjQJoPaUozqu}+OZv# zpqPJN#G%!Gg&#AFlbfo*8_u`of+7mqg!f|^aRse;3@+T5SX@z_uMoIaNomT2E0HT5R01e?@eOBwDito^dmFdop-=|k!(vs~b8 zjq&N0U~~!^^5G(~C7W{XMxC_$i*@;h|Aq2#A9RxpDTgjIenbsMiize3XuXYw|0gy* z06v1R@XHhMffzLEU-%lQ0_=aeFlI=^hQNVGdn@|@FaHN^zUBFPI7h>e5($GJBAm<@Sy!u<+i`lXQAy|XNneu-9zirh8tD)gx3bZj5>%JML{(}x zo;G7N&)zs*ui~C5$wo!|0;I09xB+erwip@Dm7RsJU&31lTzxF&>W-9uz5w_lj91{ zrUBAnzt1@G!{N?UqK@3BiirIbT8zPua8m%f(>z6=+(0nLQLm%NXn z@#TmfYUJ1Wa&x~Zd})pnV)5m^PYk{&gD*YX17EhDh%dd7FgQONU+z9vc1hFz!;_j1T5 zrNGKa6vC()Bo;){H&%;A%*LVceDj-VqWOZslkj{K#+P#-T!X)Kcr}*4v|S&KFW)u5 zmyUg-@a0PgYO(lo?M8zypBsER^+MnaJtZ3Omot#i+#qlGOOJCjzP#5~@Pz{E`7i1j zR=QTpF3%tKfePViMTn zm>f;I)hAGH>+qDAV&4xg^apyB02k;Nwm@|~mppKmNDR#gw|M9ax*K1ihoz-N%LotT zDA&rwXwQjo6R@YnvAMpFM1;-s9rAQ>O&gD8-d!-(je>xEqLfV^4eZRJdkJ^u*z@(n zReAnv+Py&+^e*B^_^n_&^q;E?wqF;8?Z+AE&*;ZZ%;byx{MYJ@`=0Sz%LRbp)Nm<`ho+j+5Xu{l%c=JzzPS-01B{k{M&Au2uc+ z0s^(dENAye<1>Mq0-+c8i*D3nZ^24~=^vW;FagcyJbD%6Jm7gY7!9T*!xt-6Cr$-= z9&KiHsfEa4_+oExe&LWfQc3*)2@FfzJYR;r#2o}85g2_fcwVnANb4=s*>&$~hG7F!P%mQlElTuKX znu2F6!n=J(V^$;(XA_HEiSc$Iq}W8WP-v+^4piZM0-^PEJzfg|hWc6~m)PeL*|jjg zBy&xuuSK9c(8pny%`^?aDbFjSMP&UDc+8=0`x)o>pd;JrH^GE@xo499^1T-?(GT^F4&U0BB=8bBf@Omg+`z zj4rG>3uAi{PoBU0`xEki&mg-~>(JfO^s;E^m6irK%&mx`i{1<6HH48`5zzIXTBS#Mi&97ED`{Ti)q4LF% z6#ljl&0?-Z5wk^&iaSb@!~UN$Y;4o@p(~B$)BgPpux>b7h|L41`m@CDbOxzEi;GUoU{ULJ z5M^qg9YUP@4+9<&AC@D1yNOX_g6t0`J9Z!KL9@gn5*%PTc8bLQVM`5kVZfz^Cv@{*>qR^%5kiOXYldI z&7YA1YyP+@vz_L$Hs`3*b9_9k(Egk#O-ksP`r#iREp<>6RPiF2SruZ0oi_ z6p?6*3joW8Abe!Yk*^L~m#)J9T6K;KPEy&wjJR&&zY+39D)k{%MuBVj#Dr^`dy$w-|tf*VdAw*^&o_sQW{E4+H9nxM?&Ce|H4NT(8OZ}r>Yy9EyCLtt+(+v^;Ks2 z%B;m}%fEM6i$BXOSII@Y>d|v`M;nulC{BEaszdy5!6<}9fnPy-u(yJPU{lqh1m>y9 z#G-ut73LK?k?q$Cm6W~+9{E4ODL>n{3o~HCN8iJOFx&B5X;24N`$*EkOSnJ z8pVx&cYAJ&w5OZhh&Ady`?W%O)7Ty~22EmnJR5X-PRGsmf22JP>A#_T(J;Q@{L(P~ zx4s*epEtg`mpC9*w+K3olQ zb+mM{tcTApXh(9m7=g%_Mvjz$A#~9YrR6fx)r2P{PhXa64PAG@8eFbMBTEP)EuO_c z_s{c>NkxZpQA$3%o-FTsz)U#9r^)%H+|TSTt`rjNJH8CZmt;9tT#3Lj<*G5J`r@OB z4`KUV8;cE|>F@M78+E~aBwRe+iTC1N@v1*Rmt>`l!A7+!@p2_!S`Wj7%C?5rcQcXv z0N9brnp+lU$AZpg3cs-jO*5C4#RbQTkdK{X?D3daz5}0ftVm(QeO2{; zf^r2t3tlQblccL&Us6U2QpKl6CTq~2J`dLP!39& z&653BtI4PBLQUEmH~laewz!PtgTQdkXh8cq3lj$iQ}y|0W6_`keS0qX3YW!SvZd=P z>xODj!L-+eVVa`E{S>9R;drKD;;mZ$dwg>R~6S%oNTG9z#qz0S!Ss_sYpX^c1ZQBpeeCVo!e4`9BN>n@N1x5u&4}! zP_McneW(I4p>_Ph^e3JjqmYbad+a@+`WKA(0Y9aok2p(2{y1M$bH2c&anPv7Cqt;E z8UVTh(UV88H!&M1+%nhqGqKozHRt1TIpD^NEn+b|G#jEY-7ZJc?w@_VMmZPs+H6(@ z4p5~3Wj>v`;SMZn-%r5I7}*DHHV3bM1oNiwHK5gG&D_W=quJW_^iA2m$*Q-|ATXU~?;Vy-tIuY-hqj zYj_@iFNLfI)W8gwlYjw1k^xShYvRNkq#VhTqCTDgZj5S2+W6_YkHX?O3chV&{Rdt) zHfUL+(z%ZS1krpi(Gob8!i~0+DFypdDQ*&lC~49VL`ieDJl`{Jx#qaWuv@O+BOTHg zUw3wVs08hVoT0j+Q5=HS)VN_KKTaJf*QU;@=F}_zYOB>}{{))IdGep(6LQLCjU$nR z&1AZoARTQP8Gf9P*-DT7$P>pN!%O6K=YefutkVp8Sqnog*^i4}vwI9e{A-e)$oiro zddO5Y4uX-f2Sgn*9GE1ax}f`jnblG;avby&HU4A49dsr4Aw3BB;X&xewb004;0|wY z(cIzjJ+j)E0Er7TO6CZomjJ->)tFqs^8*8_Af{e+s~pBk!V~`gWg4CjC6Y=7=-zjJ z8J?NG&$I+kymxFvc)HY`Ej2t{Cxa(I2>)1&F4-)Yo3PmlJTM3FO#$4<=VsnT4uSO~ z+CXef!&RK{K( zD!A0kE41&&-A#!KaI33O6W=B(;4SnSevIBERBh;MP^Ryb%z?Q+IYJOzvu=qKR!TwTmEPhh=gHLV2o*~B+;&Zl%oh`A2bLA6f1n?7GD3fn2 zSreS9kqhb)e^Wbs^>Z4*ZC!MHq|Dw&CNYGKZY5kOkQ}EGeqZ z27m*WZPju;UQp7)2(VJsZrq7VSXh9?+(wqyVsrS-juTjq8fYKCTLWv#`6mGD*{?OQ zwlYZsSSeD}41MfL1X!sIjsPo7f7-yx(4Vu>J%Z9DpJ8CR`H2PoNRbNxsVzMtkoxFz z-3-rNXa@Q@8~wyo_{#tT169v&)G({r6@gi*`i3Y(m~C0RG|qn$Cj0`_3$X@8s)}ap zCWJA3G-On)x6p}mR%ZKtVp!^nBIB12{e(fF|pjlnqrM+V3E!=@XA`W385e{i+n%cQMVNI;aTz$jO>rk_Hlx!^KJ2 zofI{gjFZ8HCMHhRCM*VDcEB0TpX5B4ZFN{>w>;bTZvEU%|lv_ z^$%-U073f3-%%r1Au%I;3)nCvG@|@T1-g;dTA<6=LFMCQ=)PVtMW(13d@HITSC3jk z;CyO~`ZyLS0}I5aOax8_O`0lufPxHW6{@^eV>l3+pY2=j{F)g83-lA?lFv2XLV%od z(O|NSrSkDTSF_;mV0Rpk{cnZkVr)}Fp@{v zu!fgIagm1!E(r`m$6-Z=oEbv~jX31{8gGdA=d?s- z@F(A@BVU1Stw%N_8jOOF5k0t+FhD#CXZRNU3u^=LPz6_~#P%hw#nK^x9kj_9sp5m^ zI4b%QIa}=>b$R>&s{=}Kv^v+mCy@J$k)sKeU;zfcm=b|?>c&ZrOM#n%H3=O7pj#fx)=pG?D>F5qx)>8h-`m9a5bDiKErUe;&w!L$h#nxHL9d=XdI9H83FYfA@a9t z!BGOBRjH~Vf!yUao|MYPV4a$>$FK(saK9wBr4R`b6UECI0uWDkPGkF$;#eSd+2Vss zR??2T;hgIP9A+1{kwh?L|tYamz(X{(p+TpbsDN?&o1jV@v3Pqw2D z_JF7v2#5Q7CxZGDgNcV}i*`|6m)Jcg(Fzn|F%?{o6@b<|U`R1&j#e!bIm|MEW@u%g ziZ2$8b}Eo*1ieR8kAjvcu6pLbKp%q!)=DYyzmA5qt*Sx9yA=z}cf9b5I<61EWmFNm{pspw&6M zDR8SvNEG2vNl+h(EL+hm9!YD|@LT_YT=W?By9U1n#AEGKiFP}_;Ed3q9o_xqeyj(cB{Ti`B4On1syM3A|E+3OVU`$8L{HDn!Zu?799_cOTlr3~Kvp1VnmFML4*1V-tII=+K~280oU zCU`*Q#%k}*^e`%50eNCyjqz>pI=1WAW?bp;)sLmaTgPr()&!}>djmcb<$B@>VG z*4`rJc`rddZa-!>5xD*YWCehY(8R_%(AZd>!w}&)+y$d%A2ZP4h{Q?aBLavozM}$V zjx!AnG%DQBR%+=75|eDMpOZq-YPV`DQW4q!rqE`k_i`u>a7rnff{G)p(QFU+2wEKk z+6U8R8fnT=yr?#4N^l6Ez^05tQ&}G|LqQ))2N?FVDC87j zQ4|0u zaA^|3Y(b#}gs=s?tpOom1oYgE&J(6Zr^V96Yn>y2%LgkY;2!xb47eQ-dD%;$jcOEN zAeSa6QSmLHN1_pSrUnFs_b&phaGxk*B)=re9!ZrM8RI zsL~Odg_W@~bl$_G`;@Y1oemK8&(z z1q~penmXj0O~<-%{|-IA)iS=FoMx%NTU~6_0kcuDhUzb`Z`B7Y(46yd01d{Pn$GJy zdg@J7WiJvASl}LMP4$gg*?zS^@A*howeM@_q^QsN2Fm`+kF$^vkYhpR2qcO9dpwjx z|3C=g7Q$gFQqAj#4Lxr@rl7&0H_gXHe!M|NJ@u?JG~WnqW=mM?oyZuR1RYc86MP0o zi?(UCYz3l!)@(anFQmgh++m0}1&>2Rf|o_UQ_!v8IVL|{wOO9NS6TMFxYT*KLipgJ zb*6-l?8?rFbwJy1tBrl&kTD6sSt8f>S&R$)V9`hB`ZnhHDsy~j_;G@(1_+Yt`!dIO z6n0ze^${egt4eS}hKp12``DryHRRv>%g?}`!nR!ViB$G=k*#a2c24_LF z01>5SM9<=v#tx_E7zYHL3T%$pQ>>EXz+vLjwlcj0U$hC{8$kr>VuIW8D)Tq0Oz{N9 zTr)e)GZpWr6in0fC+9SZ-uk#U0goy?xe0izl!OjYAAEf}gahu+GxYQQeY%TNUMNFX z>(wi*Y`w5|t~L=2*bfeZU1W424$;&Ss);7I7<~Q}e4*kr7GGKjlZ@a?RxG}7KS~t7 zSl(|@0z9cKulBzcEXY^;4r(mOKN%Ld*riEV#$v&-8uXqfIfDh~^e>MyLg;ZKz%gxy zBmz|5tD!S?W;6oGZ6zsI$zRc+hN$2=DJqBp6o?K_gRQXlM$Brb5e2?lp;6$U)$`z= z8zGAcw5JuK657)=z1jA)U%GV`>oJW#p`|vx5OXZ=01P>?hxb+9!1vN%CLY8e|5etK zrbKKHe^Uwu5;!R!8CqyY5+dui6JKNx zhU2Bc#yEG^Bc3Gs{kG!iTX6a8({^rx=hXBv?4j&v!yEUwv^~5kp&*EX?2~MD?4A7Z z_JXg|tLMfSd_K3)m{ObrNXL@ms>I-H1Iyy*e?fZ+{V#rAnSxsE>(6-bAhctSY%HVO zszW$p#vK@(SQRHN;Zg69cTDpq+*oD?0$QuqImv1&0*a4bX)VraYrP7$I7gGS26m*9 zXkBsbQ5?~o)0U@AP(vlI10Bk^!o?c6+m}MFRv^zXMQ)?$;(ek>~*O z3vnt0u>|c%e1i0m?M#VqznfSL86+#!C2vCKP@?FUP#E&X`OD(qB=2!Tj;Nu}OuK0e zSOP2c$-Hg8X%_ajsZsAuEt3i$dDW<9C1u)M5g+IZ0hW!RaM`Zv?@|1b?Zvwqt4UrN z^IUA%SAWirh7)EhxoHO%L=!?tfRmchXn`rbj54AXq4sz~C$JW}fmWSvv{hD@@*6q= zyQlG$K})Eh5M@!tCFv7RNbhKsc!XuZ0todPAWxWQBDa@>V%JALo}#8)2K;{+;o!eD zYQhbA{3*``uSZ=l+r^AW!6`c14ak;@ozd#*cu2}1?FaYFlEfI#t3H}1L8Ej~=nIrg zYv5ha!WyV)fdoO(N>MJr2tp*FpRahN0$p9+!9b>#dmio>Z#{7@;N0F%&QN*l}_-eW^ptg0dB|ZzY`$!43et|e2%S0x*bRr+9vY!#+d2x ze-E!?j)w4h0WJJL39oA={u;dcKCR((a9spmUmPb72fRMU3xRp63d3sy)BPH}qV}6- zxcyz=TS|8O(Ba-~6NC+e2Zx1k8C*Soh@fYD_Rjn>X}nH7b^n>LhPCijT8nRN>#MHb zgY%!S%1p+UTItX~fw`vd-(P=<^<24kUBR0q5ndIPs8UnUjt4tS4E<#c_8WvShFE?; zC1JBSO->FKhjgUBwA~^)%fSCme%>Aj)11K1%Swecskwa{@be`Ih~?+G`G1g~FF5cU z{Jj6bFh9>Ai~Jw(^R#H5OMZUC!mrNAvT!xxbU2KZb0=&&M3oboTe1VSYZUQuFg? zbx@d}zZ8h!=is!x;X&iL9?q^u@uW`4abDQ001;;BCTr+cOiP0>E46Ni{~Mw=Fd_8~ zFtxQxE}-{{qYuj(#4_5AZ~d@^XZxX#UV)gwUs{7cvIgz6I@UfY!C5-E+8R_Lv&N73 z&2#R@?*Qjs{9@aRxRoIUu4cI2UjK2n!PKMom%!$VeRFW_;~oDMw#eu!cgu8M+ST=AebG`@uQDo+`jYqFlg#Z~2}6hvm~hOivhtKQt;CU4$x~|*7Iwusq3(EvXXGx`D4kVv7=u?p3`mXs$6R6 zMeIA4qxq!be0N|HZEtzBv}$iu2FnK>IFv6oc_e8e8)hfv3Z!sSODrZ{K>aIS_*BjI zf~`aAS%?oR+)DZMRf&qr#fkH+z|!ohWT9q_EGlAr*q!@J}J2{%bregM-@iyH|{KKu+wnya4zqMioUA<&VXaQ@qf173p3{YV zFnbMe^K);8+O>ajPgLz}Ppc0Rf_hqQMmp5fs)?>={rL7M6N8RZneftPu|(gDg4rD; zTvd?326)Smxyek#dfM;+Cu-GO`6Ti1wQM^!tjM6iV7~)n#UUV+oX*_h3OGva439R+DBk+hAU~|F-~a> z-$5t}P%(aGSRpCjbmaLIaHD(}0Su@pF1SO2u|AH31B7wG^#rqCr2c7}$WChg_F46z zkVxAif6Ec|B7ajqSG-qLnrQE4H4|n?$R#|%;vb7ifLNvNR;P(=W4Gc#A#NXhQFXo)T5YE~>vxp*&R?^lJJffGa30S_Q- zm;+}!#g?2rsjRE;YxGE8FOIfIwcy88)D>e#pwS2TCnc^(M6CMYigV&aYs2;Vv4b!( z5$>Vbymy*=)Fv>fYOJTrQf&X%B61;nx+ulgEI55aA^Du%pvk?s#bptO-*CT+q)!QF zXZ}h#*2Zik#CP%Wc;C2`$=!;NH+n419n~JoyO`Y>wP^*h9`a;0-ByaLQi4sFECLs! zo}>79!lRe55xl~8alX@keB_&1Qy zwmbXZXa6NmN(w%K$cTQz?O)1xRHkF^maHz+Bl*%z@J$F7kjKo2$q>eI{L|o^UEF(_ z2hln*79C|Q&}FvBg{|+zCOxcrD+|Upczlr!2UA~YbGY4hYC!^fxJ!ef>|J4GLnzy$ zh;$GFL#1Hrutkm1S+ER+bY?iysNa%L;$-DHG$ugb(_#&7Y#2_wCCw11Vbl`~V@I7&=F2{da!QuAcuqx;EKGffwlo^z@%J+yF0V=<1O?f!9rOJslI* zQ`DCsorH&|QGNB7MF^dA`wu2g=z*QpTlSrsP*nEypum7RBro^8#tw*;&@MfOzm0u5 z(ma^`e@gn_rqay*fBmn+`@fN{2dn?B91Q$9@URjI{5!pB#UL3;vYUGmEBa}D5be4+ z|F8nk*o&)dIu>#PLT`*cKt_L+IqQG)K7oQu?Z{q>X#zo_Xwqj9rwMk!M%D5dJ!ptS zZ&OJ~?HYqXU0>G-gmT1|3+ECT;&u3GoqVqH{suQ0jSZR(6q@6I0#u&!mWJ1)jbCp( zeEec>vBu9KPXz5(>)af*?=(WVlp}@rWE8e;_?JzL8J`$#+tjTmFyuC7xt<=oTp3)q zT|N9Sp!l1S^(gcp-nn)pe3JeQ`cL|^{`g<&kEU$s(!V#NORsCbd8Gb`Jxcf>#D8p# z*2bx-opfyD97^>{F5%>;apK;KsH_Oda#WwoM`h~(w`R=wGR*nxv`jw3M0|&U1fBP> z_e>p{@a>!LFlMXzjKeCb*(db=O|D39aGsoxz)79f$hj9A>DO~~=xD|YT0s%QVl;Z| zzi|bJ$c{(oERUw8v)=k0F0|ge-oF$tlG1u3N}*bUu_2x>5Qbt8pseT|2U^h3y@ zxT(`Oh>^k#+OnxXqGbta13jTF=7Ebe#~(MD-sIV7+B-2%M@PWbz!(^A-J#DP5*xu7 zi%)@PILfFzLk{dCWovYWY+_5R#Ct3g$O#A~MvEMWshGhR&ss6qRQ#&>uS+CrT!G#A zm<0~tSAF>w0LX<%3~eMxzqsH%JV8i^6l+(Lefpkuac^+3S$|A}@&fhQ+2BpHQxkBW zg?>g=F`~5S9t9pvV*(?g%B(~87Z9&U7!7Oi*Cq5`A+RMB@InKcdK70BrIO83%~EQP z`9f~y;zn)y+d><OK=QtSlF}T;-^ofR{9Xv^HJ}*aN<~!X^P}s=*Eg1S zP=E&ovQr}k5fT|r%i5uGtX_-HZ;a5Dcs?(?N06V-WS>6|l$NiGqgCg}wx`*oC<`OH z_Be-%)=lyY!iTJlV-cJcOD~$OcKH@!o!MR{+DlH8MtiB5(kLoUPOG>qu4Q*@%NU_F z-b>O7Sn7()QdiQ|oDCSSe_3W+eh4jBg_oN0f{-ZkVF)qeFWs$;=+-euKdT=v(e!FD zCi4(_^%)KryG+f zPTJz)bA4u$Des&7FvKhmGJmmj<&Jo|GVv9X4RGX`W&Vcr7lGvXRWHpylx)0^rOAXY z)~@o)-#Zc+CeiGi4AD;ZVsqsvns0!da&*v^;9quTq7kV}*x4vCG2bE!b~@9#b?r89fU>X{|dG|G8C@ zFArAeVI2He%Q>N;m|Jsg@F#|aQ@)SUZ?nP7u@g~!o-HKe%D5htN{>tl+f;aOIhp7W zc@>N3@Qp?-VneyrY8ArPsV2;BY!eR6j zN|zHf#0IzVSNLo zlcMi@Yb>$>d%Ao`aY0m`t)V!T$M!V)AeeNbbh=I5$Zi3X4qITB{nFCg{%qn=hB=O% zYxFqC8d^og0j_Hm2SV*eakf$klJf{pM~1t=HA$YFEspA+KyoBcyWTT7C^&GN6OXj* z*mz~xEqoMmpu70ci|g|Zt=S)Pi|)UtK3%^)QKQZ=}Z z%VDC(OKzg64^hfxN&XcHGxHF$H5|DLes(OlI@!Oa3&IKVlKo}LiLmu}a@6E2JjNYR z`ynsnZ1nZA3_r98PBA+b`W-sO+*0vyqKXD(jiI1)*_!x`94cA+dM`x}u{45{8=T(y zEs1Kwc_$`>|3W^YhhFoeWk(AkbsXbFf+_0>hC#sr0*-g>xFPwR#m03ocke=@0;Kf2 zP*3?p+w)WaRjcXvgGgc2BU$Ryc-(8f4d-Sd3JI1o-_b%B)cLEQ?og*SXsCH|N|PoZ ztv-gyE>w>$AwSPGFqUz9lwG|`Lmr%r_V99xS{x>S@u zd+h!anV>s*VE};>FqXhLY{OAJS%Znl%TU@F+YH1@lx$W2uC~4anqpMb<3pvF6emr2 z(HrPNh#G~>&bSl{G)>X|5j%002{MJU&~oiz_Oky~eC@%({YUtk0`~WRjITMT{*UqX z?9BfzzJ76v1rcB8_`2y_;OhqbiN)7O+#dm7{VRa4f2xba*V8ve@%1@eYkcj_tHbd1 z$oO#_y4neTz+Ts>{pt8Dp~t^sf139qxq;B*TdGa_Qx_q|L%xn9#&5xdW)kC>BD1!s z=2@K+W33-(es0;Ho@ZIm|4~hc^An-RyG{EU2BV#iB^0WPGG!2B;+V=LVJai36gRj? zbh>}Jl&@vJH>2ljZh;WSOC&1l41hB zBF)UEP>@SwkC!yF7z;dlUVu07WGyNR&ooJlwuaCyQeYeuy~FCiSJj@&&O2(31AQ+D z^g{Sd9bEl#kF?rW^AH?{N9Y zI6+u(4p7epc*ecMrk!6OcwDG04+PN!yWW*Hf7Lq>$enrVe0V&-13{b~U-)x2>hFgBZa)-L_TuI>^JUU|o~6~7E9JgLo%0em#2y~u4M@XwsO7;JvyqvL zsS;y>tdH{$P<0BrhTjj7!_cM%&%q7U1=tgDW_Y_7N#MwwaA1N*A7iPyqGzEFa18jH zh%w7o&lhA^zl^IjV+wb>t-Zhjs|!1>xMa7}8|g4ND6h^*aMhx!4~I&Zylp?lir z&j)hz1gcegm+LtzdWKj4>9Ad0y;wi`k;tkaEqPx*x(<&_ladr|YtYXhiWdF;RRK%a zjP!o8h^znh4zMr-i#T7?6Gyc{sFd6Njqw7_Ur(SwgLDnSDRwQ=%$0p;`F1VSjHFDH z4?47;at(=vKi8R{p2I}Kgs=#e#>8dTT6Tn!#YdYV6Mi|X+lgKGAxvvE(Fb78&2+feyl7XA`{YQxRE zjP)O024yZiwCu|3#i6F7KfXhXDw63~@1CRP4S6DZm#_xa4j`f#Q5721o5x~e0{NMa z1;f(DkVO~cF5ADQmDeS>&gDfZqJF*p*3-K$MWVWyDCt;O#ptT9S`$ZCZ8`m5 z_f?}2C^0$S z$>#!J)9V+yTm}8#sEw|$P$d@jNHjpr#|+MjqY9T)HPZ>(AbLASx=B?w5Xp!n7|7_Kimue zeEmL3RW0g8J`TbUhZnMLZlsLUqSoR$?fWj1;7mn%?%%n^sS7FB^ukFm$O+{|mV)|S_#xQ>HkHu1Qi;CN*E18p?u2EaLQcF&^CY4%HLmMI ziSS>8-g0H3Bj^AaiVqU7(Gv6=oq&6%r*|vZT47o#w;OyUmt(jN`5uY(dMkMZLoMU- zQEno{ixp~lEiHaT8pw$I)wO@%Ez{=gQx}Vwd%wE+7Hz2i39O%fmqO<>Ac{B#PRL%y|6WT;UsGE7eYO z*o%t5&|WxGFv#vk4j-V;8N_icGAlgdFxv~-&evFum$#@BENBlyV80^0{bA0XU;JcQ+s}ubYrrz(>p8sN(wY}QK zu4+%d7>5qCS6{H6Gjb&VcEm*e;n|R(f5o316JH8EL(Ifpb(`+W2~nLudLej^v6LWl z5gP};H2s{A{dfg?vMD+H&WUA|q6K7tSLlzpUCh z5i1!v*|4D%v(2LuJPUX2%{Rz(tgWA6%8~xkW4f5#uv`SX4H(r*! zj8a&;2+cud)QPx|sSu+x;aS{k5uHiMjc8o77t2eJ<+1lP8Js@HD$o}!3jQ!q%XZcG z63MJmT_%Hsi$)sVueQ!*h&0^kl2B#azLAW%1yVYytI#u3J8x36AEA(SzNIg~t(~D# zUjT9e3e6}eVz9)3n4lQ?Bsd2MXe(ZVQIVQ}@t_WJOr2&n{Y$c>{mOPDpThvC&i*U; zpY&w)fsta@4@$hs+h(>poMVOqvAqCgt<|Wo;dZs@34CgjXH$2W$o2q5?caZIvzA#O z8L3y=d+ZO?(TNeJ7+>NOcb8YHWyk+0=_;!)J#oY6| z1iYyYKNTU}a`7A2_W^(cd)U?H-^I~!Hz!mi1_&ucPdZsQ%I`dlk(f{=_lx!Nu3E;b zqWPz}S_ywyeeJ5>v!tV!P-z*K#OwZ z4iQH1MYiIb_DBTBfhm~raLVEbUJ!lthQQKMvyG65BdI;Owqp!JTx~Xd0s<;A1$eE_ zdsswdNam{TPZIaW#gKeZQ&R|#dreB?(sSu-A_JcI*p5>p0l zVBMG#%`ZAs<3VQXcss3`{RrFx+Kjf=J%7<$kfG1q68`peUDH zc7r`JbPY_!WNZcgCg4|xT01~9moM=Zv4u2J_#$L$(0g?g$rQ%*hKx&8nEk5YBce9q zJ@2H3fNbxWTe~_FFvZ;C5+rk$d||OCEF@8hq3<%YEt0gbJ}I_HE=ur}|M5mYKm~8h z8?(H=!PCWumgfW2)^2h?wC<=b!H{wK6e6{8iq+XLQ>*LPV+^kqg+()y;iamZXObMy zNDMy3*~M=z%3z|b6rxzye1cmF^<3t(hQ*`~E!MYGo%psy-_9{_OXW6_I+VOfy}Sdx z1=~croPBCGHjc3QIu;~e0KQ{6^FF@cuNF_`4Yu|PEq5#!bS@aa8#cJ;_-Tqo@qUric^INr0U>J5uf0*Ft{i4 z?=07Pe)u1zJ>dhh)~$CVf6rXu58wjv@!r&@B-YKYW}isnjQDmafUZNdD$!@a&7GuH z&pmIFwsvKIfwgaeDo~XwJ zZ&)fbojH`+mBM4m7zDa2UqRt$QODyg#>d1&EYyHPeEjLFaSl0?|AFO2`5%l}7+_p} zni3Fb^+t+jM3CbE%~+LU1D_ni|Cq~6XgSUo*{hk{=@_udB1h?S5}Edg@-N23b}1M&4D^c9N51FnP!9~N?{EiwHpt(I*} zu4?f{2(F+(mxY?(wxSMG3kGrBuZBFp?=5^D__3ZdPe68Eo_KJ;f1l(QL*NVj9Sn&y zyo?<)mYNV-zZNugjo8%8dESKS13ghsEjw(g=T5VxT8k?&Q=E&z;P!t@R^gheL`Nb9 zkzHR=b`j5Sn`*uHZSG+|WJL^GiWM>3Z}JR{6l(8B1Y?`}846g)MvjY`Ij5YxNbS=e zB^!ddTx}C2Ur%DHx~L{PiL3EOCJ`i`B`%Z>n3XBe& z|7Ne8&9t5;^o^NWnC4KsduSTVn6(1`&rmgvXQ!#7jDqVK`jktp0Xfp5f+>?g^~XJp zOVk~g+uz40_y!6;3qXs5Vx<~;AeooRm)h0L_&OjjMQcEDSLDNVRYYqnj+9`{1v#51 z)QLxdGnIJlLO48QHtS6hi=Pz*qMa#UsxKzNa|?wTc}{Y($EG=a$J3qXh&U#`mCJJU0~A%kBjxXsJBs$&CVOb4lNrK;|S2>GUGs|1NT z(}=7?3$?v-!m%PG9Le4}<}ogsU$%F~?Jp90r@HEDm^$Z0;#Rd?I4*e~P=nDakYC`E zLP8|1&C+89{Z^b-qU^%nN%mJ@e5O81mY(MPcQrq>2l?h0X2ao8QQ0aP*B&4WOusOQ z0(Wqxh3^?I7}7nIqN?1COSSZ9e#P^sM6}9PXVlQbD6XoLa0$t#T0X+XEcryr72`u;@JXol{1gNsEM2gg&d-wSMk`4ywJFa*8y7Qi^~Sm0FiC*w7|sUk$>3TbRp zI{*^@WC#q7>MN7r-@zqzX0MS|(5_~0H`hxsvAP(&7hEslaBb2F`jT-Yn#7-UY3{g2 z=@QOksjN19J&ab178XtAcjy-J2*7=Zo%iQo$TSw1 z(y#Fi6m!^XaBJ$w5Fcu#DlrPfiCyxEOf$E&RHspPwEBx%suOtrsC*&?X5)z(x0uA7 zbc#XNd+&Bu7D6He@RL4uD32kcd8f#VMgJwsa0PH`d))I|rlnKi50F&e6M;J$) zAb{0BXf=F~USXK%!>qK4a*K<}xKP{P@1!%$WeafN*@Pr_-|kPO|kRQAu|BW6Y~z^}(py?nID-~G1iGG)un{397!f+UyTgXl*68|MuE!G5z5#(n zC}8c*$p#aH6+my(cmpqh#@IT?vEKVnj1|TClmgA|yax_tk;G!P&%tvM8r#*EH_&JU zJqOjbtIE6Rkml8exDr~>uHJ_pCX?;Ki|-sa0Z(+uf~qQKA<>t%!(Gnr`j6tH{c5^2 ziFlJO|HR)N+)Z4V6>qd+Av$if%|T!lO!)!CsMc^9{;as^+sI zJRgV)_0XbDI&)tsSJg%Cz88jGio&^OWkn%U=b=t8i_lTj352g>#9f=`_QT463hoK* zk}o{6kg$L}3F;GM@!`o>@_H>^>+fWt8TIt;uZS!1DvF4V0RPlFjrgUrDcI58pn|u+ zs<1UiWQ&~mgoG2)NV+QMs>L+=ACOxGk^wq7oO2^P2Vw2UGX59-BNHKdl@9R-PmpjU z9i$^&N55caqVghK4V(d{e=FRu`ay!19Keh)!e{Ul;x7Uj?jJ`X*9qu%JkpACH5fGD zjgh9C|AFIkG;T>RGK*Q4%c z7@B`s2{zov=wsTS9U5oq*CZ5+x@-rx&xmcG=hxhaBIr!lGhX6!A*%>RP5bP~je7K< z5h7cUO4}_VxiDeSxY0^EM?nTIfdHg-C2H9EF~E3{q52UEHZdZmi$cS_cQf=ZUrP)C zHXgP>T7bl&T3(*!r%RSCIh)5{owd%`=-&T5f;a5OI^bLq;DaK`8VP_|1xi!;*zUZyP45N&=Bi8baPbh6LjSFiLeTX zUj~RsrY?uWf)BqOiAu2||Mob8Wg5a^Ip5Z;5357c3+os|=)$Kn$kAxY*)#PRbNkf8 zoMNQ@&M8mIH?}#duflx*d5y4?yW`Sh?3dxxwe8$c z8@Bk#=lRA??C-KO=!e_3dRWuw8zURF{L4~frYUe;lE>I5JF4opC;1zl=rekzvXnqX zz`@^$wnd?f{xwySI`}{8slo zhW#)%1%WT9n{z+;Sml^YkAF+(JbwBJZgd+5UScU2NW#``ZaF{Mkn<36gtAWEi=$|1 z!tkmrB)_DI_+Fq!0d}D}rr#xK)Fx=;F}9kRbTS4EOmb9@#cQ_YGPC@0RT(9Aqa;Zd zSfw{vhUls+P5xOgxiT-pri-yB?yDq(<0Uw~IZJ(~c>T)h+lxyt@-N_@*Tl;TY&Zco z$l4@!epY_iMi0shH1Ukz7_q99HAr-h5F}(yLNq;Ca4NWVQq&HD;I3o@!tuFL*u_5K z*@75q@2D2*T8tjY$WmxIU#gG)D8`UX7{xxb_zc<9XLpj-fS_W5GQA&gOkHzf95;Gf zikM{Q6boN*esYxTRBbyYq4p3G1A6!*$$n@eaX~QWuRofY6RH$!!g$SUJEvxSP%UZ9 z#eb$H#XZbxG;6X_wX+p9?;AW8KGmOb1$uenjr~Nvy&@@a5{*`+IIYCEj?&MS8F(Tg zDpw?d-SGLNI&TORJxWq21E~`i>fJN02Q+Sk=?^|m^sUqzoRn+irQ>pxk(UAB0qtkz zW#WFUkvD+dFZUXG*{bxx*YTka|7U(%%uXH@d1#=h7T2Y`o};ftcb}`T%lZ5beLax} zdM?8COn)W*s*K?4AaMC($r|ev4hK${c|Tvk2hoZjk_quc1g=d24$wN-SYUjOu`OdE zjI9p822M}Jk7{x0kp&=faBzB1KxK|EBW7I5=D5JAF|L{D14o%jL^1~@78{NT5*!L) zI35IF8hIEC%pADDKw!ZzM=^TV>$cDZKmijh4Qd#ka8^e>j4W%RsK85+Oi?6*kVdDP zBsr5UlF_7Q$aBWcQwUn6R0J}O4VMx66@Vp-9`iEzOOtZ3Zn`31Ce>Mxv(tBm*T1XO zvWEqyr1Dm+4xl5!{8D7wt6)I0)XN5>ZXq3PAoSc8V7IwnUW<%6AC?v-Nr1e8e*3=t zECF(5V>gU#gV(srzPkgKqsQtBgLkDi4R&G_4DAzpbaXCx6(eFF0u;C&NwbtZ^ds`}GR zj1yhl0P2O+PdPI%REsQs-lrRN$)W)TQqN50c;RDdQ)l0_$R^v+d1K(lbX5Kg_3_d6 zYbb;rev}5_H&F+ux2dbkv8fH6yZ=G*GcgL!=Vy3y7ao~lIx>8SPcOFrc6>Uo{BV5g zar%FPPj8Is9G{-x^IycLzW@^nk6*;6tmPV??k4k(;?vROfy5{GOpQAnh2{H4i>(riKC zqI@7IDU!FW84~2x(0z{=;nJG``S4G6kK>B**sj0Z5v<`#P1q3buI&V1%fMW3@TOAV zje)#5*pvmb)R<~OFbw29?=|w10(tX{d?W$Ldjoe)wOW`=UNdeo@o*!4p&{nA;x`w+ zpq=@^oV?xmErw)#U}k=a^bw*2oG7K}gWCY4CQpYfIwh@^%jQ@vk*&S1hgk$~A_bK$ zxH%ux*j^CmR+!W3JJ#a-zH^F*mQBW1qG)WFxIIpv9iGheAh^Y&JXDyp~xvGc`4-)%QaNEyMUJdEpP|@{YQrxC=pq zui!{0#J$bFbG`mBTAY-s97gST-6Qr17gh6(#l_=?^yZ0-pPoQrM55R^qLDhGZB5;fTj-jiB@VPh&m{_`Nx z;ADwFUNU~5d*?ZM?^1s!lMUo$zKaiS@0H@ul5(OSUJ_Tbc|l~!kb z4E3)tEd{b_Y7#Db;TOAE24O;=bZZVhInnMlQc@8w#@YAaYZT1o2=)7?#&#QXjfnRi5}d`Xh*vv(bOo!Gf}KX9oCIb?bajUQcMS9F#_WntH(z!k~(F$Z@o z5PrPb|H)l3zF}Q$Dj5SDss}hUQ;*Gq3S@9Yv!i1h$}wVS*I-JDOZWvwc1^J!7%Fls zxTa+0u&(ydIU-m$sZ(bHe+e&4oL%j`pEFNv1{&J%$}%d(@|*a4SaSgc>}g@jpSIo9 zq>y(kFk4_lSP?da6@?JOY7UF*1lsgBlZ3n>pE;^&;U$)qQaU*G6UKt|$>Wxyp}-6Y z6^G-z&o$Vd*ymKJH}ECl??}^+oJ)fU_F(-Pp5MSV$$3F6C42;d2ODk^mL}%G7Q=*3 zeO3VNJqfLz#4~ZzOqT=?&4u|9e+wnWFsy7+u~S`+%CzTT%|-Cb#`*$%w;t*@E~l#W z{Egsw*pe2Np1`=NE4^A8aTtqh;nlWxVy$+w@S4M}&cL>##XuQL-ZcHgf3xmE)M_UX z;us&@V0sDS3d=7hX<`NPO^WB1Kq%IGSiE8Q2%eI<B1);aK6>0*aux0II{ry3D<}&Q9YA%$XOJeCl8rB z@8EvXf{5+jh zxz>E4s~pyhytA;@B-GRygS-{VTq1>wb=;m=J<>4IGIWqKDfh@f0sDr|N*rp(v(dH8 zyMaVbj$jBbq9|Vlf(UC>1OIsn+^?b45<JzvR z`6amDb)+h3&SKiUKE>`Jr%;E1)M^OhX&_gL*bci*AyJdAc~Lt90}ro|vvO+y)h z&w@XQE^1f5CnA74O(CqKI^Rj(;P}!tn4mE76l%Lclb(3XV}L%N4ms3JJnxFg*R1Rb zS=CHvhWA{s6(O##Pq^m%%fJL$Zn!b@Y3a+vrC51K@|Q>KHJ#(n$l-DL^HKBR_%q^5 zjX%Ao{HOSH^Svf~{&LIz5Pwc={@=o%)e{e$*LOeuzrdfe!`itD?Zo5HWhf)~GrrWs zpP%2>`15^j*Gl~1-#JFhS23}Ij+(s`QKJctwqK7~XWE4(_0*~F z>4Y`>3iO+M${|ua`6pLxe*WbSC>Vt>mg8{~lQDQaFoEZS(8HaCTq~a5dpy1Wt-hZ& zA4BOZq0M_tg}}X9__zBqFS6QrjiKo@zXNj-c>!(prJ3_>1@+rq`9_DC-KMDfzs-a; z_u!mqSn3(Yl3U40V9C&M!E`jI)7hLtl%=o;n-xoaesv_5jqLQg4;XIcvVky;1$CrE zHn8|Yw5}7WI$NDLO{4t-0xQ_vaNbviesodv(LvMW{pg7J6gFv7bkQ|<4l^9T&bn2n zu(|!K3>f%fX9Vdkz$t)HCiO?HbjIc5+q4E&o4E8fp*J*R6aHnG>1#yK^LG-b8JkBc zAu6AvCFG}>@^BT{jmzYiFQ1Oc=`K3+v=x2r2Z=U|W@1NY%|c!T{E zZTJEI4Yz4}7V(e6G0!YCizr=V6M43}f2(#^{S{$ZlmxTA0T4a6rg)C(r}&sooEYb9 zE*tytF~*o|h*&Cu*!hV{<92=`(hk_g{Yrf04Z;log!dwlMwktL=Sn{$wyi|nhAPc2 zKp8`dDk6I+yie)8mYz0Hp5kCRYIU?SAgZXG&?8>pX6KD)kE59aBvEFqQn7{9n! zpW}`SU|2hO=CHJ}*uIkr!MjvF%SIVP$n%W|&8o2iRkWC@YH-aklG$lv@fMGYdG~1A z7~CPHLaDr*l{N~ud{HgUe3y^3R17#-!9NZBv(95IPD^4H$U=^vK|xP;M{wBD9RNWx zA3vIA#}A_X@fQ`3g*Y+h7^pW``zUfyG}-5Md}vSys5a>zz!z%4;{)r04P&KYEM{ zMaxY4&IGiI696%HLK8F_;scDImjGsthu#v>kW0mjOEyOFGVPVoaF*QAtxye2c}n9@ z&2r?SW9=pY3xgI8Jt`msHWHFRC87`i5rvQ#mPum}fMcSb>JPXRg~mggV;+6<1d*IG zX8}WvRmKV=kkOcv+WQk|zL}v9Ap%+bi<@F&p5SC6LVT>*w&qy9J1{lDZPa=CYQ**$ z=Je{hwWieg7}L+*!m}mQ`;E(*Ioe+8FuRQj=5%rzd#@Fcn-kdNU82Xidx;l|hLbOt zAZ5I`>tsqBz1W`2fBfcc!HFmu{Fa%10|8Z-S1xd5xJkv_=4^C4#3P_WKLJpt{C%I^ zx8&{yGJyRos~-kg!V=^BkWmF^n>*X}%&66c6y3OpKzMhfcc952kg4A2J|=k@-Q;qB zg#xuyPY6t#jJ@^=^VY6!=a{!nxs7bdO~tKBozG1zm`@s}jv37M$v|$|q-pL-VIaU7 zLZ?K)s=C5^FQ2Hs*I`G?g;BiVcmNPx7VPBITGD=>CJGagpGW1q71?o?>ZtCIW31vS zdZm0Gq39D#iauU7BamAtdMitSqR$^~QFNDj3)k?_&rX|#m!L~yaRUs)4VKJ!zM7R* zjXPX`9`J%m1`+0m2tKA0)1;gTXfB>uQcgN;E;UCD^WLG(2_WUOxeP%jv7WfPqsuTt z%DJTY&*BqM5QUUOLeZq0*rQ&&Sg*rwxFIQLH-wZcaKs2HFJwh}L5>9}4-W@EnH}ke za$LCw&>^l|UCJfPwoqz%9dC3^Rxiz($PF|yqC=WPjODXR^r67mRm6QOnnM(74l#`A zTZ*?NC7B$)$svkCk%oag6oWeyYVJ^Oa)MgZ|z)BfJ8dBq)}LJ&AK6cnn@-9->v^b=71 z9dci*?;E^KB8Pt@5wj)4US2<;U!ygAOHc?Ou!L@u)$#XH&M*dLRAr%Xh6y&`>44N& zaE4);GZ4KrXDD|(v=H>8(AdS*mHJ^aR7KW4^p|7K zTVT`O!pE0JdK8?eGcX{`m_2*vMyqEAgC5ka@%?)7P4sInHeJ^eX(={Dk=Eojg0v(( zoguA=FtJD*O51PQ+2Rn)L@e+nmxXH)Bs=562w#drvnXF8Y6)M`xOQZ|WMLN&(Bw-d ziZ#hJ#-W&(2ln9~QOe3V5r=d!Xldb@HzMe;rHO)Yv6vT;Km^ZH5$g}WbO6P`mt3)Y zX^O>{h=6FGtInba7FRMwSqKjtHvf@mQFuVe2~fc#cIw*;G|{>mbwYUHbZ|Dgha^sT zFsV@JIn1}QYX9f5kp$vsYF`M!39Cp%LOp==m}tnWLgb=_#-h;J%Yy?i4vpd-eQXh1 z^-s-~0_d1#MyZ8*U1;8fO{Hq|x!CIX4DcSqgg&cC*#zx#aa1PxbdJCa5T}VZ zX^|%v>y&f6Lg1V&d!|R?ola80l54T!*9#Dp$~1U`P>ngq#^;bKatGp%H=90;W<0d^ zZkNDyfm@`8L6Dpj)*F9WZlig>ND5#<&(#;Rq*|4USq(Aqt+5Kz6opyr!pYck*z4G_ zpDSY*(XK&N7NPeTMe!e_ZoAm{fKPR3fVp2`BBV|`3|$Nd%azRxG*A_eBvxR_!WR#F zQk$E7w`Hy5>Oj2x-gzVz>TEI<=KWuW6pD;z8Y#y9v*=`Wd5tY71CE(T5A87mbknJ- zKI#WV#s`m;L$ZSyfhA2pFHFm0sCSmb{we`bEOR%@U^rE`M~4G@@=hjew5#)zUbE3! zi*TtXbyK8B9x`hZA+(u!en)*VffLJ9)Sv^1Au>TBkfRdIk&0o zgx3(9inwSdfIPJe``V_q@)xM@jCc{?*8pOvRdY|qhKVy#Cy$GhjUq5s5)0la&=G2_ zw*fAUj%!d)AE}mVsijTPrOip5C*L%L*Ws)1b`2Z;4Gd0q%paV=k`7yOWq~sV+dnw7-7ih9I`1M%E z4>LU~+^P5j_1XvNfeQ&~Ioi}RxFw}hI^@WA+J=H&uCJbNP5PEm;%QO;bd6Q?f#r}(yABU9XQr0c<1 zc-@VRUs70Aq))r)%xv`<`>lMa-U5VpUH|}_1m`%|7cq#A+ExJCf8b~zvSUaj#Vt2* zNU~O74u?cYvU2E2qJ;h2-@PNz95A&ussL`xb>TtoNG^np zatsAcx2s)T9>GGyjZiZ{zu4c6Pw2qLQZ&l@MQ{k?7nyq1lviG}1&T6iR!*H77@l5O z)|}7n0v!y|x-z>Y*l|hL!8fr&o+yZ}Hk~?smW5H5mgJVHbRn>O1)zN)7?>5wb z;|!!coauI6=yugsn9(pSz{5ee0 z?DPcs1QM|S64x1?z#q6D1IlheQs8=!#U@X}S6H#>fvc0>g*g2Q?`3(F1!^Z4kj>+q;BIG_eb09!!<5}n`m zyJ2`lKW@z?$AdI;`F~1sOmD-5dtbf7QL~vPgM*xfIV&9gI^4)^`;#CX0VmeMt^niq zUCCXbSEDkdbiWH3(>EbA`ncUrTp;(yxOKev=V(V5DLBLRquq{aNeBR~!xp5^$1U~b zggr*c=k=C->#g73r64#E!8QZ1iOCk|>90q*rX&Nn(p@c(cYB{G3Z~p2It>I%+an8tZp7d( zb<8*)kI+sQpg=r#2a=CBRv2rmzLJ)d6Nq{iTOd+**nqPu+(y!I*ou`@n6sy%`H+?> za41zJN@F^K6Yx!>s#OaBZxu>b|2sq>k+XB z1RVDieqdi$b9ybXRd1^JQ>0$?`af6$5J^?vK>UyMH${tG^jxGNGJ(xH0+Ghr#rG%N*V|7TSh|%uT1B1 zz(NqGBGkfFg+_gWae%VSD>NDSv1LLQnB^~B&&^b8aN1ne&bb69TvX}$^WfsNN<0bR zaI*QACzG+4?N<4_FT@zC`lvz6M5x%#+Lh&%N znMmD`;D@CR?6ifH&RUrGx146-0HE`ZE1CfT+Iab|_YP1wROVD)P{1c`^#*6@7)laU zq8q32JrXCi=n>5qaz~hiNR57;!W;<{ctrOXctf}$D=ebspu|7;5vY>eF@IOS@q@Pv z@pB%>{8gUBLiApfr=qf-3(K}ylqqW$R^zNIf@v;y{a0N;E&9E49}ja{c||bAS%}Xv zO+xiL9$SQpREqa{osv$iMQ4Rh?Z<_tQ@e0QI#rNU@0i|<8=+IQxLI^+5a^Wie@3Sq z)pe*D=#UZwC3phVs@hvt4}w)Sy7s?8ul_Z8l?6`!a*(YbixLiAf?ypV&XHPL6iluP zIfO=4qEQUa4ItmC0wL0tDHHoZhBmL@rAf9rqjcZFV z4wzmsD?-1(Pl)pA`8;z$WOw8PzK$3H3S>sw#<-!d;&%vRZ78bQ=j-7P97Pej2SjK$ z=rYK{(IX|jq54M&!pYaf}|kz}k))c-}8WkG*4h$5?TEp?Vf~h!RK9`z#o%E z>kS;G`8@MKDM+(2&Q4U((O|JX7AGdH%l*0%RY0%`5GygwqhuD|HbEjwjJq`8SzYuZ9o7O5Ej)Weub8By) zg-W!whFfs3mmQ_l-M6sESn$i$m&g%P7%0QY?nsTqTlO|pgdc{p97J&JcLpxd0y_b7 z$omT~#CO!CKyauZY(D{8?ifEV2cuCl7>1Tjb;>v!oAbb7M3Xppj?M|xrv3|8kv)6s zQHH3qxitgEk2aN`9@)e9d9j|X`+-nwBU9RJSI6&r%O=fH&)If82a5QqcJ&+vd@*#40N8vRpck0r0s!K$#-*`F>dRq$ZR*)mk=S-TNVw^T zCSD+Z2z$Gc^}bP^kWEV3uI@04--F_;S*_}~2C@-?P_NppF{k^DRI2u?ldt72`o{3e zEdHox5o3w^-shta@ki66@cU-{cMJntcwHCmhML09M&v;ze+yplz_@c0+{1Mwo$RqU zRx^Hy=n>S}-qrlTE9lA;X!git{Ufv+FA#__P}Vwi&+)I|(23{e7Mj1?@n{n6RM`Uqk z;Sd*OA8u3KT5zNpjlFzhv_TN#6_h3HpZ=WZd2aF@4{S)pDRy0txusu%!#^A^X&@>_ z%y~zLh+!sP_k9p!qDeIirmZj4!5cV4SXOZh%U%+WpK-oBO4^a=x-W{b%&?SlVH;pO zPBXd1^B4i=JdrPp`KA}%)KwbT!i`aL#b1?%s`1%J8YK; z7I*dknBjJl6aldr?0(MIyM6TV^V33Xm<7s;>Lhdy5-eg1>= zS$ccaJ-oKx%D+cn$iK-0__s#}A_y)A5Z(T75{3o~FM`6(e4;&($s=L3fiw{Qx-JDd zA6JA!E|k*iizxQQqKpK`jHkg@M%OwXcnrVrP;?#F0!3i8%MLFfU=;Lcq3*AFEIqBL0FX_M-Kt&`Kr)qta)>!{uY{})=P zoq>4e{ET>Y!DFBF2Tg2O-_CfYBeViAmU!~u1yjuD|H5;IJ>gBEp<+Z%maCeamfYUa zF>OMBAS7h2$&gxuKATIOa3|;>n25^@)yjo$fr`732N00qcUikST?0jDpe^9>S?A+x z1_LIeJW3WAciIkLF{hiQ_n*hMuplg3x1;)b=`GGX;uuZEH1f8lANfo`lMc0VEpn64 z%r4_*rgb0G*F5qv0CJKuhHEOkWh)ozH) zZa5T^YW9)th3vSG$oWum)#dC$5xRi$H4si2EKV)R`OHys4(bYBh(FPMMXK+HxgA+` z&$WN}nuI!J)paz7HVN0LWapalZDiGuRWTX)0DivoxhX%DZ?O}o4>khZjp0e5BGwB# z-{n|qO^z9l>VCUHq_XOO-L@{WejE!^x{WqcVA-kb;>}r6(Jljosgelv_YH>wx8m3c zV9P&B5yYy!5{w>L2(Q#~6_}_|vRFOS?YRz~(6XF72|@pr>|uB-Aj@)oyd{t)@i%sE zD{5F*raB(AhZqPKMnoUbUFxu@zGnU9%8f5W!%=`u>;wVwuLM`=*z>yBViz4tcCQnp&$27qtzVs{6{n=e0jvm@MwtMFn|Y5b4iaoM@Q4IVvNE*2j9Y#JW_ z?#~y$4vz)%G(4scjfF?+HJ!lY7z~hj*T9#6$EO6LhR1F=x%sHhd_;K6+a3##wTlmh z$8VI^U$~TuGge-I?h3TuiM&4avj2g+ep+!vUO(YlOJ1)RIb6im{>a;Kn7n>3gmbR; zf+2*2$m@-NkC)e{_lcL+FSH*juRnifL|*^bDKYYTVJ}Nw9|wUpBCnr?8_Mhb)@ynF zF%%O!Lc8jdujg`I?|6Cr4?AMy^$XCPDX;H1JtD8)<+0@T3(mIW^;7Qw3Pt4gesq`r zvb?^dpO)A6IDS!HFU!#K`uk?_1{7z_>XiR7<@IO2)|fWpDlMwDm*`2~6X zeQ#7=zYaB-@;dPiDxvt@L_d_2IWWf*V!7T$)fNk%8{dIj*(TA+HGhTpM2Jxhz=D&N zoANY0Giey^g{JwgP!EI)q~?gU_qwvGCcvxfA%L9@Ox0_4%#v z+1J~IPthV1J|12WKF0u!NYBoPlt!Q@0&g^YzWwS5@M$Lgz{nu@(@Null2Z+l6kKNn zM{-Q>B@=L}$=(8Et;hHXM^u6V`>+#rf-B##fZWmp8(k@N9k_0xQ`4rP!yII*R3R94 zF&I-xXw6&OMDEhc^MiL0I9hq8WA3yO#0pmvPWY|u% zF()6a=m>$K*|Rr!;vm@jeyx4DC6PFdr4VV~Nk-sy+PA<)77=-Q@CZV~Po`lSNJqeh^1{FSAPr|8qh)K}?;%i7B2ySyFz@ z*YITB0YmgI_a*(OUP{qb?9Qeq>-)=|Mt*xKKNuM>`H3em3Ersw?!e^{-<2m}M}9(E zxIn+UJP9}MoTh32@bungIjZoRLAo9OJq+5~Q+0TKtS4(1zRp>1m3LgZ1GS)=j+w2{ zt++EVmxttfatV^kiV`x13=6Em%4MI}|poXPoAa_b(nJ+D+!1xzT=xg9Rhtq1E zClM|;SkhlOJ4xdjvc* z8cPxG(0i$lU;V*oKz?-ilecPra{Np9HV`3U?BNG{x;G#ozcm#tg!B3lMBknA74LJhH#z}JjE?T!|Ahx$nGAq85 zi;FNqJlN#e2ck+*M@gsN(t!L5phb@P_1@nDD5p`l^#99v51ns@JsgA*3vP-$0%w5b+6%DG?1UIEoV-xeT`zY?WFDd~rXh(@2GTKX zLt@E{bGW z#C&5m7HM8N(W=PJSdbKJu>);+_#4xX|DBdN(DUh>c65P>dIRN7^>R6FYUY9zb45UM zDbk4GQbX12l;RPI@%|iqr-rt@ZZrJEiyP?g37D6bJQK~ghh%%=54&W7(=oj(&2;dH zY3{h_75xvQ0|3(KHBe;6x9nAL;COF+TUYhMtr&{zSwZ?_~`Os2cg_|qhW67|KuKy2ZFG&OPQVJ16r+|V~zc~(wn{0eG?=OE~p+V%|t z`Nbsl?~_1yn{-xDUIIOU{~&L4Tmt%FI=K*fmZd_D>>t7J=v%yLs2z^%%i^WC ztE~MyI*g@Rb^ad{9n(4cOWwdA^-3A0K6v7D*Mh2UvT`Fk9?hMI6HRa{P!JAxV)ISx6Wo}a%Q9Z`S+V(BV*Zwzzhlhba{i*xdz*4KRjsV#6Z~te ztmaQsY3YNbh4Me^O<(Z%sty|<~7K;u7L&XEg#Iu}=@s$^j}y&y66jxBf?0P2JRV#LuS5nOQ9+ zDg&vFMsJ`1+eU!VUq$g*0~z|%5n+4a2Mycoi#mfXA$#(X)(!YYWHrfpxyG^JaUvGz zb@jT69+gW3`$TG~INj?P;M;sS&9g-v2Y@&h{F$Y*>Z;fIl6d}tV}YMvM8dYkz9Dfq zs8QR25VT;*V94bM`#-{i68%TPD{=?O^*zX0v?*sWRG*~+x%z3FM;q^PZ0EwLmi<}&*|KCop zW69I=HN3h_@q$<6d+{m8GU8!n|;3nyu2Lu zMOo2t_x(M`4fz3{r9$IYr|%rNL+c{?kYmA(6Ok}57543Hcc>blA#RY-cCF%#-OD>h#vE^!3A;sHs`&{8J0N_)ZGn zsprj1x#gdnS=gmw1UE33ErmmD-1c7}6d&)^gu-$Dkq8BNDj2M=Rd5PuEf_gjMr1xs zDv8MYJ)4n5@A4=fnRLp;@6cuP25a`0=$E60R5etNKZny#|4yX9GMU^@5ayf}U5Wj_ zhpRSc_jp)JG9bGFNx=d9QvjOdBjiaCp7~HEux}*vP>2gI3?;omVusbVk~Bc~ESCm7 zd-!GD0p#xwcD?S(x&$-P*R)d1OgB1U2bW?>FrF!6;KUSujbGv4s@sVWA^cOk;z!H( zn&pb|-sJcB!c|pEij;$$3H9Zto8>ZbEiwasGx_3N}K~KT$t15J3GQ(xSnt8C+k_= zoI|dwX$0^{+I6x$^K@np(X>S!*hhNXqMT^MYA*@bkO0k(q?1;sl{$gLnPOKrw?8X! zG>-GQbXq7&?#za`xRNsDX2I+5_pBv2#i_c$y9Iv(jtk&@y86dSExg}~8*JHGruIDZ zrreu|W6^ug-{VF9+58P=2Yiq3LK01FFb~=CSr9|BP4cGIh4@@AQbvAFO z3H@EzSI^h{i;gf~;Rhr0i+S?ymH8rx4UI&@gs7g}_<72ePGO!F?$YygTV`aQJZP%( zdAj~vnC(|svy^;d3q7#r99=Po{>RuElJ&KJ=zlgpFCF*W=4YBN_p9@B9m|>PtMmD} zKuY{~=ci{MJwJ{Mf7ATT{VqB`i=9WFpE-CZ>!{~WJwHwTBlGk81xK2n_uy!W&d=Br zV&~`eza2V1l-D*=PHQEl;J&$-U{3g1EbCbkq{A~QJZ6%%!j*#HNE+8+VW-y^t`yU* z9w*(wTBilPleB>6sAl|)7V_X7vN!rE=OM%&+MTKj0W5fEELY=q?VuCK*nwC`6*}p} z1idZwaR|JOcZA({IZ48jw;BJT6-VP$szMZg5dZ@FoeOC;`NRy;9Q9VTC^QF`=6hpk z!aM_|I+`VR)ci*EM?-}{ImJTs0^J~DPWGtqYp^y4o}0tQ3=z>8M%a@|OzAf?M7OCq zeetyx-#^TfF0`wZc|eiCTlzETJD(F{Bwp&h6B#m>lx9T-`LNvwrWfnhQ8S&44NAXL z{rwe$oJ_!NtbPQ8_Y6D_BP31eb-VI@OZ;kAr9Fs0lkB0#gf+s~6m6xVyO_$0@MTW5LKm4umY1qY=TTnWSpoir&y72rSu3;F(S}ovCUm8a z1@}yZoSKk3(`Sd?g>3cydf3R8j@yFxB$0>QBi%Qe_zjpm!8i;Q3-f*88Vqrr?`Era zCgVk?#z6Mo>0>H>&I>I&?Po>%wKXfIU&x+55uR-)MroUg#PQMx3Swr%xnR?iTsBAb z3uc!o7-82402C}O#rUr_?SBG?Hwg!5RS=8X)l>5*=PqYoDt3UM)|&kZTa82tC&JQU|s3AKc@iC;|#LuN*X*j~* zmz1BL{A3h90p@WG3o}7i0r;lgM8+ny1iw6P9B>V{$8sCmHy{r*c`SYt`1>3}3`TMY zPSDX>)cZR)2QBKSb5K{{1B+-JrHO_&P*aN!B8yMQ|M{nsVgkEn=Htu?sHY;$m7*9> zvJ>erbo6iIUiG@%uX3*^SQfaO(3{TAP6wjIJ6l408@(ss-{2KBTkO9 zg%?Zt_*oS#1e4FHRzqIENSNLL4~Pvc4=%D=BSbjPdS>F+ZG(=CUpK&>P5gT5tlxxR zy-3(h{AxzEzX87t`)|XqTXeZ!#jhNeGx008Q~c^FCF1aFTAcQ=uUo|a+&P}b>mO|{ z4WpKfBj8);-Uz)gXX*LpFiW4t<6G$t!8bJ#ty_A@SX^@kfp=91A0*yA%$YFp?zP8E zyc>43iFW}6&A-^v_2D>FP|Rb7DB*jp3zI_z;Yf zvj@$wYDfzCA`ajFBYHODG!2t!eU5-%;lt>e=b6LlnN3CMSqi$uc?Dke2Ky&oc0*J>84xmTTjOSP0D;8JyfxR^YE>C^S+qU z+8X_pQu!-A=i6YC#P@Bge=QdiBCiLR!lrq)lNIeI`*&U8;u_92Tet!8oN=f zJ{kz&{g7nI=yhDOWXRbP@WgGlNVzr#@44xSP90T*?}2;t*JP^7!z&|4i>VAn<16EP zRz^mrZ1^7bI_u=kj^gtFN8P)CM^$8d-wD^KU`GWFh!{1@#1Syeh=PbFCXtQ?Ctd+X zjDm=QN0fj#s05NIJ#CNiev1w&Dk>_DH&m2xNrK`ff*^{Th$z)I7!(zh!MwkJ)$U6m zIC|dmo#%V=K<{0(S5>X5TD5A`s#UAT`i7y(?aMaGq?mps^Ih6NI}qGf!r5c>8HGKVsGzzKp!ApOlFYi6}966>n+Y#{v+U=7CIMfSd`WO`(Wv%|2jVO4gP$21T6dBceqN$g zuQNM-lJ&LCD!mvtanGtwh~>Lf)*ZXBE&S8{Zt2*qCnKh{@q!(vwLiQrW4kr(#3nAK zow})GL10Zm;602zJ$K$3`mE4>LAV+agYKa?8Qtf-=Xj~G3;hI5eacF_Lc2L-eY~4%fIuD?0iL8Z=HKuOxq~T zGqv+oN9rt;E}rLP6fwQGBy)Ii*h-ttY?sXv-^}&A0bm=p_wrad_e9H?c^Kuy0P15o z2s;oV2UR8pP|amS&7s0%rkI5p6G;jyDAA+bggFxy<&b_-Nw zRLUo@kXbw_0)N(&@V5@W^3@DY8)3YNWkk@U0zAs4E8EVw$ERKN%`Uo}hmF3AX!S-G z5z?lodtH!euFu3p6yDzXfU}zNQDm=?m+ArH2E=_7W$t$vvom^)O!dt%M>r$&w+|;0 z3NNqF5aT2Le~kGm)sFriWeYP>>G>!FD7PUhsz|6p4<)|)MrXkM9!6U#UjFs$*+pnc zB@a7yB;jr5y^>d`5O*rckqsVfxZk`Te)#Nh@ic`yWr)*iH{5p~WFs0dZ;gM2UP^_l z6U_@9ZcYikLcz7lGgA4A@`iw1JMw}fVd`%V1E?^>3Djs~klsw#_B`O+vA)qP-u%36 z4^YJ6-8bg_Pb|kdMm4Ij&9N)TQL1%2U8+oTt8Gu%w9Owj&C{}J`-Dx~Cv4h2Vbf|Y z*ffv$eh(GuTKWeO{BW29ccDS_y|;ur*<*Wo@qv<8y6ZrRQhxH{aPz-o>%!>3>ar*J z?V)xZ!>MHN=9wt`hUt6Azdm_MxH_IcjzrbCm|a%fP9}L!fr!|WP7WTx&1;>WvxqtNIq#?!T<6S*f(->M{I?iBqJpzC+7)ULLPfsw81}j$j(JI++GWJ(#XNVJ zM;Q8O2_wz)398SbT8)^%65G?wX5;OU3v{Vr0<3xYWu^R6H6-L;{7ri3RF;8QF=*(H z6Sj-LPWKA|sPxFi+WKQqWFLt)jPi_PzJn1=fsf(Xm37EX~ z2PJE+?LbX!YnX@kkwa{d(5UluskRjxQEvU`la6`FTu2y$3XryFgUCROdS4x$h(mGTEwF(x!V{ zjQ#F!Ty9M1K-*)ko0Qpg9?8 zyxDrI<;8imjS2x~$K}wXYq@Ra-3ek|&E^!+h9hj6Mu+1$*X?0AE)TU!4);SQ0P=m! zphvZYBo0=one#0e$@>i6O`g~3@kO%CgV(F zBb<)U=9}%$Cq+=hTPxs)0IZC>+*1FSxc=aX1O8x;E(Sn&m{m&J(jjye*iM8M>K|Is zm(kQ@R`1`HTi7OF=9Ue|UG*r~d?mOli{M6c3{Q7<;d1LAChB0}-+xfny)i&ye-xO) zK%+m1+gKHYsGP}DJUC0?8Owx-r$-L;-}Y};_6S#YAG=WTgz+Zx{6yhkU0bAC9JtT& zV0z^ms~HjQU-vuO;@-`sFX>OzaqV4H2bbl^%Cguw7^9NK@hoe|D)N-o({fZIY9wV& zj6*ykhye0s|I9Ln=X3k1jYj_GrN zEEOcP4js{CR>UE*1bINLem%WH2D(CU20JgKT1h*2Nh{+?f1o?VYbBb7`u~*W8X?)H z^Ht>AXt!*6qobGh?0DK&l(x!>wK8fn1tJZ)Gl!>U*fS2WRvw>&EuTGor)m4cT^<-Ep0_!=O{CY@c{yy)r>7>-tg`%tWZ)a^ ztmUuOsQZIgawh1H{t%vFJ3q|=nJpf-Z0~YfsLL1;&EoZK&Ch942<2inS|bb9CUeI3 zbBQ<$8-kTG5Nivq%cvxD!V)$=()>sMY(DHvlDf9G#2`0RXmy^dg?T#LAej(uHkfz^ z)7h;6v82eOyN|!i9#@qI;<0W4~Fm>=FpLJPM4uRA_u^KVkR*6SM8WpdEg z7XKMva?w&*}VJp&a=pS4%f3Tx0wDUk1;MZ&ON5;QJZ@m zch{HN*RmPzF_TAfZCROnl)FcT9(852c<8UTtdd_0Lal|W+Q?kkPL$Flr)Xn%jk;vy zO3S>!_$+A0_iTOOc4c6?h`#KF#w<-T3xnhRX1@;4Cgse+>cd7i)N&KBc^xMy{uX9$ z+GI^Dw9}KbXR$}4`>&+^=+hTdWu*&mtTF4K+Q92J^Va8IHb>S)dqwp18~WptdfOkL z-PUSy*9D__<+}6>yL6o$X)tl23@#ofArb>+xp{CwIBV_%NOg9GoN(* zaXeR1#rq@JA<&V7R)Hby+{VIg;UVpU2VsYojvyq6;IMYVj={gC1h3I`w3`q+O!DI7 zHCpDHvT!nTJ&#WyDY)}I+K!u2g+-iCbOMhw*El73{%eV;C^n{0fu^r zlt<;ZJL&-Lbq{dKD5IXCAGM&0Qj&ZA*8DU6oB8k79=o>JF6|@j3zHIqC_9CJ>|@?h z4Wn{8OB%4n_o5UQrFYuzQN1M$DaCA@`V!0GF4fxX9gEzXu;+6YiUAlFVCi^L`SXK) zk|!1Vy1eN-Z*jlsSsgS@eEm1MAa5`$+q|qbb^GJH^+}$Bz?0f}cxGSLQ6td>Wa1Ll zW}kk(%|BuPUM?}WIzRHopn*?##3iTT>hh)pGcd}mr#$kmpLBC%R?Gf~<5xu4w>f<2(PF|Aen^rW|C1C-LK?PTErfV%Pd&l@43HK$g`&cmeKAx+9~}3osMjVKsGb z?M1*X+OUS#mue4ecx1fh!Lpy)mW(R<35(W;nF-nxfb=hz~Ya1s5o(yH43ICqs zw5P0Vss+T#ZaGi0`E;~%C|(3yz_?_As0pQ+M_<2eRo|%$^F+^x8 z;lf~XO2O#W{!o`Q3qoB!2%ef=_EQ^YUYQfhPxcUEWn&St3z>8>l;6QFDsZj+q8r`M zOjC!a2&K6ewVN|$^E78#)bs^~j%(Od|7e_E#*>%0RS#|Iu;9w;mKomTWvH$&$%z@d z{wT6_h@wL-YP|uH{j*i8-SX2^s>^apmEUti)pj0&jl{Ud<9_;7*MQ+ynRGq6^%{hh zvkl_svI0=mDezsoXTBh4iv>K*>9z>;OQZ{rB)3XWh)*zIcJf@mm0^h-mD)@(+rnZA z_QX?opJ!i6N*J=?9nZ7~i=P^Azr^{kWW8dm85+rvSH#aJbE&3XjQ9gzn}4HTvM1D= z%&oSR2J-|tif2z0&z>q$D^(plpLvJ|;!foPVuC79X?cVJ#x}rooM>4C$0&mQhcUpu zU<@f@4C$f{n#z)h7QM%FrGsS*5(-=R(pNQA6+}KwLK5{fHg}3a|G_e7e+uT!2dh?h zoFROem72_(Mz0&q=TEzOB+NY)`HiMdUx2LZ*b;fl3!g?tiS0Y6Wms6iQ%~u{&*?DQ z)N|YM)03j%^G>NprBLhm&Ra*N&(28Uw}-q(O4s*bBLz$Bik0wxm)~dgyXF@TKHma= zdp=H*@TPRL<U&j_S4SlouD&q%UuM5qOW>hogZn2z+2}PAmgS z(pDU1&@%h6iBR-J94b9V8JQ-#1r%QAV`OAGGV=|TsI0SMiMa25A(%tG*`nTrT|lqJ zWA^l%z!#~0QjpjtiI^nP=u0i2LRO3E2->Q7EE0*B-&JFqZ@?~xrNAMvKZ;xC8XqRR z_ecBXd*~1H`-O@yrLeTpzzkjtq?>?0Gd&M$Zg!I{zlCT3?bI71K3-bLUumU-pSo>b zGIn7#jQG;Qk10?xp>*)0_T^w!SaWz&^TNd^P+%EnGCNjb%9_*ga54PoyBOR zLWB3!djaYE!LIjR$EmvD;6dYfg!*^Vmn#|9_Gkh2bfLi?-AYs^o1d@TUdtXD`~z{; zlde_9StW@%Y^OGN2R|wB&HLNDPjq=d`wyFUwZ0snyg%3K3q}|ke6!*fB>@dTxuz}8 z(BO&0X$3Xci!OH2XL!-KdeH@nR#(@U4qwh~jy$J+NgQ8WqxvQ{P3;s@t2*ly$#iY` ze_A_rdNHw%^_bMj;^k5^iL)P$s@UV~FMk0|KpXGP<@ujD`;!8qGEcSZ|AAwTB+9XJ7u0)n15i*j8RU*AVR+w#s+j zX5V=m#^(7l-_g&qt-cZ4`2Qgy>h|yQ5Owuaz127BTNHlVdA{!}f09CcneT4(jeN`3 zw{xj7npw+yii9H}c@hzlaw?txj`L()&`OjrmjxQgi!nPUnhX)mI41P!Duq9Bq*}HUeqZ&Sn!+D)5qdDnZHpCwK0Xti83js2jBaUsa?? zNXIHu4@2Vzw_O6C|RI3Uq{*%`MxeIg=VjnV|yp(*!_p$ z?{mZH@DJ1jAAgtc8~F)ueb-IeS73dDq29@3^L@iU1*cVB+%<~J@eNx|x(hzAxh?E* zbTXk49}o{*agOTk8`ZV(5cPlWC6`r?0}1v6>eU)6g+;y!r{K53-^JxBU*9#p8|%D= zQ%gOf4Ag+CK=?!&$MPGh^1fZwfYu7%%GF4P)%ZEU5&Qwf(>llQQ7ljnNpPKfVX z?BLj;=)1~ydv#bgTCx5QPqXFuL(YS&y3n`ZJiDmiWsb9;IPukluCt>~=l4HwXNg#L z&)6i%k>y=^Min(S5015h7F!d9BuCpPMQHUvwl_NwoYjL9xZScsfOD0A)q~`A^YY0O z!BWqcC?n2tb4EK`3>TOx9Ybve|Le6um65?)quwTD06sE81s6k-bkT^#4BaJs8eYBC zcg9*s=x=RG3PHAz+pQ%EW$`;EBb#4z0VL2yl8UeH@<6jMb1gBt8kHDO5QHz)LbG2+ zO2$5caSNWqYhgj|^$ZFoQ>_w&k_8!FOWGG~91$>|QQB<((QPt8Mce7E z+DQk{e}iZL-S)F$exd(FPhIDYCXPD3r-AX7=;>WI2oAYg&YTV zZniy7oos5g3ghTaa2>@(vT7<{=Fcr!(zPM&NfpT-l)Jpi&v`g{&!opjEv4!0+X!x< z9l=dSl4ueP^*b^w+K$~5W{1jE*t^_UQK!gsM=l|InP66)NJe}5sgG-PdfDwR!;w>%H!I6TBX$&5{6ZT?VIMyX24=I&4C5ebl8N4%6| zUGvuR!Ma1VS93L|N|H;%88G6vng5|Ss3%Ams#SdPi!WPA&)6safAgK>r?4Oz%&6fm z=BrptZ!hL-FHIF`3PWQghGNsT(VXzo%jiucgPL!*l9+XVvDWL|qE>8^eNvMYzmcLE z^gXq^-E#c#1!2-)9`rC6`#NDT#ZrbNTh>MA=qFr3)W{a}$T{S$b&gKSAKOJDRGzes zkfFCA^y_Va`S=0Vp}`zpEGk3+$z;M>XaIDk*7VNAu-o<@aGhD;aD8i`!*%6_AViI4 zZmY6(xN>BIefI`X;LVJt*vN;KI1LDJ_fTxv>AKLI!zvAr0&)=&Xvp^6S<7|RCe@R? z{evw1C2CeDGSH-1bt^+OGoD^`syX;FE}^Jq%g9%8AHzlsK*MF3w!38FEp5p{J)-oQ z-&jBJKtZACaf;y{KE<%aHCs*=y||HNd*N#{xJrHM6lM-ORgWGS!KQ#u)sn@3Y{$Yp`OrM;x-pO{k#r*3;(3|#Wdd&A_?$pl@ZXG##2@@vgtl37;%Uf(R zw1cJ9DvP{iv?(Ls(`zUDwNW5p;?OgU#70us*lVWH$HpU2j9Z%3WyFlu?oaKJ(4IUBJwG z2%ocf&3T>1$5eAK_5%EVn+^9I}F?@ZtG{%a#?#I*|JS@uaO5T*xPtJz;B=Hd5tpdxV$zR#Hds{B9Y| zuT-ZS)fpQ2GO~ii(Qb>)2-1fdS-GMVMIkUUqfttNEzzkVctfge!#S`TwTLdc#M2U3 zhCcMY=ehD}a=KIr58)ixsSC_qH5mOlJ{!4JuMK9^YCVnA1ylV&XJjE=u!y~oa3xQV zjcFUUm3IR(S~kUYr6mGJxdnxbv*;r0BYxmJ?eHQpRq0*v=b`Zt6S~1q z_e^L|EM=$IE$pZ!Q(NR*4%R-clg=?|k2bY*dM1T+#9@(lO_Dp;i9)*p29SDw_}}x@ zDGfqC#WX1Zui|r^xx7h)ul$zp^V{>Amzdu_6Z7jH%Wvv$%FkTnWo7Z4Q$IJ3=a9sF zmwb~rKwIjAQR>TrZHKw@8L4gC|FXAgGCsXFmu9ie<}QG-{^RVh-9!3wT>3YDQ+oIt zc6Rp4?+F=OK*0K2+F?>%CfAb5qBJ|e+L{lLzU)i^{nVJ#f7am|iy!JW9PIgnJu+l) zqHEz;ZfH zo2267mG-S05MFgGOF-^jb;)7_N=H(D&;8ZbG)s-RRtA#HQ_N3vq7F0Zb%gXsp^c^eq5^~Sx&F3h$j^hOl1f)pP8^$ledQHOY42B-l#4Cd#9|XD z2-A&B=C%0OPNx55?M}buG_TP#_xIO((i}}@$pd>Q_gjZ-X8GI)&+MK2pYCFoyk(6Y z)mft{#X53}R4cyUx(FCSPE962R)V;e_O($P&4HAusIhAD7JvA&qyu0s@jmEc{)m8v z@ent&l&WL&7u|S^-WPa|e{`6=9&QESgtLrGae3b*qX1UJL8J*?lQ?-ln7o z>(Ib9Uzz+rspT^*kY9c&Qi-x2 zi#3if7<3()hMN|X-j<;Y83$PeupXHCccKe$XKWp>rCZlsst!hh9egi!YCCIhiSlxX zfZ^aZI9|uLwQLzXV{%21Gb-mow|~U;{DJ;~t9)fcVCVk8V*lbWSYDTs{E9`pjFqhK zG5+j#)Oa7o-4ki~{ewgD}xXUCJ4H);u8o8sDI8S&Nf5Lxn2Qgtg zvc_nypRs1g7z54@GshdfU4Mi@YL=~u*I&q6Q6X=`%@1+~Lw{#8slFnTV@74HX@~CP z9EMYHJY1rpQ6Drm9|R;=)UJXfIJfg!7@Caqv(5NU5vcrC_yb)yO;q-$Qr}Dd6yHmt zhR};Pd0=DN=gDR3f7$D;S;Xpd+4`MjpSN*gF1e){J8|h4kJMmM7am=LMQJ?Jf<b$6>riT0<#}ahjQ0AQ-Mi%Ow zF%k2;-~r~#Y`PSYjH4TmYDjab;(?92bEG6=?7O=24zOt(oO`(7Jl9}jJ-XbV*YAPdi zZG+-RFK3H#mE2yu8!MS|Bh@X~oBU-2+o0`O4c)-&E=++cGD{1CNB9G6)x53VkN3xy z)CU_)bKTtLV19~intaHr+Dkkd7L}X2$K>Wkm%N(f90a#M4qd6E5h!!*O^vOV`>dDn zCKCEy%1@t_o6h5~S-FQ13tW&)j2 zD-tr{ixqV}QC}e$q?pUj&=AUC2<@T!#=YR$KfBhpKOMKOq+MCA2GIgLdII!=R5y@1A%((-Ef?~=6qH*5jiUz!YYaZ3A+&)1T6JgJzKM;8V5Ot`l_j%+r?$f! zXh!%JyL@r_VmE%!%iR(66#w)657P||=B+Oz{c%KOqd954UK`BIM71Pm`oA#rcsfPf zJ-7l!EacV7Wrt&)f5K*QLd{$lK04-Bp-%Lm4g|^{d_eiO3U{Cf_sufkLf89EuX`RN z!39~ZLYsfNva1Chydbkxprszr{SK)0T0H0hO>sa>>FY{*CEV-SO|5jT15!7HhXQE% zk?j;Y`i5+ln!E0!jf1bNe&+9bR~;_8n>vK>(UPfw5Won`CWL}P;aopP9lxbz}FRWGT$ zbkR!}Ubx~M>57*gdg;MSx?VIFW#}b?mrT86^3q!`y?M#fOIATJe?XKAil_!iN+G5d z`r9zyp}r8`+$75uWHv7d+>VPXJ$?`KFal~V{Twg-buN8TVzMG7Bc_#Nuke!PlMJ+n z3+>?)Tb!7_Sm}vrC4C<+eR~xfnmkS#{Z#Ye`=WLP0tv5NC4)|y5WL*BEk?XKL`@{B z2QjoQmb{87Ats#|8W{r*#pw2!3}R^Qyo~D4xCXyRBdDx}<4HKE;@bSy~ z2(2fFl1nfhbq+()6X+k}hW?**O?}2<%kCJ#)g>8RUAm++kXp9BdNOz-NMRFSB)}lF z2Gh>~Sm#G^ot2tDaNG2|wF|;|8=?z>6{WDY0=Ccegupmc>0a*C6WW6UMQmPtutHw$ za)7r_!B=|ldM3gvO#XJ;$Pz+Qasi4ig;k!5XBimmh+N_;zkvZO&fJkSvw?BFs5Dg> z3M-9^kKY7)o|mRAh~GIEAX@>w#K(=ZH;4knN6)VDJIdC#a~1V6vKf{&ZYx`#(pr2| z+4|Jh;v34=r?(crsBC?9Yw^>|)|a-3FVB$qkPy~0u|*Z8b>{0qYuIP7Vu2U5&tOHh z7qrh{#d0rbpTUZHFR14(YoSWBqV(&@{ zz!=x9g1zN|JuI-$v@FBvc)g^VQoYD)cIydm^%7pDgwXv(!t5X`OHQ*MROjCz&Q6ZU zMRV+HbDWl9?&OnZ)=NHdn`3ALoYSpHquw^a)M>tD<_ZsPFmRTK=bXz5=fj0>B+J`2 zD;k)1;HHTf0{BCV^e_kai8K!l&CAg7)&icIV+wG(-70%|_bE42AA4QH>;h(iR(Q}8 z9?%R6RAqB+6|mF;91ftJ(Qc{ym09^r5Bg7n-qWny#{+8bfLgCbiU-uV(B?#cwNi^O zo^(}x4ImBisKm9uyVu=Uemo84q%Mu-?V`Qb^10v3XOhjw8Gf`1c(n(3st0KHlw*Mh zc$f#+xF^7L4{-ZyssfG&_5`@?30K$m033=QD5W6yfJUD1j9yUvmnd6`voc@B8vqpq zUl(&JsH@OJf4piK>(5-LvO}-W(tGh%10D~Q^4@9-O!Uz3TYN8QePTV$13JP2$#51V zk4%_T4$;`^<)9=*Nh=cm;nf7WN-@#>2oL+h&@s$0I|~PHD>>fd6ZUTG-R~4$G1s-# zBjm{BgCgRa$t&Y+Fq_KhFTBYL%`8+J%sc zK7BaWURmF%y{o@(bx9-OcIl(|sci-eH}c?*}Y8s;he zUHC%x9zM-`9>+7@EKzy@I)PBks8?tac5{?V_)4CY5l+aFVUqLsN9;-Z>dCUV-12a9 z_yPxR1>R?l3^#`h9fTEXuK+?O155dwX?%YQHzV-ckl*yX`7!cm6~0up5x+Ah3Vc27 zYNhNfg}zWb+JyvFJ$)<7ef4Ba9%c=Gs3`6rHP}Dpww$YT!*?y1%TAW|g`;}LXacE| zwn)1qZ7rK8S7Ni%e&g0fXqZ9vW*js{#4aY7dQQb5yp9&xhZ&+8)LK0iSdapEQ-+dV5$^4T$uKB4X#mx)=96 zAMW#q-!UJ)F~>23yIvB9-NSr%uLpFM1^SiwaH0q32N3%8o9TgHnGa9)pt}otPxIj+ z9?%ajTA{(KsUDztK~?yb`EcXIu0a+7_&+=!PEgt2d|0%}fXANa!(tDO0T$mq%!h+K zpaU$>p60`@4k|Vue);_W)O`5bL$0lEC&%A7ANpq*@efl>lK(UxPFNG457Q%RFE<~S z2fX=kntjnUb`@{RHs}48^Wk0@3G-p01^4E|le~bP5C5z{NEvNk<>tff^)4fi+D$et zBU_mdf133_HXok;uirHvPN(D+^WlSs?=l}=Alzc}VKblO^Wk9?yUmAv1s7Gj02XVS-VIFleb7OyvpeMn+RCJ>8|)F*}ycH|85f0+D7mki2m8RHn$Z zg2fx#ogO-2P~pHGzH+i44|h;xIU;~`6TWgeSkdQ0lYHgfEyivoD*Ftv6S)PG_!G0< zV4+k`*lJLmyeI>xZRY6{rMk85!XD1<1}@GrI%cei?|YB-M*H|2n#8^j=bUUR?Xj8( zUaD$xZ<$IlrjJqq_T@`mtb3>{Y;|lSel5ez>&K`8+_8jca$mU|J1JIGh{w)QY}wM( z0&Xiscv@>WiI-Y!yLBK}_A@PWGeCs{xBDuvc||j6`*Jqfa5U_=fc(y&zj;?a>b;H} zdD33V$XgU9sCZ#V(!%BICSUHS84jbmJ_S?cwokWwUA?9_^|o zuz0>h)Q6N-+9LK)8!I~a1QF1>ko$s)lx=V8D}T9Q2*6G4@@@G-%-uctJ&(S{dZpMker{0PQ~RChv<04n!lZjpUL5N z6@a{`=q-vKt>`O=c5lJ^R;!ldl)glOIuu;_vR9;6a(FA*2s+zyaMWNPPE4?mP$~8jto@p- zfX#}*PDzCAEZAc_*m)jodJOi|MA%M(P4Qq$fel|LM5z31eL1~=%GY=mDe@d8HJFZx zS+o;iP2pb2?vg0*D)#&(HJHyf?^@|90d}w}hJ_iWO8T{*GTu`elv=5nwTgM1n1TSl ztTvhy!#p4YH~)3fUf3Ztna|#m8m1-^w$Z$qv%N3N+!wX$MO89dXfn?cMOaX8Y}6}q zG0(_6Vk#pn4(z8#6m_ri!{V^U+~Gmq%+vamB2w$D2xGy*pB1LDWRDv8#>N{jK5~E0 z}8N+UIl4WEi$UP~y})bHIb+4^_#K&xAT>QI@QNU`Qofi@B& zeUdD@(#+LE9&LWZ$49AW9}Parh$sur%`+2YFU&!Pk)c+}hY_0{m{!1^Ru9X|HjQjEV zP7rsyjK~}I){Kr|=Vd^-*8<3X@ps)s3+?Z}OlMCAk0i3L{pI|EF>FwdjoSZ}pgCEq z;9%F=bL<(_6NmylUzHyBHhqz+77GpTp?Fq^U21LTnzxth3FB)QyC}rF!sBmyiDhGl z0|fR4!S>yRfi19Oc<_*3$+5MOUSjiSv|YK{o%>VY5t7ksQ@H}fd6XZIIJ0KVB95B`fzP1LC{HqHB z`EHL{Dt@+KxQb79FtSnUnG@__xBEMIyZzhD>vwCu+h*>3Vs3K*T{d*!#>sQ=o`l`Z z=8|*O2atQ5jfSrP&eEgno|w%FMC$QZ`7beJhwf%{BF_^kVQi-HfVGQ@t9ue!aQFLX zgGc8DFG(?@ryNK(w8O}!qknW!CoYq%PvZrSp6p4N5hfp@pP0J{e zs{$MBwrh(V!hL1!bGj=Q(ZGCVhKljk0Vo_X4YX zW0pqV;m13lX`Z)Apav6pT~$2EtjN_IhjCQkAoItMs+!H={HUnEdw?rz5;u9ZzHgMi z!^m`@Fr>Yacl7p0W=&pWLP8Xp4_G9SHIVFie=SNoq`);5aitE}Bar0vBfP z0$yMFu~xX?67&zb#fTB(E6-32T<@gG*0N5mS)OX4ti)JKa)bjg!@e%nyxA|AXbeSSk=eeROH>i|WsTtt-QyA$gbUVqF^ zMXounE!ZfCEmRsMBsnra8+vEMF5N%c-^m}!Tb{-ZI?5o^S3U?PNEF6Q80#0y^f^mI zCDIvs9E5d{ue_Teg55VXG%Nirv zDH8P3sRbr}OHzacL0|bNc2>0AkU}@eeC0A*1J^^*0LjxVNwP4`3Nn|{eRxCd$JVm&~&ci4RubBE+R+JdZYlA^zt*%Hl1HAm`!pQS7z>-u| zF#23Z^(o${K9^D58=e;_`J-1)_#ReGvWdY!eWU5Zc+m6vMH<(iPHxaFbJ9r&W-qtE zr;uqObx(PF{4_D&h3~t3s}l3wcp~{0kZ*7zJ|MJX{vuTfzbqegQXVVjh#hJq34z`0 z8?>gO|E9Wid^J4ml9ZvL-tC4C{L)<(YAFjO1>~k=uZaxXogVY21bUsp}R%`pvtwJM5*th`fj2=Y$gIFFCc8rG?HNM}$P;&HA7VC9E=^n2jT zhNL7X=72dcblmlaPthm`vopmle0fXa5Z?E$pY7rMZuZ(Pzg~NS_XkgsNjFT$-qYIL z=*^?ie8T&zJu-35;mk$Fj|CW+2fiyg1Ud5UhQ7(Kbf@hL1Jzp}%l6$}>$`1n_JDUM zci3w8RjhZ;x^Vw!F1x1ht@J(rWBRV2WjHK$O<(xgZ%V)VQ!hQDJ~Ma6_^fDc-4>Fy}NDhwFc!SK?&SA-{CH;BsBA zH}GRvI#D=1OBxn2759hN6j2vk8{>i@eY=u7Vm2z;I>}uCX97$y3<>SZZvH^ z*Lr}RpHTm4>!fm6Z+r(41=HEKPM=1?>SK}#VxGQysxOSkPZxUivtoL1Iy>Ri!yoE= zqRr}K)*FYev>k7c;hI#@%-?UKCh{5`<+#GLq-RhZpwk+ z`T8gQ1!yk)PO}vL%f?m)&&45F`_q-z=q{CT@HT3jY^L-63zzgxHYY?uWB!2pUsZE# zvdP#rK6pc#Y2Jr!p!aU-&NC{)g&F)wmKAnO3liCPDIIk|Uac$~gtEj5{v2bn>_h5Xhn z(8Rc@q^}?O9;txdT37N7+lR4cp3H=U>B!zBh%AWZ#|ULYaZ9rBH^(V6d%o}pi)WK* z>+tlt&#p%c0>9Y1+J!Ge!mXzcxa`1WZigwrc-JncChWGHB3pW>ys15$?;z{g~}s8+M9qO+s{qFu{g z)~d*yz*?UktTd0TaQ(M#zScu0n%9o)!fDbI&A|@9lzHD*&>xoHMEP9;vx_f%XujR} zm8EkWMi=0`5fLd5wqsX5nD<-4KuGG&B=7M%yFMIbK6weWkc&7^3`y^rXSgd^+Afqn zq1FC7>(bxYfBC9LZC@5>1zA2Hn($3Z7e&6 z;4mq+&=U^fWYMLZ$VeGj)M;|x$cJ9Nv|MdFsCjkiv`$GH7n9#$1fw8(S%v@(y5uSN zOlojnyqT7C4Nhq%vACBg+Ck{p_~?}^N?0Bh)-w-YM(ZExzz_1kf3)gN4n#@eA;?g> zdYB^&XJU%E^#vVPuzMD76d#zJ{bLP_$T6@thntmbCS*2;hY?koJ?olI;cb-eH4AJV zZ1<9|Qp!m7ETY1zqY%;da#})G`8ZDZm5Y}9RrlMhWpHZbAlga3RD-9a_>*(9{iAFA zgK|?RU2G3mt?$SRXNkYUax$?fp$3?L zT-+o1bZ(y|cSQw=I_)NaT?tnsc;^oAx24FkW$95$q9%EoEufl3Kcpo`p7$8};VT`@ ztf#q%Qo+qPk{3MVJ)*q!h|WKm)Rdd{hPx?Zqp&uW8K4}TmI>M>^PS3_7q!lJ!ob!2Z>JHh0A|H%>&6x2bJ4TxQx$?ge<;I=GA{WeE;n5RhwOC zcSak`p>cc>9=;zreIiGv-t_4Y6@B_ z+kD&4$!0mvtKv102tSpPH7&=lDr$C~uo+`>S9VKBESkY5zcJv)$pb})B%Ab)r;cVr-cWH7flkY60k9TUhO6U-eK$R8KX zoe;>M5X_wz$e&2!sjjrCUTI~eU_7frzy29ZXYoKATXKlHIDXAE{cKJ< zb~n{{_$s(p?Z%!b(`vNUi@!fRr646OW}Xq_al5B z*PM^AuG+URb+z9Ki_m&>=rfk*@h#n4i$ogv$UzP;;}t?}#J?IdiYs?_ZT=7yI7LA9 zKvYK9Mqs0ndvd+!y$Qs_tM*s6wG=5Cn;ki>@iU#R#WmAaZ|XeVX`M?ldUGz;sh-p9 zp-%JWDDA{RNOtYuM<7{@K+#k{vR1tbNoru&l$k~h2EjN#gt(cHoS zg9)-%(qbKPAj12v%b~VRvPTOZ%iSU{dN_MR6V@Vt<}K$-UOgK^-U{Y4&8TfDj@66y zfFk?H`>SR7cS$P$RXNz23q+TfB{`sDXL8qAd0ImWIplwHDtQ%f*F=DJLLO!z;o4oF~Ch>jt~iY&IVWVYw@dB$L5kc8oYM*`b6U zu@iNYC1Uh_dcyZEvF|@Uq3`BjWH+|bJY{oTY7X#nKh2fw8qO|0p*uG7YLcj4$zR+) z(IE4JGTBTAnvYRQiDB$-6P{?k%VfEr)+-3?Ylf1m76PBzNYQ4XgBd_%*q->+Hn|%I zR^JnXQA(!~&<@~NmS)WtR$0ut9Ft*s35|wL;BDi=G~+s=?r%!nBpuN&lNr8FN0b(e z496q8#UejYq^Bb?H|;!vWanqX$`|&6JAwnF&gyl=tKkBv<}44N(|!e?m}&&+qFrrn zRy5O>b<0g_nf@ZxH*NUichO2po`O|ydfxB!d+hs3*%xYm@`;j4qHZdJS7wr9S$+yL z%B7ht&~^Os5wey{eZR6+lO!V7&rU<3_B}z&;<*cQE{kF>i{WHpR~A|~p$x97>udKC zlD^Kc&wJMP(laMeYdSCQm7HJxW63zLIj_jrLvyzCYX0wU5v=l4Xs~@Hj^RoupZiIO zlw^j`h=&NVr!29r0ot6<+QJ{dztQXMY*0c)*LPd*Wb20KWAn%vF;eL4K5pH=PxRxB ze2mNjXA$ymvtj5Fqnu$M+6A~?5+X$3n=aK7@HjB0d{kJk3Z3PO&o1Cvye z6rY_RiA9#gBj>~-FH~fp$totz{yRi;*Za{mAuHzl#VukIPK#9lggto^5(EOGm0q+C z?zc|wQX^hq6~tAKJF!Icv&AWCo#3m10x%gKXO3prSxmKW(T=WZy+oF3f=7VqSg9>p z=ZA#OkOo&0viLWoRb*U)rF&)D_VNZO!rBlgq-iU$1mD zg|e%#Tf&=lsGSX>KvT0j!A@^|@vd3~{-CFoQ=(|SveBUxc#I~oVws%Dj7(@@wvvPu~5*A>iMv8g4$9Lf-* z@xEfU#y#u!ZDxLNSyyee#kM;Ev_tJLI8=DTV(}U_dO!=dVXnftsdBhX+^TF@R>A@v zxlenNpuezf6z9J^gW7xO`NFwmKk!9VNwTL^+`80*zc~hf%NwY(4~fIK6a2wen#&Vs zbNP>q!52J*T72_)HvdlK&n`T7G(tmB(0(z{!v(qo&=ZooRd1^=tL_lU%?K}&6fb2g z_F^H1ct{RAauM%m(2HyhYxlO_Ysl{|4zJ&)A8``}r06 zdjES%UzacYb^3bs#1`~*ex{?ZNgx1yjZFTX^cCb#m`7i!T4h`M`d}&a_0Wj_3Hlnp zDn?&L4239t%^7IvYiEx=)7O3o%c8HnFnZo2eT__x;@o{6^tE~Tf1t14G5DhwLSL`P z;ajJ#erIyda->%jr7(%0kZj=r`%6r-;@CbdRi zqe$P9z8JGdF8N*hq}>bv-JtLpQ|?nq3SQ$d$m^{YvmbxG{c3x-_B-&wJ+|Lp*j2Ud_b2y~ZVux`?H9N*vHe2rUwOlg_j-wOYqjmw zs5OAG1X&^*!0S9;b%{ErRW&qduzl|xYyKNLrk*WzOxvvJ5g%bC*IJ@TpokVarUe!} zQO9(bi;3%)rc(7Z^UwdHYazG04_0SH?Exg;Bjn>0TJk+Y{&k*^|GV@}2j8E-hsJh? z5Baso1o3n;6`Urv5UG-gL935 zpqKxwZ(=?fvGBh`Uz3(v`g(i&|BvbGqzSH7kF%!f|FiV<+C2&M)gi3~eQo@>C4GIU zZ~}eRDZC4PJ^%Ut9eo`IJ~4gfl!JDmum0m*OY})|^mYBcar$}!MOd7^?pG+P&-_PY z>-056K);E;w8n}q0nJGj?4gC)k6Qr2RiHF#TT<-DH6J4&)hzvrqU!L|DptV?%08ur z$Q|HCWxJ>b){0tNm>JW_t!!FqQVDCr+_bU*$=El+O~M)!ZUxBr_7-qF-SV?8H(mKe zZujgWNig>dPIEBt*{N@zncC-TGUwBtLX2orcY@*Ao}JM&pVdd%Z=4}xa3Wod$BVtI zJf&+bo1UILxvxLuPGxzXqDYvrZ07Dh$oBN0(S> zWEO_pK{?NnaEE;)Y1>8JKJWBQuFcChFo~aolFFuKwDXnULIs1l8KI(`(i-3N3Bj`M z9j1)#w;BGo%Mq3G<5@^a4B!7Uk%;jJt1{$YTK=cCEm|0yW6vVXhqgA9WN)goTk=1h zCAiqF?xhriCZy}&m-;3Ls{Nze&BVAkwRyeM>xbN-Ik09mBK0)>TtHp;)RRtCNX}VA zhDkwpuT*zyX6?R4MLS>l9G1cP=F`ID-Rem@F`lc>wLf+a0}OwoNgANW}NB7Wf{u3%*6d;>HCn@vR-?u-Mnb*PVJ3 z(}; zG!k8$w61oCB@j1pSOFpY!RYE*60)>3I)px_Gg zuV^I$ZNo1T;rg9n&`T;!s1)@EAAYOEB)+zo}8ap1Zg3PM@*mA!Qd#Y(ENhMeX zduMJW(#Kg3&1~{L~Gd#$a%mD{?QVe$bRsI0S3;=S+YR!+!8CkH5`6Q>+ z#Tt@L&ayPlw5q1nMCbVKtc%vxS8+SJ#txrl3gsEZlwJo*LDzwb$t%uW$95;t2PREE zSPGOY2#R^E9^=m9^}3x|5k?9XrI{i=Mn0l^VockA$wDD1@+N@@7g%`qR*^>6E)he# zzCWkr5b~<$+!}e+ZJMdia)X_(7ChI=e06}P#@{txy+5_}`D)-N@B@+vRSEd!z4auTO;Z+x~E8mK*rsFPR zTtR@oNf2W20t^LO0ovaK`ub`Ml-?@P=3jB@6>g{EOFjWM6m5(6-m4aVE@H{uOgZVd!biRpG1oas7`(00!0m|A*`z*n^q6 zN1vrHT`g>k za6m=#WZ64~iY=}G~F=yAOb$P$doFCFbveX-jwSGMfd)%-6M}D0bOwPwt@V^iyvSeIU z5IUi^|Hv(zLPO{%^qu~*zwK2>vxV4>;WRvXr}+q8T^QJoeO?x7DAMrBKPV@~$&UpC zH&5T6re&YQ#9NVjjwEnzjNBBp8x2lE1-8v(+zlH-rb@NN$_!FR@upCOjivQ6{iCz7 zKV)veU|dt6&M%9rjL_Dfl18Va$z_^9QqBCmS;fc)mX%W)OcsD)8BQuphNfXs4`#H< zOCk$m{NG zXR*j<CjS}PLWz42{ zE5>`9PsE~Fw8P-0j1amSMP#>m%~R%V-d z>upz9QM@qcV0walsJ80jaU)wZ%4yLAS5m54>s9JXYiu;#PNt!#S+-YR!CR`l^r=?F z{(7X=DNW{Lo&taJ2`4Drwyh_`;Hx;CnwCy0!V2~t)s>90taJM&Q@N8SBIP}^GNhWQ?bhk)TCEkMn|cZifHrQ&1r9eW`YOshr=p?m%LqDFM2a%tII!s&5bpr^y6 z{W(ZVSs-$d8Xp2Ynr(qdXK%gGVAAdCIwofB?h9`bJ2Xmn_jnMWu}st&9g6JvmJ+07 zoq3z`782XvVV3X%)mgb`#$%)8ZTXJ^2vci;)>0uc6MbK5q4|W41^)AV*O+8N7#hlTDh60d5sg33SR*FJiR6AMsvVZVwm>0*UgWL zi>^26pQ9qAFH;_)FZL_V;3u3bv;)l$x@eQbauKAKtV9Vl*pUjG^_HqxJI}35IbTOI1?W0IDY>Xb6f>3 zY;+YEVi9gIi#W9!*Hde9jM^CV@*sLqr4|$Vp7uZJY<9HR)f$J1_hw)DTyV!(q389@ z<6V}K_(Pl=4ruLerf;Tv2|&wArh#gjd3Uvui9p3Oq|WcRdC_p5=Bit0R`_#4U~OI? zY!ADOSDAia3VW?DJyQ?%sp2bvbnEyawlGL9o0hKiTFDKzpnM7{U9gnwlP33wH$hxg z@6jlA$km?I6>7my{~LL@Jt-X(Gl%wN^ey(*&9<)Y8bZr4GgT2OMZgoK>eyY(b?^-D9=GwV& zdYU=u17L?6+=idC+1+4ON?O+5G2-a>YOkiE)QLt;Stx!>XH$ z=v}pRc}6Ko^v7B;)js1*EDltvPl-`g8B=Y3Ow~N4eVb*U++b&)Tn%lXutJ_X@y=rx z`zMN(YEFN9DAsE35{eDAx977$Ok?neY_WE!t6=lEWjB{%Ljsc+U`D|}!o%sF7=MUX zGyB)e(`TybtLUl@mY0#({FRHGG$x~{-%2q|gvLDIOXIRk7aF&pJu~yx{9ehJl4(*{ z^boHzez}{>eB}WMg21gdAg@OG<(s*Gx8icEH&m`v1d~%qNZYJ5ntq}-pL0`H6!w|O zr_W%epi-L57)s%(YfVQ`N`A!#UwNaD240yITie=bx+&JWq1-7*y_;y@GUnYi;vqOv z@rOLMP>&xZ;w*F?PeXTP6q6_72tA}X{jo|hH!hOC#(AnjHE6#2o(Z3Dk}wGMpRg2r zgOyzTA_>vPiAdqxo=JbX)f3D6Lz*RD9LUGMG*W~YndwEkd{GKzN$uJ%$=p3qN9JAe z=I=I8ZZVFFbk|7|1w`4IOFa;+x#J)?fY3nd%~aE6wpt>el{q1AWWb7=i?YSH(Ll5+ z7`|KN1jENJrvAXC?*Z;H5AFsJPCT?Vm*Y2haOVQ2l|bJ!ao%(>nym!-RsXs>1Eam0 za+%aVPHsX5Hp92759e5Yo}WG}iuIx1^e5t6qI2GKZ7OazpWonqwu?IuB)Z z=*NqCL(_HU7cO*BpW1cEu6?SE^4Qzmy-zFovRj`jkAyy5dYtQ1!{-0MHu=&E`F}~dg9G%M1`+*EQR@9@gghph~l44kXPLpGC>PZyg$SmQPR|#$3JFu zke_SMl;pNb%Z`;p_a^f;k?Q$linMBIFy%LBa`aN(LQ17*6e72g!XK3O`yQL7$rL@n zbcGKWdloI1fHKHU%;0n~h}@%&%?4*7Q@F^@K|L&($KQ!R#*1&~#b5HZAC_31G*$3cK}GTGpqT8$nC}M=b9!Q`^~69|qk)P}?mTtgyZu2`i#RLI zu`BP)m9>LN&~m18!v`#)+E?D$Haq8Ru1|A{M0;lHkA(v_`pRFWkq{DK4VDhaqYG`7 zsT^78m{js84e;^VdjM z?lcKkHP#*rm^AawfoPU>+t#kAYWbJ_I!lMO`Y5&8$$zo;-*6w!v~1=5XBYk=q4T2s zH|)Ou&HlUWRM+A;BY(C3PWHgMJFq?V-@zW(*7JW`|E&<*@9Dq$Y{rTGHg0qeL~|z} zx9q>3Jzf8u0)+bSE_%2{|8?&AEB#mcT4Mjr?ANmYu6E(p`tR<0{x|#Y3BT*V8Rz|K z|IPHk&U0XU>c8_nu)hfGH;li11owOT@8c25II;icUbLtF8`Z=0-;F@1|JGcyOaBc$ z;8*&u`jy1~TXJ;E{`;2;@7jNyH;XDoxdl)D*~UrK!!Bny>MMRiVKNS3esy!J^+GdA~uahL6E)jg*5Y~W%Kk&l5u8qISxI}-2qaUs0;Sbt7p!@+2 zCokTBU+9d(3kR+*;ZSNDxlGd>e3=$#)-CjfdQL@~XX^XsVr*?0c!Ans+}|0`s9VYnst8%Pq9{wwP~(lKDhvi3_!Hp`|X=)`gb2 zP&*f@aiR8vg7!uw8b8Gb-sTGd-5F@Eds)H~2W;@bJh6fC5_DL!x_kO;t~g(Vx#=8O z3g}8ucFRp7_opYKIgM>}Iaz?#Hft~OavH3hD8Ao1^Ibh@LjChz=*=juGq;z1Wlx`! zwo|tFU@iz=14k$nTafrnf8vsdTP3v-XZv*^164;;bU-C`I7P>H+`$wfTxk*3slEpD z=SOs?n$2ixe&EkszDV4E?WGlZ{I;Lyh zf|-rFU?v+x_He(<_>)~5=AKQ>%XGiYrpX}ea*@JD+3Qd5#=YA2E#AA?ODWZ5GwMX6 zCLE;UK)RYhtKGIe#}!$BmJ(K3&d@60dmiB977%CAtwKHFLCvsGTCfbuWpOiOnHYC; ze;|5KG2TcR8z1;8rm-xuH|Y8U+%EhvA)n-2t$mY7huv0TrPbNZUugC4{oa(&IP@8| zvRK~K({Wk~58Z$;$x_&P-?WMj*2AQyvGmZNR){Y?;}*k>Hr-dIE9v|cm9COY85&DCm^ zj`wid-{Mqd^;WF{?&kr9i&S@qA%MP$L9EupXYzyo)=u5q-Z1bn&LzLY(;i5giBo!$ zipv?fi9cjJn!UOq_QYE_m4GN`w(yfn;8537CyPZjnfWV89_oMFvo`pes%-v!!&kO& zftOcj`|f0iua$7+Lr#Z?K!dn#p_S+0$jX!r= zzc?SNmLNUGIENyp#jv7w+bsmM?{SXzee%uUa#_Ek5NhiH8>i(LdNH#r|G26%hw6KJWU^|oT$Xyn*k0TTypWedjsf47Sl_B z3P_{XlmHa@oEUMpYk-JsAb>t%h64=W7*Eis1i4DEQdyAYDK>%7vBMU0x`1Qkp~RRr zim6VF+44tXZb^*!j2Nqb7hc6)%|1H95rDEbZxaZ&bGV=#N+|JRrL}i}C9c3@{?O%| znRCH2HVtp9f##h1na+p1J&w&C6o~?$hs+L~rZUY}zQ{)7SvYuVwm)?80A`!)yx@qG z{EBscUp`Kg;p^;0kfV3B3C5+6G~(GRM-Gjf&9+bH(j8I2sGr~Wk@OX70VO!jrL;V* zbbD2y@eAb)R9z;0WZ^@l}wEY{v5gM}9|>Pc;-Nwx+w z0Mj4AhASk+m`rU7LpNJY*rvmtz}i|go6rGaTB6D(ZIyA&lS6-Ky!S>85!J&LV+Y(^WLu#uc^|5jj=S){>v#CGTR(YceCttXNoaww1kH^Ow>T@nzk4 z>Ct6f>fLr(CqDq~LGwo^|F-d!zhFsVPDZIp4fVh8iQd+dqw+F5MzFS=Xxq)M2wWGz z`LtUz{|HHk?z?)Y7`Rs%w`vdzF#S7BQKX<(zFL`n=zK@qy^gw*ai!v&^ntL*!qglx z$IvPaOTL)ObOsV_dryV9B3$rFUew5!+6XVbDDhoH-MpY5N_^8-zSzpW*kg&5dv^^t z=gHYyv)Qks`qDMg#3;2yQ9b5Rk?EX_EQhK}c^}h%I|_&r1*hxjZB(s(K<0ngzcibl zyC_?4uKDy(cW-Hp-34th58S9cMAmFNl=f76(GrXy%8#BdbRp-<{AP>0i(zE=0n?wT zH%XXT2maQ*jNA6`w{ULmWHDd)QzTRSR`V3*jrQqDi3}Wln=cr(xdL0fKuV-*bRTfg z9agaOm5)Rj>pVa#gZ%Knn>}Fk^++hXV+V8ZS{anUpbs9!P=5hNSiCkI9 ze)~bF^~biD7-}Km54a^(*-@oxZi^Tr$OE9zTkE+#FzPEUVPG9ABfU4Y|NxXG|M>NR}4thT+258 z*d9TC1RJ~8RWddgF`*sVx{3wx?mhT*ZXfoH!qJeh2^H|P2c4r=! ze9H=xOR0m}`3kndSW(tgwC(%dvXa&P;%Ei%QV;MX0nS*a z8E?0BlULQ*)F`$!ZEiSNrxi9jQFAfuP2#G2_p7FdmGw%lj656NKTuOKh{fu>K|I?V z^Qkt@TJdeZMN1&+WTU=PQ+&M!r09n&wxK>VPaY|2H3(5*R3UBUE;w2{4Q-OPN-Hz| z;+kVbzH1JbK`YHM+yl(=0EJAeIUel+cC>&HFMv@Z@|8cth>`sC<}qxtUWC}Lb+{TP zWhV048+enj{mZc-l9{ECAo)ttkG2=0n&|8)#b1V@O*Fn$dQd}ML^-01R}ON!V@dRb zdAqw4hSVx%5rOc*P<-6pU-T@rO|Hrr%H-jdLnmZYK1^15|L`}K5l%Qc&!-{HxDa+% zD90XlYqQ+32)<|#nyn9$-*ja6DBhlgzfSR)3Gvry*YY#7b-QkANeW-f;(=$s>hN^l ztb=@S41WGN%cct{E6VNB8>pkIm-s0~1>0RU$3^s`b+f zXxv?770bJEf){q<1W!GN-26ba0ffS3DWHgh3JMV{gd)^+x3C;UpC zrnuDttp-%-k5qbQ_ZsiO5v1;Y@#)KQebG{YC-U_{dh;r%)R8pT0IS$A4f}Ta_%0vq z%>5!?*@{X?_q;yQV6W-RI(;dk+mz$Ie2L)czb4Yak2fDh7T9;r36e-qxzi!ye~Np8 zp7*pxT~3C|Zoa5sD0$f>0Z@vZt;hi?U==YM3_EUMQ+b2F)qCZ4v*km{DrQp`Wd0Am zK!XAcyueBVV=HaLhkIK*EMDjLW3=@kT)vLGmbs0B)YZ3LXemXRFS?Gp%WbD! zo_hKIjeNs{YmS>Se zKq+Wb9bAUKSv7jk#MOuFA4g_1%0A0Tdxr(f7TITQ&k5jb<();vnuM{_Ge6uYaW~v= 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%0DR;SE;*DG5sSiMK_tT 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

((JHyQFtf_M5K=<&34bt?oCc&_n?j1Y?>hJ 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 z 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­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∓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 n{H5>75+GE&xedl@d zvBr?Mr?ZPX&a>L7@|MwG)A0Stld|BqWHO$>I^@gE{VY@~Y9i(MLg*3Z;X-!j(fZun z!^t{9mz+Dx-4n|e(pOWKZaR#KP!L*%?yhh?p>!W0?NC#5 zA4Oq3JzdhW+*c5qYDu{_;T_Rel(AVP<(`C`+;qyUqvqvaaltf^mz&y-=nlzKlurlomdm7qpG%-AONc5zLtQTlR^m{y$C(a|T)Kn+ z@%Sm>Cq9>%i=X&(CX$+GVztd2il5jKWRAj5tk#+1@iPTKu_?$*lRABq_a3eEcmqy9 z=pYG=fPamW8T=QtR?7@d{fxV6W^h}Sv$4nwj+Ze;?pnwU9!q^t3xl8RTiW&boEgQr z5MaFGkQeuLgN9k5#-;Ye&Ii6xat4LEYB} z`=}x238Wou^~dV5VCC*=@smS zub?<;1 zUxm6zsLM567xRqdFQFD{jXYY7I2-ug&^L&D;Y!{I|7t>xIoinpC`HtHl56Aj*V_%( zaG&#%8Dt1 zmDJ?CB-Fh9_A&V02};Vqe%o_CL1&QtcE2XjI+2AKc=piwPsE4O8$Qzv=g4e2_xzmg z0$E-r|K69+&y!kFDOI=MK0I0I#Yx6h{P4?vg8QgOd4Y&uv5)NHj!2}+9-JhLL&)_h zS+2h^ha@^Uv_ji(=-EX|^U;Uw5Qe5nqzVQVd^6z(lDVn&UQ1{K%bR;+Fg*$FT52(p zO4I8BE>S8>*f5zr2@R58jushEFn#Wl$VSoC6{S@;9}<(m*-)91sD$?}Zb>&%Uz2=N z#k?a)SIT)$8viLI?vj@3vZ8Juici_6|Bu+G$2{n7pB}mVCr8gCZVUNON|+L_Za(|( z=PUSNX`i0|8^jU-m@coXwO7H1f2)0Z((G{U(~s>SEJaEJ(!sXl9aHD&x!8y}ot%pV z`v}Q(HP+XGSZ6s24llK?=@i*3+qKV27L-};96TYimMq5Kl6wxDS$bws7%*O=X|Leo zSYMLsN{6=x(1hZ4{q;mx_UTp5fAWTb^!V)4bDEK?`rD@;CFfC3!bN;b6>a{dx7YG90CLh`G|_HK9g zOM&`dwXx3*hHD-2f2Kp$`$%sF?Mf_PFC5%@<)W(+xE7anM;eGa2Q6rW;pz3 zhxL98hd}@R*w){|*pGFWct7?mAVfKPVLt}A)a}O#Ft>dBv2?K?Lup3)v2=s|Sh{XM zc3-*JkG;|?uz5WHw@I!8n9VnyO|zM7sK_ltas}i+S;!MSO#8kn=071n#sFh!w(ncj zghVgMzHc14sd^G#<-0ta&V9$szHi)E5~1qEOS(Ht;NLj{|4^`se;-8<|HwT+HSc?a zq=HQWgmDN~BQgp86|>7{-WNXpA&R&;{w3E8{!x>R@$Ujt{EKM*lNZClzs3gmcLs}D z25zbNH$M#gqbvsI_;($3N|1eDDEzxM4E%%9r?5*2z`qto_?PU%zby*>of8NUnl|ts zXaf)6ESjF}o{@;7V>kD#B>c!BGomtHKrY*sK-1xryX7+wtpHne2w7p+rVeglYLc*~3>ohW4d%tF*gh+P8UOmgRm=nIHKo;aW zd?Qlvl8)?!-rLW9=X+f7XBVmzFUh_ZVqa8p62wc2r6y|mPnHn|Cq(nLNZ23jYF1i-UK$dc(%=2sD)$DcmRJEwp{KzW;*bc!hGWN7_AeiIq#f9b0seL; zszBjF*v3!5Fct48YFJo(m?D}Ho zqF@n3D_WZ#+a;o|&T2(d2@Y^jW5vNd2R1fEUxK*0ry-ism$xoT77n(fDVUrXl?QW> z$s~(5vN8CMT(C%&a%7C~^&fE7w2IK>z0lI6ydAU@gHa%g7P|U$2w3Ry?pMl_(MIBn zM|r5%W8S;jnl+-BkR;Mz@nMLC@59bpVQvrPQ%I!OI`f(Fp+;iJ zU63P6O;3pH^Nu6m$uu(EPlrrMI=)sP@AvKN`TWYrr{cPvN1BcMs7ZOgI-5oOtTeZ! zyrg3sqi-{lmvidz7|zV6Z_yaC?0Ub((E8-}W4+wGsmV?0=Q_FhuQKwYj>h;sVrL+J zOSn=+{BF`zfaeLs?}@adGso{2ztZD(-yM4V-nEeNJC`q7;5U|+jZDe{A!z>s?+k2a zuw&89C)au$az@Wqt0!d6Cm+j7k(IVW?j0g(37A4VzX; zpYa9hRn7Fd*^Q~|BCgMUl$vCy&)C`s1%}k;#^EFuTAw?#a`~RO!SRn9A8@eL>vOZu z4Ay6)9YYmiFNa%-K4a(8*7}SW8i`RPPa20aM|g!e6D2o1kVz-CS59YNk8t%FKM%Cl zXWZ7+Sf4R50WApB=hjcu^cnqD18`8I1*eNu#)pTr-e7-E`p(oilJ-#g&I2!2M&H@t zD2;27KQj%e$*R=s!QfSi^__F-8R|Qy9pQnS%y(Je+4df0UGQ@{PXQ9B5_^`*6@2Mm{ zl+3cmhc>4N<3r*h7PI=erQpM=$F1>UI>*#Kf@X)p2S+A#O1Sv2tgkgb^n^OwNZ;A7 zK3Win4}Ub!@S)=hfe&-)1mZ(w^que6XgZwIcLwM?vt}BLo!-AWuWqou^Z5fb6|MB0 zO0%@5h59+?`*_3s-o`<(4XzuN*iBQfA$srs-FJr#|Bl? zpY^4B`03Avy+xzbA)9YhRe$#T_xP-V{%kF-`|s`z^|_Y%v&%ogyyox~iVo^z(Vy+u zqV^~0&l=CCzD(H07xntH#Y;l!&zhh9|END3K{fN!pGmmlKSE*a&!#lTiTuRs&klWn z4mUr4HDBd-{`yWGFVdfle1pa-E|)J_oWG#|y5343vf=N0NPm`oJL_Hs>0L%~4xeKA z{%rAnl=1tWEZ^@X-Y*%ip5+I5>m9#`^)aFKSzk6X(Pwqwr7%o=*1~~8f0kHrkBR>5 zCbRNZ610b_Ka-U5UPT*8f0lfwr9Oo8XMYSP83?66JL4}N!>QwV3|SchMV`6-Y{?>> z9^`E9ag^giIilN1PY2(;X|Tuj)73qDjLVAWvdYlzLEga_LORt{T7Onfp?)i^Kg%mr zS6!c)OVgjpu{0P#`m;^sv}vV3Ybri$ra!yo|Jb_{@TRKeUnqqlloX{<1vNm?s-P`U zESt1IA=MTti-Lfn2-GJCN(v}jF)a{7q^_WXI|vF76oI0kWd|R-g5Xv_fg1x9K{f^Y z|IM6xlbhrwHz}?9z5nz3EH`&M=gv7ZXU@!TX5x7d@>F#(ly5qWr z{p|c0-T6ZHvo#L{nlIm<=P}F}uJ9aB8OO^QT3!3u)Rn4va|jd9y`R;#pH2DNTYhKb zOc~|({zxG_|3>>+tHrwVdk}n5?s^?LyVdghgSjlfNAgJ>`5l`5YP6? z5X<(nPhTp({c(JR{{HwIfCb8c2eQ}K*&o-eLZmBq`&n=LB+dQt8{ufs@BX-4?PqUK z(%z`3?PpCZ`RXDPT~%EB$@?kHL3i&}VQ;;#+*I%Ade)1u*l9*Y6 z?CYPRBu5$K!*H100@~M)l~No*xyy$n`Xo*HFpe7ZD<8_$ewI5Y)5_hPzxwhE%{LQGNt=P5-S>6 z1uy+^m`gsKT_WVeeW$(ULn!vMf?4XbWQ?`0{p{ogjE{bP!0H`>wV#!A5L42}ezun{T%r98d$x%QQvDsNfO+(e#y6U5 zw|+)Jj^^7Cp9r)-k9d>q6DkytJ8@)~xd}pDlc1I(Hh5>h0octE z?u?SI2_jfF0{4K3X!;W=_56Tz@(gn16CeU0p3WxQli--zrnb*>c+}lU?Gm41OEsoj z$Hr$^yW-9-C?*QU76H6@o(~lik<+61^C|8UTd88{R5jEEv95JI&X6d2e9*+Tkm{`R7u^{7ppk<_^N`ZC1$oxt$uV}`6DI-f~;*~QD z6vGL|iAh;Zk}7d&hUHIS1{Il`L;hE$gnQ@1&8{<3wP>Fs!egX=NTLBadv$~`d zTO)et71ay_P$07K4>WXJ*PW(WC@Z?jo%qs}za}TqWJ|@QPf4NvBe{6YpCr_gp{)iL z5KRfgp}9UGsBoQr=bVr(d}AbgV5Go3*`7u?KFX8KM|qM$%2UplTs@%Z=aAYTr`!J1 zqJ4^yM*q;hRPEu;VTL+Ih6jpH8Jgn%TQ?6e+`cBK#WRVRCH00FM&S2e*l9&VrZvBI z$lsk)*IH!yjK(!A3{)h{YW1DKpW;Rm2ZSy)6^hH1=#vNpTN#GF-uyALl?~4GF*|QL zsYTajYPv!I#k>cJ?}x5Ar$}DB`!$ml37zm^VTAx1U~nHx_>yRP%Sp@mKgRb|dW0+R z*f(5DGapqhcAKw7@2as}J7tJQ|DElW_;K}UZ!$k@vXoZKc^o%I47#^gC1*?l^}XFX z=UnA}5O0$(`ea4R!}(d^_2_~j{~_*CTG$Yf8nbN($X!~nL>YER3N8;Rz+3<*u{5iX zbES~KmeQ++81661`B316r5Xj;=g(2kkI?34KU&lR&dF>{53-=!?i6DbcR*BnOaD9s|ppnUR_jHH;SF6TU>$-5U1 zWAlLLJ4I5~uUeG20B&cf=5s-IlMVRjVnTEtCw!a?r1ZgyK6^hH*X9Q=nsyGe$W125 zkwEy(xumxjOYvyje|uL4YH!ck5Za5C+bcXevD8D}#QPEAkic#s-WbBB6*UJYspY&` z(MwcvT*#Z|JD5$7WrpMp$x*7u)Bt1JfaIRERxMN|$c1ezRBwN#Y5s9fp-KXCjno0M zwzl=SN=8-R;Jj9mr*zM1dT$sI=9K;-V9(k?_+(*elfEpc=kZxZU*9QuZw9r{n z`lS(6f{kA)<{U2T+##k!J_w8tCcY0H>6Z-aAh2AxxoWBfS_}3Qqo_a$b0GyKBuFzB zMuo{dc(a=aqlpI@x@x4X)8Iz4%#Ab;z_;IdFeUhwm~sPc=P_Pwk$0FlvHoEefFb)Y zY|uzG{1?W+NULR!E4v;I|3&<1VlE&5MQtE5#Znd^iA;a-;z0h31qQYO?fzY`@D=zk z7B^>mlwbeF3|#l}Ul4sUbqMeF@G0tmKYLyHgi!2tX;2+Q$GhEu5Ju>Muv585LB#j| zrfIL6u?r)B_+Gxs_PX}wK=!&Bi9Yta)LyC`QgnuGD5hf&DIv_omufeoPyQ31FHuTbShpHp4APcegi~oNjM<+SK+gL*8~=O0^bQ zH=f&@x<;y(TIpnG>&7)lYIaWCm})(VQ`J%vPjqRr$a#+}=WSggGi;rrGwpFjRBbR13=nxXWpHFp zt8_#^WZtsg6;;tUI(^MWtfWsH5uiiCM;X?KMbHt%aWpxLXkDPEJaovM&soK*8HWWp zuLv88I79xsc$#jcmYr{~-j|M$=XfL?-^wpODpJr<9M|Va&MOZe>DYLlK0m)5?`0_C zQyUsr$4>mF?@hOEhO{wRcVQSD5u1P6MD@##-j&`I>mF@XEn#?cc0Dhh0<^8MIhm3%L)Mmf5C z<@=_w!O8c<^U7bo_gg09d)s1{d=F*)y7-Ig`)>5}eMiRx_kBC&mjCyS`&4{izn}Q~ zNdMl~S6BZ|f&TqYyFmK)=il)jp=ozzkHB2yF#iyQe|YE{Dm{GdkK8eNf@%AQk1Ru1 zJn%i6ai)y^;R}!O4)^bjkE{CvGj<;rW2X+F5E|Kj$N8ZR{4zu%MVv42nP z#Rd^n$mM+)_{5(@YHMp(%8e^L;`!tTBdD^yeeT{xa=cb z8;|WHhUtrGQ4|JWQfVHY^xNrHh|G zCo7R&_7HQH*aK7D--oe^*sigx&9z>GM5BiMdudgXceT=Y3q&HuPxwu=53;ORJ|rcK z>@RiJIlAyVL@r z1^`ofB0l;I+vLV#S!Y{1`eJJiW3)72V>g`XPYdrbIn$uBl8Jv++Ey~ZO0n$)Ws`5H z*yPa-w#mbczuPitX* z_Uj3Uz3tbwCEoVy;W+b;v|krkNNk2`zy24rBcVJ6uwTD28?RQ`uLmy{@>=>~GTX1| zcX0M=vH!uYM=PHH^1ty~4LtI9IPbX{mJN^m@2QxS|3p0UnMKO_M|k9^kjcO!pX8Hj zJo4=?`Nbo@^rNf;mv213N`62FB+a2Nx%^oc{8H_1V6+Z7pF~R8{8DBP zh-OI_7ZM=@__J&g3!3ZMhris(x?e&X+g?5Jz@%S}Wt~tr-a8fT__y!&6K!nm9D;q< z@PbOO{MXmCVnC1GpQ!geB|G?g269`)FfsLWEZilpH@1k^be~@=o;RwVALf3(ukQ0B z#PbI_`O=f*GeiN~r%#g!jqKC0$gRssv86?SV7az#a3{oW@Hmu=O=;}Y+msdy1wl@q zjg;TgB)U7KY}mP(@env^#&m1bII3=L^GV!`q}b8e(@8INI!+kz{tuJU1{+v3w`3`G zu2?!C(}Gr9Fa2qx$<}@6Et^RzXzJmq+mHkOiSuf(r;hZeT}Oh}pSrAM{b{6^{*+-G zEc=%>!|XeZhyy>9VfvRikSe#qwg9UqBY;hcGiW6{gK|De$GSlo5TR|sZk!P}3?;uz z;UgvK&z2`ZQ%X0AO9M@mBoQ`voPY*E$`6iGSP7#e6CFWLbdJlSBO@L4p`&=|8etHC z(WDo>rkL!RUmmCi?S)^vL3(!HrBYZfhY>|@BDAJea>Qb7m-h{zV7ql($xwb`os@+q z=wem|gVKi@~QcGx#6`@>sjsTp7U%Fv;~*&n*UQvUXbKi?Dfhwr!XBvi{Y_y@H7 zZP(7!@wb^Cxm;2Hwj}g2NPpYa?E?7QdLN>}cey1~0{YuxpA-JJ!mWY)ZSS@X(B9#L zA+$H&D%vxly&%S;@5Os~59QbYx$j-EGSsuocLn{jR6Ptro<5zY)4#EW<(UN%}e#0gwDup7>vrD<9mr0|ngPEx?4LK))4 zv}?$xe7N+VS3bDcjyEC@PRIR1#k>MM$Xn5Y@gS3M9X(O!gVXj0o_!6Y;^7b6hcliQ zPz)Qv+;ep6#V*(mcgf!y?_V{CCw3rzV2degf8gO+G%Xc>;F!m0q@xb-$-w?VZF(M| zCq3x78E48!&)3racK_<~QM&Z}IZsW`Ju}txy!l^D&z*cSFg`mdiH_I2AK037`}n+3Cuu9tLVO&`1xeZP=@>=&g^S0W%F4$X0Z|BZ*u za`Lfh5G;O-O^F`HCc<+b*$q-Mp0m5+*MhyNlk6uI_NGVX!rlZr_8~eBBsyjjyl*7I z`^IM2R>kF_MbqT<)UZ20WjcfZ$Y+|k8%U$l0>Vi%h&+MqQS=HEy&~n5p*DrCPU==gIRd?x+@3Zff%lMMRpNUzP@$L4r z*Z8jP8DM;kxVs$2cgt608Q(z#Vthw^<{sbD+jx98r@P0u!E7qs3%UdBieFXF4?i+%13Aq z{P`61rGm=C%qYf6y?H0U^!5f6HSwIo|P~ICDOz<&^uU?8lWBA z5iZ|QEameJ#nJ$}LGF?7T@T53-AQ*@)|&uLq0d4SKS@2a&;)hU(F;cN#3Dx~`^70* z&bmPw{G@;x44{9>WG(gNGbK{vm7u3}gYzK$`6V#Dc5EysdQCYOm|ml&33_#V-4DHb z^9{vPGrGYqz3!0jsz!Ht(W`OyK=eu)Dd^RV{$+YK<})SI=@lOIN)-SkY~y6a48*lR zk57`?;}ef%pm?hg69#9360d_*K?5&y-&>FsZWT_6CnA53z{_lAKaYZ!fv*Mvo)muk z`A&-6An-Dn=0)t5k?}Ia;u5GPuo2~KX~Lq4t(dVCGyVG%!poFMTW1l0Ny*m0%ZLdt z<7Ik>5nu*?2{F^1CLf7hEHTo2yo+XkF29RBA?{C6;bq7LC8jfCT#ax>l@^R;Lt+{` zIxx$N$**x;4JaBI68v5#&8hz)UcJvTlG|HH=Z(_XC&b{HmXoNE?;M3YoyFe%xs(v_ zO^N>zqZI_cY2F+jF9jA9BEBhmoft1j6CST%@J*fb1-_}l%mCvBVaAd!Ain93JQ}TH zY4@x2CNWydhoorXo7hjYex)|P>DVwa7OOs0)?0>tuu{qPHYiX8cCsAHX7lmnO(b5W zCZ|Y15ZZ`lak3%rWfIPJS0NqVibKnVN`|~8H~>o_o)Wpbp*zK!Y_lkwIKw^&)90vU zY*2tNA<2z*Kouc}B#z=ugHQ^2&7mr$aFj-Fz0;6)Cmxb@FGJpS{DbsNLtZUD_N_FB z37icyHQ^bleH)6l+APtuE+A-TyUG4JA44if%^*#iFFBVBymybtA(Pvbh8d=&vVe}| z5qXBt;w>yEa;+`I8?&QrovKh59>*0p@N!V1tW%_6Mc9z`rD0=Q8GxTRjxMT0eqwN zl;u#k<&VmS{BXRq0A!E0MO$}S4u(_7g_CF3Mw;VoBdb^rowEWbdcf2qtO%mSRtU2K zwB5@DxE~!M&8^e`??UYj%SMpQas(afMcN^`MM>l&Ju4=0)XVZDb|m34$3^kT=63?| z6N`ovINI&_<^Ywgr94QhLTEQh0i?p?H&Xo0ZEUZqParuAAj*`r!1CejJFE$t3 zaP^B6d@4!L=fi|Sposb=#s-EA=^WwSZQPLab?YfdHS~cT$(W-Xq|Y7$$Jis5HhQxX zQIlBl13HD*jrmxtJxzBfN*sQKyeM8Qw13lx58Rz`lJ>a(8w z^s_&HI@ufiv_Z{JcU`KF2$J;Y4Kbp_QMPzn%!NORM-0O6ojc2z>5mT}Gjygu2w4ouv_IwDuUAPozm zINi#MMWl574!oHGk%qif;+w32o|WomuaI?-3`#%as=o@s;=3x6SphbR@o^)uK8{t^ z$8nK>60M}DcTp;_vu)@==`ekfWc5A%z37wOsQJx5UOha4}Stg`b?J-m9gCmf? z;$ z!A3`4Ub&F%A6ZX4X=D_8@4`M(Y_f(+i?ZSA17}2i zB)h2G_K~3Y;rJfrhgXRakbmz>7eBP@T#o$k!7@QgPO#;NA9}7V3qM3{#hU~1!}L!p zgdg_M7iscCeQMAzKMXihj{IOu(C3GyU-eT(QX~W2WMCxafSP&4oH1)9mV-`nN60=Z~aa)aRZ}NJ?d{x z;R|KSr{!1vZdG|7c=H@pY2r%k7|xiid)U>r7UTd33qi;~On|Seqq^*);ybMAj8*&( za3;3?%2oFCeH;DE?PcnicCXy3fn?9%IG}|6K-m zZ)i7aC@LB!GeEvbM;+4DS+7JDO0ZBoYaK-I@l+;2ma@_2mb6`k#R0oNs_dB2`Vb5Z zvKqluFOg~-!~@D#JG!|qCT_{JUf{1Sk%oM)h*Kh64M93-e*jv=PqS28hcTYVz z%rH{Q9mPKXg!DD#;Ab5d6XO#aVAgRB`M+WV;P@SXXef<|Tj19c^rn#IGoh(bS4?tOgr>l=)5ZkYl>i+>S}%lj?ZL8y@f*4{3S7LgFD|>wfHyLY?{$ zlV-uLWREymQ^DHybF_P1_J7zSZqa?dgLr-kKku1e&aDsX;8A9=j^xi3c{>zo*cn9l zQ$uXtK3xf27>Jab&P?Ig@WG?(e%8oJS2ihKK%qQJD3pb9xo9WD_Gui!PzaSmJ_4Xp zsCmja!*TtdacTW=NyMeqgNiEs3w{8)m068=AjgDP2i_N8SqTD&)vQGQvwu@PGn+fT|WGv?Vnc8V+=FGUretFL*DvE~pj; z-xO2=>4gy-@YbIc?4#JGgV)ljyKzd?o84T8=3zkmI5g>q7tR%8P4QP><)c@4PB*xUV>qE- zbD?BtX;de9jY(CP*G=2rrBAHf=+y&Eh7Dl-uOQB63?Zb z)p#y>#8;Di+ec2V1Hr`y_MfeaH<|PWb#t9he!Z@D1Q%~|$AI#WH~Ic?5pVK2<}_4v z|M@20tr8&qE$vepj3DFf=Jz1YwpcQuN&oFN57geCr6IJJEVsAsWeh9EPonWV$>XOL z|L9n+6K|J|Eh(X-Dj?rz5_M6XZ#0Phw!U2_-Y&LXh4nX|I3>jXR@aMXncwAdMbUT9 zi=p>dH@+(Q<_ha?6Yu`2_Ip?pk$Q*n<@^=#j4zogc)#0xK`{H>Q04EjS5@-2v`}0A zZn`Bn`Mdc3@|VB;h6wrFwt(et$lv#h>icf=^Lzk7B-C~-$~{J5%1Q3u9RoIo2^n=;@y^Atpy8u3!e(iLF9*| zeEGz?)qaLPqmvXc-mSlQF=@g6;@uW3XCM719|;xj3gX=s?-y_!lgeLVU(Nn78a-(S zuA?XV@ow`5VN^Wgv!>yUr-e)LS?R{RT`>IZ@mY26;)xw7-mO!2b$r$Rl_BJCfy0c+hx@Vm!d?nMXrGs7ANHx?~UYuXa5>9s45L`+|;l zyAM6mi+6kK2_xGV`}~dZZg>6L%UZMO26WuZT0^s)tu@iOTQLf1>5{XyS@^x0*wR<)$5OBMpq^_fDGC`^s~CN57{( zzAp|dm+`%#c((@^dX4Y41_8!50e6?f`0jtHEaN+>uNYs8#XY`;Gd#Zgu6B=a)4^hV z`{OnmU+iD~$GaI`fFzfrrLHL6ZSYtaO3%i8g7Ic*5xi}%yNu%9PLgZNB|)Z$stGst+i;u+;cuUCr#(`(AT zf?f{}@-}{yj5<$dI4atVAu(;AHhZsK<|2z#FIbDK}pQ?iJN%Efj@GudWlx&T7x1i#u zKBK@wOuZNRP2~J=e@Keo_^G@+?f9vMcZz`-KS}WS6~!Cwm?K6&H{S5b5T?J9LSF61 z3nJcd{&YeAP~r{qx`}wh{sRNhKgf8)WW0;C#%O+*7y;!|LXS86aQ98nOJo;Zv!7qU ztG(h4BU_0v+BbnjwR~qd?nJyHE0D5MSyAyh$%m;jB}AcKoLj}k=QQa<8us58pObW7 z8RK)BhWo16LBzWacfxk|7sk6S`zmmJPTD;}=v+U5*oPp2e?fdsRwM8DoHw@!gMe3j zPBn~<$zQzNSIxma_K0=PIj(rO6?6&=JoOo|_5>U626Md}KYDmYImC}1I2a^fRb2e& zwq8Db^_Rtu9t037|YAwh2WA^y1w{<(DPCr`asLIZ%Ah!dzK*EZ=yyGxS9&81Od) znq~`4TWZh+1Fq0`x0H)AZw82WTlkW1e9tTbJEFb|F3IsdU8?HG_f)1L1_9%H-u{G$ zq8sm)zK)n6aJ<_dWO~wy@A+{esH?!FopQX}*vYQ=p4Ex)RDmjU8xUb@}GzmCs!``5p{ z29MjK!uVuh|9Wb#bnEYMQe6Tt`Dl>dmz6W`Wb z0FYcDqsPF|t}4o=HGiO}^1TVpI62=}3a|{Rku*n4*2kg&P@)NAvR2}W1R^S>mSumt ztqby#wcnGX&IUSW*48U8Rw|ZLAGt&5!I&rO@{nO`D`^8j7hG~4DyPP;q+lv z)ITnfW{yzsPvh~Bpak-2nQR4=T?P;f+f&h|)-4SA1NfaB`J)T5O2obFPdp=I$YT*+ zIDq=>iht~cUn+E48R8$?f7&ffgRXs5bOlLcWq{Z^+CciHZrUuv#tt7rM6lDW3!*GkrU=utdZ zg@s>=WG3RpyUJ!F`I6!VF!7_+r~p$G6;r}!7E2!wo>(fG@r3g?j)%E+yBW5Azd9 z44Jou95uyK=SSs@j1d2-_=|`w-w2zd3BzKW1ZS1Iom9CUTg3Rafk3ja4rIbs6CcLR zuhcmf{aKBD;w?YR!$zJc>owAaC;+j^Mo&>u@5^+QyQk_Oa3_?|0yFHO$%+uPj*A1) zqq8kAJLQ0H9btSj;{;%Do%=9^8n;aEtH=KyxOpCkNEWLVEh!y#EY z@r5ftD?n}0JS;dcDhKh(0VClQAl%us$mpCWSgzm{FB#NntS(hBtBVZFhew)6z(j_O z7IX0e9EIaIa#$cC0zwQ+N_PVOmcl5wVrgBB9F|P({}jSVA?L-Tl=EU3<-9P*4Fs*T z*QHZBii6ln0zgXH1I9;@SgaD~d|t-w;ZCFTLs$MnEjj zl`htx=bO=Q#{$lAfbLNe3F;rqUSXJ1=C8KCbQ8VK1CJPqGoCBFvPaX!ciyrbjPUpB zORegFDuMN-K~2>9QcP>rdL?~u6%jQmnokDSm;BlzJ>&IFuKF8)7Iq_RslYH~M{leW zN2$>&8S$qw(0|KLYGwbFnjFz`+sJt2SyM>1_~4Nz197P|gBMdi9-s>;ACG_@lk}3d z9_AMZ!Xsb%9NSPEO%oFA3h>A`E)wn%e|Y55h3JeY9$9wH6W()IK6St!-gDGBzyN}- zZ;(cDyR;1wiA94Pg|~k39RiN2>;JnCQl|(@w)OIW+UGr3Ih92ci6*~Ezgw-2J=kXJe0WW zJVj_5@;+k82qi5{BnJ{n1SRw1YIAqfIOl^xzUkyUY({oxvUelNjAp*Wg+s6z!{Thr zup$$S%XR@>@rv>to}o`tZHra@A8OFGEgtTb@9+}W$=JjyJ=4}B-ytz|b0onM$qUo% zpT-e)Q%)-4LRw~&#D>g^DTn0gTTSboJ5l?6&tpc6p|fCz8UlQWbh0UE!1%KQtHg!gX<{eQ$)W>|0tG* zq#7}N8;}veWSh;Y6--FAP=FRQZ12a>cv0$wxA8AhEl@|0YC+y_T1sFedo00ZDXl!_ z5fjpnjs&CrG`Ti0s&oTogCa>@EVbxBO#oeAEXCi2L(K1y)FjZF)7;ew4EbY;+_>rI zc;ONMyv=i^jzKsn_>J>BK)V@_PK13)Sw3$$$+_tNgG0Bm#bo^>)q2s?a4qRtM&9f% zqZ{m1uqA?SB#MMc-7ZZpO|`D4Rb@533xtU_SqiyEu_6CBglgeMG<{pAoeV=mLldeB zL>KMjvM3SwK-w_l&v#NonU%9ZT52T4kk=P{V2RJA?OB#|Z#2B(S}lOX@+TRk zi3We4gp$p)(H(#r95+yxP&I`=@*a8w<6HlJQr!`jK^}q>${#j9)vy9tZ%d^3GFM_f0HKEOpEWvA7|+_FJvIQs?W6VkrOXg&)ld0Y92J zQE*NW_|cnaMqAcrx$7KTE;uCbts!Zln(fm4&yejf}X4Z_=K0NV1~aK`id zh|^QR>Az19oZgbn+RW+cZ9xpd>36lkA@3jZzt4Huv7hI5E>VF-J%grNG|7pxEqTN< zsKM9k-5gd(%;*r37o0((drg#>H$V5nyrH>8Cok6&C%5CI7;vxghP`ggPQStu>FM0U z@@5FjyT*$lujRZ`Sr3qx<~ARB*{U6V;s%fevr>{rU3?eI!-q*8Rx(W4h|f?4pUb0b z4?YNKrV8f0=+Af3zK6x&lMJW9NHE{V97hz_uJ^LMF%1^-zbA>I_Yr31Ni+P!cUuE05rcTgdp`FKOrRZa;zb*)9_>&+JJ%p2j~ypUrcYpFVrOztDsN>9g+xQ;@#q z7bLqJgk+aN>$3w!;njik*&q7Jf~$P>*(L)>k-+|@QzU0zbnCN^Q-gl>*=E0~^A%&S za3%We$Zz%a*^6U*_1VpLq4V~bgSaH?v!f5{>$A=KiBTj8U^Hv#vpdN-7qmY6)SLSH z?B%K2`fSw)KxA)ycFlH|KKtqg>IwAp?rPp3E(rzCkvp2$;eU7zFFePEZ?vb~5?)5d zHYzR07te7o1+nVlIo?p-9sti#PvkE?U?!sZ_V?|$l<(p1qY5*ixa{xykXsAd-*+qfrOtMN4HvurEHh4nfKqY!VK^DLoa3AeDLw;1KM{?+nf%SQq!ge~yw|_|N5UFXW%9-(+e~U-$H< zo4oz?g;hN6SNZ42-j^7#$MFqlHjkGJw6o&Ihfb@>YWOQzdm zDeE!32U4u4lUoZ9hMs!;i!Z1CEy))BGltf`{SWHUZ`xDkL%(Rbf4N{kWrrUG{T|cn zpY&w;^l#))LB9j3A@%RV03G_7%Bg=lhlu{Agw{W+UjNR|x>EY(e-GmUP(7U()x#-I zfI9}Oypl4}i=S-~7v9v9?}qkx${vyXv8H@qsr&qncKmz_KQH9_^t;5E(tO)V@(&;s z_WuB00p$Ql6OZ~UCYS$x95l?({qJ)T=*M;(kFZJE|2}pEEf%ot9ZY25pn21U;(Jmd9}XVx9xa!YZ$;Yt-wiJ3sZ8e?r}YvlmlulXM-Acu&lu zSu1t>lY;&{9I!v*+Hil4{hQuJbBepV7?o$?c|>Hom56 zJ*a0M_!_CMw?-N?zUJw>q22wx_?o>ZMHgIK=hOiTu8#1U2%VI|E35G}XJQon6#Fx& z>rv8AqfYY4!1x+%dcI0edeCz$&UkA0LDTb=^uL{+Q%ZE{xim~o&-^-SdY(JX^vvax zWufO3deVcQ**H^1dR|)u#rp4^pRG>l(sNMh^itwWNrccuJXS~r74f^$G{CF;qKO@9?q;G$rZCF<0bEXgV^=F(1)DZrRCvi#k zXUyBI@6ULoqZmd1{){k6Cm6IpaQbA;If5xs(uCUa)zhj|>dN{h3 zdM%_?k@(|)$k+Jf5Sr~!&NTBiF5STl5M;i_h_f`VKKMNv(8}<=`aw|^ukzL67{9l7 zFbxe1!@%Sob?I?Zhd3U%LcYrQz2h4L;rBY^v3_+0_`S@5EFbn}vwY})hGqHi^7itR z50NQiW(D$he%h%_@?kh-k_jXqj@?xu@*#;nNmD+IqXzxTht;RcQ9k5;rY|3c4f2%_ z`x^2zyBC*a`7mX@zI^CNUQ$>71}%T*fssTMY}`m5tFV&V_`PQ*>&u5)Ky_-Raj4r~ zLq2@m!6hHgmI(Q9UvqEy5Q@L^!rxhaVzB~B=;RbP`LB}Qo`O54(hjac?RZziQKKP$g-|=lGNvQQ5pE;oT#{01Io8qB<2FO6h zPm6e{x#Zze)ptA-A;v>Gws(4IhAoMH2Up+G7SZ}SJ^N+%c(xT4&1Tz`XFV*~KdpMt z8^rUu{CqL{r?%cA+b?YqD|MgWakH?0YPGNL|EX@)v1gy(efbLgDSqw6gKtI8)&3u{ z-|d^LYri9V;ycp<*%Lp%iD}aG4IY!=?1>|es_cnh@d%)u)@Vn#35(znqgYdzYdaZD ztv8vkqM*|Vsk>;a=ykI(C}9j2M*Nq^apYx9m@T{|;? zKXmXTqqw6=ue3>5dBgt#MD0}UKaUg;kV^DS@u^TcorEKk~3^W64GHt9V^|~OjX>dV|T!e zHHzn5RrFp^#f?rKuNj79Fcc<#D}~AT#J+%>!hn9n5(orHkYR)bp=bs|g2=co_=Ud( z228Pim-gW8M5J>qZMQJUZ(O{{A2|*@BJcNg_@VkJ9s19YEg$-itSsn%ph+3&zxXy4 z{nut{)Bm|If}{Ua$0~&W_5T#~|1-`-|DfmB;#*bUcPK;q`#xM9-1oictdQ?(`-k|x z`tI*j^rxWweKu%#q5J!meW>hu+-^BTp6u_796-X*$KO|*(}w8y`}&I)2lDqV=*Bjn zPaYH^_X_-di=SkBlwW_}3|!an_a(onyFQbDtvR1ZA&l)2(_d27OkScL-x!1N zuWc$;t<#Mfxw#kk=w7NFL3D;~D8x}0NiJ|TGCGs8Xce$#+$PPIRVCAAinMi&wQlU( zaBr%u<;SErPXKT(%@$@kfz4{m(cSG0CZp`vX;a&~40+peDb-qJ-FR+q>KdtDYNeB% ztsB=Iso6PkW2*HePE|`yJlWCSG9UMaxlY!>$yCecO3u1N3goxC-bitGoh#vut`6k< zK$~vPfn%FO`Cm+}$3`3SI^rn97SZm{LP&Fb#Ay7sMKr`u)eh&sus&J+#$~Th)?q7l z0Uiim_}eidLak4B?q+4nQJc0L_V)8GU}_`2Mr`e7eMMV4{KELmrYiyJlWF@ayU|W&@p5UYoz9mOeMy_1t>{S)ddA{R8R_}hdw;vXa>_1UdM-Vr zre_nb1+LKZ+$N@{kx%N-vlquh_m=f?$nl`-gCyRE1qqSSLBw}&mo(&i02C?nDZAW)dD&yt-55zv$P18wLZw}coQkM zPw|^XAgA&nDH`=bCXAJa8r8)?X1c;HXMAnpS3OkUwS=ksVF!EB0`Jcs_THzV_`?pD z$se}k9bYYn{b60uH4T5*9o4b1v&Y2qRrZJd_)#E#*d32usXwfJ8tXz`?gy#tNsD_D z#n@k-x3v8HVdu%sr{gbwKfX-OlUm9~#SZy`1C!$mOi*4||*%^y?3s^Lsh^ z!$!U(Pp<&^EPlAx*B`dIDo?XDxTM7YEztLeHHRV**dMmDHxVURf7nw)^!;I%Q6y5! zA6B&yi0thze<#l64?FUW@P~D&=MoI^f=BW}bAO|aC%L{O^T$mjO6*B9vRwS}=#ui| z5B5*$@JAjdTp92r?UOMif%s#Uu|oJGq7h96t@zk`s6oH{F(F`lY>0T0tl9efv8tOd zf6Na@=j}1?;F8QA_s!GikE@M%Dxkl3Ne?1Qu>8?ukUoF>l%dTZM{dyIkI4;P{IPMD z;E$W?c=Jan{^FEOVu%0vi@p5C`(M+Zc4~idM24@wII$9@hpxYPobq=4_}I7aA*rPs zAG`mdVEx5k4ir<;$6q{;FO=0^e3G=Z^8x{lpgB}ALLNipk1QCA7(A1$H+D6}CR=l) zv6Y5j&cvDi*f_$NiqtskW7WxxA>&on3-~zjDtgb`h}q=#K;O09`WZ!JQWA}x&|-VU zn{1y@3ftU?Bg4!Mq1Hkx-fc!VuBLyH^I^An9NI}XS$87mX@RUx6HzT2v3*5=G5v{@ zzTQMO6^cVko3lrHVtWRTO z_BA|5bfIz9DJbue6anOL3BI zY!OTGOJ(gSL%!PK^KS2ytX=YHfMgOA#uYsZ;? zq(65jlO$As?uTm?<4OR3?w+q{LD=a0ifv=|_W4wA3gaO)Sjqle`W>7<7y1+MhJNrJ zH_&S}@Ev~~^|l_A4c~F%3osd}Gtev;Bk@m(=Z(P!iuq0Wj!i3QZpTFPNj1LXiLd

5@o3<6(C#&RmgEMeZJ|_$s^2_~%-|0#=E#tUj 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≧*j0o;lb!%0vVDxdb!pM$*hi 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 j}G&0<`?QrT!QySG& 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%0D6y}GQYcO=wyllf{rK`%S^I00M?!AQ9%S(g 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 c* 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

QJ+RZKC_nDca2*7JSsQ_S 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 z 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 z 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

0`-qj7S3 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

f)}^>FSXY3{wJeT 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

Lj2w2F5L;Z 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

NOVYcm<@hqTJLeFP@ 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

Pl5TS`YgY57;yiRW^xGWXecNVE7z#{ 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

O%&@xdfIzfVI`M5Gfet0cLCrn&boB(=kIReYC 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%0A+D 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

*to4 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

!0(RW72rLO%*GqR6Q^d{sdCW{-Ufcq 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
4Ejp&y?8dawT*<-^t1 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�ZC5X>Ix1~pS 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 z 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

<%= link_to domain, admin_domain_path(domain) %><%= link_to domain.registrant, admin_registrant_path(domain.registrant) %><%= link_to domain.registrant, admin_contact_path(domain.registrant) %> <%= l domain.expire_time %> <%= link_to domain.registrar, admin_registrar_path(domain.registrar) %>
+ + + + + + + + <% contact.statuses.each do |status| %> + + + + + <% end %> + +
+ <%= t(:status) %> + + <%= t(:notes) %> +
+ <%= status %> + + <%= contact.status_notes[status] %> +
+
+ From 64ea8d328a33e1ccfee2c3c32caec637a1292375 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 19:20:24 +0300 Subject: [PATCH 140/757] Reformat --- .../contacts/partials/_statuses.html.erb | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/app/views/admin/contacts/partials/_statuses.html.erb b/app/views/admin/contacts/partials/_statuses.html.erb index 15b5af7c0..82eb1cf77 100644 --- a/app/views/admin/contacts/partials/_statuses.html.erb +++ b/app/views/admin/contacts/partials/_statuses.html.erb @@ -1,30 +1,24 @@ -
+
<%= t(:statuses) %>
+
- - - - - - - <% contact.statuses.each do |status| %> - - + + - <% end %> + + + + <% contact.statuses.each do |status| %> + + + + + <% end %>
- <%= t(:status) %> - - <%= t(:notes) %> -
- <%= status %> - - <%= contact.status_notes[status] %> - <%= t(:status) %><%= t(:notes) %>
<%= status %><%= contact.status_notes[status] %>
From 5e0c63b2b59f5bcc15221f9d04d1db287f5a5a3b Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 19:22:54 +0300 Subject: [PATCH 141/757] Remove unneeded HTML --- .../admin/contacts/partials/_domains.haml | 2 +- .../contacts/partials/_statuses.html.erb | 34 +++++++++---------- .../registrar/contacts/partials/_domains.haml | 2 +- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/app/views/admin/contacts/partials/_domains.haml b/app/views/admin/contacts/partials/_domains.haml index 9d7e3edf5..3a60074d1 100644 --- a/app/views/admin/contacts/partials/_domains.haml +++ b/app/views/admin/contacts/partials/_domains.haml @@ -1,5 +1,5 @@ - domains = contact.all_domains(page: params[:domain_page], per: 20, params: params) -#contacts.panel.panel-default +.panel.panel-default .panel-heading .pull-left = t(:domains) diff --git a/app/views/admin/contacts/partials/_statuses.html.erb b/app/views/admin/contacts/partials/_statuses.html.erb index 82eb1cf77..7c78562ef 100644 --- a/app/views/admin/contacts/partials/_statuses.html.erb +++ b/app/views/admin/contacts/partials/_statuses.html.erb @@ -3,23 +3,21 @@ <%= t(:statuses) %>
-
- - - - - - - +
<%= t(:status) %><%= t(:notes) %>
+ + + + + + - - <% contact.statuses.each do |status| %> - - - - - <% end %> - -
<%= t(:status) %><%= t(:notes) %>
<%= status %><%= contact.status_notes[status] %>
-
+ + <% contact.statuses.each do |status| %> + + <%= status %> + <%= contact.status_notes[status] %> + + <% end %> + +
diff --git a/app/views/registrar/contacts/partials/_domains.haml b/app/views/registrar/contacts/partials/_domains.haml index d2943e8ef..f409a6f24 100644 --- a/app/views/registrar/contacts/partials/_domains.haml +++ b/app/views/registrar/contacts/partials/_domains.haml @@ -1,5 +1,5 @@ - domains = contact.all_domains(page: params[:domain_page], per: 20, params: params) -#contacts.panel.panel-default +.panel.panel-default .panel-heading .pull-left = t(:domains) From 09715443a192b54f46c85d24bff8b53e30d14286 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 19:24:21 +0300 Subject: [PATCH 142/757] Extract translations --- app/views/admin/contacts/partials/_statuses.html.erb | 2 +- config/locales/admin/contacts.en.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/admin/contacts/partials/_statuses.html.erb b/app/views/admin/contacts/partials/_statuses.html.erb index 7c78562ef..2d1703c2c 100644 --- a/app/views/admin/contacts/partials/_statuses.html.erb +++ b/app/views/admin/contacts/partials/_statuses.html.erb @@ -1,6 +1,6 @@
- <%= t(:statuses) %> + <%= t '.header' %>
diff --git a/config/locales/admin/contacts.en.yml b/config/locales/admin/contacts.en.yml index 0ae48821f..44759886a 100644 --- a/config/locales/admin/contacts.en.yml +++ b/config/locales/admin/contacts.en.yml @@ -15,3 +15,6 @@ en: domains: roles: Roles + + statuses: + header: Statuses From 558261c047ffb7662bbe1bd84cbea5a90bc2feb9 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 19 Oct 2019 13:08:00 +0300 Subject: [PATCH 143/757] Add tests --- test/integration/epp/domain/create/base_test.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index a5c1dac93..8e4d28d7a 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -5,7 +5,8 @@ class EppDomainCreateBaseTest < EppTestCase now = Time.zone.parse('2010-07-05') travel_to now name = "new.#{dns_zones(:one).origin}" - registrant = contacts(:john).becomes(Registrant) + contact = contacts(:john) + registrant = contact.becomes(Registrant) request_xml = <<-XML @@ -35,6 +36,8 @@ class EppDomainCreateBaseTest < EppTestCase domain = Domain.find_by(name: name) assert_equal name, domain.name assert_equal registrant, domain.registrant + assert_equal [contact], domain.admin_contacts + assert_equal [contact], domain.tech_contacts assert_not_empty domain.transfer_code default_registration_period = 1.year + 1.day From c9fbc9269eea7808d64a390937453ac6d3b8aced Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 19 Oct 2019 13:09:41 +0300 Subject: [PATCH 144/757] Remove Bullet-related code --- app/controllers/epp/domains_controller.rb | 2 -- app/models/epp/domain.rb | 11 +++-------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 2f31f7e5e..2b708d66c 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -115,8 +115,6 @@ module Epp def delete authorize! :delete, @domain, @password - # all includes for bullet - @domain = Epp::Domain.where(id: @domain.id).includes(nameservers: :versions).first handle_errors(@domain) and return unless @domain.can_be_deleted? diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 19933a5eb..ae08bcb2e 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -23,12 +23,8 @@ class Epp::Domain < Domain active_admins = admin_domain_contacts.select { |x| !x.marked_for_destruction? } active_techs = tech_domain_contacts.select { |x| !x.marked_for_destruction? } - # bullet workaround - ac = active_admins.map { |x| Contact.find(x.contact_id) } - tc = active_techs.map { |x| Contact.find(x.contact_id) } - # validate registrant here as well - ([registrant] + ac + tc).each do |x| + ([registrant] + active_admins + active_techs).each do |x| unless x.valid? add_epp_error('2304', nil, nil, I18n.t(:contact_is_not_valid, value: x.code)) ok = false @@ -123,9 +119,8 @@ class Epp::Domain < Domain def attach_default_contacts return if registrant.blank? - regt = Registrant.find(registrant.id) # temp for bullet - tech_contacts << regt if tech_domain_contacts.blank? - admin_contacts << regt if admin_domain_contacts.blank? && !regt.org? + tech_contacts << registrant if tech_domain_contacts.blank? + admin_contacts << registrant if admin_domain_contacts.blank? && !registrant.org? end def attrs_from(frame, current_user, action = nil) From 0ab2b2ae80ee759dd77b829cc13af2d85c13b3f9 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 19 Oct 2019 13:10:00 +0300 Subject: [PATCH 145/757] Remove `bullet` gem Closes #378 --- Gemfile | 2 -- Gemfile.lock | 5 ----- config/environments/development.rb.sample | 10 ---------- 3 files changed, 17 deletions(-) diff --git a/Gemfile b/Gemfile index a58648a1c..8b44ed221 100644 --- a/Gemfile +++ b/Gemfile @@ -87,8 +87,6 @@ end group :development, :test do gem 'pry', '0.10.1' - - gem 'bullet', '4.14.7' # for finding database optimizations gem 'sdoc', '0.4.1' # bundle exec rake doc:rails generates the API under doc/api. gem 'railroady', '1.3.0' # to generate database diagrams gem 'autodoc' diff --git a/Gemfile.lock b/Gemfile.lock index cc822dab7..913d40e2d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -119,9 +119,6 @@ GEM autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) builder (3.2.3) - bullet (4.14.7) - activesupport (>= 3.0.0) - uniform_notifier (~> 1.9.0) cancancan (3.0.1) capybara (3.29.0) addressable @@ -393,7 +390,6 @@ GEM unf_ext unf_ext (0.0.7.2) unicode_utils (1.4.0) - uniform_notifier (1.9.0) uuidtools (2.1.5) validates_email_format_of (1.6.3) i18n @@ -428,7 +424,6 @@ DEPENDENCIES airbrake autodoc bootstrap-sass (~> 3.4) - bullet (= 4.14.7) cancancan capybara coderay (= 1.1.0) diff --git a/config/environments/development.rb.sample b/config/environments/development.rb.sample index 59efe01d9..f5ed70e06 100644 --- a/config/environments/development.rb.sample +++ b/config/environments/development.rb.sample @@ -32,16 +32,6 @@ Rails.application.configure do config.assets.raise_runtime_errors = true config.action_view.raise_on_missing_translations = true - - # for finding database optimization - config.after_initialize do - Bullet.enable = true - Bullet.bullet_logger = true - Bullet.console = true - Bullet.rails_logger = true - Bullet.add_footer = true - Bullet.unused_eager_loading_enable = false - end end # In this mode, any jobs you queue will be run in the same thread, synchronously From 7db6016d28649e4ee243432d903e63f98ee6a524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 21 Oct 2019 15:24:09 +0300 Subject: [PATCH 146/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6508a9fd..8b67389cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +21.10.2019 +* Tuned PDFkit gem [#1367](https://github.com/internetee/registry/pull/1367) + 17.10.2019 * Implemented properl handling of contact transfer requests [#1363](https://github.com/internetee/registry/pull/1363) * Test environment tuning [#1366](https://github.com/internetee/registry/pull/1366) From 77800e7bfca26a36c84c6cb75818ae3e9e42fead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 21 Oct 2019 18:02:39 +0300 Subject: [PATCH 147/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b67389cb..25375d1b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 21.10.2019 * Tuned PDFkit gem [#1367](https://github.com/internetee/registry/pull/1367) +* Removed some dead code [#1370](https://github.com/internetee/registry/pull/1370) 17.10.2019 * Implemented properl handling of contact transfer requests [#1363](https://github.com/internetee/registry/pull/1363) From d24dbef12c168c5e8dac1583b2e841824ee37639 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 22 Oct 2019 12:02:02 +0300 Subject: [PATCH 148/757] Update .editorconfig --- .editorconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.editorconfig b/.editorconfig index 5f4df341d..95ad0d2d5 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,7 +7,7 @@ indent_style = space indent_size = 2 max_line_length = 100 trim_trailing_whitespace = true -insert_final_newline = false +insert_final_newline = true -[*.{html,erb}] +[*.{html,erb,js}] indent_size = 4 \ No newline at end of file From 9d08b61c1cb3523d0ed609590a28106eba4c4f31 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 22 Oct 2019 12:11:24 +0300 Subject: [PATCH 149/757] Update CodeClimate Rubocop --- .codeclimate.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index ff9270452..3802e689b 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -1,7 +1,9 @@ version: "2" prepare: fetch: - - "https://raw.githubusercontent.com/internetee/style-guide/master/ruby/.rubocop.yml" + - "https://raw.githubusercontent.com/internetee/style-guide/master/.rubocop-ruby.yml" + - url: "https://raw.githubusercontent.com/internetee/style-guide/master/.rubocop-rails.yml" + path: ".rubocop.yml" plugins: brakeman: enabled: true @@ -20,7 +22,7 @@ plugins: enabled: true rubocop: enabled: true - channel: rubocop-0-58 + channel: rubocop-0-74 exclude_patterns: - "app/models/version/" - "bin/" From 249db7878ee64133501161957d79c247bb40b3a8 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 22 Oct 2019 12:31:28 +0300 Subject: [PATCH 150/757] Update `haml` gem Addresses https://nvd.nist.gov/vuln/detail/CVE-2017-1002201 --- Gemfile | 2 +- Gemfile.lock | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index a52da641d..565523aff 100644 --- a/Gemfile +++ b/Gemfile @@ -78,7 +78,7 @@ gem 'company_register', github: 'internetee/company_register', branch: :master gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'lhv', github: 'internetee/lhv', tag: 'v0.1.0' gem 'domain_name' -gem 'haml' +gem 'haml', '~> 5.0' gem 'wkhtmltopdf-binary' group :development do diff --git a/Gemfile.lock b/Gemfile.lock index 69d2ba476..4de72853d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -187,7 +187,8 @@ GEM virtus (>= 1.0.0) gyoku (1.3.1) builder (>= 2.1.2) - haml (4.0.7) + haml (5.1.2) + temple (>= 0.8.0) tilt hashdiff (1.0.0) hpricot (0.8.6) @@ -382,9 +383,10 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) + temple (0.8.2) thor (0.20.3) thread_safe (0.3.6) - tilt (1.4.1) + tilt (2.0.10) tzinfo (1.2.5) thread_safe (~> 0.1) uglifier (4.1.11) @@ -447,7 +449,7 @@ DEPENDENCIES epp-xml (= 1.1.0)! figaro (= 1.1.1) grape - haml + haml (~> 5.0) isikukood iso8601 (= 0.8.6) jquery-rails From e93ec4c7a6c4f4d841fac305dd8966b535797140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 23 Oct 2019 18:17:32 +0300 Subject: [PATCH 151/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25375d1b1..156b91f95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +23.10.2019 +* Removed duplicate route from admin [#1375](https://github.com/internetee/registry/pull/1375) + 21.10.2019 * Tuned PDFkit gem [#1367](https://github.com/internetee/registry/pull/1367) * Removed some dead code [#1370](https://github.com/internetee/registry/pull/1370) From 2609710b0f963e170a4f0b10aeeb37acc56d85de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 23 Oct 2019 19:22:41 +0300 Subject: [PATCH 152/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 156b91f95..2a71e324e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 23.10.2019 +* Removed bullet gem [#378](https://github.com/internetee/registry/issues/378) * Removed duplicate route from admin [#1375](https://github.com/internetee/registry/pull/1375) 21.10.2019 From 97c718135ee3bfc9222cbd87887bd9fda1f058a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 23 Oct 2019 20:12:24 +0300 Subject: [PATCH 153/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a71e324e..223839865 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 23.10.2019 +* Updated haml gem to 5.1.2 [#1384](https://github.com/internetee/registry/pull/1384) * Removed bullet gem [#378](https://github.com/internetee/registry/issues/378) * Removed duplicate route from admin [#1375](https://github.com/internetee/registry/pull/1375) From f26d709b2309a2b6d7f3bec3b2c43b03d009016e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 23 Oct 2019 20:13:48 +0300 Subject: [PATCH 154/757] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 223839865..7c25e9c65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ 23.10.2019 -* Updated haml gem to 5.1.2 [#1384](https://github.com/internetee/registry/pull/1384) +* Updated haml gem to 5.1.2 (CVE-2017-1002201) [#1384](https://github.com/internetee/registry/pull/1384) * Removed bullet gem [#378](https://github.com/internetee/registry/issues/378) * Removed duplicate route from admin [#1375](https://github.com/internetee/registry/pull/1375) From 4e59ead0b837f08e461b89469cb8abc9ca9b387c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 24 Oct 2019 15:07:55 +0300 Subject: [PATCH 155/757] Remove unused SASS Removes warnings WARNING on line 136 of /media/sf_registry/app/assets/stylesheets/admin/admin.sass: This selector doesn't have any properties and will not be rendered. WARNING on line 137 of /media/sf_registry/app/assets/stylesheets/admin/admin.sass: This selector doesn't have any properties and will not be rendered. --- app/assets/stylesheets/admin/admin.sass | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/assets/stylesheets/admin/admin.sass b/app/assets/stylesheets/admin/admin.sass index fe9b569ff..ddb3fe673 100644 --- a/app/assets/stylesheets/admin/admin.sass +++ b/app/assets/stylesheets/admin/admin.sass @@ -133,12 +133,6 @@ body.login padding-top: 40px padding-bottom: 40px - .form-signin - .form-signin-heading, - .form-signin - .checkbox - margin-bottom: 10px - .form-signin max-width: 330px padding: 15px From 2a13324c197afa7efb3a13b04706d511e7f1fce5 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 24 Oct 2019 15:08:38 +0300 Subject: [PATCH 156/757] Remove unused code `AdminUser` model does not have `rememberable` concern included --- app/views/admin/sessions/new.html.erb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/views/admin/sessions/new.html.erb b/app/views/admin/sessions/new.html.erb index c875c00ce..e3e347177 100644 --- a/app/views/admin/sessions/new.html.erb +++ b/app/views/admin/sessions/new.html.erb @@ -16,14 +16,8 @@ required: true, class: 'form-control' %> - <% if devise_mapping.rememberable? -%> -
- -
- <% end -%> - <%= f.submit t('.sign_in_btn'), class: 'btn btn-lg btn-primary btn-block' %> <% end %> -<%= render 'links' %> \ No newline at end of file +<%= render 'links' %> From 561da720e1773bb7d421d34235ec091dce4a4d68 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 16 Oct 2019 11:09:19 +0300 Subject: [PATCH 157/757] Downgrade `minitest` gem Minitest > 5.10 is not compatible with Rails 5.0.x (#377) https://github.com/seattlerb/minitest/issues/730 --- Gemfile | 1 + Gemfile.lock | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 1c0f97bec..bac886402 100644 --- a/Gemfile +++ b/Gemfile @@ -100,4 +100,5 @@ group :test do gem 'simplecov', require: false gem 'webdrivers' gem 'webmock' + gem 'minitest', '~> 5.10.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 35aa43496..72ccd9ff1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -227,7 +227,7 @@ GEM rake mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.12.2) + minitest (5.10.3) monetize (1.9.0) money (~> 6.12) money (6.12.0) @@ -452,6 +452,7 @@ DEPENDENCIES kaminari (= 0.16.3) lhv! mina (= 0.3.1) + minitest (~> 5.10.0) money-rails nokogiri paper_trail (~> 4.0) From 9668ec33d9f7bd44f1408dec50263795245a9b1b Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 24 Oct 2019 18:59:57 +0300 Subject: [PATCH 158/757] Add database constraints --- ...1_add_invoice_items_quantity_constraint.rb | 14 ++++++++ ...160038_add_invoices_due_date_constraint.rb | 14 ++++++++ db/structure.sql | 10 ++++-- test/models/invoice_test.rb | 5 +-- .../overdue_invoice_canceller_test.rb | 33 +++++++++++-------- 5 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 db/migrate/20191024153351_add_invoice_items_quantity_constraint.rb create mode 100644 db/migrate/20191024160038_add_invoices_due_date_constraint.rb diff --git a/db/migrate/20191024153351_add_invoice_items_quantity_constraint.rb b/db/migrate/20191024153351_add_invoice_items_quantity_constraint.rb new file mode 100644 index 000000000..9f99fa607 --- /dev/null +++ b/db/migrate/20191024153351_add_invoice_items_quantity_constraint.rb @@ -0,0 +1,14 @@ +class AddInvoiceItemsQuantityConstraint < ActiveRecord::Migration + def up + execute <<~SQL + ALTER TABLE invoice_items ADD CONSTRAINT invoice_items_quantity_is_positive + CHECK (quantity > 0); + SQL + end + + def down + execute <<~SQL + ALTER TABLE invoice_items DROP CONSTRAINT invoice_items_quantity_is_positive; + SQL + end +end diff --git a/db/migrate/20191024160038_add_invoices_due_date_constraint.rb b/db/migrate/20191024160038_add_invoices_due_date_constraint.rb new file mode 100644 index 000000000..313f5d276 --- /dev/null +++ b/db/migrate/20191024160038_add_invoices_due_date_constraint.rb @@ -0,0 +1,14 @@ +class AddInvoicesDueDateConstraint < ActiveRecord::Migration + def up + execute <<~SQL + ALTER TABLE invoices ADD CONSTRAINT invoices_due_date_is_not_before_issue_date + CHECK (due_date >= issue_date); + SQL + end + + def down + execute <<~SQL + ALTER TABLE invoices DROP CONSTRAINT invoices_due_date_is_not_before_issue_date; + SQL + end +end diff --git a/db/structure.sql b/db/structure.sql index 3382e9984..c487fbf87 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -899,7 +899,8 @@ CREATE TABLE public.invoice_items ( created_at timestamp without time zone, updated_at timestamp without time zone, creator_str character varying, - updator_str character varying + updator_str character varying, + CONSTRAINT invoice_items_quantity_is_positive CHECK ((quantity > 0)) ); @@ -968,7 +969,8 @@ CREATE TABLE public.invoices ( total numeric(10,2) NOT NULL, in_directo boolean DEFAULT false, buyer_vat_no character varying, - issue_date date NOT NULL + issue_date date NOT NULL, + CONSTRAINT invoices_due_date_is_not_before_issue_date CHECK ((due_date >= issue_date)) ); @@ -4878,3 +4880,7 @@ INSERT INTO schema_migrations (version) VALUES ('20191007123000'); INSERT INTO schema_migrations (version) VALUES ('20191008024334'); +INSERT INTO schema_migrations (version) VALUES ('20191024153351'); + +INSERT INTO schema_migrations (version) VALUES ('20191024160038'); + diff --git a/test/models/invoice_test.rb b/test/models/invoice_test.rb index 6e6971139..9c1c45610 100644 --- a/test/models/invoice_test.rb +++ b/test/models/invoice_test.rb @@ -11,7 +11,8 @@ class InvoiceTest < ActiveSupport::TestCase def test_overdue_scope_returns_unpaid_uncancelled_invoices_with_past_due_date travel_to Time.zone.parse('2010-07-05') - @invoice.update!(account_activity: nil, cancelled_at: nil, due_date: '2010-07-04') + @invoice.update!(account_activity: nil, cancelled_at: nil, issue_date: '2010-07-04', + due_date: '2010-07-04') assert Invoice.overdue.include?(@invoice), 'Should return overdue invoice' end @@ -108,4 +109,4 @@ class InvoiceTest < ActiveSupport::TestCase seller_zip: nil) assert_equal 'street, city, state', invoice.seller_address end -end \ No newline at end of file +end diff --git a/test/services/overdue_invoice_canceller_test.rb b/test/services/overdue_invoice_canceller_test.rb index debade3a9..bc3447484 100644 --- a/test/services/overdue_invoice_canceller_test.rb +++ b/test/services/overdue_invoice_canceller_test.rb @@ -2,7 +2,6 @@ require 'test_helper' class OverdueInvoiceCancellerTest < ActiveSupport::TestCase setup do - @invoice = invoices(:one) @original_days_to_keep_overdue_invoices_active = Setting.days_to_keep_overdue_invoices_active end @@ -28,26 +27,24 @@ class OverdueInvoiceCancellerTest < ActiveSupport::TestCase def test_cancels_overdue_invoices travel_to Time.zone.parse('2010-07-05') - @invoice.update!(account_activity: nil, cancelled_at: nil, due_date: '2010-07-03') - assert @invoice.cancellable? + invoice = cancellable_invoice(due_date: '2010-07-03') canceller = OverdueInvoiceCanceller.new(delay: 1.day) canceller.cancel - @invoice.reload + invoice.reload - assert @invoice.cancelled? + assert invoice.cancelled? end def test_yields_cancelled_invoices travel_to Time.zone.parse('2010-07-05') - @invoice.update!(account_activity: nil, cancelled_at: nil, due_date: '2010-07-03') - assert @invoice.cancellable? + invoice = cancellable_invoice(due_date: '2010-07-03') canceller = OverdueInvoiceCanceller.new(delay: 1.day) iteration_count = 0 - canceller.cancel do |invoice| - assert_equal @invoice, invoice + canceller.cancel do |cancelled_invoice| + assert_equal invoice, cancelled_invoice iteration_count += 1 end assert_equal 1, iteration_count @@ -55,13 +52,21 @@ class OverdueInvoiceCancellerTest < ActiveSupport::TestCase def test_keeps_not_overdue_invoices_intact travel_to Time.zone.parse('2010-07-05') - @invoice.update!(account_activity: nil, cancelled_at: nil, due_date: '2010-07-04') - assert @invoice.cancellable? + invoice = cancellable_invoice(due_date: '2010-07-04') canceller = OverdueInvoiceCanceller.new(delay: 1.day) canceller.cancel - @invoice.reload + invoice.reload - assert @invoice.not_cancelled? + assert invoice.not_cancelled? end -end \ No newline at end of file + + private + + def cancellable_invoice(due_date:) + invoice = invoices(:one) + invoice.update!(account_activity: nil, cancelled_at: nil, issue_date: due_date, + due_date: due_date) + invoice + end +end From b2e66aa90a370c973393088be1efeb00142812f7 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 25 Oct 2019 15:33:03 +0300 Subject: [PATCH 159/757] Remove unused code --- app/controllers/registrar/contacts_controller.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index ec280a46c..49569d7a0 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -16,10 +16,6 @@ class Registrar search_params[:registrant_domains_id_not_null] = 1 end - if search_params.length == 1 && search_params[:name_matches].present? - @contacts = Contact.find_by(name: search_params[:name_matches]) - end - if params[:statuses_contains] contacts = current_registrar_user.registrar.contacts.includes(:registrar).where( "contacts.statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}" From c9e353d58f9cb2094fdb54d8701d6cf8376f6019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 28 Oct 2019 15:01:38 +0200 Subject: [PATCH 160/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c25e9c65..38e54ae1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +28.10.2019 +* Downgraded minitest to 5.10.3 due to incompatibility with Rails 5.0 [#1387](https://github.com/internetee/registry/pull/1387) + 23.10.2019 * Updated haml gem to 5.1.2 (CVE-2017-1002201) [#1384](https://github.com/internetee/registry/pull/1384) * Removed bullet gem [#378](https://github.com/internetee/registry/issues/378) From 3b376de3322dc3b734cd2856d7b34f3853521eba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 28 Oct 2019 15:06:14 +0200 Subject: [PATCH 161/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38e54ae1c..ae1d064f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 28.10.2019 * Downgraded minitest to 5.10.3 due to incompatibility with Rails 5.0 [#1387](https://github.com/internetee/registry/pull/1387) +* Removed buggy code for contact details' fast access in regitrar portal [#1386](https://github.com/internetee/registry/pull/1386) 23.10.2019 * Updated haml gem to 5.1.2 (CVE-2017-1002201) [#1384](https://github.com/internetee/registry/pull/1384) From 2e2242105565364be0a5440d5026eb90dbe830bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 28 Oct 2019 15:25:14 +0200 Subject: [PATCH 162/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae1d064f0..88230bf35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 28.10.2019 * Downgraded minitest to 5.10.3 due to incompatibility with Rails 5.0 [#1387](https://github.com/internetee/registry/pull/1387) +* New db constaints to invoices and invoice_items tables [#1388](https://github.com/internetee/registry/pull/1388) * Removed buggy code for contact details' fast access in regitrar portal [#1386](https://github.com/internetee/registry/pull/1386) 23.10.2019 From 9c04ac31d5fd7aee2ff0585b9f86b512721779a9 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 28 Oct 2019 16:03:58 +0200 Subject: [PATCH 163/757] Update `kaminari` gem --- Gemfile | 4 +--- Gemfile.lock | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index bac886402..8660fa47a 100644 --- a/Gemfile +++ b/Gemfile @@ -34,9 +34,7 @@ gem 'sass-rails', '5.0.6' # sass style gem 'coffee-rails', '~> 4.2' gem 'jquery-rails' gem 'selectize-rails', '0.12.1' # include selectize.js for select - -# view helpers -gem 'kaminari', '0.16.3' # pagination +gem 'kaminari' gem 'coderay', '1.1.0' # xml console visualize gem 'select2-rails', '3.5.9.3' # for autocomplete gem 'cancancan' diff --git a/Gemfile.lock b/Gemfile.lock index 72ccd9ff1..b414b4ec1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -147,7 +147,7 @@ GEM unicode_utils (~> 1.4) crack (0.4.3) safe_yaml (~> 1.0.0) - crass (1.0.4) + crass (1.0.5) daemons (1.2.4) daemons-rails (1.2.1) daemons @@ -208,12 +208,21 @@ GEM jquery-ui-rails (5.0.5) railties (>= 3.2.16) json (1.8.6) - kaminari (0.16.3) - actionpack (>= 3.0.0) - activesupport (>= 3.0.0) + kaminari (1.1.1) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.1.1) + kaminari-activerecord (= 1.1.1) + kaminari-core (= 1.1.1) + kaminari-actionview (1.1.1) + actionview + kaminari-core (= 1.1.1) + kaminari-activerecord (1.1.1) + activerecord + kaminari-core (= 1.1.1) + kaminari-core (1.1.1) keystores (0.4.0) libxml-ruby (3.0.0) - loofah (2.3.0) + loofah (2.3.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -449,7 +458,7 @@ DEPENDENCIES iso8601 (= 0.8.6) jquery-rails jquery-ui-rails (= 5.0.5) - kaminari (= 0.16.3) + kaminari lhv! mina (= 0.3.1) minitest (~> 5.10.0) From ee3b3439234cae3967df93d8cebb0a78a3f66afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 28 Oct 2019 19:26:04 +0200 Subject: [PATCH 164/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88230bf35..d1fd0ab16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 28.10.2019 +* Updated kaminari gem to 1.1.1 [#1392](https://github.com/internetee/registry/pull/1392) * Downgraded minitest to 5.10.3 due to incompatibility with Rails 5.0 [#1387](https://github.com/internetee/registry/pull/1387) * New db constaints to invoices and invoice_items tables [#1388](https://github.com/internetee/registry/pull/1388) * Removed buggy code for contact details' fast access in regitrar portal [#1386](https://github.com/internetee/registry/pull/1386) From 28e36d724ad86d42db26bc7b762ec70106f69b8f Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 29 Oct 2019 14:54:31 +0200 Subject: [PATCH 165/757] fix indention of pdf.haml --- app/views/invoice/pdf.haml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/views/invoice/pdf.haml b/app/views/invoice/pdf.haml index e04fb3a73..3fae850dc 100644 --- a/app/views/invoice/pdf.haml +++ b/app/views/invoice/pdf.haml @@ -195,20 +195,20 @@ %dt= t(:reg_no) %dd= @invoice.buyer_reg_no - %dt= t(:address) - %dd= @invoice.buyer_address + %dt= t(:address) + %dd= @invoice.buyer_address - %dt= t(:country) - %dd= @invoice.buyer_country + %dt= t(:country) + %dd= @invoice.buyer_country - %dt= t(:phone) - %dd= @invoice.buyer_phone + %dt= t(:phone) + %dd= @invoice.buyer_phone - %dt= t(:url) - %dd= @invoice.buyer_url + %dt= t(:url) + %dd= @invoice.buyer_url - %dt= t(:email) - %dd= @invoice.buyer_email + %dt= t(:email) + %dd= @invoice.buyer_email .clear .row.pull-down From 6fb8767aef48c3f6f83e0e34a7d2ae4a32b8f1b4 Mon Sep 17 00:00:00 2001 From: Georg Date: Thu, 31 Oct 2019 00:15:36 +0200 Subject: [PATCH 166/757] Improve setup and seed (#1352) bin/setup.deps for installing dependencies before running setup rework bin/setup for initial setup improved db:seed --- bin/setup | 29 +++++++++++--------- bin/setup_with_build_deps | 56 ++++++++++++++++++++++++++++++++++++++ db/seeds.rb | 57 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 13 deletions(-) mode change 100644 => 100755 bin/setup create mode 100755 bin/setup_with_build_deps diff --git a/bin/setup b/bin/setup old mode 100644 new mode 100755 index acdb2c138..ea95b5dc2 --- a/bin/setup +++ b/bin/setup @@ -1,29 +1,32 @@ #!/usr/bin/env ruby require 'pathname' +require 'fileutils' # path to your application root. APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + Dir.chdir APP_ROOT do - # This script is a starting point to setup your application. - # Add necessary setup steps to this file: - puts "== Installing dependencies ==" - system "gem install bundler --conservative" - system "bundle check || bundle install" + puts '== Installing dependencies with bundler ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') - # puts "\n== Copying sample files ==" - # unless File.exist?("config/database.yml") - # system "cp config/database.yml.sample config/database.yml" - # end + puts "\n== Copying sample development database config files ==" + unless File.exist?('config/database.yml') + system! 'cp config/database-example-development.yml config/database.yml' + end puts "\n== Preparing database ==" - system "bin/rake db:setup" + system! 'bin/rake db:setup' puts "\n== Removing old logs and tempfiles ==" - system "rm -f log/*" - system "rm -rf tmp/cache" + system! 'bin/rails log:clear tmp:clear' puts "\n== Restarting application server ==" - system "touch tmp/restart.txt" + system! 'bin/rails restart' end diff --git a/bin/setup_with_build_deps b/bin/setup_with_build_deps new file mode 100755 index 000000000..bbd3707db --- /dev/null +++ b/bin/setup_with_build_deps @@ -0,0 +1,56 @@ +#!/usr/bin/env ruby +require 'pathname' +require 'fileutils' + +# path to your application root. +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +def effective_user_id + uid = `id -u` + uid.strip! +end + +Dir.chdir APP_ROOT do + puts '== Installing application build deps ==' + sudo_prefix = '' + sudo_prefix = "sudo" unless effective_user_id == '0' + system! "#{sudo_prefix} apt-get update && #{sudo_prefix} apt-get -y --no-install-recommends install libxml2 libxml2-dev postgresql-client postgresql-client-common libpq-dev" + + puts "== Installing rbenv ruby manager to #{ENV['HOME']} ==" + unless Dir.exist?("#{ENV['HOME']}/.rbenv/") + system! 'git clone https://github.com/sstephenson/rbenv.git $HOME/.rbenv' + system! 'echo export PATH="$HOME/.rbenv/bin:$PATH" >> ~/.bashrc' + system! "echo 'eval $(rbenv init -)' >> ~/.bashrc" + end + + unless Dir.exist?("#{ENV['HOME']}/.rbenv/plugins/ruby-build/") + system! 'git clone https://github.com/sstephenson/ruby-build.git $HOME/.rbenv/plugins/ruby-build' + system! 'echo export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH" >> ~/.bashrc' + end + unless Dir.exist?("#{ENV['HOME']}/.rbenv/plugins/rbenv-default-gems/") + system! 'git clone https://github.com/rbenv/rbenv-default-gems.git $HOME/.rbenv/plugins/rbenv-default-gems' + unless File.exist?("#{ENV['HOME']}/.rbenv/default-gems") + system! 'echo "bundler" > ~/.rbenv/default-gems' + end + end + + # Include RBENV in path + ENV['PATH'] = ENV['HOME'] + "/.rbenv/bin:" + ENV['HOME'] + "/.rbenv/plugins/ruby-build/bin:" + ENV['PATH'] + NEEDED_RUBY_VERSION = `cat .ruby-version`.freeze + + if `!bundle check` == false + system! "#{SUDO_PREFIX} apt-get -y --no-install-recommends install libreadline-dev" + puts 'Installing Ruby: ' + NEEDED_RUBY_VERSION + system!('rbenv install ' + NEEDED_RUBY_VERSION) + system!('rbenv rehash') + else + puts 'Ruby ' + NEEDED_RUBY_VERSION + 'already installed' + end + puts 'Now running setup' + exec('./bin/setup') +end diff --git a/db/seeds.rb b/db/seeds.rb index 5dde23342..f8a9f4267 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,2 +1,59 @@ # This file should contain all the record creation needed to seed the database with its default values. # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). +# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). +ActiveRecord::Base.transaction do + AdminUser.where(username: 'admin').first_or_create!( + username: 'admin', + email: 'admin@domain.tld', + password: 'adminadmin', + password_confirmation: 'adminadmin', + identity_code: '38001085718', + country_code: 'EE', + roles: ['admin'] + ) + # Required for creating registrar + Setting.where(var: 'registry_vat_prc').first_or_create( + value: '0.2' + ) + # First registrar + Registrar.where(name: 'Registrar First').first_or_create!( + name: 'Registrar First', + reg_no: '90010019', + accounting_customer_code: '1234', + language: 'EE', + reference_no: '11', + # vat_rate: '0.2', + vat_no: 'EE101286464', + address_country_code: 'EE', + address_state: 'Harjumaa', + address_city: 'Tallinn', + address_street: 'Tänav 1', + address_zip: '1234546', + email: 'registrar@first.tld', + code: 'REG1' + ) + +# registrar.accounts.create!(account_type: Account::CASH, currency: 'EUR') + +# ApiUser.create!( +# username: 'api_first', +# password: 'api_first', +# identity_code: '38001085718', +# active: true, +# registrar: registrar, +# roles: ['epp'] +# ) + + + +# ZonefileSetting.create!( +# origin: 'tld', +# ttl: 43200, +# refresh: 3600, +# retry: 900, +# expire: 1209600, +# minimum_ttl: 3600, +# email: 'admin.domain.tld', +# master_nameserver: 'ns.tld' +# ) +end From eb6aead7ec4b39e2c96f7de3fac6962ee92a372a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 31 Oct 2019 12:09:02 +0200 Subject: [PATCH 167/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1fd0ab16..f1935f9a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +31.10.2019 +* Improved setup and seed [#1352](https://github.com/internetee/registry/pull/1352) + 28.10.2019 * Updated kaminari gem to 1.1.1 [#1392](https://github.com/internetee/registry/pull/1392) * Downgraded minitest to 5.10.3 due to incompatibility with Rails 5.0 [#1387](https://github.com/internetee/registry/pull/1387) From a76ab87d21fc02ba0baec6a83a29076caa3f774e Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 31 Oct 2019 14:21:02 +0200 Subject: [PATCH 168/757] Remove unneeded code This doesn't seem to affect anything. Removes deprecation message when used with Rails 5.0. DEPRECATION WARNING: to_prepare is deprecated and will be removed from Rails 5.1 (use ActiveSupport::Reloader.to_prepare instead) (called from at /media/sf_registry/config/initializers/reload_api.rb:8) --- config/initializers/reload_api.rb | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 config/initializers/reload_api.rb diff --git a/config/initializers/reload_api.rb b/config/initializers/reload_api.rb deleted file mode 100644 index 17e8bddc6..000000000 --- a/config/initializers/reload_api.rb +++ /dev/null @@ -1,11 +0,0 @@ -if Rails.env.development? - ActiveSupport::Dependencies.explicitly_unloadable_constants << 'Repp::API' - - api_files = Dir[Rails.root.join('app', 'api', '**', '*.rb')] - api_reloader = ActiveSupport::FileUpdateChecker.new(api_files) do - Rails.application.reload_routes! - end - ActionDispatch::Callbacks.to_prepare do - api_reloader.execute_if_updated - end -end From 3ec22bac1070faffa1e05c269f0f979c9bd6459d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 31 Oct 2019 15:03:08 +0200 Subject: [PATCH 169/757] Remove monkey patch of `rack` gem. Removes `eis_trusted_proxies` setting. --- config/application.yml.sample | 4 ---- config/initializers/eis_custom_rack.rb | 12 ------------ 2 files changed, 16 deletions(-) delete mode 100644 config/initializers/eis_custom_rack.rb diff --git a/config/application.yml.sample b/config/application.yml.sample index de0e8f681..691740b2a 100644 --- a/config/application.yml.sample +++ b/config/application.yml.sample @@ -50,10 +50,6 @@ webclient_cert_common_name: 'webclient' # and returns 2306 "Parameter value policy error" contact_org_enabled: 'false' -# Overwrite rack default trusted proxies list in order to -# enable test external interfaces EPP/REPP from webserver network -# eis_trusted_proxies: '1.1.1.1,2.2.2.2' #ips, separated with commas - # Enable iptables counter updater # iptables_counter_enabled: 'true' # iptables_server_ip: '127.0.0.1' diff --git a/config/initializers/eis_custom_rack.rb b/config/initializers/eis_custom_rack.rb deleted file mode 100644 index 9ddf40cde..000000000 --- a/config/initializers/eis_custom_rack.rb +++ /dev/null @@ -1,12 +0,0 @@ -# EIS custom rack hack in order to enable test external interfaces EPP/REPP inside webserver network -module Rack - class Request - def trusted_proxy?(ip) - if ENV['eis_trusted_proxies'] - ENV['eis_trusted_proxies'].split(',').map(&:strip).include?(ip) - else - ip =~ /\A127\.0\.0\.1\Z|\A(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.|\A::1\Z|\Afd[0-9a-f]{2}:.+|\Alocalhost\Z|\Aunix\Z|\Aunix:/i - end - end - end -end From ffe95ee987ab1117e69eb7e862b0d461e5f3228a Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 25 Oct 2019 18:16:23 +0300 Subject: [PATCH 170/757] Remove `uuidtools` gem `uuidtools` is a dependency of `epp` gem (https://github.com/internetee/epp) 1.5.0. It is not used in `registry`. Closes #953 --- Gemfile | 3 +-- Gemfile.lock | 9 ++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 8660fa47a..7036d9c80 100644 --- a/Gemfile +++ b/Gemfile @@ -59,9 +59,8 @@ gem 'digidoc_client', ref: '1645e83a5a548addce383f75703b0275c5310c32' -gem 'epp', '1.5.0', github: 'internetee/epp' +gem 'epp', github: 'internetee/epp', branch: :master gem 'epp-xml', '1.1.0', github: 'internetee/epp-xml' -gem 'uuidtools', '2.1.5' # For unique IDs (used by the epp gem) # que gem 'que', '0.10.0' diff --git a/Gemfile.lock b/Gemfile.lock index b414b4ec1..df3351a06 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,7 +27,8 @@ GIT GIT remote: https://github.com/internetee/epp.git - revision: 1a50f2144f15a2d975337e56fb1ccaba5d956e9d + revision: 76f9fd487d0ca3865b6f706c5a72703951c03996 + branch: master specs: epp (1.5.0) hpricot @@ -221,7 +222,7 @@ GEM kaminari-core (= 1.1.1) kaminari-core (1.1.1) keystores (0.4.0) - libxml-ruby (3.0.0) + libxml-ruby (3.1.0) loofah (2.3.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -401,7 +402,6 @@ GEM unf_ext unf_ext (0.0.7.2) unicode_utils (1.4.0) - uuidtools (2.1.5) validates_email_format_of (1.6.3) i18n virtus (1.0.5) @@ -449,7 +449,7 @@ DEPENDENCIES digidoc_client! domain_name e_invoice! - epp (= 1.5.0)! + epp! epp-xml (= 1.1.0)! figaro (= 1.1.1) grape @@ -483,7 +483,6 @@ DEPENDENCIES simplecov simpleidn (= 0.0.7) uglifier - uuidtools (= 2.1.5) validates_email_format_of (= 1.6.3) webdrivers webmock From fc71bf93e7a1d421d86245135609949bd1dd9d06 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 17 Sep 2019 14:52:21 +0300 Subject: [PATCH 171/757] Remove unimplemented Keyrelay feature Closes #715 --- app/controllers/admin/keyrelays_controller.rb | 13 - app/controllers/epp/base_controller.rb | 2 +- app/controllers/epp/keyrelays_controller.rb | 63 --- app/controllers/epp/polls_controller.rb | 6 +- .../registrar/keyrelays_controller.rb | 20 - app/controllers/registrar/polls_controller.rb | 15 - app/models/ability.rb | 3 - app/models/depp/domain.rb | 10 - app/models/depp/keyrelay.rb | 45 --- app/models/domain.rb | 1 - app/models/epp/domain.rb | 46 --- app/models/keyrelay.rb | 61 --- app/models/version/keyrelay_version.rb | 5 - app/views/admin/base/_menu.haml | 2 - .../admin/domains/partials/_keyrelays.haml | 20 - app/views/admin/domains/show.html.erb | 6 - app/views/admin/epp_logs/index.haml | 4 +- app/views/admin/keyrelays/index.haml | 42 -- app/views/admin/keyrelays/show.haml | 61 --- app/views/epp/poll/poll_keyrelay.xml.builder | 49 --- app/views/epp/sessions/greeting.xml.builder | 1 - .../layouts/registrant/application.html.erb | 2 +- .../domains/partials/_keyrelays.haml | 20 - app/views/registrant/domains/show.html.erb | 6 - app/views/registrar/base/_navbar.haml | 2 +- app/views/registrar/keyrelays/show.haml | 64 --- app/views/registrar/polls/show.haml | 56 +-- .../epp_requests/keyrelay/keyrelay.xml | 24 -- config/locales/en.yml | 19 - config/routes.rb | 6 - db/migrate/20190917114907_drop_keyrelays.rb | 6 + db/structure.sql | 148 +------ doc/controllers_brief.svg | 15 - doc/controllers_complete.svg | 35 -- doc/epp/README.md | 2 - doc/epp/keyrelay.md | 25 -- doc/epp_examples.md | 368 ------------------ doc/models_brief.svg | 66 ---- doc/models_complete.svg | 94 ----- lib/epp_constraint.rb | 2 +- lib/schemas/all-ee-1.0.xsd | 3 - lib/schemas/all-ee-1.1.xsd | 3 - lib/schemas/keyrelay-1.0.xsd | 63 --- .../integration/epp/login/credentials_test.rb | 2 - .../epp/login/password_change_test.rb | 1 - .../epp/login/session_limit_test.rb | 1 - 46 files changed, 21 insertions(+), 1487 deletions(-) delete mode 100644 app/controllers/admin/keyrelays_controller.rb delete mode 100644 app/controllers/epp/keyrelays_controller.rb delete mode 100644 app/controllers/registrar/keyrelays_controller.rb delete mode 100644 app/models/depp/keyrelay.rb delete mode 100644 app/models/keyrelay.rb delete mode 100644 app/models/version/keyrelay_version.rb delete mode 100644 app/views/admin/domains/partials/_keyrelays.haml delete mode 100644 app/views/admin/keyrelays/index.haml delete mode 100644 app/views/admin/keyrelays/show.haml delete mode 100644 app/views/epp/poll/poll_keyrelay.xml.builder delete mode 100644 app/views/registrant/domains/partials/_keyrelays.haml delete mode 100644 app/views/registrar/keyrelays/show.haml delete mode 100644 app/views/registrar/xml_consoles/epp_requests/keyrelay/keyrelay.xml create mode 100644 db/migrate/20190917114907_drop_keyrelays.rb delete mode 100644 doc/epp/keyrelay.md delete mode 100644 lib/schemas/keyrelay-1.0.xsd diff --git a/app/controllers/admin/keyrelays_controller.rb b/app/controllers/admin/keyrelays_controller.rb deleted file mode 100644 index c6049373f..000000000 --- a/app/controllers/admin/keyrelays_controller.rb +++ /dev/null @@ -1,13 +0,0 @@ -module Admin - class KeyrelaysController < BaseController - load_and_authorize_resource - - def index - @q = Keyrelay.includes(:requester, :accepter).search(params[:q]) - @keyrelays = @q.result.page(params[:page]) - end - - def show; - end - end -end diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index 6a0e805d7..d49112643 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -58,7 +58,7 @@ module Epp end def validate_against_schema - return if ['hello', 'error', 'keyrelay'].include?(params[:action]) + return if %w[hello error].include?(params[:action]) schema.validate(params[:nokogiri_frame]).each do |error| epp_errors << { code: 2001, diff --git a/app/controllers/epp/keyrelays_controller.rb b/app/controllers/epp/keyrelays_controller.rb deleted file mode 100644 index b4159e796..000000000 --- a/app/controllers/epp/keyrelays_controller.rb +++ /dev/null @@ -1,63 +0,0 @@ -module Epp - class KeyrelaysController < BaseController - skip_authorization_check # TODO: move authorization under ability - - def keyrelay - # keyrelay temp turned off - @domain = find_domain - - handle_errors(@domain) and return unless @domain - handle_errors(@domain) and return unless @domain.authenticate(params[:parsed_frame].css('pw').text) - handle_errors(@domain) and return unless @domain.keyrelay(params[:parsed_frame], current_user.registrar) - - render_epp_response '/epp/shared/success' - end - - private - - def validate_keyrelay - @prefix = 'keyrelay >' - - requires( - 'name', - 'keyData', 'keyData > pubKey', 'keyData > flags', 'keyData > protocol', 'keyData > alg', - 'authInfo', 'authInfo > pw' - ) - - optional 'expiry > relative', duration_iso8601: true - optional 'expiry > absolute', date_time_iso8601: true - - exactly_one_of 'expiry > relative', 'expiry > absolute' - end - - def find_domain - domain_name = params[:parsed_frame].css('name').text.strip.downcase - - # keyrelay temp turned off - epp_errors << { - code: '2307', - msg: I18n.t(:unimplemented_object_service), - value: { obj: 'name', val: domain_name } - } - nil - # end of keyrelay temp turned off - - # domain = Epp::Domain.includes(:registrant).find_by(name: domain_name) - - # unless domain - # epp_errors << { - # code: '2303', - # msg: I18n.t('errors.messages.epp_domain_not_found'), - # value: { obj: 'name', val: domain_name } - # } - # return nil - # end - - # domain - end - - def resource - @domain - end - end -end diff --git a/app/controllers/epp/polls_controller.rb b/app/controllers/epp/polls_controller.rb index c971d7d85..a7568b6bd 100644 --- a/app/controllers/epp/polls_controller.rb +++ b/app/controllers/epp/polls_controller.rb @@ -29,11 +29,7 @@ module Epp end end - if @notification.attached_obj_type == 'Keyrelay' - render_epp_response 'epp/poll/poll_keyrelay' - else - render_epp_response 'epp/poll/poll_req' - end + render_epp_response 'epp/poll/poll_req' end def ack_poll diff --git a/app/controllers/registrar/keyrelays_controller.rb b/app/controllers/registrar/keyrelays_controller.rb deleted file mode 100644 index 8436bb679..000000000 --- a/app/controllers/registrar/keyrelays_controller.rb +++ /dev/null @@ -1,20 +0,0 @@ -class Registrar - class KeyrelaysController < DeppController - def show - authorize! :view, Depp::Keyrelay - end - - def create - authorize! :create, Depp::Keyrelay - keyrelay = Depp::Keyrelay.new(current_user: depp_current_user) - @data = keyrelay.keyrelay(params) - - if response_ok? - flash[:epp_results] = [{ 'code' => '1000', 'msg' => 'Command completed successfully', 'show' => true }] - redirect_to registrar_keyrelay_path - else - render 'show' - end - end - end -end diff --git a/app/controllers/registrar/polls_controller.rb b/app/controllers/registrar/polls_controller.rb index ab0d5e1a6..3e17bf2b7 100644 --- a/app/controllers/registrar/polls_controller.rb +++ b/app/controllers/registrar/polls_controller.rb @@ -26,21 +26,6 @@ class Registrar render 'show' end - # TODO: Keyrelay is disabled for now - # def confirm_keyrelay - # authorize! :confirm, :keyrelay - # domain_params = params[:domain] - # @data = @domain.confirm_keyrelay(domain_params) - - # if response_ok? - # redirect_to info_registrar_domains_url(domain_name: domain_params[:name]) - # else - # @results = @data.css('result') - # @data = depp_current_user.request(@ex.poll) - # render 'show' - # end - # end - def confirm_transfer domain_params = params[:domain] @data = @domain.confirm_transfer(domain_params) diff --git a/app/models/ability.rb b/app/models/ability.rb index 3eab0569a..9a0676ac8 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -34,8 +34,6 @@ class Ability if @user.registrar.api_ip_white?(@ip) can :manage, :poll can :manage, Depp::Contact - # can :manage, Depp::Keyrelay # TODO: Keyrelay is disabled for now - # can :confirm, :keyrelay # TODO: Keyrelay is disabled for now can :manage, :xml_console can :manage, Depp::Domain end @@ -95,7 +93,6 @@ class Ability can :manage, ApiUser can :manage, AdminUser can :manage, Certificate - can :manage, Keyrelay can :manage, LegalDocument can :manage, BankStatement can :manage, BankTransaction diff --git a/app/models/depp/domain.rb b/app/models/depp/domain.rb index 0c8351c97..e2413a004 100644 --- a/app/models/depp/domain.rb +++ b/app/models/depp/domain.rb @@ -121,16 +121,6 @@ module Depp }, op, Domain.construct_custom_params_hash(params))) end - def confirm_keyrelay(domain_params) - xml = epp_xml.update({ - name: { value: domain_params[:name] } - }, { - add: Domain.create_dnskeys_hash(domain_params) - }) - - current_user.request(xml) - end - def confirm_transfer(domain_params) data = current_user.request(epp_xml.info(name: { value: domain_params[:name] })) pw = data.css('pw').text diff --git a/app/models/depp/keyrelay.rb b/app/models/depp/keyrelay.rb deleted file mode 100644 index a528bab2f..000000000 --- a/app/models/depp/keyrelay.rb +++ /dev/null @@ -1,45 +0,0 @@ -module Depp - class Keyrelay - attr_accessor :current_user, :epp_xml - - def initialize(args = {}) - self.current_user = args[:current_user] - self.epp_xml = EppXml::Keyrelay.new(cl_trid_prefix: current_user.tag) - end - - def keyrelay(params) - custom_params = {} - if params[:legal_document].present? - type = params[:legal_document].original_filename.split('.').last.downcase - custom_params = { - _anonymus: [ - legalDocument: { value: Base64.encode64(params[:legal_document].read), attrs: { type: type } } - ] - } - end - - xml = epp_xml.keyrelay({ - name: { value: params['domain_name'] }, - keyData: { - flags: { value: params['key_data_flags'] }, - protocol: { value: params['key_data_protocol'] }, - alg: { value: params['key_data_alg'] }, - pubKey: { value: params['key_data_public_key'] } - }, - authInfo: { - pw: { value: params['password'] } - }, - expiry: expiry(params['expiry']) - }, custom_params) - - current_user.request(xml) - end - - def expiry(value) - ISO8601::Duration.new(value) - { relative: { value: value } } - rescue => _e - { absolute: { value: value } } - end - end -end diff --git a/app/models/domain.rb b/app/models/domain.rb index beef862e3..cce1c9f41 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -51,7 +51,6 @@ class Domain < ActiveRecord::Base has_many :dnskeys, dependent: :destroy - has_many :keyrelays has_one :whois_record # destroyment will be done in after_commit accepts_nested_attributes_for :dnskeys, allow_destroy: true diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index ae08bcb2e..dc5de8d61 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -691,52 +691,6 @@ class Epp::Domain < Domain pt end - def keyrelay(parsed_frame, requester) - if registrar == requester - errors.add(:base, :domain_already_belongs_to_the_querying_registrar) and return false - end - - abs_datetime = parsed_frame.css('absolute').text - abs_datetime = DateTime.zone.parse(abs_datetime) if abs_datetime.present? - - transaction do - kr = keyrelays.build( - pa_date: Time.zone.now, - key_data_flags: parsed_frame.css('flags').text, - key_data_protocol: parsed_frame.css('protocol').text, - key_data_alg: parsed_frame.css('alg').text, - key_data_public_key: parsed_frame.css('pubKey').text, - auth_info_pw: parsed_frame.css('pw').text, - expiry_relative: parsed_frame.css('relative').text, - expiry_absolute: abs_datetime, - requester: requester, - accepter: registrar - ) - - legal_document_data = self.class.parse_legal_document_from_frame(parsed_frame) - if legal_document_data - kr.legal_documents.build( - document_type: legal_document_data[:type], - body: legal_document_data[:body] - ) - end - - kr.save - - return false unless valid? - - registrar.notifications.create!( - text: 'Key Relay action completed successfully.', - attached_obj_type: kr.class.to_s, - attached_obj_id: kr.id - ) - end - - true - end - - ### VALIDATIONS ### - def validate_exp_dates(cur_exp_date) begin return if cur_exp_date.to_date == valid_to.to_date diff --git a/app/models/keyrelay.rb b/app/models/keyrelay.rb deleted file mode 100644 index ba48991b2..000000000 --- a/app/models/keyrelay.rb +++ /dev/null @@ -1,61 +0,0 @@ -class Keyrelay < ActiveRecord::Base - include Versions # version/keyrelay_version.rb - include EppErrors - - belongs_to :domain - - belongs_to :requester, class_name: 'Registrar' - belongs_to :accepter, class_name: 'Registrar' - - has_many :legal_documents, as: :documentable - - delegate :name, to: :domain, prefix: true - - validates :domain, :key_data_public_key, :key_data_flags, :key_data_protocol, - :key_data_alg, :auth_info_pw, presence: true - validates :expiry_relative, duration_iso8601: true - - validate :validate_expiry_relative_xor_expiry_absolute - - after_save :touch_domain_version - - def epp_code_map - { - '2005' => [ - [:expiry_relative, :unknown_pattern, { value: { obj: 'relative', val: expiry_relative } }] - ], - '2003' => [ - # TODO: Remove only_one_parameter_allowed and other params that are validated in controller? - [:base, :only_one_parameter_allowed, { param_1: 'relative', param_2: 'absolute' }], - [:key_data_public_key, :blank], - [:key_data_flags, :blank], - [:key_data_protocol, :blank], - [:key_data_alg, :blank], - [:auth_info_pw, :blank] - ] - } - end - - def expiry - if expiry_relative.present? - pa_date + ISO8601::Duration.new(expiry_relative).to_seconds - elsif expiry_absolute - expiry_absolute - end - end - - def status - if Time.zone.now > expiry - return 'expired' - else - return 'pending' - end - end - - private - - def validate_expiry_relative_xor_expiry_absolute - return if expiry_relative.blank? ^ expiry_absolute.blank? - errors.add(:base, I18n.t(:only_one_parameter_allowed, param_1: 'relative', param_2: 'absolute')) - end -end diff --git a/app/models/version/keyrelay_version.rb b/app/models/version/keyrelay_version.rb deleted file mode 100644 index fececa6e8..000000000 --- a/app/models/version/keyrelay_version.rb +++ /dev/null @@ -1,5 +0,0 @@ -class KeyrelayVersion < PaperTrail::Version - include VersionSession - self.table_name = :log_keyrelays - self.sequence_name = :log_keyrelays_id_seq -end diff --git a/app/views/admin/base/_menu.haml b/app/views/admin/base/_menu.haml index d99a1598c..fa1b50440 100644 --- a/app/views/admin/base/_menu.haml +++ b/app/views/admin/base/_menu.haml @@ -6,8 +6,6 @@ %li= link_to t(:contacts), admin_contacts_path - if can? :show, Registrar %li= link_to t(:registrars), admin_registrars_path - - if can? :show, Keyrelay - %li= link_to t(:keyrelays), admin_keyrelays_path - if can?(:access, :settings_menu) %li.dropdown %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} diff --git a/app/views/admin/domains/partials/_keyrelays.haml b/app/views/admin/domains/partials/_keyrelays.haml deleted file mode 100644 index 43d099383..000000000 --- a/app/views/admin/domains/partials/_keyrelays.haml +++ /dev/null @@ -1,20 +0,0 @@ -.panel{class: 'panel-default'} - .panel-heading.clearfix - = t(:keyrelays) - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-4'}= t(:uploaded_at) - %th{class: 'col-xs-3'}= t(:expiry) - %th{class: 'col-xs-2'}= t(:requester) - %th{class: 'col-xs-2'}= t(:accepter) - %th{class: 'col-xs-1'}= t(:status) - %tbody - - @domain.keyrelays.includes([:requester, :accepter]).order(pa_date: :desc).each do |x| - %tr - %td= link_to(x.pa_date, [:admin, x]) - %td= x.expiry - %td= link_to(x.requester, [:admin, x.requester]) - %td= link_to(x.accepter, [:admin, x.accepter]) - %td= x.status diff --git a/app/views/admin/domains/show.html.erb b/app/views/admin/domains/show.html.erb index 1501b35bb..2b2835429 100644 --- a/app/views/admin/domains/show.html.erb +++ b/app/views/admin/domains/show.html.erb @@ -57,12 +57,6 @@ -
-
- <%= render 'admin/domains/partials/keyrelays' %> -
-
-
<%= render 'admin/domains/partials/legal_documents', legal_documents: diff --git a/app/views/admin/epp_logs/index.haml b/app/views/admin/epp_logs/index.haml index 4909eb29e..ee62c4218 100644 --- a/app/views/admin/epp_logs/index.haml +++ b/app/views/admin/epp_logs/index.haml @@ -8,10 +8,10 @@ .col-md-3 .form-group = f.label :request_command - = f.select :request_command_eq, [[t(:choose),''], 'hello', 'login', 'logout', 'info', 'create', 'update', 'delete', 'check', 'renew', 'transfer', 'poll', 'keyrelay'], {}, class: 'form-control selectize', placeholder: t(:choose) + = f.select :request_command_eq, [[t(:choose),''], 'hello', 'login', 'logout', 'info', 'create', 'update', 'delete', 'check', 'renew', 'transfer', 'poll'], {}, class: 'form-control selectize', placeholder: t(:choose) .col-md-3 .form-group - - opts = [[t(:choose),''], 'contact', 'domain', 'poll', 'keyrelay'] + - opts = [[t(:choose),''], 'contact', 'domain', 'poll'] - opts += [params[:q][:request_object_cont]] if params[:q].present? && params[:q][:request_object_cont].present? = f.label :request_object = f.select :request_object_cont, opts, {}, class: 'form-control selectize_create', placeholder: t(:choose) diff --git a/app/views/admin/keyrelays/index.haml b/app/views/admin/keyrelays/index.haml deleted file mode 100644 index 04c8e6d1b..000000000 --- a/app/views/admin/keyrelays/index.haml +++ /dev/null @@ -1,42 +0,0 @@ -= render 'shared/title', name: t(:keyrelays) - -.row - .col-md-12 - = search_form_for [:admin, @q], html: { class: 'form-horizontal' } do |f| - .col-md-11 - .form-group - = f.search_field :domain_name_cont, class: 'form-control', placeholder: t(:domain_name) - .col-md-1.text-right.text-center-xs - .form-group - %button.btn.btn-primary -   - %span.glyphicon.glyphicon-search -   -%hr -.row - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-4'} - = sort_link(@q, 'pa_date', t(:uploaded_at)) - %th{class: 'col-xs-3'} - = t(:expiry) - %th{class: 'col-xs-2'} - = sort_link(@q, 'requester_name', t(:requester)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'accepter_name', t(:accepter)) - %th{class: 'col-xs-1'} - = t(:status) - %tbody - - @keyrelays.each do |x| - %tr - %td= link_to(x.pa_date, [:admin, x]) - %td= x.expiry - %td= link_to(x.requester, [:admin, x.requester]) - %td= link_to(x.accepter, [:admin, x.accepter]) - %td= x.status -.row - .col-md-12 - = paginate @keyrelays diff --git a/app/views/admin/keyrelays/show.haml b/app/views/admin/keyrelays/show.haml deleted file mode 100644 index 08f8b6f33..000000000 --- a/app/views/admin/keyrelays/show.haml +++ /dev/null @@ -1,61 +0,0 @@ -= render 'shared/title', name: t(:keyrelay_details) - -.row - .col-md-12 - .panel.panel-default - .panel-heading - %h3.panel-title= t(:keyrelay) - .panel-body{style: 'word-wrap: break-word;'} - %dl.dl-horizontal - %dt= t(:uploaded_at) - %dd= @keyrelay.pa_date - - %dt= t(:domain) - %dd= link_to(@keyrelay.domain, [:admin, @keyrelay.domain]) - - %dt= t(:status) - %dd= @keyrelay.status - - %dt= t(:flag) - %dd= @keyrelay.key_data_flags - - %dt= t(:protocol) - %dd= @keyrelay.key_data_protocol - - %dt= t(:algorithm) - %dd= @keyrelay.key_data_alg - - %dt= t(:public_key) - %dd= @keyrelay.key_data_public_key - - %dt= t(:authinfo_pw) - %dd= @keyrelay.auth_info_pw - - %dt= t(:expiry_relative) - %dd= @keyrelay.expiry_relative - - %dt= t(:expiry_absolute) - %dd= @keyrelay.expiry_absolute - - %dt= t(:requester) - %dd= link_to(@keyrelay.requester, [:admin, @keyrelay.requester]) - - %dt= t(:accepter) - %dd= link_to(@keyrelay.accepter, [:admin, @keyrelay.accepter]) - -.row - .col-md-12 - .panel.panel-default - .panel-heading.clearfix - = t(:legal_documents) - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-8'}= t(:created_at) - %th{class: 'col-xs-4'}= t(:type) - %tbody - - @keyrelay.legal_documents.each do |x| - %tr - %td= link_to(x.created_at, [:admin, x]) - %td= x.document_type diff --git a/app/views/epp/poll/poll_keyrelay.xml.builder b/app/views/epp/poll/poll_keyrelay.xml.builder deleted file mode 100644 index c5415273a..000000000 --- a/app/views/epp/poll/poll_keyrelay.xml.builder +++ /dev/null @@ -1,49 +0,0 @@ -xml.instruct!(:xml, standalone: 'no') -xml.epp( - 'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd', - 'xmlns:secDNS' => 'urn:ietf:params:xml:ns:secDNS-1.1', - 'xmlns:domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd', - 'xmlns:keyrelay' => 'urn:ietf:params:xml:ns:keyrelay-1.0' -) do - xml.response do - xml.result('code' => '1301') do - xml.msg 'Command completed successfully; ack to dequeue' - end - - xml.tag!('msgQ', 'count' => current_user.unread_notifications.count, 'id' => @notification.id) do - xml.qDate @notification.created_at.try(:iso8601) - xml.msg @notification.text - end - - xml.resData do - xml.tag!('keyrelay:response') do - xml.tag!('keyrelay:panData') do - xml.tag!('keyrelay:name', @object.domain_name) - xml.tag!('keyrelay:paDate', @object.pa_date.try(:iso8601)) - - xml.tag!('keyrelay:keyData') do - xml.tag!('secDNS:flags', @object.key_data_flags) - xml.tag!('secDNS:protocol', @object.key_data_protocol) - xml.tag!('secDNS:alg', @object.key_data_alg) - xml.tag!('secDNS:pubKey', @object.key_data_public_key) - end - - - xml.tag!('keyrelay:authInfo') do - xml.tag!('domain:pw', @object.auth_info_pw) - end - - xml.tag!('keyrelay:expiry') do - xml.tag!('keyrelay:relative', @object.expiry_relative) - xml.tag!('keyrelay:absolute', @object.expiry_absolute) - end - - xml.tag!('keyrelay:reID', @object.requester) - xml.tag!('keyrelay:acID', @object.accepter) - end - end - end - - render('epp/shared/trID', builder: xml) - end -end diff --git a/app/views/epp/sessions/greeting.xml.builder b/app/views/epp/sessions/greeting.xml.builder index 040ce7196..072d2ead1 100644 --- a/app/views/epp/sessions/greeting.xml.builder +++ b/app/views/epp/sessions/greeting.xml.builder @@ -8,7 +8,6 @@ xml.epp_head do xml.objURI 'https://epp.tld.ee/schema/domain-eis-1.0.xsd' xml.objURI 'https://epp.tld.ee/schema/contact-ee-1.1.xsd' xml.objURI 'urn:ietf:params:xml:ns:host-1.0' - xml.objURI 'urn:ietf:params:xml:ns:keyrelay-1.0' xml.svcExtension do xml.extURI 'urn:ietf:params:xml:ns:secDNS-1.1' xml.extURI 'https://epp.tld.ee/schema/eis-1.0.xsd' diff --git a/app/views/layouts/registrant/application.html.erb b/app/views/layouts/registrant/application.html.erb index 7873728d5..66fdf3e16 100644 --- a/app/views/layouts/registrant/application.html.erb +++ b/app/views/layouts/registrant/application.html.erb @@ -41,7 +41,7 @@
- -
-
- <%= render 'registrant/domains/partials/keyrelays' %> -
-
diff --git a/app/views/registrar/base/_navbar.haml b/app/views/registrar/base/_navbar.haml index d94097bd3..4361e8b31 100644 --- a/app/views/registrar/base/_navbar.haml +++ b/app/views/registrar/base/_navbar.haml @@ -1,7 +1,7 @@ .navbar-collapse.collapse %ul.nav.navbar-nav - if can? :view, Depp::Domain - - active_class = %w(registrar/domains registrar/check registrar/renew registrar/tranfer registrar/keyrelays).include?(params[:controller]) ? 'active' :nil + - active_class = %w(registrar/domains registrar/check registrar/renew registrar/tranfer).include?(params[:controller]) ? 'active' :nil %li{class: active_class}= link_to t(:domains), registrar_domains_path - if can? :view, Depp::Contact diff --git a/app/views/registrar/keyrelays/show.haml b/app/views/registrar/keyrelays/show.haml deleted file mode 100644 index 399c64925..000000000 --- a/app/views/registrar/keyrelays/show.haml +++ /dev/null @@ -1,64 +0,0 @@ -= render 'shared/title', name: t(:keyrelay) - -.row - .col-md-8 - = form_tag registrar_keyrelay_path, class: 'form-horizontal', method: :post, multipart: true do - .form-group - .col-md-3.control-label - = label_tag :domain_name, t(:domain_name), class: 'required' - .col-md-7 - = text_field_tag :domain_name, params[:domain_name], - class: 'form-control', autocomplete: 'off', required: true - - .form-group - .col-md-3.control-label - = label_tag :password, t(:password), class: 'required' - .col-md-7 - = text_field_tag :password, params[:password], - class: 'form-control', autocomplete: 'off', required: true - - .form-group - .col-md-3.control-label - = label_tag :expiry, t(:expiry), class: 'required' - .col-md-7 - = text_field_tag :expiry, params[:expiry], - class: 'form-control', autocomplete: 'off', required: true - - .form-group - .col-md-3.control-label - = label_tag :key_data_flags, t(:flag), class: 'required' - .col-md-7 - = select_tag :key_data_flags, - options_for_select(Depp::Dnskey::FLAGS, params['key_data_flags']), {class: 'form-control'} - - .form-group - .col-md-3.control-label - = label_tag :key_data_protocol, t(:protocol), class: 'required' - .col-md-7 - = select_tag :key_data_protocol, - options_for_select(Depp::Dnskey::PROTOCOLS, params['key_data_protocol']), - {class: 'form-control'} - - .form-group - .col-md-3.control-label - = label_tag :key_data_alg, t(:algorithm), class: 'required' - .col-md-7 - = select_tag :key_data_alg, - options_for_select(Depp::Dnskey::ALGORITHMS, params['key_data_alg']), {class: 'form-control'} - - .form-group - .col-md-3.control-label - = label_tag :key_data_public_key, t(:public_key), class: 'required' - .col-md-7 - = text_field_tag :key_data_public_key, params['key_data_public_key'], - class: 'form-control', required: true - - .form-group - .col-md-3.control-label - = label_tag :legal_document, t(:legal_document) - .col-md-7 - = file_field_tag :legal_document - - .form-group - .col-md-10.text-right - %button.btn.btn-warning= t(:upload_key) diff --git a/app/views/registrar/polls/show.haml b/app/views/registrar/polls/show.haml index c4c337749..4ff116b81 100644 --- a/app/views/registrar/polls/show.haml +++ b/app/views/registrar/polls/show.haml @@ -10,8 +10,6 @@ .panel-heading.clearfix .pull-left= t('message_no', id: msg_q['id']) .pull-right - - if @data.css('panData').any? # this is a keyrelay request - = link_to(t(:confirm), 'javascript: void(0);', class: 'btn btn-warning btn-xs js-keyrelay-confirm') - if @data.css('trnData trStatus').any? # this is a transfer request - unless ['serverApproved', 'clientApproved'].include?(@data.css('trStatus').first.text) = link_to(t(:confirm), 'javascript: void(0);', class: 'btn btn-warning btn-xs js-transfer-confirm') @@ -25,53 +23,14 @@ %dd= @data.css('qDate').text %dl.dl-horizontal - / keyrelay - - if @data.css('panData').any? - %dt= t(:domain_name) - %dd= @data.css('name').text - - %dt= t(:authinfo_pw) - %dd= @data.css('pw').text - - - if @data.css('relative').text.present? - %dt= t(:expiry_relative) - %dd= @data.css('relative').text - - - if @data.css('absolute').text.present? - %dt= t(:expiry_absolute) - %dd= @data.css('absolute').text - - %dt paDate - %dd= @data.css('paDate').text - - %dt= t(:flag) - %dd= @data.css('flags').text - - %dt= t(:protocol) - %dd= @data.css('protocol').text - - %dt= t(:algorithm) - %dd= @data.css('alg').text - - %dt= t(:public_key) - %dd= @data.css('pubKey').text - - = form_tag confirm_keyrelay_registrar_poll_path, class: 'js-keyrelay-form' do + - if @data.css('trnData trStatus').any? # this is a transfer request + = form_tag confirm_transfer_registrar_poll_path, class: 'js-transfer-form' do = hidden_field_tag 'domain[name]', @data.css('name').text - = hidden_field_tag 'domain[dnskeys_attributes][0][flags]', @data.css('flags').text - = hidden_field_tag 'domain[dnskeys_attributes][0][protocol]', @data.css('protocol').text - = hidden_field_tag 'domain[dnskeys_attributes][0][alg]', @data.css('alg').text - = hidden_field_tag 'domain[dnskeys_attributes][0][public_key]', @data.css('pubKey').text - - else - - if @data.css('trnData trStatus').any? # this is a transfer request - = form_tag confirm_transfer_registrar_poll_path, class: 'js-transfer-form' do - = hidden_field_tag 'domain[name]', @data.css('name').text - - - @data.css('trnData').children.each do |x| - - next if x.blank? - %dt= t(x.name) - %dd= x.text + - @data.css('trnData').children.each do |x| + - next if x.blank? + %dt= t(x.name) + %dd= x.text - else .row .col-sm-12 @@ -83,9 +42,6 @@ :coffee load_listener = -> - $(".js-keyrelay-confirm").on "click", -> - $(".js-keyrelay-form").submit() - $(".js-transfer-confirm").on "click", -> $(".js-transfer-form").submit() window.addEventListener 'load', load_listener diff --git a/app/views/registrar/xml_consoles/epp_requests/keyrelay/keyrelay.xml b/app/views/registrar/xml_consoles/epp_requests/keyrelay/keyrelay.xml deleted file mode 100644 index 4a8773cac..000000000 --- a/app/views/registrar/xml_consoles/epp_requests/keyrelay/keyrelay.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - example6.ee - - 256 - 3 - 8 - cmlraXN0aGViZXN0 - - - 7521f360ae480e67c3096e4c046beb84 - - - P1D - - - - dGVzdCBmYWlsCg== - - 1422542244 - - diff --git a/config/locales/en.yml b/config/locales/en.yml index 4804fc4ea..04d3a1a67 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -150,22 +150,6 @@ en: taken: 'Public key already exists' blank: 'Public key is missing' - keyrelay: - attributes: - base: - only_one_parameter_allowed: 'Only one parameter allowed: %{param_1} or %{param_2}' - expiry_relative: - unknown_pattern: 'Expiry relative must be compatible to ISO 8601' - key_data_public_key: - blank: 'Public key is missing' - key_data_flags: - blank: 'Flag is missing' - key_data_protocol: - blank: 'Protocol is missing' - key_data_alg: - blank: 'Algorithm is missing' - auth_info_pw: - blank: 'Password is missing' legal_document: attributes: body: @@ -338,13 +322,11 @@ en: role: 'Role' user: 'User' customer_service: 'Customer service' - keyrelays: 'Keyrelays' uploaded_at: 'Uploaded at' expiry_relative: 'Expiry relative' expiry_absolute: 'Expiry absolute' requester: 'Requester' accepter: 'Accepter' - keyrelay_details: 'Keyrelay details' domain_name: 'Domain name' created_at: 'Created at' type: 'Type' @@ -455,7 +437,6 @@ en: exDate: 'Valid to' dequeue: 'Dequeue' are_you_sure_you_want_to_delete_domain: 'Are you sure you want to delete domain %{domain}?' - keyrelay: 'Keyrelay' upload_key: 'Upload key' legal_document: 'Legal document' legal_document_max_size: '(max. 8MB)' diff --git a/config/routes.rb b/config/routes.rb index 0486284d5..1e9a6bfc4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -117,13 +117,10 @@ Rails.application.routes.draw do resource :poll, only: %i[show destroy] do collection do - post 'confirm_keyrelay' post 'confirm_transfer' end end - resource :keyrelay - resource :xml_console do collection do get 'load_xml' @@ -189,12 +186,9 @@ Rails.application.routes.draw do root 'dashboard#show' devise_for :users, path: '', class_name: 'AdminUser' - resources :keyrelays resources :zonefiles resources :zones, controller: 'dns/zones', except: %i[show destroy] resources :legal_documents - resources :keyrelays - resources :prices, controller: 'billing/prices', except: %i[show destroy] do member do patch :expire diff --git a/db/migrate/20190917114907_drop_keyrelays.rb b/db/migrate/20190917114907_drop_keyrelays.rb new file mode 100644 index 000000000..cfe69ae9d --- /dev/null +++ b/db/migrate/20190917114907_drop_keyrelays.rb @@ -0,0 +1,6 @@ +class DropKeyrelays < ActiveRecord::Migration + def change + drop_table :keyrelays + drop_table :log_keyrelays + end +end diff --git a/db/structure.sql b/db/structure.sql index c487fbf87..de94f1eae 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -993,49 +993,6 @@ CREATE SEQUENCE public.invoices_id_seq ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; --- --- Name: keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.keyrelays ( - id integer NOT NULL, - domain_id integer, - pa_date timestamp without time zone, - key_data_flags character varying, - key_data_protocol character varying, - key_data_alg character varying, - key_data_public_key text, - auth_info_pw character varying, - expiry_relative character varying, - expiry_absolute timestamp without time zone, - requester_id integer, - accepter_id integer, - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying -); - - --- --- Name: keyrelays_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.keyrelays_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: keyrelays_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.keyrelays_id_seq OWNED BY public.keyrelays.id; - - -- -- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -1566,44 +1523,6 @@ CREATE SEQUENCE public.log_invoices_id_seq ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; --- --- Name: log_keyrelays; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_keyrelays ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_keyrelays_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_keyrelays_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_keyrelays_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_keyrelays_id_seq OWNED BY public.log_keyrelays.id; - - -- -- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -2514,13 +2433,6 @@ ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('publi ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.invoices_id_seq'::regclass); --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.keyrelays ALTER COLUMN id SET DEFAULT nextval('public.keyrelays_id_seq'::regclass); - - -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2619,13 +2531,6 @@ ALTER TABLE ONLY public.log_invoice_items ALTER COLUMN id SET DEFAULT nextval('p ALTER TABLE ONLY public.log_invoices ALTER COLUMN id SET DEFAULT nextval('public.log_invoices_id_seq'::regclass); --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_keyrelays ALTER COLUMN id SET DEFAULT nextval('public.log_keyrelays_id_seq'::regclass); - - -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2902,14 +2807,6 @@ ALTER TABLE ONLY public.invoices ADD CONSTRAINT invoices_pkey PRIMARY KEY (id); --- --- Name: keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: --- - -ALTER TABLE ONLY public.keyrelays - ADD CONSTRAINT keyrelays_pkey PRIMARY KEY (id); - - -- -- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3022,14 +2919,6 @@ ALTER TABLE ONLY public.log_invoices ADD CONSTRAINT log_invoices_pkey PRIMARY KEY (id); --- --- Name: log_keyrelays_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: --- - -ALTER TABLE ONLY public.log_keyrelays - ADD CONSTRAINT log_keyrelays_pkey PRIMARY KEY (id); - - -- -- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3469,27 +3358,6 @@ CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btr CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); --- --- Name: index_keyrelays_on_accepter_id; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_keyrelays_on_accepter_id ON public.keyrelays USING btree (accepter_id); - - --- --- Name: index_keyrelays_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_keyrelays_on_domain_id ON public.keyrelays USING btree (domain_id); - - --- --- Name: index_keyrelays_on_requester_id; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_keyrelays_on_requester_id ON public.keyrelays USING btree (requester_id); - - -- -- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -3672,20 +3540,6 @@ CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); --- --- Name: index_log_keyrelays_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_log_keyrelays_on_item_type_and_item_id ON public.log_keyrelays USING btree (item_type, item_id); - - --- --- Name: index_log_keyrelays_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_log_keyrelays_on_whodunnit ON public.log_keyrelays USING btree (whodunnit); - - -- -- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -4862,6 +4716,8 @@ INSERT INTO schema_migrations (version) VALUES ('20190811202711'); INSERT INTO schema_migrations (version) VALUES ('20190811205406'); +INSERT INTO schema_migrations (version) VALUES ('20190917114907'); + INSERT INTO schema_migrations (version) VALUES ('20191004095229'); INSERT INTO schema_migrations (version) VALUES ('20191004103144'); diff --git a/doc/controllers_brief.svg b/doc/controllers_brief.svg index 1ae503845..a33c36bb8 100644 --- a/doc/controllers_brief.svg +++ b/doc/controllers_brief.svg @@ -27,11 +27,6 @@ Epp::DomainsController - -Epp::KeyrelaysController - -Epp::KeyrelaysController - Epp::SessionsController @@ -87,11 +82,6 @@ Admin::ApiUsersController - -Admin::KeyrelaysController - -Admin::KeyrelaysController - Admin::SessionsController @@ -172,11 +162,6 @@ Registrar::DomainsController - -Registrar::KeyrelaysController - -Registrar::KeyrelaysController - Registrar::SessionsController diff --git a/doc/controllers_complete.svg b/doc/controllers_complete.svg index acb402497..892593e1a 100644 --- a/doc/controllers_complete.svg +++ b/doc/controllers_complete.svg @@ -54,18 +54,6 @@ validate_transfer validate_update - -Epp::KeyrelaysController - -Epp::KeyrelaysController - -keyrelay - - -_layout -find_domain -validate_keyrelay - Epp::SessionsController @@ -226,17 +214,6 @@ api_user_params set_api_user - -Admin::KeyrelaysController - -Admin::KeyrelaysController - -index -show - - -_layout - Admin::SessionsController @@ -458,17 +435,6 @@ init_contacts_autocomplete_map init_domain - -Registrar::KeyrelaysController - -Registrar::KeyrelaysController - -create -show - - -_layout - Registrar::SessionsController @@ -490,7 +456,6 @@ Registrar::PollsController -confirm_keyrelay confirm_transfer destroy show diff --git a/doc/epp/README.md b/doc/epp/README.md index de4bcb8e8..23a581635 100644 --- a/doc/epp/README.md +++ b/doc/epp/README.md @@ -5,7 +5,6 @@ [Session related functions](session.md) [Contact related functions](contact.md) [Domain related functions](domain.md) -[Keyrelay related functions](keyrelay.md) ## Supported protocols @@ -25,7 +24,6 @@ * [epp-1.0.xsd](/lib/schemas/epp-1.0.xsd) * [eppcom-1.0.xsd](/lib/schemas/eppcom-1.0.xsd) * [host-1.0.xsd](/lib/schemas/host-1.0.xsd) -* [keyrelay-1.0.xsd](/lib/schemas/keyrelay-1.0.xsd) * [secDNS-1.1.xsd](/lib/schemas/secDNS-1.1.xsd) * [changePoll-1.0.xsd](/lib/schemas/changePoll-1.0.xsd) diff --git a/doc/epp/keyrelay.md b/doc/epp/keyrelay.md deleted file mode 100644 index 4239682bf..000000000 --- a/doc/epp/keyrelay.md +++ /dev/null @@ -1,25 +0,0 @@ -## Keyrelay related functions - -### Keyrelay - -NB! Keyrelay not implemented. - - Field name Min-max Field description - --------------------- ------- ----------------- - 1 - 1 Domain name - 1 - 1 Allowed values: 0, 256, 257 - 1 Allowed values: 3 - 1 Allowed values: 3, 5, 6, 7, 8, 10, 13, 14 - 1 Public key - 1 - 1 Domain transfer code. Attribute: roid="String" - 1 - 0-1 Relative expiry duration (ISO8601). - Required if ext:absolute is not specified - 0-1 Absolute expiry date (ISO8601). - Required if ext:relative is not specified - 0-1 Client transaction id - -[EXAMPLE REQUEST AND RESPONSE](/doc/epp_examples.md#epp-keyrelay-makes-a-keyrelay-request) diff --git a/doc/epp_examples.md b/doc/epp_examples.md index 2ad383dfd..7e0e001ba 100644 --- a/doc/epp_examples.md +++ b/doc/epp_examples.md @@ -22,7 +22,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -1617,7 +1616,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -1717,7 +1715,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -1765,7 +1762,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -1849,7 +1845,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -2753,7 +2748,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -2841,7 +2835,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -2889,7 +2882,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -2968,7 +2960,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -3016,7 +3007,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -3104,7 +3094,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -3693,7 +3682,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -3805,7 +3793,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -3853,7 +3840,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -3935,7 +3921,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -3983,7 +3968,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -4078,7 +4062,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -4124,7 +4107,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -6839,7 +6821,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -6937,7 +6918,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7059,7 +7039,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7157,7 +7136,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7203,7 +7181,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7290,7 +7267,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7338,7 +7314,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7431,7 +7406,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7479,7 +7453,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7572,7 +7545,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7620,7 +7592,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7713,7 +7684,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7761,7 +7731,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7854,7 +7823,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7902,7 +7870,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -7995,7 +7962,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8043,7 +8009,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8136,7 +8101,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8184,7 +8148,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8277,7 +8240,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8325,7 +8287,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8418,7 +8379,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8466,7 +8426,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8545,7 +8504,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8647,7 +8605,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8734,7 +8691,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8834,7 +8790,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -8921,7 +8876,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -9093,7 +9047,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -9232,7 +9185,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -9399,7 +9351,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -9485,7 +9436,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -11279,7 +11229,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -11360,7 +11309,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -11991,7 +11939,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -12071,7 +12018,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -12119,7 +12065,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -12224,7 +12169,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -12272,7 +12216,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -12383,7 +12326,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -12844,7 +12786,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -12873,299 +12814,6 @@ RESPONSE: ``` -### EPP Keyrelay makes a keyrelay request - -REQUEST: - -```xml - - - - - domain67.ee - - 256 - 3 - 8 - cmlraXN0aGViZXN0 - - - 98oiewslkfkd - - - P1M13D - - - 1441791739 - - -``` - -RESPONSE: - -```xml - - - - - Unimplemented object service - - domain67.ee - - - - 1441791739 - ccReg-2567540489 - - - -``` - -### EPP Keyrelay returns an error when parameters are missing - -REQUEST: - -```xml - - - - - domain67.ee - - 3 - 8 - cmlraXN0aGViZXN0 - - - 98oiewslkfkd - - - Invalid Expiry - - - 1441791740 - - -``` - -RESPONSE: - -```xml - - - - - Required parameter missing: keyrelay > keyData > flags [flags] - - - Expiry relative must be compatible to ISO 8601 - - Invalid Expiry - - - - 1441791740 - ccReg-3316296442 - - - -``` - -### EPP Keyrelay returns an error on invalid relative expiry - -REQUEST: - -```xml - - - - - domain67.ee - - 256 - 3 - 8 - cmlraXN0aGViZXN0 - - - 98oiewslkfkd - - - Invalid Expiry - - - 1441791741 - - -``` - -RESPONSE: - -```xml - - - - - Expiry relative must be compatible to ISO 8601 - - Invalid Expiry - - - - 1441791741 - ccReg-5440105260 - - - -``` - -### EPP Keyrelay returns an error on invalid absolute expiry - -REQUEST: - -```xml - - - - - domain67.ee - - 256 - 3 - 8 - cmlraXN0aGViZXN0 - - - 98oiewslkfkd - - - Invalid Absolute - - - 1441791742 - - -``` - -RESPONSE: - -```xml - - - - - Expiry absolute must be compatible to ISO 8601 - - Invalid Absolute - - - - 1441791742 - ccReg-3004275558 - - - -``` - -### EPP Keyrelay saves legal document with keyrelay - -REQUEST: - -```xml - - - - - domain67.ee - - 256 - 3 - 8 - cmlraXN0aGViZXN0 - - - 98oiewslkfkd - - - P1D - - - - dGVzdCBmYWlsCg== - - 1441791743 - - -``` - -RESPONSE: - -```xml - - - - - Unimplemented object service - - domain67.ee - - - - 1441791743 - ccReg-5428813077 - - - -``` - -### EPP Keyrelay validates legal document types - -REQUEST: - -```xml - - - - - domain67.ee - - 256 - 3 - 8 - cmlraXN0aGViZXN0 - - - 98oiewslkfkd - - - P1D - - - - dGVzdCBmYWlsCg== - - 1441791744 - - -``` - -RESPONSE: - -```xml - - - - - Attribute is invalid: type - - - 1441791744 - ccReg-4758328068 - - - -``` - REQUEST: ```xml @@ -13183,7 +12831,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -13262,7 +12909,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -13337,7 +12983,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -13416,7 +13061,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -13494,7 +13138,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -13855,7 +13498,6 @@ RESPONSE: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -13901,7 +13543,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -13949,7 +13590,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14032,7 +13672,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14078,7 +13717,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14126,7 +13764,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14174,7 +13811,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14220,7 +13856,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14268,7 +13903,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14346,7 +13980,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd @@ -14395,7 +14028,6 @@ REQUEST: https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 urn:ietf:params:xml:ns:secDNS-1.1 https://epp.tld.ee/schema/eis-1.0.xsd diff --git a/doc/models_brief.svg b/doc/models_brief.svg index 70a4579de..57012f0d5 100644 --- a/doc/models_brief.svg +++ b/doc/models_brief.svg @@ -161,17 +161,6 @@ - -KeyrelayVersion - -KeyrelayVersion - - -KeyrelayVersion->VersionAssociation - - - - AccountActivityVersion @@ -867,35 +856,6 @@ - -Keyrelay - -Keyrelay - - -Domain->Keyrelay - - - - - -Domain->Keyrelay - - - - - -Domain->Keyrelay - - - - - -Domain->Keyrelay - - - - Domain->LegalDocument @@ -1278,32 +1238,6 @@ - -Keyrelay->KeyrelayVersion - - - -versions - - -Keyrelay->KeyrelayVersion - - - -versions - - -Keyrelay->LegalDocument - - - - - -Keyrelay->LegalDocument - - - - WhiteIp->WhiteIpVersion diff --git a/doc/models_complete.svg b/doc/models_complete.svg index c5fe1e899..c41283153 100644 --- a/doc/models_complete.svg +++ b/doc/models_complete.svg @@ -312,28 +312,6 @@ - -KeyrelayVersion - -KeyrelayVersion - -id :integer -item_type :string -item_id :integer -event :string -whodunnit :string -object :json -object_changes :json -created_at :datetime -session :string -children :json - - -KeyrelayVersion->VersionAssociation - - - - AccountActivityVersion @@ -1384,52 +1362,6 @@ - -Keyrelay - -Keyrelay - -id :integer -domain_id :integer -pa_date :datetime -key_data_flags :string -key_data_protocol :string -key_data_alg :string -key_data_public_key :text -auth_info_pw :string -expiry_relative :string -expiry_absolute :datetime -requester_id :integer -accepter_id :integer -created_at :datetime -updated_at :datetime -creator_str :string -updator_str :string - - -Domain->Keyrelay - - - - - -Domain->Keyrelay - - - - - -Domain->Keyrelay - - - - - -Domain->Keyrelay - - - - Domain->LegalDocument @@ -1995,32 +1927,6 @@ - -Keyrelay->KeyrelayVersion - - - -versions - - -Keyrelay->KeyrelayVersion - - - -versions - - -Keyrelay->LegalDocument - - - - - -Keyrelay->LegalDocument - - - - WhiteIp->WhiteIpVersion diff --git a/lib/epp_constraint.rb b/lib/epp_constraint.rb index ae69921d9..1200a6075 100644 --- a/lib/epp_constraint.rb +++ b/lib/epp_constraint.rb @@ -15,7 +15,7 @@ class EppConstraint request.params[:nokogiri_frame] ||= Nokogiri::XML(request.params[:raw_frame] || request.params[:frame]) request.params[:parsed_frame] ||= request.params[:nokogiri_frame].dup.remove_namespaces! - unless [:keyrelay, :poll, :session].include?(@type) + unless %i[poll session].include?(@type) element = "//#{@type}:#{request.params[:action]}" return false if request.params[:nokogiri_frame].xpath("#{element}", OBJECT_TYPES[@type]).none? end diff --git a/lib/schemas/all-ee-1.0.xsd b/lib/schemas/all-ee-1.0.xsd index 5cba9d965..d9ccffcfb 100644 --- a/lib/schemas/all-ee-1.0.xsd +++ b/lib/schemas/all-ee-1.0.xsd @@ -23,9 +23,6 @@ - - diff --git a/lib/schemas/all-ee-1.1.xsd b/lib/schemas/all-ee-1.1.xsd index 95c5185c4..c82fbc433 100644 --- a/lib/schemas/all-ee-1.1.xsd +++ b/lib/schemas/all-ee-1.1.xsd @@ -23,9 +23,6 @@ - - diff --git a/lib/schemas/keyrelay-1.0.xsd b/lib/schemas/keyrelay-1.0.xsd deleted file mode 100644 index d5a8335fd..000000000 --- a/lib/schemas/keyrelay-1.0.xsd +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - Extensible Provisioning Protocol v1.0 protocol - extension schema for relaying DNSSEC key material. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/integration/epp/login/credentials_test.rb b/test/integration/epp/login/credentials_test.rb index 8ce6adcf2..e6cc7742b 100644 --- a/test/integration/epp/login/credentials_test.rb +++ b/test/integration/epp/login/credentials_test.rb @@ -17,7 +17,6 @@ class EppLoginCredentialsTest < EppTestCase https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 @@ -50,7 +49,6 @@ class EppLoginCredentialsTest < EppTestCase https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 diff --git a/test/integration/epp/login/password_change_test.rb b/test/integration/epp/login/password_change_test.rb index 5e557be81..4466248a8 100644 --- a/test/integration/epp/login/password_change_test.rb +++ b/test/integration/epp/login/password_change_test.rb @@ -18,7 +18,6 @@ class EppLoginPasswordChangeTest < EppTestCase https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 diff --git a/test/integration/epp/login/session_limit_test.rb b/test/integration/epp/login/session_limit_test.rb index 79c0a8384..f68aac4e4 100644 --- a/test/integration/epp/login/session_limit_test.rb +++ b/test/integration/epp/login/session_limit_test.rb @@ -50,7 +50,6 @@ class EppLoginSessionLimitTest < EppTestCase https://epp.tld.ee/schema/domain-eis-1.0.xsd https://epp.tld.ee/schema/contact-ee-1.1.xsd urn:ietf:params:xml:ns:host-1.0 - urn:ietf:params:xml:ns:keyrelay-1.0 From 145dc63265d45a56b8be4fbc1b4f692cfa8be66b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 31 Oct 2019 17:25:13 +0200 Subject: [PATCH 172/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1935f9a4..f070ad5ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ 31.10.2019 * Improved setup and seed [#1352](https://github.com/internetee/registry/pull/1352) +* Removed unimplemented keyrelay code [#715](https://github.com/internetee/registry/issues/715) +* Removed uuidtools gem [#1390](https://github.com/internetee/registry/pull/1390) +* Removed some unneeded code [#1397](https://github.com/internetee/registry/pull/1397) +* Removed eis_trusted_proxies setting [#1398](https://github.com/internetee/registry/pull/1398) 28.10.2019 * Updated kaminari gem to 1.1.1 [#1392](https://github.com/internetee/registry/pull/1392) From 027a9f9d9bc602912afb35f550848365fd1accf9 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 31 Oct 2019 18:13:06 +0200 Subject: [PATCH 173/757] Update `domain_name` gem --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index df3351a06..67a384626 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -166,7 +166,7 @@ GEM warden (~> 1.2.3) diff-lcs (1.3) docile (1.3.2) - domain_name (0.5.20170404) + domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) equalizer (0.0.11) erubis (2.7.0) @@ -400,7 +400,7 @@ GEM execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.2) + unf_ext (0.0.7.6) unicode_utils (1.4.0) validates_email_format_of (1.6.3) i18n From 6e12ffc82c084976f9bf1b48e0f6700b7a70c670 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 31 Oct 2019 18:19:02 +0200 Subject: [PATCH 174/757] Update `webmock` gem --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index df3351a06..1671aeb46 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -418,7 +418,7 @@ GEM nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) - webmock (3.6.0) + webmock (3.7.6) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) From 7a1f5774928b5e696e83f06345fbc51aa2627dbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 31 Oct 2019 18:28:26 +0200 Subject: [PATCH 175/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f070ad5ea..762dfd5c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ 31.10.2019 +* Updated domain_name gem to 0.5.20190701 [#1400](https://github.com/internetee/registry/pull/1400) +* Updated webmock gem to 3.7.6 [#1401](https://github.com/internetee/registry/pull/1401) * Improved setup and seed [#1352](https://github.com/internetee/registry/pull/1352) * Removed unimplemented keyrelay code [#715](https://github.com/internetee/registry/issues/715) * Removed uuidtools gem [#1390](https://github.com/internetee/registry/pull/1390) From a154d8e02e46af7bb57740784f5e8c7538ebe7f7 Mon Sep 17 00:00:00 2001 From: Georg Date: Fri, 1 Nov 2019 06:55:57 +0200 Subject: [PATCH 176/757] fix introduced typos (#1396) fix typos introduced in #1352 --- bin/setup | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/setup b/bin/setup index ea95b5dc2..fdf4596e7 100755 --- a/bin/setup +++ b/bin/setup @@ -25,8 +25,9 @@ Dir.chdir APP_ROOT do system! 'bin/rake db:setup' puts "\n== Removing old logs and tempfiles ==" - system! 'bin/rails log:clear tmp:clear' + system! 'bin/rake log:clear tmp:clear' puts "\n== Restarting application server ==" - system! 'bin/rails restart' + system! 'touch tmp/restart.txt' + end From ddf33755aa2274fb65dd722662f0f8222ae9152c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 1 Nov 2019 12:05:41 +0200 Subject: [PATCH 177/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 762dfd5c8..67282c44b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +01.11.2019 +* Typo fixes for #1352 [#1396](https://github.com/internetee/registry/pull/1396) + 31.10.2019 * Updated domain_name gem to 0.5.20190701 [#1400](https://github.com/internetee/registry/pull/1400) * Updated webmock gem to 3.7.6 [#1401](https://github.com/internetee/registry/pull/1401) From fae5faed2436881007e04affebb48aa0f2c36263 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 1 Nov 2019 15:48:35 +0200 Subject: [PATCH 178/757] Update `que` gem --- Gemfile | 4 +--- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 7036d9c80..79cbaf4b8 100644 --- a/Gemfile +++ b/Gemfile @@ -61,9 +61,7 @@ gem 'digidoc_client', gem 'epp', github: 'internetee/epp', branch: :master gem 'epp-xml', '1.1.0', github: 'internetee/epp-xml' - -# que -gem 'que', '0.10.0' +gem 'que' gem 'daemons-rails', '1.2.1' gem 'que-web', '0.4.0' gem 'pdfkit' diff --git a/Gemfile.lock b/Gemfile.lock index f5e3f7f06..c69eda635 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -271,7 +271,7 @@ GEM public_suffix (4.0.1) puma (4.2.1) nio4r (~> 2.0) - que (0.10.0) + que (0.14.3) que-web (0.4.0) erubis que (~> 0.8) @@ -469,7 +469,7 @@ DEPENDENCIES pg (= 0.19.0) pry (= 0.10.1) puma - que (= 0.10.0) + que que-web (= 0.4.0) railroady (= 1.3.0) rails (= 4.2.11.1) From 2c77dd1face8af61251f0f1590514f835fe5b5a5 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 1 Nov 2019 15:50:04 +0200 Subject: [PATCH 179/757] Update `que-web` gem --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 79cbaf4b8..948d1185a 100644 --- a/Gemfile +++ b/Gemfile @@ -63,7 +63,7 @@ gem 'epp', github: 'internetee/epp', branch: :master gem 'epp-xml', '1.1.0', github: 'internetee/epp-xml' gem 'que' gem 'daemons-rails', '1.2.1' -gem 'que-web', '0.4.0' +gem 'que-web' gem 'pdfkit' gem 'jquery-ui-rails', '5.0.5' gem 'active_model-errors_details' # Backport from Rails 5, https://github.com/rails/rails/pull/18322 diff --git a/Gemfile.lock b/Gemfile.lock index c69eda635..9445b7f3d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -272,7 +272,7 @@ GEM puma (4.2.1) nio4r (~> 2.0) que (0.14.3) - que-web (0.4.0) + que-web (0.7.2) erubis que (~> 0.8) sinatra @@ -470,7 +470,7 @@ DEPENDENCIES pry (= 0.10.1) puma que - que-web (= 0.4.0) + que-web railroady (= 1.3.0) rails (= 4.2.11.1) rails-settings-cached (= 0.7.2) From 099680e7ab213d704f89c21c99b3b6a800866bb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 1 Nov 2019 19:28:44 +0200 Subject: [PATCH 180/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67282c44b..79760b2f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 01.11.2019 * Typo fixes for #1352 [#1396](https://github.com/internetee/registry/pull/1396) +* Updated que gem to 0.14.3 and que-web gem to 0.7.2 [#1404](https://github.com/internetee/registry/pull/1404) 31.10.2019 * Updated domain_name gem to 0.5.20190701 [#1400](https://github.com/internetee/registry/pull/1400) From ff455e2c2623fd715636fc2681776a1111684292 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 2 Nov 2019 15:40:46 +0200 Subject: [PATCH 181/757] Remove comments --- config/initializers/kaminari_config.rb | 7 ------- 1 file changed, 7 deletions(-) diff --git a/config/initializers/kaminari_config.rb b/config/initializers/kaminari_config.rb index 2eeb4bab6..d1ac7c117 100644 --- a/config/initializers/kaminari_config.rb +++ b/config/initializers/kaminari_config.rb @@ -1,10 +1,3 @@ Kaminari.configure do |config| config.default_per_page = 75 - # config.max_per_page = nil - # config.window = 4 - # config.outer_window = 0 - # config.left = 0 - # config.right = 0 - # config.page_method_name = :page - # config.param_name = :page end From 053f642ea6384dfbd91fa3a2ea509e50d876eaba Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 2 Nov 2019 15:41:14 +0200 Subject: [PATCH 182/757] Improve readability --- config/initializers/{kaminari_config.rb => kaminari.rb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename config/initializers/{kaminari_config.rb => kaminari.rb} (100%) diff --git a/config/initializers/kaminari_config.rb b/config/initializers/kaminari.rb similarity index 100% rename from config/initializers/kaminari_config.rb rename to config/initializers/kaminari.rb From 63b27effed6e1b4e45a1efb7d4e6cdcccdc8eb81 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 2 Nov 2019 15:44:40 +0200 Subject: [PATCH 183/757] Remove unnecessary translations `kaminari` gem itself already provides them. --- config/locales/en.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 04d3a1a67..e57723cd1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,21 +1,4 @@ en: - views: - pagination: - first: "« First" - last: "Last »" - previous: "‹ Prev" - next: "Next ›" - truncate: "…" - helpers: - page_entries_info: - one_page: - display_entries: - zero: "No %{entry_name} found" - one: "Displaying 1 %{entry_name}" - other: "Displaying all %{count} %{entry_name}" - more_pages: - display_entries: "Displaying %{entry_name} %{first} - %{last} of %{total} in total" - time: formats: default: "%Y-%m-%d %H:%M" From e78b0e794ecdfbb081070cb86e4bbb811229da63 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 2 Nov 2019 16:20:31 +0200 Subject: [PATCH 184/757] Remove unnecessary views `kaminari` gem itself already provides them. --- app/views/admin/contact_versions/show.haml | 2 +- app/views/admin/domain_versions/show.haml | 2 +- app/views/kaminari/admin/_first_page.html.haml | 11 ----------- app/views/kaminari/admin/_gap.html.haml | 8 -------- app/views/kaminari/admin/_last_page.html.haml | 9 --------- app/views/kaminari/admin/_next_page.html.haml | 9 --------- app/views/kaminari/admin/_page.html.haml | 12 ------------ app/views/kaminari/admin/_paginator.html.haml | 18 ------------------ app/views/kaminari/admin/_prev_page.html.haml | 11 ----------- 9 files changed, 2 insertions(+), 80 deletions(-) delete mode 100644 app/views/kaminari/admin/_first_page.html.haml delete mode 100644 app/views/kaminari/admin/_gap.html.haml delete mode 100644 app/views/kaminari/admin/_last_page.html.haml delete mode 100644 app/views/kaminari/admin/_next_page.html.haml delete mode 100644 app/views/kaminari/admin/_page.html.haml delete mode 100644 app/views/kaminari/admin/_paginator.html.haml delete mode 100644 app/views/kaminari/admin/_prev_page.html.haml diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml index a412b4312..901f5ee1a 100644 --- a/app/views/admin/contact_versions/show.haml +++ b/app/views/admin/contact_versions/show.haml @@ -106,4 +106,4 @@ = l(vs.created_at, format: :short) = vs.event %span{:style => "padding-left:10px; position: absolute; bottom: 10px;"} - = paginate @versions, theme: :admin + = paginate @versions diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index 9a38150be..cb95f231c 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -129,4 +129,4 @@ = l(vs.created_at, format: :short) = vs.event %span{:style => "padding-left:10px; position: absolute; bottom: 10px;"} - = paginate @versions, theme: :admin + = paginate @versions diff --git a/app/views/kaminari/admin/_first_page.html.haml b/app/views/kaminari/admin/_first_page.html.haml deleted file mode 100644 index c5bbf13e1..000000000 --- a/app/views/kaminari/admin/_first_page.html.haml +++ /dev/null @@ -1,11 +0,0 @@ --# Link to the "First" page --# available local variables --# url: url to the first page --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote -%span.first - - param_name = current_page.instance_variable_get("@options")[:param_name] || Kaminari.config.param_name - - urlik = url_for( params.merge(param_name => 1, :only_path => true)) - = link_to_unless current_page.first?, t('views.pagination.first').html_safe, urlik, :remote => remote diff --git a/app/views/kaminari/admin/_gap.html.haml b/app/views/kaminari/admin/_gap.html.haml deleted file mode 100644 index dd5789cc1..000000000 --- a/app/views/kaminari/admin/_gap.html.haml +++ /dev/null @@ -1,8 +0,0 @@ --# Non-link tag that stands for skipped pages... --# available local variables --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote -%span.page.gap - = t('views.pagination.truncate').html_safe diff --git a/app/views/kaminari/admin/_last_page.html.haml b/app/views/kaminari/admin/_last_page.html.haml deleted file mode 100644 index cdddb9e7c..000000000 --- a/app/views/kaminari/admin/_last_page.html.haml +++ /dev/null @@ -1,9 +0,0 @@ --# Link to the "Last" page --# available local variables --# url: url to the last page --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote -%span.last - = link_to_unless current_page.last?, t('views.pagination.last').html_safe, url, :remote => remote diff --git a/app/views/kaminari/admin/_next_page.html.haml b/app/views/kaminari/admin/_next_page.html.haml deleted file mode 100644 index 2865dcd0c..000000000 --- a/app/views/kaminari/admin/_next_page.html.haml +++ /dev/null @@ -1,9 +0,0 @@ --# Link to the "Next" page --# available local variables --# url: url to the next page --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote -%span.next - = link_to_unless current_page.last?, t('views.pagination.next').html_safe, url, :rel => 'next', :remote => remote diff --git a/app/views/kaminari/admin/_page.html.haml b/app/views/kaminari/admin/_page.html.haml deleted file mode 100644 index d583c58f1..000000000 --- a/app/views/kaminari/admin/_page.html.haml +++ /dev/null @@ -1,12 +0,0 @@ --# Link showing page number --# available local variables --# page: a page object for "this" page --# url: url to this page --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote -%span{:class => "page#{' current' if page.current?}"} - - param_name = current_page.instance_variable_get("@options")[:param_name] || Kaminari.config.param_name - - urlik = url_for( params.merge(param_name => page.to_i, :only_path => true)) - = link_to_unless page.current?, page, urlik, {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil} diff --git a/app/views/kaminari/admin/_paginator.html.haml b/app/views/kaminari/admin/_paginator.html.haml deleted file mode 100644 index 4f33e2dee..000000000 --- a/app/views/kaminari/admin/_paginator.html.haml +++ /dev/null @@ -1,18 +0,0 @@ --# The container tag --# available local variables --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote --# paginator: the paginator that renders the pagination tags inside -= paginator.render do - %nav.pagination - = first_page_tag unless current_page.first? - = prev_page_tag unless current_page.first? - - each_page do |page| - - if page.left_outer? || page.right_outer? || page.inside_window? - = page_tag page - - elsif !page.was_truncated? - = gap_tag - = next_page_tag unless current_page.last? - = last_page_tag unless current_page.last? diff --git a/app/views/kaminari/admin/_prev_page.html.haml b/app/views/kaminari/admin/_prev_page.html.haml deleted file mode 100644 index 3b565fa6f..000000000 --- a/app/views/kaminari/admin/_prev_page.html.haml +++ /dev/null @@ -1,11 +0,0 @@ --# Link to the "Previous" page --# available local variables --# url: url to the previous page --# current_page: a page object for the currently displayed page --# total_pages: total number of pages --# per_page: number of items to fetch per page --# remote: data-remote -%span.prev - - param_name = current_page.instance_variable_get("@options")[:param_name] || Kaminari.config.param_name - - urlik = url_for( params.merge(param_name => current_page.to_i - 1, :only_path => true)) - = link_to_unless current_page.first?, t('views.pagination.previous').html_safe, urlik, :rel => 'prev', :remote => remote From aea4bf974ad196ee59cd5fb4875d15129385ec24 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 2 Nov 2019 17:03:02 +0200 Subject: [PATCH 185/757] Reveal file purpose --- config/initializers/ext.rb | 3 ++- config/initializers/eis_ransack.rb => lib/gem_ext/ransack.rb | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename config/initializers/eis_ransack.rb => lib/gem_ext/ransack.rb (100%) diff --git a/config/initializers/ext.rb b/config/initializers/ext.rb index 50b8b2791..02cfe4316 100644 --- a/config/initializers/ext.rb +++ b/config/initializers/ext.rb @@ -1,4 +1,5 @@ require 'core_ext/array' require 'gem_ext/builder' require 'gem_ext/i18n' -require 'gem_ext/paper_trail' \ No newline at end of file +require 'gem_ext/paper_trail' +require 'gem_ext/ransack' diff --git a/config/initializers/eis_ransack.rb b/lib/gem_ext/ransack.rb similarity index 100% rename from config/initializers/eis_ransack.rb rename to lib/gem_ext/ransack.rb From 67a90c2ef1e074a5eccaa7aa3de7d8fcd3e8e704 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 2 Nov 2019 17:04:14 +0200 Subject: [PATCH 186/757] Improve readability --- .codeclimate.yml | 4 ++-- config/initializers/ext.rb | 5 ----- config/initializers/monkey_patches.rb | 5 +++++ lib/{core_ext => core_monkey_patches}/array.rb | 0 lib/{gem_ext => gem_monkey_patches}/builder.rb | 0 lib/{gem_ext => gem_monkey_patches}/i18n.rb | 0 lib/{gem_ext => gem_monkey_patches}/paper_trail.rb | 0 lib/{gem_ext => gem_monkey_patches}/ransack.rb | 0 test/test_helper.rb | 4 ++-- 9 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 config/initializers/ext.rb create mode 100644 config/initializers/monkey_patches.rb rename lib/{core_ext => core_monkey_patches}/array.rb (100%) rename lib/{gem_ext => gem_monkey_patches}/builder.rb (100%) rename lib/{gem_ext => gem_monkey_patches}/i18n.rb (100%) rename lib/{gem_ext => gem_monkey_patches}/paper_trail.rb (100%) rename lib/{gem_ext => gem_monkey_patches}/ransack.rb (100%) diff --git a/.codeclimate.yml b/.codeclimate.yml index 3802e689b..cdba2d7d7 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -29,9 +29,9 @@ exclude_patterns: - "config/" - "db/" - "lib/action_controller/" - - "lib/core_ext/" + - "lib/core_monkey_patches/" - "lib/daemons/" - - "lib/gem_ext/" + - "lib/gem_monkey_patches/" - "lib/tasks/api_log.rake" - "lib/tasks/bootstrap.rake" - "lib/tasks/db.rake" diff --git a/config/initializers/ext.rb b/config/initializers/ext.rb deleted file mode 100644 index 02cfe4316..000000000 --- a/config/initializers/ext.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'core_ext/array' -require 'gem_ext/builder' -require 'gem_ext/i18n' -require 'gem_ext/paper_trail' -require 'gem_ext/ransack' diff --git a/config/initializers/monkey_patches.rb b/config/initializers/monkey_patches.rb new file mode 100644 index 000000000..d342fb6b0 --- /dev/null +++ b/config/initializers/monkey_patches.rb @@ -0,0 +1,5 @@ +require 'core_monkey_patches/array' +require 'gem_monkey_patches/builder' +require 'gem_monkey_patches/i18n' +require 'gem_monkey_patches/paper_trail' +require 'gem_monkey_patches/ransack' diff --git a/lib/core_ext/array.rb b/lib/core_monkey_patches/array.rb similarity index 100% rename from lib/core_ext/array.rb rename to lib/core_monkey_patches/array.rb diff --git a/lib/gem_ext/builder.rb b/lib/gem_monkey_patches/builder.rb similarity index 100% rename from lib/gem_ext/builder.rb rename to lib/gem_monkey_patches/builder.rb diff --git a/lib/gem_ext/i18n.rb b/lib/gem_monkey_patches/i18n.rb similarity index 100% rename from lib/gem_ext/i18n.rb rename to lib/gem_monkey_patches/i18n.rb diff --git a/lib/gem_ext/paper_trail.rb b/lib/gem_monkey_patches/paper_trail.rb similarity index 100% rename from lib/gem_ext/paper_trail.rb rename to lib/gem_monkey_patches/paper_trail.rb diff --git a/lib/gem_ext/ransack.rb b/lib/gem_monkey_patches/ransack.rb similarity index 100% rename from lib/gem_ext/ransack.rb rename to lib/gem_monkey_patches/ransack.rb diff --git a/test/test_helper.rb b/test/test_helper.rb index 8af9a8cd6..1310fcaaf 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -3,9 +3,9 @@ if ENV['COVERAGE'] SimpleCov.start 'rails' do add_filter '/app/models/version/' add_filter '/lib/action_controller/' - add_filter '/lib/core_ext/' + add_filter '/lib/core_monkey_patches/' add_filter '/lib/daemons/' - add_filter '/lib/gem_ext/' + add_filter '/lib/gem_monkey_patches/' end end From 0b5e90a6705dbe4af2e4c031439325b23de1e9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 4 Nov 2019 12:32:18 +0200 Subject: [PATCH 187/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79760b2f6..94ed02bb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +04.11.2019 +* Tuned kaminari gem to solve pagination issues [#1405](https://github.com/internetee/registry/pull/1405) + 01.11.2019 * Typo fixes for #1352 [#1396](https://github.com/internetee/registry/pull/1396) * Updated que gem to 0.14.3 and que-web gem to 0.7.2 [#1404](https://github.com/internetee/registry/pull/1404) From 129e6bac9aed6a77343231d5c4bf5905d39695fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 5 Nov 2019 15:37:04 +0200 Subject: [PATCH 188/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94ed02bb7..ad4a3f8b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +05.11.2019 +* Moved gem extensions to proper directory and renamed the dirs to "moneky patces" to improve readability [#1406](https://github.com/internetee/registry/pull/1406) + 04.11.2019 * Tuned kaminari gem to solve pagination issues [#1405](https://github.com/internetee/registry/pull/1405) From 4af630967c5194c6266dc2db595ef2376ba534e8 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Nov 2019 15:21:31 +0200 Subject: [PATCH 189/757] Extract partial --- .../account_activities/_search_form.html.haml | 36 ++++++++++++++++++ app/views/admin/account_activities/index.haml | 37 +------------------ .../locales/admin/account_activities.en.yml | 2 +- 3 files changed, 38 insertions(+), 37 deletions(-) create mode 100644 app/views/admin/account_activities/_search_form.html.haml diff --git a/app/views/admin/account_activities/_search_form.html.haml b/app/views/admin/account_activities/_search_form.html.haml new file mode 100644 index 000000000..d022542b1 --- /dev/null +++ b/app/views/admin/account_activities/_search_form.html.haml @@ -0,0 +1,36 @@ +.row + .col-md-12 + = search_form_for @q, url: [:admin, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| + .row + .col-md-12 + .form-group + = f.label t(:registrar_name) + = f.select :account_registrar_id_in, Registrar.all.map { |x| [x, x.id] }, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true + .row + .col-md-6 + .form-group + = f.label t(:activity_type) + = f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true + .col-md-6 + .form-group + = f.label t(:description) + = f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' + .row + .col-md-3 + .form-group + = f.label t(:receipt_date_from) + = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) + .col-md-3 + .form-group + = f.label t(:receipt_date_until) + = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) + .col-md-3 + .form-group + = label_tag t(:results_per_page) + = text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) + .col-md-3{style: 'padding-top: 25px;'} + %button.btn.btn-default.search +   + %span.glyphicon.glyphicon-search +   + = link_to(t('.reset_btn'), admin_account_activities_path, class: 'btn btn-default') diff --git a/app/views/admin/account_activities/index.haml b/app/views/admin/account_activities/index.haml index 1f201f255..df84b2757 100644 --- a/app/views/admin/account_activities/index.haml +++ b/app/views/admin/account_activities/index.haml @@ -2,43 +2,8 @@ = link_to(t(:export_csv), url_for(params.merge(format: 'csv')), class: 'btn btn-default') = render 'shared/title', name: t(:account_activities) += render 'search_form' -.row - .col-md-12 - = search_form_for @q, url: [:admin, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| - .row - .col-md-12 - .form-group - = f.label t(:registrar_name) - = f.select :account_registrar_id_in, Registrar.all.map { |x| [x, x.id] }, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true - .row - .col-md-6 - .form-group - = f.label t(:activity_type) - = f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true - .col-md-6 - .form-group - = f.label t(:description) - = f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' - .row - .col-md-3 - .form-group - = f.label t(:receipt_date_from) - = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) - .col-md-3 - .form-group - = f.label t(:receipt_date_until) - = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) - .col-md-3 - .form-group - = label_tag t(:results_per_page) - = text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) - .col-md-3{style: 'padding-top: 25px;'} - %button.btn.btn-default.search -   - %span.glyphicon.glyphicon-search -   - = link_to(t('.reset_btn'), admin_account_activities_path, class: 'btn btn-default') .row .col-md-3 .col-md-3 diff --git a/config/locales/admin/account_activities.en.yml b/config/locales/admin/account_activities.en.yml index 2e91e7a8f..2006f2f36 100644 --- a/config/locales/admin/account_activities.en.yml +++ b/config/locales/admin/account_activities.en.yml @@ -1,5 +1,5 @@ en: admin: account_activities: - index: + search_form: reset_btn: Reset From 8861b7c535eb46e42ec6196cdcd9a202cf616abb Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Nov 2019 15:29:17 +0200 Subject: [PATCH 190/757] Convert HAML to ERB --- .../account_activities/_search_form.html.erb | 62 +++++++++++++++++++ .../account_activities/_search_form.html.haml | 36 ----------- 2 files changed, 62 insertions(+), 36 deletions(-) create mode 100644 app/views/admin/account_activities/_search_form.html.erb delete mode 100644 app/views/admin/account_activities/_search_form.html.haml diff --git a/app/views/admin/account_activities/_search_form.html.erb b/app/views/admin/account_activities/_search_form.html.erb new file mode 100644 index 000000000..ddd587bb2 --- /dev/null +++ b/app/views/admin/account_activities/_search_form.html.erb @@ -0,0 +1,62 @@ +
+
+ <%= search_form_for @q, url: [:admin, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| %> +
+
+
+ <%= f.label t(:registrar_name) %> + <%= f.select :account_registrar_id_in, Registrar.all.map { |x| [x, x.id] }, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true %> +
+
+
+ +
+
+
+ <%= f.label t(:activity_type) %> + <%= f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true %> +
+
+ +
+
+ <%= f.label t(:description) %> + <%= f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' %> +
+
+
+ +
+
+
+ <%= f.label t(:receipt_date_from) %> + <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) %> +
+
+ +
+
+ <%= f.label t(:receipt_date_until) %> + <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) %> +
+
+ +
+
+ <%= label_tag t(:results_per_page) %> + <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %> +
+
+ +
+ + <%= link_to(t('.reset_btn'), admin_account_activities_path, class: 'btn btn-default') %> +
+
+ <% end %> +
+
diff --git a/app/views/admin/account_activities/_search_form.html.haml b/app/views/admin/account_activities/_search_form.html.haml deleted file mode 100644 index d022542b1..000000000 --- a/app/views/admin/account_activities/_search_form.html.haml +++ /dev/null @@ -1,36 +0,0 @@ -.row - .col-md-12 - = search_form_for @q, url: [:admin, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| - .row - .col-md-12 - .form-group - = f.label t(:registrar_name) - = f.select :account_registrar_id_in, Registrar.all.map { |x| [x, x.id] }, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true - .row - .col-md-6 - .form-group - = f.label t(:activity_type) - = f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true - .col-md-6 - .form-group - = f.label t(:description) - = f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' - .row - .col-md-3 - .form-group - = f.label t(:receipt_date_from) - = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) - .col-md-3 - .form-group - = f.label t(:receipt_date_until) - = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) - .col-md-3 - .form-group - = label_tag t(:results_per_page) - = text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) - .col-md-3{style: 'padding-top: 25px;'} - %button.btn.btn-default.search -   - %span.glyphicon.glyphicon-search -   - = link_to(t('.reset_btn'), admin_account_activities_path, class: 'btn btn-default') From dc3bd6c093d6ca72b3d4832fb5b6d257df1135cb Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Nov 2019 15:37:59 +0200 Subject: [PATCH 191/757] Group submit buttons in UI --- app/views/admin/account_activities/_search_form.html.erb | 9 ++++++--- app/views/admin/account_activities/index.haml | 3 --- config/locales/admin/account_activities.en.yml | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/views/admin/account_activities/_search_form.html.erb b/app/views/admin/account_activities/_search_form.html.erb index ddd587bb2..bf353a936 100644 --- a/app/views/admin/account_activities/_search_form.html.erb +++ b/app/views/admin/account_activities/_search_form.html.erb @@ -27,14 +27,14 @@
-
+
<%= f.label t(:receipt_date_from) %> <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) %>
-
+
<%= f.label t(:receipt_date_until) %> <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) %> @@ -48,12 +48,15 @@
-
+
+ <%= button_tag t('.download_btn'), + formaction: admin_account_activities_path(format: 'csv'), + class: 'btn btn-default' %> <%= link_to(t('.reset_btn'), admin_account_activities_path, class: 'btn btn-default') %>
diff --git a/app/views/admin/account_activities/index.haml b/app/views/admin/account_activities/index.haml index df84b2757..2e1d57dc6 100644 --- a/app/views/admin/account_activities/index.haml +++ b/app/views/admin/account_activities/index.haml @@ -1,6 +1,3 @@ -- content_for :actions do - = link_to(t(:export_csv), url_for(params.merge(format: 'csv')), class: 'btn btn-default') - = render 'shared/title', name: t(:account_activities) = render 'search_form' diff --git a/config/locales/admin/account_activities.en.yml b/config/locales/admin/account_activities.en.yml index 2006f2f36..e7cc80d65 100644 --- a/config/locales/admin/account_activities.en.yml +++ b/config/locales/admin/account_activities.en.yml @@ -2,4 +2,5 @@ en: admin: account_activities: search_form: + download_btn: Download CSV reset_btn: Reset From 4f1401a1a8f8c29a21591110efe050c562b2d106 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Nov 2019 15:39:59 +0200 Subject: [PATCH 192/757] Convert HAML to ERB --- .../registrar/account_activities/index.haml | 61 ----------- .../account_activities/index.html.erb | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 61 deletions(-) delete mode 100644 app/views/registrar/account_activities/index.haml create mode 100644 app/views/registrar/account_activities/index.html.erb diff --git a/app/views/registrar/account_activities/index.haml b/app/views/registrar/account_activities/index.haml deleted file mode 100644 index 3cc6b34e4..000000000 --- a/app/views/registrar/account_activities/index.haml +++ /dev/null @@ -1,61 +0,0 @@ -- content_for :actions do - = link_to(t(:back_to_billing), registrar_invoices_path, class: 'btn btn-default') - = link_to(t(:export_csv), url_for(params.merge(format: 'csv')), class: 'btn btn-default') - -= render 'shared/title', name: t(:account_activity) - -.row - .col-md-12 - = search_form_for @q, url: [:registrar, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| - .row - .col-md-6 - .form-group - = f.label t(:activity_type) - = f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true - .col-md-6 - .form-group - = f.label t(:description) - = f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' - .row - .col-md-3 - .form-group - = f.label t(:receipt_date_from) - = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) - .col-md-3 - .form-group - = f.label t(:receipt_date_until) - = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) - .col-md-6{style: 'padding-top: 25px;'} - %button.btn.btn-default -   - %span.glyphicon.glyphicon-search -   - = link_to(t('.reset_btn'), registrar_account_activities_path, class: 'btn btn-default') -%hr - -.row - .col-md-12 - .table-responsive - %table.table.table-hover.table-condensed - %thead - %tr - %th{class: 'col-xs-5'} - = sort_link(@q, 'description') - %th{class: 'col-xs-2'} - = sort_link(@q, 'activity_type') - %th{class: 'col-xs-3'} - = sort_link(@q, 'created_at', AccountActivity.human_attribute_name(:created_at)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'sum') - %tbody - - @account_activities.each do |x| - %tr - %td= x.description.present? ? x.description : '-' - %td= x.activity_type ? t(x.activity_type) : '' - %td= l(x.created_at) - - c = x.sum > 0.0 ? 'text-success' : 'text-danger' - - s = x.sum > 0.0 ? "+#{x.sum} #{x.currency}" : "#{x.sum} #{x.currency}" - %td{class: c}= s -.row - .col-md-12 - = paginate @account_activities diff --git a/app/views/registrar/account_activities/index.html.erb b/app/views/registrar/account_activities/index.html.erb new file mode 100644 index 000000000..73e966b51 --- /dev/null +++ b/app/views/registrar/account_activities/index.html.erb @@ -0,0 +1,102 @@ +<% content_for :actions do %> + <%= link_to(t(:back_to_billing), registrar_invoices_path, class: 'btn btn-default') %> + <%= link_to(t(:export_csv), url_for(params.merge(format: 'csv')), class: 'btn btn-default') %> +<% end %> + +<%= render 'shared/title', name: t(:account_activity) %> + +
+
+ <%= search_form_for @q, url: [:registrar, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| %> +
+
+
+ <%= f.label t(:activity_type) %> + <%= f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true %> +
+
+
+
+ <%= f.label t(:description) %> + <%= f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' %> +
+
+
+
+
+
+ <%= f.label t(:receipt_date_from) %> + <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) %> +
+
+
+
+ <%= f.label t(:receipt_date_until) %> + <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) %> +
+
+
+ + <%= link_to(t('.reset_btn'), registrar_account_activities_path, class: 'btn btn-default') %> +
+
+ <% end %> +
+
+ +
+ +
+
+
+
+ + + + + + + + + + <% @account_activities.each do |x| %> + + + + + <% c = x.sum > 0.0 ? 'text-success' : 'text-danger' %> + <% s = x.sum > 0.0 ? "+#{x.sum} #{x.currency}" : "#{x.sum} #{x.currency}" %> + + + <% end %> + +
+ <%= sort_link(@q, 'description') %> + + <%= sort_link(@q, 'activity_type') %> + + <%= sort_link(@q, 'created_at', AccountActivity.human_attribute_name(:created_at)) %> + + <%= sort_link(@q, 'sum') %> +
+ <%= x.description.present? ? x.description : '-' %> + + <%= x.activity_type ? t(x.activity_type) : '' %> + + <%= l(x.created_at) %> + + <%= s %> +
+
+ + + +
+
+ <%= paginate @account_activities %> +
+
From 3539c3f28c4529a80770443e615caab2caaf7dc6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Nov 2019 15:41:08 +0200 Subject: [PATCH 193/757] Extract partial --- .../account_activities/_search_form.html.erb | 46 +++++++++++++++++++ .../account_activities/index.html.erb | 43 +---------------- .../registrar/account_activities.en.yml | 2 +- 3 files changed, 48 insertions(+), 43 deletions(-) create mode 100644 app/views/registrar/account_activities/_search_form.html.erb diff --git a/app/views/registrar/account_activities/_search_form.html.erb b/app/views/registrar/account_activities/_search_form.html.erb new file mode 100644 index 000000000..b5041a04c --- /dev/null +++ b/app/views/registrar/account_activities/_search_form.html.erb @@ -0,0 +1,46 @@ +
+
+ <%= search_form_for @q, url: [:registrar, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| %> +
+
+
+ <%= f.label t(:activity_type) %> + <%= f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true %> +
+
+ +
+
+ <%= f.label t(:description) %> + <%= f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' %> +
+
+
+ +
+
+
+ <%= f.label t(:receipt_date_from) %> + <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) %> +
+
+ +
+
+ <%= f.label t(:receipt_date_until) %> + <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) %> +
+
+ +
+ + <%= link_to(t('.reset_btn'), registrar_account_activities_path, class: 'btn btn-default') %> +
+
+ <% end %> +
+
diff --git a/app/views/registrar/account_activities/index.html.erb b/app/views/registrar/account_activities/index.html.erb index 73e966b51..257c4d306 100644 --- a/app/views/registrar/account_activities/index.html.erb +++ b/app/views/registrar/account_activities/index.html.erb @@ -5,48 +5,7 @@ <%= render 'shared/title', name: t(:account_activity) %> -
-
- <%= search_form_for @q, url: [:registrar, :account_activities], html: { style: 'margin-bottom: 0;' } do |f| %> -
-
-
- <%= f.label t(:activity_type) %> - <%= f.select :activity_type_in, AccountActivity.types_for_select, {}, class: 'form-control js-combobox', placeholder: t(:choose), multiple: true %> -
-
-
-
- <%= f.label t(:description) %> - <%= f.search_field :description_cont, class: 'form-control', placeholder: t(:description), autocomplete: 'off' %> -
-
-
-
-
-
- <%= f.label t(:receipt_date_from) %> - <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_from) %> -
-
-
-
- <%= f.label t(:receipt_date_until) %> - <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:receipt_date_until) %> -
-
-
- - <%= link_to(t('.reset_btn'), registrar_account_activities_path, class: 'btn btn-default') %> -
-
- <% end %> -
-
+<%= render 'search_form' %>
diff --git a/config/locales/registrar/account_activities.en.yml b/config/locales/registrar/account_activities.en.yml index 27d0150d6..bba527c9c 100644 --- a/config/locales/registrar/account_activities.en.yml +++ b/config/locales/registrar/account_activities.en.yml @@ -1,5 +1,5 @@ en: registrar: account_activities: - index: + search_form: reset_btn: Reset From 33b9bff7a94d7a08d3c5f982c0ca4187ec8c2157 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Nov 2019 15:43:27 +0200 Subject: [PATCH 194/757] Group submit buttons in UI --- app/views/registrar/account_activities/_search_form.html.erb | 3 +++ app/views/registrar/account_activities/index.html.erb | 1 - config/locales/en.yml | 1 - config/locales/registrar/account_activities.en.yml | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/registrar/account_activities/_search_form.html.erb b/app/views/registrar/account_activities/_search_form.html.erb index b5041a04c..92a715096 100644 --- a/app/views/registrar/account_activities/_search_form.html.erb +++ b/app/views/registrar/account_activities/_search_form.html.erb @@ -38,6 +38,9 @@   + <%= button_tag t('.download_btn'), + formaction: registrar_account_activities_path(format: 'csv'), + class: 'btn btn-default' %> <%= link_to(t('.reset_btn'), registrar_account_activities_path, class: 'btn btn-default') %> diff --git a/app/views/registrar/account_activities/index.html.erb b/app/views/registrar/account_activities/index.html.erb index 257c4d306..c5eaf2063 100644 --- a/app/views/registrar/account_activities/index.html.erb +++ b/app/views/registrar/account_activities/index.html.erb @@ -1,6 +1,5 @@ <% content_for :actions do %> <%= link_to(t(:back_to_billing), registrar_invoices_path, class: 'btn btn-default') %> - <%= link_to(t(:export_csv), url_for(params.merge(format: 'csv')), class: 'btn btn-default') %> <% end %> <%= render 'shared/title', name: t(:account_activity) %> diff --git a/config/locales/en.yml b/config/locales/en.yml index e57723cd1..5742398f7 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -592,7 +592,6 @@ en: receipt_date_from: 'Receipt date from' receipt_date_until: 'Receipt date until' add_credit: 'Add credit' - export_csv: 'Export CSV' invalid_yaml: 'Invalid YAML' reserved_pw: 'Reserved pw' no_transfers_found: 'No transfers found' diff --git a/config/locales/registrar/account_activities.en.yml b/config/locales/registrar/account_activities.en.yml index bba527c9c..374760065 100644 --- a/config/locales/registrar/account_activities.en.yml +++ b/config/locales/registrar/account_activities.en.yml @@ -2,4 +2,5 @@ en: registrar: account_activities: search_form: + download_btn: Download CSV reset_btn: Reset From bca597c74838701b285e2a7416de1bf130a779e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 6 Nov 2019 13:32:08 +0200 Subject: [PATCH 195/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad4a3f8b6..6fcc7968d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +06.11.2019 +* Fixed account activity form filter and csv download issues in admin and registrar [#1410](https://github.com/internetee/registry/pull/1410) + 05.11.2019 * Moved gem extensions to proper directory and renamed the dirs to "moneky patces" to improve readability [#1406](https://github.com/internetee/registry/pull/1406) From 77077ca196332660f0ee7ae73fc7a0438bbd72ea Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Nov 2019 14:41:38 +0200 Subject: [PATCH 196/757] Use predicate instead of checking underlying structure Since Rails 5.0 it returns empty array instead of nil. --- app/views/admin/domains/partials/_admin_contacts.haml | 5 +++-- app/views/admin/domains/partials/_tech_contacts.haml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/views/admin/domains/partials/_admin_contacts.haml b/app/views/admin/domains/partials/_admin_contacts.haml index bf14bf1bb..8c293b469 100644 --- a/app/views/admin/domains/partials/_admin_contacts.haml +++ b/app/views/admin/domains/partials/_admin_contacts.haml @@ -1,4 +1,5 @@ -- panel_class = @domain.errors.messages[:admin_contacts] ? 'panel-danger' : 'panel-default' +- admin_contacts_invalid = @domain.errors.include?(:admin_contacts) +- panel_class = admin_contacts_invalid ? 'panel-danger' : 'panel-default' .panel{class: panel_class} .panel-heading.clearfix = t('.title') @@ -15,7 +16,7 @@ %td= link_to(ac, admin_contact_path(ac)) %td= ac.code %td= ac.email - - if @domain.errors.messages[:admin_contacts] + - if admin_contacts_invalid %tfoot - @domain.errors.messages[:admin_contacts].each do |x| %tr diff --git a/app/views/admin/domains/partials/_tech_contacts.haml b/app/views/admin/domains/partials/_tech_contacts.haml index c3109bc57..cca87434f 100644 --- a/app/views/admin/domains/partials/_tech_contacts.haml +++ b/app/views/admin/domains/partials/_tech_contacts.haml @@ -1,4 +1,5 @@ -- panel_class = @domain.errors.messages[:tech_contacts] ? 'panel-danger' : 'panel-default' +- tech_contacts_invalid = @domain.errors.include?(:tech_contacts) +- panel_class = tech_contacts_invalid ? 'panel-danger' : 'panel-default' #tech_contacts.panel{class: panel_class} .panel-heading.clearfix = t('.title') @@ -15,7 +16,7 @@ %td= link_to(tc, admin_contact_path(tc)) %td= tc.code %td= tc.email - - if @domain.errors.messages[:tech_contacts] + - if tech_contacts_invalid %tfoot - @domain.errors.messages[:tech_contacts].each do |x| %tr From 86b3f49d443c19d37c7edbd296c040f980afecd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 7 Nov 2019 14:54:03 +0200 Subject: [PATCH 197/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fcc7968d..f2de35421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +07.11.2019 +* Fixed domain details view in admin where admin and tech contacts were marked as invalid with Rails 5 [#1413](https://github.com/internetee/registry/pull/1413) + 06.11.2019 * Fixed account activity form filter and csv download issues in admin and registrar [#1410](https://github.com/internetee/registry/pull/1410) From bb517597156289a4eeae21214af409dcb89e965b Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Nov 2019 12:08:40 +0200 Subject: [PATCH 198/757] Remove unnecessary HTML --- app/views/admin/domains/partials/_dnskeys.haml | 2 +- app/views/admin/domains/partials/_nameservers.haml | 2 +- app/views/admin/domains/partials/_tech_contacts.haml | 2 +- app/views/registrant/domains/partials/_dnskeys.haml | 2 +- app/views/registrant/domains/partials/_nameservers.haml | 2 +- app/views/registrar/domains/partials/_contacts.haml | 4 ++-- app/views/registrar/domains/partials/_nameservers.haml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/views/admin/domains/partials/_dnskeys.haml b/app/views/admin/domains/partials/_dnskeys.haml index 6d5759e65..51a90216d 100644 --- a/app/views/admin/domains/partials/_dnskeys.haml +++ b/app/views/admin/domains/partials/_dnskeys.haml @@ -1,5 +1,5 @@ - panel_class = @domain.errors.messages[:dnskeys] ? 'panel-danger' : 'panel-default' -#dnskeys.panel{class: panel_class} +.panel{class: panel_class} .panel-heading.clearfix = t(:dnskeys) .table-responsive diff --git a/app/views/admin/domains/partials/_nameservers.haml b/app/views/admin/domains/partials/_nameservers.haml index db3ca759a..871da2f0b 100644 --- a/app/views/admin/domains/partials/_nameservers.haml +++ b/app/views/admin/domains/partials/_nameservers.haml @@ -1,5 +1,5 @@ - panel_class = @domain.errors.messages[:nameservers] ? 'panel-danger' : 'panel-default' -#nameservers.panel{class: panel_class} +.panel{class: panel_class} .panel-heading.clearfix = t(:nameservers) .table-responsive diff --git a/app/views/admin/domains/partials/_tech_contacts.haml b/app/views/admin/domains/partials/_tech_contacts.haml index cca87434f..dbb4ecd12 100644 --- a/app/views/admin/domains/partials/_tech_contacts.haml +++ b/app/views/admin/domains/partials/_tech_contacts.haml @@ -1,6 +1,6 @@ - tech_contacts_invalid = @domain.errors.include?(:tech_contacts) - panel_class = tech_contacts_invalid ? 'panel-danger' : 'panel-default' -#tech_contacts.panel{class: panel_class} +.panel{class: panel_class} .panel-heading.clearfix = t('.title') .table-responsive diff --git a/app/views/registrant/domains/partials/_dnskeys.haml b/app/views/registrant/domains/partials/_dnskeys.haml index 6d5759e65..51a90216d 100644 --- a/app/views/registrant/domains/partials/_dnskeys.haml +++ b/app/views/registrant/domains/partials/_dnskeys.haml @@ -1,5 +1,5 @@ - panel_class = @domain.errors.messages[:dnskeys] ? 'panel-danger' : 'panel-default' -#dnskeys.panel{class: panel_class} +.panel{class: panel_class} .panel-heading.clearfix = t(:dnskeys) .table-responsive diff --git a/app/views/registrant/domains/partials/_nameservers.haml b/app/views/registrant/domains/partials/_nameservers.haml index db3ca759a..871da2f0b 100644 --- a/app/views/registrant/domains/partials/_nameservers.haml +++ b/app/views/registrant/domains/partials/_nameservers.haml @@ -1,5 +1,5 @@ - panel_class = @domain.errors.messages[:nameservers] ? 'panel-danger' : 'panel-default' -#nameservers.panel{class: panel_class} +.panel{class: panel_class} .panel-heading.clearfix = t(:nameservers) .table-responsive diff --git a/app/views/registrar/domains/partials/_contacts.haml b/app/views/registrar/domains/partials/_contacts.haml index b94f99ee2..48d1ac21f 100644 --- a/app/views/registrar/domains/partials/_contacts.haml +++ b/app/views/registrar/domains/partials/_contacts.haml @@ -1,4 +1,4 @@ -#tech_contacts.panel.panel-default +.panel.panel-default .panel-heading.clearfix %h3.panel-title= t(:contacts) .table-responsive @@ -14,4 +14,4 @@ %tr %td= x['type'] %td= registrant.name - %td= x.text \ No newline at end of file + %td= x.text diff --git a/app/views/registrar/domains/partials/_nameservers.haml b/app/views/registrar/domains/partials/_nameservers.haml index 66ef010e6..69f147bc4 100644 --- a/app/views/registrar/domains/partials/_nameservers.haml +++ b/app/views/registrar/domains/partials/_nameservers.haml @@ -1,4 +1,4 @@ -#nameservers.panel.panel-default +.panel.panel-default .panel-heading.clearfix %h3.panel-title= t(:nameservers) .table-responsive From 5847f8d57a8f617804552341f8d89a16d338a874 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Nov 2019 12:15:40 +0200 Subject: [PATCH 199/757] Do not show errors in UI This feature was unused. --- app/views/admin/domains/partials/_dnskeys.haml | 9 +-------- app/views/admin/domains/partials/_nameservers.haml | 9 +-------- app/views/registrant/domains/partials/_dnskeys.haml | 9 +-------- app/views/registrant/domains/partials/_nameservers.haml | 9 +-------- 4 files changed, 4 insertions(+), 32 deletions(-) diff --git a/app/views/admin/domains/partials/_dnskeys.haml b/app/views/admin/domains/partials/_dnskeys.haml index 51a90216d..ddd95e952 100644 --- a/app/views/admin/domains/partials/_dnskeys.haml +++ b/app/views/admin/domains/partials/_dnskeys.haml @@ -1,5 +1,4 @@ -- panel_class = @domain.errors.messages[:dnskeys] ? 'panel-danger' : 'panel-default' -.panel{class: panel_class} +.panel.panel-default .panel-heading.clearfix = t(:dnskeys) .table-responsive @@ -17,9 +16,3 @@ %td= x.protocol %td= x.alg %td= x.public_key - - if @domain.errors.messages[:dnskeys] - %tfoot - - @domain.errors.messages[:dnskeys].each do |x| - %tr - %td{colspan: 4}= x - diff --git a/app/views/admin/domains/partials/_nameservers.haml b/app/views/admin/domains/partials/_nameservers.haml index 871da2f0b..0bc22732d 100644 --- a/app/views/admin/domains/partials/_nameservers.haml +++ b/app/views/admin/domains/partials/_nameservers.haml @@ -1,5 +1,4 @@ -- panel_class = @domain.errors.messages[:nameservers] ? 'panel-danger' : 'panel-default' -.panel{class: panel_class} +.panel.panel-default .panel-heading.clearfix = t(:nameservers) .table-responsive @@ -15,9 +14,3 @@ %td= x %td= x.ipv4 %td= x.ipv6 - - if @domain.errors.messages[:nameservers] - %tfoot - - @domain.errors.messages[:nameservers].each do |x| - %tr - %td{colspan: 3}= x - diff --git a/app/views/registrant/domains/partials/_dnskeys.haml b/app/views/registrant/domains/partials/_dnskeys.haml index 51a90216d..ddd95e952 100644 --- a/app/views/registrant/domains/partials/_dnskeys.haml +++ b/app/views/registrant/domains/partials/_dnskeys.haml @@ -1,5 +1,4 @@ -- panel_class = @domain.errors.messages[:dnskeys] ? 'panel-danger' : 'panel-default' -.panel{class: panel_class} +.panel.panel-default .panel-heading.clearfix = t(:dnskeys) .table-responsive @@ -17,9 +16,3 @@ %td= x.protocol %td= x.alg %td= x.public_key - - if @domain.errors.messages[:dnskeys] - %tfoot - - @domain.errors.messages[:dnskeys].each do |x| - %tr - %td{colspan: 4}= x - diff --git a/app/views/registrant/domains/partials/_nameservers.haml b/app/views/registrant/domains/partials/_nameservers.haml index 871da2f0b..0bc22732d 100644 --- a/app/views/registrant/domains/partials/_nameservers.haml +++ b/app/views/registrant/domains/partials/_nameservers.haml @@ -1,5 +1,4 @@ -- panel_class = @domain.errors.messages[:nameservers] ? 'panel-danger' : 'panel-default' -.panel{class: panel_class} +.panel.panel-default .panel-heading.clearfix = t(:nameservers) .table-responsive @@ -15,9 +14,3 @@ %td= x %td= x.ipv4 %td= x.ipv6 - - if @domain.errors.messages[:nameservers] - %tfoot - - @domain.errors.messages[:nameservers].each do |x| - %tr - %td{colspan: 3}= x - From b77ced6b249bc6189ae2dc651d26532ade12ea27 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 17 Oct 2019 12:14:03 +0300 Subject: [PATCH 200/757] Send exception details lo standard log Fixes #1371 --- app/controllers/epp/base_controller.rb | 1 + config/application.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index d49112643..a8c6b2477 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -395,6 +395,7 @@ module Epp end def log_exception(exception) + logger.error(([exception.message] + exception.backtrace).join($INPUT_RECORD_SEPARATOR)) notify_airbrake(exception) end end diff --git a/config/application.rb b/config/application.rb index d02c6e9d0..3e36f47c8 100644 --- a/config/application.rb +++ b/config/application.rb @@ -8,6 +8,7 @@ require 'action_mailer/railtie' require 'action_view/railtie' require 'sprockets/railtie' require 'csv' +require 'English' require 'rails/all' # require "rails/test_unit/railtie" From f5d6501d5a2273ca96b6ad471f8c8ddf91471269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 11 Nov 2019 16:19:15 +0200 Subject: [PATCH 201/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2de35421..891372997 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +11.11.2019 +* Removed code for displaying errors in nameserver and dnskey data as unused [#1411](https://github.com/internetee/registry/pull/1411) + 07.11.2019 * Fixed domain details view in admin where admin and tech contacts were marked as invalid with Rails 5 [#1413](https://github.com/internetee/registry/pull/1413) From 0a9cbf4c32c51b1097cd4c3e56a44a039e701758 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 12 Nov 2019 23:36:25 +0200 Subject: [PATCH 202/757] revert codeclimate rubocop upgrade --- app/controllers/epp/sessions_controller.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index 2175f7281..892628ab7 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -13,6 +13,9 @@ module Epp webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) if webclient_request && !Rails.env.test? && !Rails.env.development? client_md5 = Certificate.parse_md_from_string(request.env['HTTP_SSL_CLIENT_CERT']) + if ENV['cert_path'].nil? + logger.error('webclient cert (cert_path) missing, registrar epp/repp disabled') + end server_md5 = Certificate.parse_md_from_string(File.read(ENV['cert_path'])) if client_md5 != server_md5 epp_errors << { From 4858fd0f9745c584bca379f0b822d172c79cd963 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 12 Nov 2019 23:36:25 +0200 Subject: [PATCH 203/757] log error when cert_path is unconfigured --- app/controllers/epp/sessions_controller.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index 2175f7281..892628ab7 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -13,6 +13,9 @@ module Epp webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) if webclient_request && !Rails.env.test? && !Rails.env.development? client_md5 = Certificate.parse_md_from_string(request.env['HTTP_SSL_CLIENT_CERT']) + if ENV['cert_path'].nil? + logger.error('webclient cert (cert_path) missing, registrar epp/repp disabled') + end server_md5 = Certificate.parse_md_from_string(File.read(ENV['cert_path'])) if client_md5 != server_md5 epp_errors << { From 120c618890ccfbda785af1225025a6a3d7f13e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 15 Nov 2019 12:44:22 +0200 Subject: [PATCH 204/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 891372997..600057c1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +15.11.2019 +* Restored EPP exception logging to syslog [#1371](https://github.com/internetee/registry/issues/1371) + 11.11.2019 * Removed code for displaying errors in nameserver and dnskey data as unused [#1411](https://github.com/internetee/registry/pull/1411) From fa52001be646078f0bcff12f8d3274f641c45991 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 15 Sep 2019 15:38:52 +0300 Subject: [PATCH 205/757] Upgrade to Rails 5.0 Closes #377 --- .codeclimate.yml | 1 - .travis.yml | 2 - Gemfile | 3 +- Gemfile.lock | 218 +-- app/controllers/admin/contacts_controller.rb | 7 +- .../admin/domains/force_delete_controller.rb | 2 +- app/controllers/api/cors_controller.rb | 2 +- app/controllers/api/v1/base_controller.rb | 2 - .../api/v1/registrant/auth_controller.rb | 3 +- .../api/v1/registrant/base_controller.rb | 1 - app/controllers/application_controller.rb | 2 +- app/controllers/epp/base_controller.rb | 1 - .../registrant/contacts_controller.rb | 5 + .../registrar/contacts_controller.rb | 32 +- .../registrar/domains_controller.rb | 44 +- .../registrar/sessions_controller.rb | 4 +- .../registrar/xml_consoles_controller.rb | 2 +- app/models/account.rb | 2 +- app/models/account_activity.rb | 2 +- app/models/action.rb | 2 +- app/models/api_log/db.rb | 2 +- app/models/application_record.rb | 3 + app/models/auction.rb | 2 +- app/models/bank_statement.rb | 2 +- app/models/bank_transaction.rb | 2 +- app/models/billing/price.rb | 2 +- app/models/blocked_domain.rb | 2 +- app/models/certificate.rb | 2 +- app/models/concerns/domain/force_delete.rb | 2 +- app/models/concerns/epp_errors.rb | 2 +- app/models/contact.rb | 10 +- app/models/directo.rb | 2 +- app/models/dns/zone.rb | 4 +- app/models/dnskey.rb | 2 +- app/models/domain.rb | 10 +- app/models/domain_contact.rb | 2 +- app/models/domain_status.rb | 2 +- app/models/domain_transfer.rb | 2 +- app/models/epp/contact.rb | 2 +- app/models/epp/domain.rb | 2 +- app/models/epp_session.rb | 2 +- app/models/invoice.rb | 4 +- app/models/invoice_item.rb | 2 +- app/models/legal_document.rb | 2 +- app/models/nameserver.rb | 2 +- app/models/notification.rb | 2 +- app/models/que_job.rb | 2 +- app/models/registrant_verification.rb | 4 +- app/models/registrar.rb | 2 +- app/models/reserved_domain.rb | 2 +- app/models/type/vat_rate.rb | 4 +- app/models/user.rb | 2 +- app/models/white_ip.rb | 2 +- app/models/whois/server.rb | 2 +- app/models/whois_record.rb | 2 +- .../admin/contacts/partials/_domains.haml | 3 +- .../contacts/show/_domains.html.erb | 5 +- .../registrar/contacts/partials/_domains.haml | 3 +- .../registrar/domains/_search_form.html.erb | 6 +- bin/rails | 2 +- bin/setup | 4 +- bin/update | 29 + config/application.rb | 39 +- config/boot.rb | 5 +- config/cable.yml | 9 + config/environment.rb | 2 +- config/environments/production.rb | 63 +- config/environments/test.rb | 22 +- .../application_controller_renderer.rb | 8 + config/initializers/assets.rb | 18 +- config/initializers/cookies_serializer.rb | 2 + config/initializers/new_framework_defaults.rb | 25 + config/initializers/wrap_parameters.rb | 4 +- config/puma.rb | 23 +- config/secrets.yml | 22 + db/structure.sql | 1216 ++++++----------- lib/action_controller/api.rb | 149 -- lib/action_controller/api/api_rendering.rb | 16 - .../metal/basic_implicit_render.rb | 13 - lib/rails5_api_controller_backport.rb | 3 - test/application_system_test_case.rb | 2 +- .../integration/admin_area/registrars_test.rb | 2 +- test/integration/admin_area/zones_test.rb | 2 +- test/integration/api/domain_contacts_test.rb | 66 +- test/integration/api/domain_transfers_test.rb | 43 +- test/integration/api/nameservers/put_test.rb | 74 +- .../registrant_api_authentication_test.rb | 8 +- .../registrant_api_contacts_test.rb | 15 +- .../registrant_api_cors_headers_test.rb | 13 +- .../registrant/registrant_api_domains_test.rb | 21 +- .../registrant_api_registry_locks_test.rb | 21 +- .../api/v1/auctions/details_test.rb | 6 +- test/integration/api/v1/auctions/list_test.rb | 6 +- .../api/v1/auctions/update_test.rb | 60 +- .../v1/registrant/contacts/details_test.rb | 18 +- .../api/v1/registrant/contacts/list_test.rb | 10 +- .../api/v1/registrant/contacts/update_test.rb | 112 +- test/integration/epp/base_test.rb | 15 +- test/integration/epp/contact/base_test.rb | 3 +- .../epp/contact/check/base_test.rb | 12 +- .../epp/contact/create/base_test.rb | 9 +- .../epp/contact/delete/base_test.rb | 8 +- .../integration/epp/contact/info/base_test.rb | 3 +- .../epp/contact/transfer/base_test.rb | 3 +- .../epp/contact/update/base_test.rb | 23 +- test/integration/epp/domain/base_test.rb | 3 +- .../epp/domain/check/auction_test.rb | 15 +- .../integration/epp/domain/check/base_test.rb | 24 +- .../epp/domain/create/auction_idn_test.rb | 18 +- .../epp/domain/create/auction_test.rb | 21 +- .../epp/domain/create/base_test.rb | 24 +- .../epp/domain/delete/base_test.rb | 14 +- test/integration/epp/domain/info/base_test.rb | 12 +- .../integration/epp/domain/renew/base_test.rb | 22 +- .../epp/domain/transfer/query_test.rb | 9 +- .../epp/domain/transfer/request_test.rb | 41 +- .../epp/domain/update/base_test.rb | 27 +- test/integration/epp/hello_test.rb | 3 +- .../integration/epp/login/credentials_test.rb | 6 +- .../epp/login/password_change_test.rb | 3 +- .../epp/login/session_limit_test.rb | 6 +- test/integration/epp/logout_test.rb | 12 +- test/integration/epp/poll_test.rb | 18 +- .../registrant_area/sign_in/id_card_test.rb | 8 +- .../invoices/payment_callback_test.rb | 2 +- .../invoices/payment_return_test.rb | 8 +- .../settings/balance_auto_reload_test.rb | 4 +- .../registrar_area/sign_in/id_card_test.rb | 13 +- test/learning/paper_trail_test.rb | 4 +- test/models/contact/disclosable_test.rb | 2 +- test/models/contact_test.rb | 10 +- .../domain/releasable/auctionable_test.rb | 2 +- test/models/domain_test.rb | 4 +- test/support/rails5_assertions.rb | 2 + .../registrant_area/contacts/update_test.rb | 6 +- .../bulk_change/bulk_transfer_test.rb | 4 +- .../bulk_change/nameserver_test.rb | 4 +- .../bulk_change/tech_contact_test.rb | 2 +- .../convert_domain_delete_date_test.rb | 2 +- test/tasks/invoices/cancel_overdue_test.rb | 2 +- test/test_helper.rb | 17 +- 141 files changed, 1388 insertions(+), 1664 deletions(-) create mode 100644 app/models/application_record.rb create mode 100644 bin/update create mode 100644 config/cable.yml create mode 100644 config/initializers/application_controller_renderer.rb create mode 100644 config/initializers/new_framework_defaults.rb create mode 100644 config/secrets.yml delete mode 100644 lib/action_controller/api.rb delete mode 100644 lib/action_controller/api/api_rendering.rb delete mode 100644 lib/action_controller/metal/basic_implicit_render.rb delete mode 100644 lib/rails5_api_controller_backport.rb diff --git a/.codeclimate.yml b/.codeclimate.yml index cdba2d7d7..2d22653b8 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -28,7 +28,6 @@ exclude_patterns: - "bin/" - "config/" - "db/" - - "lib/action_controller/" - "lib/core_monkey_patches/" - "lib/daemons/" - "lib/gem_monkey_patches/" diff --git a/.travis.yml b/.travis.yml index 460122e12..dcb988d67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,8 +22,6 @@ before_script: - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter" - "chmod +x ./cc-test-reporter" - "./cc-test-reporter before-build" -script: - - "bundle exec rake test" after_script: - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT" services: diff --git a/Gemfile b/Gemfile index 948d1185a..5497cb79f 100644 --- a/Gemfile +++ b/Gemfile @@ -9,7 +9,7 @@ source 'https://rubygems.org' # core gem 'iso8601', '0.8.6' # for dates and times -gem 'rails', '4.2.11.1' # when update, all initializers eis_custom files needs check/update +gem 'rails', '~> 5.0.7' gem 'rest-client' gem 'uglifier' @@ -66,7 +66,6 @@ gem 'daemons-rails', '1.2.1' gem 'que-web' gem 'pdfkit' gem 'jquery-ui-rails', '5.0.5' -gem 'active_model-errors_details' # Backport from Rails 5, https://github.com/rails/rails/pull/18322 gem 'airbrake' gem 'company_register', github: 'internetee/company_register', branch: :master diff --git a/Gemfile.lock b/Gemfile.lock index 9445b7f3d..9027ccd5d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,10 +19,10 @@ GIT GIT remote: https://github.com/internetee/epp-xml.git - revision: 5dd542e67ef26d58365f30e553254d6db809277d + revision: 27959f8cb244ea5eabaeeee747984988b454e840 specs: epp-xml (1.1.0) - activesupport (~> 4.1) + activesupport (>= 4.1) builder (~> 3.2) GIT @@ -58,58 +58,58 @@ GIT GEM remote: https://rubygems.org/ specs: - actionmailer (4.2.11.1) - actionpack (= 4.2.11.1) - actionview (= 4.2.11.1) - activejob (= 4.2.11.1) + actioncable (5.0.7.2) + actionpack (= 5.0.7.2) + nio4r (>= 1.2, < 3.0) + websocket-driver (~> 0.6.1) + actionmailer (5.0.7.2) + actionpack (= 5.0.7.2) + actionview (= 5.0.7.2) + activejob (= 5.0.7.2) mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.11.1) - actionview (= 4.2.11.1) - activesupport (= 4.2.11.1) - rack (~> 1.6) - rack-test (~> 0.6.2) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) + actionpack (5.0.7.2) + actionview (= 5.0.7.2) + activesupport (= 5.0.7.2) + rack (~> 2.0) + rack-test (~> 0.6.3) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.11.1) - activesupport (= 4.2.11.1) + actionview (5.0.7.2) + activesupport (= 5.0.7.2) builder (~> 3.1) erubis (~> 2.7.0) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - active_model-errors_details (1.3.1) - activemodel (>= 3.2.13, < 5.0.0) - activesupport - activejob (4.2.11.1) - activesupport (= 4.2.11.1) - globalid (>= 0.3.0) - activemodel (4.2.11.1) - activesupport (= 4.2.11.1) - builder (~> 3.1) - activerecord (4.2.11.1) - activemodel (= 4.2.11.1) - activesupport (= 4.2.11.1) - arel (~> 6.0) - activesupport (4.2.11.1) - i18n (~> 0.7) + activejob (5.0.7.2) + activesupport (= 5.0.7.2) + globalid (>= 0.3.6) + activemodel (5.0.7.2) + activesupport (= 5.0.7.2) + activerecord (5.0.7.2) + activemodel (= 5.0.7.2) + activesupport (= 5.0.7.2) + arel (~> 7.0) + activesupport (5.0.7.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - airbrake (9.4.3) - airbrake-ruby (~> 4.6) - airbrake-ruby (4.6.0) + airbrake (9.4.5) + airbrake-ruby (~> 4.7) + airbrake-ruby (4.7.1) rbtree3 (~> 0.5) akami (1.3.1) gyoku (>= 0.4.0) nokogiri - arel (6.0.4) - autodoc (0.6.0) + arel (7.1.4) + autodoc (0.7.3) actionpack activesupport (>= 3.0.0) rspec - autoprefixer-rails (9.4.8) + autoprefixer-rails (9.6.5) execjs axiom-types (0.1.1) descendants_tracker (~> 0.0.4) @@ -149,13 +149,13 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.5) - daemons (1.2.4) + daemons (1.3.1) daemons-rails (1.2.1) daemons multi_json (~> 1.0) - data_migrate (5.3.2) - rails (>= 4.2) - database_cleaner (1.6.1) + data_migrate (6.0.5) + rails (>= 5.0) + database_cleaner (1.7.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) devise (4.7.1) @@ -171,12 +171,12 @@ GEM equalizer (0.0.11) erubis (2.7.0) execjs (2.7.0) - ffi (1.9.25) + ffi (1.11.1) figaro (1.1.1) thor (~> 0.14) globalid (0.4.2) activesupport (>= 4.2.0) - grape (1.2.3) + grape (1.2.4) activesupport builder mustermann-grape (~> 1.0.0) @@ -190,13 +190,14 @@ GEM tilt hashdiff (1.0.0) hpricot (0.8.6) + http-accept (1.7.0) http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) httpi (2.4.4) rack socksify - i18n (0.9.5) + i18n (1.7.0) concurrent-ruby (~> 1.0) i18n_data (0.8.0) ice_nine (0.11.2) @@ -229,25 +230,25 @@ GEM mail (2.7.1) mini_mime (>= 0.1.1) method_source (0.8.2) - mime-types (3.1) + mime-types (3.3) mime-types-data (~> 3.2015) - mime-types-data (3.2016.0521) + mime-types-data (3.2019.1009) mina (0.3.1) open4 (~> 1.3.4) rake mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.10.3) - monetize (1.9.0) + monetize (1.9.2) money (~> 6.12) - money (6.12.0) - i18n (>= 0.6.4, < 1.1) - money-rails (1.12.0) + money (6.13.4) + i18n (>= 0.6.4, <= 2) + money-rails (1.13.2) activesupport (>= 3.0) monetize (~> 1.9.0) - money (~> 6.12.0) + money (~> 6.13.2) railties (>= 3.0) - multi_json (1.13.1) + multi_json (1.14.1) mustermann (1.0.3) mustermann-grape (1.0.0) mustermann (~> 1.0.0) @@ -276,83 +277,89 @@ GEM erubis que (~> 0.8) sinatra - rack (1.6.11) + rack (2.0.7) rack-accept (0.4.5) rack (>= 0.4) - rack-protection (1.5.5) + rack-protection (2.0.7) rack rack-test (0.6.3) rack (>= 1.0) railroady (1.3.0) - rails (4.2.11.1) - actionmailer (= 4.2.11.1) - actionpack (= 4.2.11.1) - actionview (= 4.2.11.1) - activejob (= 4.2.11.1) - activemodel (= 4.2.11.1) - activerecord (= 4.2.11.1) - activesupport (= 4.2.11.1) - bundler (>= 1.3.0, < 2.0) - railties (= 4.2.11.1) - sprockets-rails - rails-deprecated_sanitizer (1.0.3) - activesupport (>= 4.2.0.alpha) - rails-dom-testing (1.0.9) - activesupport (>= 4.2.0, < 5.0) - nokogiri (~> 1.6) - rails-deprecated_sanitizer (>= 1.0.1) + rails (5.0.7.2) + actioncable (= 5.0.7.2) + actionmailer (= 5.0.7.2) + actionpack (= 5.0.7.2) + actionview (= 5.0.7.2) + activejob (= 5.0.7.2) + activemodel (= 5.0.7.2) + activerecord (= 5.0.7.2) + activesupport (= 5.0.7.2) + bundler (>= 1.3.0) + railties (= 5.0.7.2) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) rails-settings-cached (0.7.2) rails (>= 4.2.0) - railties (4.2.11.1) - actionpack (= 4.2.11.1) - activesupport (= 4.2.11.1) + railties (5.0.7.2) + actionpack (= 5.0.7.2) + activesupport (= 5.0.7.2) + method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) - rake (12.3.3) + rake (13.0.0) ransack (1.8.10) actionpack (>= 3.0, < 5.2) activerecord (>= 3.0, < 5.2) activesupport (>= 3.0, < 5.2) i18n + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) rbtree3 (0.5.0) rdoc (4.3.0) regexp_parser (1.6.0) request_store (1.4.1) rack (>= 1.4) - responders (2.4.1) - actionpack (>= 4.2.0, < 6.0) - railties (>= 4.2.0, < 6.0) - rest-client (2.0.1) + responders (3.0.0) + actionpack (>= 5.0) + railties (>= 5.0) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rspec (3.6.0) - rspec-core (~> 3.6.0) - rspec-expectations (~> 3.6.0) - rspec-mocks (~> 3.6.0) - rspec-core (3.6.0) - rspec-support (~> 3.6.0) - rspec-expectations (3.6.0) + rspec (3.9.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-core (3.9.0) + rspec-support (~> 3.9.0) + rspec-expectations (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.6.0) - rspec-mocks (3.6.0) + rspec-support (~> 3.9.0) + rspec-mocks (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.6.0) - rspec-support (3.6.0) + rspec-support (~> 3.9.0) + rspec-support (3.9.0) rubyzip (2.0.0) safe_yaml (1.0.5) - sass (3.4.23) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) sass-rails (5.0.6) railties (>= 4.0.0, < 6) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - sassc (2.0.0) - ffi (~> 1.9.6) - rake + sassc (2.2.1) + ffi (~> 1.9) savon (2.12.0) akami (~> 1.2) builder (>= 2.1.2) @@ -376,10 +383,11 @@ GEM simplecov-html (~> 0.10.0) simplecov-html (0.10.2) simpleidn (0.0.7) - sinatra (1.4.8) - rack (~> 1.5) - rack-protection (~> 1.4) - tilt (>= 1.3, < 3) + sinatra (2.0.7) + mustermann (~> 1.0) + rack (~> 2.0) + rack-protection (= 2.0.7) + tilt (~> 2.0) sixarm_ruby_unaccent (1.2.0) slop (3.6.0) socksify (1.7.1) @@ -396,7 +404,7 @@ GEM tilt (2.0.10) tzinfo (1.2.5) thread_safe (~> 0.1) - uglifier (4.1.11) + uglifier (4.2.0) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext @@ -409,8 +417,8 @@ GEM coercible (~> 1.0) descendants_tracker (~> 0.0, >= 0.0.3) equalizer (~> 0.0, >= 0.0.9) - warden (1.2.7) - rack (>= 1.0) + warden (1.2.8) + rack (>= 2.0.6) wasabi (3.5.0) httpi (~> 2.0) nokogiri (>= 1.4.2) @@ -422,6 +430,9 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) + websocket-driver (0.6.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.4) whenever (0.9.4) chronic (>= 0.6.3) wkhtmltopdf-binary (0.12.4) @@ -432,7 +443,6 @@ PLATFORMS ruby DEPENDENCIES - active_model-errors_details airbrake autodoc bootstrap-sass (~> 3.4) @@ -472,7 +482,7 @@ DEPENDENCIES que que-web railroady (= 1.3.0) - rails (= 4.2.11.1) + rails (~> 5.0.7) rails-settings-cached (= 0.7.2) ransack (~> 1.8) rest-client diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index b53d366ab..4eea4faad 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -3,6 +3,7 @@ module Admin load_and_authorize_resource before_action :set_contact, only: [:show] helper_method :ident_types + helper_method :domain_filter_params def index params[:q] ||= {} @@ -19,7 +20,7 @@ module Admin normalize_search_parameters do @q = contacts.search(search_params) - @contacts = @q.result.uniq.page(params[:page]) + @contacts = @q.result.distinct.page(params[:page]) end @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? @@ -84,5 +85,9 @@ module Admin def ident_types Contact::Ident.types end + + def domain_filter_params + params.permit(:domain_filter) + end end end diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index 946231077..b01962fc7 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -33,7 +33,7 @@ module Admin end def notify_by_email? - ActiveRecord::Type::Boolean.new.type_cast_from_user(params[:notify_by_email]) + ActiveRecord::Type::Boolean.new.cast(params[:notify_by_email]) end end end diff --git a/app/controllers/api/cors_controller.rb b/app/controllers/api/cors_controller.rb index cd4c1a8d3..8dfebf026 100644 --- a/app/controllers/api/cors_controller.rb +++ b/app/controllers/api/cors_controller.rb @@ -5,7 +5,7 @@ module Api def cors_preflight_check set_access_control_headers - render text: '' + render plain: '' end def set_access_control_headers diff --git a/app/controllers/api/v1/base_controller.rb b/app/controllers/api/v1/base_controller.rb index c93160d9c..2cc3afd1c 100644 --- a/app/controllers/api/v1/base_controller.rb +++ b/app/controllers/api/v1/base_controller.rb @@ -1,5 +1,3 @@ -require 'rails5_api_controller_backport' - module Api module V1 class BaseController < ActionController::API diff --git a/app/controllers/api/v1/registrant/auth_controller.rb b/app/controllers/api/v1/registrant/auth_controller.rb index c1fe3fbf8..03dfa45f3 100644 --- a/app/controllers/api/v1/registrant/auth_controller.rb +++ b/app/controllers/api/v1/registrant/auth_controller.rb @@ -1,4 +1,3 @@ -require 'rails5_api_controller_backport' require 'auth_token/auth_token_creator' module Api @@ -16,7 +15,7 @@ module Api end def eid - user = RegistrantUser.find_or_create_by_api_data(eid_params) + user = RegistrantUser.find_or_create_by_api_data(eid_params.to_h) token = create_token(user) if token diff --git a/app/controllers/api/v1/registrant/base_controller.rb b/app/controllers/api/v1/registrant/base_controller.rb index 05702b4c9..277c7c133 100644 --- a/app/controllers/api/v1/registrant/base_controller.rb +++ b/app/controllers/api/v1/registrant/base_controller.rb @@ -1,4 +1,3 @@ -require 'rails5_api_controller_backport' require 'auth_token/auth_token_decryptor' module Api diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index dec34acbf..1a57b5573 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -3,7 +3,7 @@ class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. - protect_from_forgery with: :exception + protect_from_forgery with: :exception, prepend: true before_action do resource = controller_name.singularize.to_sym diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index a8c6b2477..6e3f39e46 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -3,7 +3,6 @@ module Epp class AuthorizationError < StandardError; end check_authorization - skip_before_action :verify_authenticity_token layout false before_action :ensure_session_id_passed diff --git a/app/controllers/registrant/contacts_controller.rb b/app/controllers/registrant/contacts_controller.rb index a4b335def..af7136ce9 100644 --- a/app/controllers/registrant/contacts_controller.rb +++ b/app/controllers/registrant/contacts_controller.rb @@ -1,6 +1,7 @@ class Registrant::ContactsController < RegistrantController helper_method :domain helper_method :fax_enabled? + helper_method :domain_filter_params skip_authorization_check only: %i[edit update] def show @@ -99,4 +100,8 @@ class Registrant::ContactsController < RegistrantController http.request(request) end end + + def domain_filter_params + params.permit(:domain_filter) + end end diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index 49569d7a0..bd1e29a7c 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -3,6 +3,7 @@ class Registrar before_action :init_epp_contact helper_method :address_processing? helper_method :ident_types + helper_method :domain_filter_params def index authorize! :view, Depp::Contact @@ -68,7 +69,7 @@ class Registrar def create authorize! :create, Depp::Contact - @contact = Depp::Contact.new(params[:depp_contact]) + @contact = Depp::Contact.new(contact_params) if @contact.save redirect_to registrar_contact_url(@contact.id) @@ -79,9 +80,9 @@ class Registrar def update authorize! :edit, Depp::Contact - @contact = Depp::Contact.new(params[:depp_contact]) + @contact = Depp::Contact.new(contact_params) - if @contact.update_attributes(params[:depp_contact]) + if @contact.update_attributes(contact_params) redirect_to registrar_contact_url(@contact.id) else render 'edit' @@ -95,7 +96,7 @@ class Registrar def destroy authorize! :delete, Depp::Contact - @contact = Depp::Contact.new(params[:depp_contact]) + @contact = Depp::Contact.new(contact_params_for_delete) if @contact.delete redirect_to registrar_contacts_url, notice: t(:destroyed) @@ -104,6 +105,12 @@ class Registrar end end + protected + + def domain_filter_params + params.permit(:domain_filter) + end + private def init_epp_contact @@ -131,5 +138,22 @@ class Registrar def ident_types Contact::Ident.types end + + def contact_params + params.require(:depp_contact).permit(:id, + :name, + :email, + :phone, + :org_name, + :ident, :ident_type, :ident_country_code, + :street, :city, :zip, :state, :country_code, + :password, + :legal_document, + :code) + end + + def contact_params_for_delete + params.require(:depp_contact).permit(:id, :password, :legal_document) + end end end diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index bdab2eefc..5c82ba675 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -2,16 +2,17 @@ class Registrar class DomainsController < DeppController before_action :init_domain, except: :new helper_method :contacts + helper_method :search_params def index authorize! :view, Depp::Domain - params[:q] ||= {} - params[:q].delete_if { |_k, v| v.blank? } - if params[:q].length == 1 && params[:q][:name_matches].present? - @domain = Domain.find_by(name: params[:q][:name_matches]) - if @domain - redirect_to info_registrar_domains_url(domain_name: @domain.name) and return + if search_params.to_h.delete_if { |_key, value| value.blank? }.length == 1 && + search_params[:name_matches].present? + domain = Domain.find_by(name: search_params[:name_matches]) + + if domain + redirect_to info_registrar_domains_url(domain_name: domain.name) and return end end @@ -24,15 +25,15 @@ class Registrar end normalize_search_parameters do - @q = domains.search(params[:q]) + @q = domains.search(search_params) @domains = @q.result.page(params[:page]) - if @domains.count == 0 && params[:q][:name_matches] !~ /^%.+%$/ - # if we do not get any results, add wildcards to the name field and search again - n_cache = params[:q][:name_matches] - params[:q][:name_matches] = "%#{params[:q][:name_matches]}%" - @q = domains.search(params[:q]) + + # if we do not get any results, add wildcards to the name field and search again + if @domains.count == 0 && search_params[:name_matches] !~ /^%.+%$/ + new_search_params = search_params.to_h + new_search_params[:name_matches] = "%#{new_search_params[:name_matches]}%" + @q = domains.search(new_search_params) @domains = @q.result.page(params[:page]) - params[:q][:name_matches] = n_cache # we don't want to show wildcards in search form end end @@ -164,17 +165,26 @@ class Registrar end def normalize_search_parameters - ca_cache = params[:q][:valid_to_lteq] + ca_cache = search_params[:valid_to_lteq] begin - end_time = params[:q][:valid_to_lteq].try(:to_date) - params[:q][:valid_to_lteq] = end_time.try(:end_of_day) + end_time = search_params[:valid_to_lteq].try(:to_date) + search_params[:valid_to_lteq] = end_time.try(:end_of_day) rescue logger.warn('Invalid date') end yield - params[:q][:valid_to_lteq] = ca_cache + search_params[:valid_to_lteq] = ca_cache + end + + def search_params + params.fetch(:q, {}).permit(:name_matches, + :registrant_ident_eq, + :contacts_ident_eq, + :nameservers_hostname_eq, + :valid_to_gteq, + :valid_to_lteq) end end end diff --git a/app/controllers/registrar/sessions_controller.rb b/app/controllers/registrar/sessions_controller.rb index c97c3155d..2ca8f5cc7 100644 --- a/app/controllers/registrar/sessions_controller.rb +++ b/app/controllers/registrar/sessions_controller.rb @@ -55,7 +55,7 @@ class Registrar ip_allowed = restricted_ip.can_access_registrar_area?(resource.registrar) unless ip_allowed - render text: t('registrar.authorization.ip_not_allowed', ip: request.ip) + render plain: t('registrar.authorization.ip_not_allowed', ip: request.ip) warden.logout(:registrar_user) return end @@ -171,7 +171,7 @@ class Registrar return if allowed - render text: t('registrar.authorization.ip_not_allowed', ip: request.ip) + render plain: t('registrar.authorization.ip_not_allowed', ip: request.ip) end def current_ability diff --git a/app/controllers/registrar/xml_consoles_controller.rb b/app/controllers/registrar/xml_consoles_controller.rb index 083dec532..b07b9cbee 100644 --- a/app/controllers/registrar/xml_consoles_controller.rb +++ b/app/controllers/registrar/xml_consoles_controller.rb @@ -19,7 +19,7 @@ class Registrar xml_dir_path = Rails.root + 'app/views/registrar/xml_consoles/epp_requests' xml = File.read("#{xml_dir_path}/#{params[:obj]}/#{params[:epp_action]}.xml") xml.gsub!('ABC-12345', "#{cl_trid}") - render text: xml + render plain: xml end end end diff --git a/app/models/account.rb b/app/models/account.rb index b7c43eab3..420f43e48 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -1,4 +1,4 @@ -class Account < ActiveRecord::Base +class Account < ApplicationRecord include Versions belongs_to :registrar, required: true diff --git a/app/models/account_activity.rb b/app/models/account_activity.rb index c5857631e..d8e6be4d4 100644 --- a/app/models/account_activity.rb +++ b/app/models/account_activity.rb @@ -1,4 +1,4 @@ -class AccountActivity < ActiveRecord::Base +class AccountActivity < ApplicationRecord include Versions belongs_to :account, required: true belongs_to :bank_transaction diff --git a/app/models/action.rb b/app/models/action.rb index 1d4f30d86..4ac4de013 100644 --- a/app/models/action.rb +++ b/app/models/action.rb @@ -1,4 +1,4 @@ -class Action < ActiveRecord::Base +class Action < ApplicationRecord has_paper_trail class_name: 'ActionVersion' belongs_to :user diff --git a/app/models/api_log/db.rb b/app/models/api_log/db.rb index 255caffda..ca1162e8f 100644 --- a/app/models/api_log/db.rb +++ b/app/models/api_log/db.rb @@ -1,5 +1,5 @@ module ApiLog - class Db < ActiveRecord::Base + class Db < ApplicationRecord self.abstract_class = true # to_sym is needed because passing a string to ActiveRecord::Base.establish_connection # for a configuration lookup is deprecated diff --git a/app/models/application_record.rb b/app/models/application_record.rb new file mode 100644 index 000000000..10a4cba84 --- /dev/null +++ b/app/models/application_record.rb @@ -0,0 +1,3 @@ +class ApplicationRecord < ActiveRecord::Base + self.abstract_class = true +end diff --git a/app/models/auction.rb b/app/models/auction.rb index 80df11eef..6ddd8e394 100644 --- a/app/models/auction.rb +++ b/app/models/auction.rb @@ -1,4 +1,4 @@ -class Auction < ActiveRecord::Base +class Auction < ApplicationRecord enum status: { started: 'started', awaiting_payment: 'awaiting_payment', diff --git a/app/models/bank_statement.rb b/app/models/bank_statement.rb index 5997927cf..8d4608f64 100644 --- a/app/models/bank_statement.rb +++ b/app/models/bank_statement.rb @@ -1,4 +1,4 @@ -class BankStatement < ActiveRecord::Base +class BankStatement < ApplicationRecord include Versions has_many :bank_transactions diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index eb8c84622..6fbf7ce59 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -1,4 +1,4 @@ -class BankTransaction < ActiveRecord::Base +class BankTransaction < ApplicationRecord include Versions belongs_to :bank_statement has_one :account_activity diff --git a/app/models/billing/price.rb b/app/models/billing/price.rb index b48c9f0bb..283a6e5bc 100644 --- a/app/models/billing/price.rb +++ b/app/models/billing/price.rb @@ -1,5 +1,5 @@ module Billing - class Price < ActiveRecord::Base + class Price < ApplicationRecord include Concerns::Billing::Price::Expirable belongs_to :zone, class_name: 'DNS::Zone', required: true diff --git a/app/models/blocked_domain.rb b/app/models/blocked_domain.rb index 26d5fedd7..d292827dc 100644 --- a/app/models/blocked_domain.rb +++ b/app/models/blocked_domain.rb @@ -1,4 +1,4 @@ -class BlockedDomain < ActiveRecord::Base +class BlockedDomain < ApplicationRecord include Versions before_save :generate_data after_destroy :remove_data diff --git a/app/models/certificate.rb b/app/models/certificate.rb index 212114862..5259403c2 100644 --- a/app/models/certificate.rb +++ b/app/models/certificate.rb @@ -1,6 +1,6 @@ require 'open3' -class Certificate < ActiveRecord::Base +class Certificate < ApplicationRecord include Versions belongs_to :api_user diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 5247ce93d..d820d8f4b 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -35,7 +35,7 @@ module Concerns::Domain::ForceDelete end def preserve_current_statuses_for_force_delete - self.statuses_before_force_delete = statuses + self.statuses_before_force_delete = statuses.clone end def restore_statuses_before_force_delete diff --git a/app/models/concerns/epp_errors.rb b/app/models/concerns/epp_errors.rb index 7395732ca..c1e4fa2e1 100644 --- a/app/models/concerns/epp_errors.rb +++ b/app/models/concerns/epp_errors.rb @@ -20,7 +20,7 @@ module EppErrors epp_errors << collect_parent_errors(attr, errors) end - errors[:epp_errors] = epp_errors + errors.add(:epp_errors, epp_errors) errors[:epp_errors].flatten! end diff --git a/app/models/contact.rb b/app/models/contact.rb index 06407ae69..d45597d3c 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -1,4 +1,4 @@ -class Contact < ActiveRecord::Base +class Contact < ApplicationRecord include Versions # version/contact_version.rb include EppErrors include UserEvents @@ -246,10 +246,8 @@ class Contact < ActiveRecord::Base end def registrant_user_contacts(registrant_user) - # In Rails 5, can be replaced with a much simpler `or` query method and the raw SQL parts can - # be removed. - from("(#{registrant_user_direct_contacts(registrant_user).to_sql} UNION " \ - "#{registrant_user_indirect_contacts(registrant_user).to_sql}) AS contacts") + registrant_user_direct_contacts(registrant_user) + .or(registrant_user_indirect_contacts(registrant_user)) end def registrant_user_direct_contacts(registrant_user) @@ -415,7 +413,7 @@ class Contact < ActiveRecord::Base # if total is smaller than needed, the load more # we also need to sort by valid_to # todo: extract to drapper. Then we can remove Domain#roles - def all_domains(page: nil, per: nil, params: {}) + def all_domains(page: nil, per: nil, params:) # compose filter sql filter_sql = case params[:domain_filter] when "Registrant".freeze diff --git a/app/models/directo.rb b/app/models/directo.rb index f062912f9..5f73a3f16 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -1,4 +1,4 @@ -class Directo < ActiveRecord::Base +class Directo < ApplicationRecord DOMAIN_TO_PRODUCT = {"ee" => "01EE", "com.ee" => "02COM", "pri.ee" => "03PRI", "fie.ee"=>"04FIE", "med.ee" => "05MED"}.freeze belongs_to :item, polymorphic: true diff --git a/app/models/dns/zone.rb b/app/models/dns/zone.rb index a63d9b280..a641c4e49 100644 --- a/app/models/dns/zone.rb +++ b/app/models/dns/zone.rb @@ -1,11 +1,11 @@ module DNS - class Zone < ActiveRecord::Base + class Zone < ApplicationRecord validates :origin, :ttl, :refresh, :retry, :expire, :minimum_ttl, :email, :master_nameserver, presence: true validates :ttl, :refresh, :retry, :expire, :minimum_ttl, numericality: { only_integer: true } validates :origin, uniqueness: true before_destroy do - !used? + throw(:abort) if used? end def self.generate_zonefiles diff --git a/app/models/dnskey.rb b/app/models/dnskey.rb index 02b43d729..4772188a6 100644 --- a/app/models/dnskey.rb +++ b/app/models/dnskey.rb @@ -1,4 +1,4 @@ -class Dnskey < ActiveRecord::Base +class Dnskey < ApplicationRecord include Versions # version/dnskey_version.rb include EppErrors diff --git a/app/models/domain.rb b/app/models/domain.rb index cce1c9f41..bf8072cbf 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -1,4 +1,4 @@ -class Domain < ActiveRecord::Base +class Domain < ApplicationRecord include UserEvents include Versions # version/domain_version.rb include Concerns::Domain::Expirable @@ -191,8 +191,6 @@ class Domain < ActiveRecord::Base end def registrant_user_domains(registrant_user) - # In Rails 5, can be replaced with a much simpler `or` query method and the raw SQL parts can - # be removed. from( "(#{registrant_user_domains_by_registrant(registrant_user).to_sql} UNION " \ "#{registrant_user_domains_by_contact(registrant_user).to_sql}) AS domains" @@ -200,8 +198,6 @@ class Domain < ActiveRecord::Base end def registrant_user_direct_domains(registrant_user) - # In Rails 5, can be replaced with a much simpler `or` query method and the raw SQL parts can - # be removed. from( "(#{registrant_user_direct_domains_by_registrant(registrant_user).to_sql} UNION " \ "#{registrant_user_direct_domains_by_contact(registrant_user).to_sql}) AS domains" @@ -209,8 +205,6 @@ class Domain < ActiveRecord::Base end def registrant_user_administered_domains(registrant_user) - # In Rails 5, can be replaced with a much simpler `or` query method and the raw SQL parts can - # be removed. from( "(#{registrant_user_domains_by_registrant(registrant_user).to_sql} UNION " \ "#{registrant_user_domains_by_admin_contact(registrant_user).to_sql}) AS domains" @@ -229,7 +223,7 @@ class Domain < ActiveRecord::Base def registrant_user_domains_by_admin_contact(registrant_user) joins(:domain_contacts).where(domain_contacts: { contact_id: registrant_user.contacts, - type: [AdminDomainContact] }) + type: [AdminDomainContact.name] }) end def registrant_user_direct_domains_by_registrant(registrant_user) diff --git a/app/models/domain_contact.rb b/app/models/domain_contact.rb index b433cd3dc..26d23dd56 100644 --- a/app/models/domain_contact.rb +++ b/app/models/domain_contact.rb @@ -1,4 +1,4 @@ -class DomainContact < ActiveRecord::Base +class DomainContact < ApplicationRecord # STI: tech_domain_contact # STI: admin_domain_contact include Versions # version/domain_contact_version.rb diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index 151ecb0ee..fba75737c 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -1,4 +1,4 @@ -class DomainStatus < ActiveRecord::Base +class DomainStatus < ApplicationRecord include Versions # version/domain_status_version.rb include EppErrors diff --git a/app/models/domain_transfer.rb b/app/models/domain_transfer.rb index 91cdb2d67..02ab2bc88 100644 --- a/app/models/domain_transfer.rb +++ b/app/models/domain_transfer.rb @@ -1,4 +1,4 @@ -class DomainTransfer < ActiveRecord::Base +class DomainTransfer < ApplicationRecord belongs_to :domain belongs_to :old_registrar, class_name: 'Registrar' diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index 8ea01b67d..742f0339f 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -9,7 +9,7 @@ class Epp::Contact < Contact def manage_permissions return unless update_prohibited? || delete_prohibited? add_epp_error('2304', nil, nil, I18n.t(:object_status_prohibits_operation)) - false + throw(:abort) end class << self diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index dc5de8d61..176e5710d 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -12,7 +12,7 @@ class Epp::Domain < Domain return unless update_prohibited? || delete_prohibited? stat = (statuses & (DomainStatus::UPDATE_PROHIBIT_STATES + DomainStatus::DELETE_PROHIBIT_STATES)).first add_epp_error('2304', 'status', stat, I18n.t(:object_status_prohibits_operation)) - false + throw(:abort) end after_validation :validate_contacts diff --git a/app/models/epp_session.rb b/app/models/epp_session.rb index dfd603fc4..6427c503c 100644 --- a/app/models/epp_session.rb +++ b/app/models/epp_session.rb @@ -1,4 +1,4 @@ -class EppSession < ActiveRecord::Base +class EppSession < ApplicationRecord belongs_to :user, required: true validates :session_id, uniqueness: true, presence: true diff --git a/app/models/invoice.rb b/app/models/invoice.rb index cde439c70..7f1dea825 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -1,4 +1,4 @@ -class Invoice < ActiveRecord::Base +class Invoice < ApplicationRecord include Versions include Concerns::Invoice::Cancellable include Concerns::Invoice::Payable @@ -47,7 +47,7 @@ class Invoice < ActiveRecord::Base errors.add(:base, I18n.t('failed_to_generate_invoice_invoice_number_limit_reached')) logger.error('INVOICE NUMBER LIMIT REACHED, COULD NOT GENERATE INVOICE') - false + throw(:abort) end def to_s diff --git a/app/models/invoice_item.rb b/app/models/invoice_item.rb index 6efd7b829..ec0c77767 100644 --- a/app/models/invoice_item.rb +++ b/app/models/invoice_item.rb @@ -1,4 +1,4 @@ -class InvoiceItem < ActiveRecord::Base +class InvoiceItem < ApplicationRecord include Versions belongs_to :invoice diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 630c52d98..3dc8f883c 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -1,4 +1,4 @@ -class LegalDocument < ActiveRecord::Base +class LegalDocument < ApplicationRecord cattr_accessor :explicitly_write_file include EppErrors MIN_BODY_SIZE = (1.37 * 3.kilobytes).ceil diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 4a0361397..77c7417de 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -1,4 +1,4 @@ -class Nameserver < ActiveRecord::Base +class Nameserver < ApplicationRecord include Versions # version/nameserver_version.rb include EppErrors diff --git a/app/models/notification.rb b/app/models/notification.rb index d6427323b..e83b2c9da 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -1,4 +1,4 @@ -class Notification < ActiveRecord::Base +class Notification < ApplicationRecord include Versions # version/notification_version.rb belongs_to :registrar diff --git a/app/models/que_job.rb b/app/models/que_job.rb index 5eed581fc..f9dd50ac8 100644 --- a/app/models/que_job.rb +++ b/app/models/que_job.rb @@ -1,4 +1,4 @@ # To be able to remove existing jobs -class QueJob < ActiveRecord::Base +class QueJob < ApplicationRecord self.primary_key = 'job_id' end diff --git a/app/models/registrant_verification.rb b/app/models/registrant_verification.rb index 95e24d36b..952197cf5 100644 --- a/app/models/registrant_verification.rb +++ b/app/models/registrant_verification.rb @@ -1,10 +1,10 @@ # Used in Registrant portal to collect registrant verifications # Registrant postgres user can access this table directly. -class RegistrantVerification < ActiveRecord::Base +class RegistrantVerification < ApplicationRecord # actions CONFIRMED = 'confirmed' REJECTED = 'rejected' - + # action types DOMAIN_REGISTRANT_CHANGE = 'domain_registrant_change' DOMAIN_DELETE = 'domain_delete' diff --git a/app/models/registrar.rb b/app/models/registrar.rb index fa8747114..69a8a1dee 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -1,4 +1,4 @@ -class Registrar < ActiveRecord::Base +class Registrar < ApplicationRecord include Versions # version/registrar_version.rb has_many :domains, dependent: :restrict_with_error diff --git a/app/models/reserved_domain.rb b/app/models/reserved_domain.rb index 2e3d17a20..871c1991a 100644 --- a/app/models/reserved_domain.rb +++ b/app/models/reserved_domain.rb @@ -1,4 +1,4 @@ -class ReservedDomain < ActiveRecord::Base +class ReservedDomain < ApplicationRecord include Versions # version/reserved_domain_version.rb before_save :fill_empty_passwords before_save :generate_data diff --git a/app/models/type/vat_rate.rb b/app/models/type/vat_rate.rb index 5ee993211..6a31e389b 100644 --- a/app/models/type/vat_rate.rb +++ b/app/models/type/vat_rate.rb @@ -1,10 +1,10 @@ module Type class VATRate < ActiveRecord::Type::Decimal - def type_cast_from_database(value) + def deserialize(value) super * 100 if value end - def type_cast_for_database(value) + def serialize(value) super / 100.0 if value end end diff --git a/app/models/user.rb b/app/models/user.rb index 573cddc94..cc299640c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,4 +1,4 @@ -class User < ActiveRecord::Base +class User < ApplicationRecord include Versions # version/user_version.rb has_many :actions, dependent: :restrict_with_exception diff --git a/app/models/white_ip.rb b/app/models/white_ip.rb index 251fc60ac..303ff5886 100644 --- a/app/models/white_ip.rb +++ b/app/models/white_ip.rb @@ -1,4 +1,4 @@ -class WhiteIp < ActiveRecord::Base +class WhiteIp < ApplicationRecord include Versions belongs_to :registrar diff --git a/app/models/whois/server.rb b/app/models/whois/server.rb index 2cec52e4e..bec234b6b 100644 --- a/app/models/whois/server.rb +++ b/app/models/whois/server.rb @@ -1,5 +1,5 @@ module Whois - class Server < ActiveRecord::Base + class Server < ApplicationRecord self.abstract_class = true establish_connection :"whois_#{Rails.env}" end diff --git a/app/models/whois_record.rb b/app/models/whois_record.rb index 8d91c85ee..cace829fa 100644 --- a/app/models/whois_record.rb +++ b/app/models/whois_record.rb @@ -1,5 +1,5 @@ require "erb" -class WhoisRecord < ActiveRecord::Base +class WhoisRecord < ApplicationRecord belongs_to :domain belongs_to :registrar diff --git a/app/views/admin/contacts/partials/_domains.haml b/app/views/admin/contacts/partials/_domains.haml index 3a60074d1..91b0715ba 100644 --- a/app/views/admin/contacts/partials/_domains.haml +++ b/app/views/admin/contacts/partials/_domains.haml @@ -1,4 +1,5 @@ -- domains = contact.all_domains(page: params[:domain_page], per: 20, params: params) +- domains = contact.all_domains(page: params[:domain_page], per: 20, + params: domain_filter_params.to_h) .panel.panel-default .panel-heading .pull-left diff --git a/app/views/registrant/contacts/show/_domains.html.erb b/app/views/registrant/contacts/show/_domains.html.erb index bb6d39fc0..167ab1240 100644 --- a/app/views/registrant/contacts/show/_domains.html.erb +++ b/app/views/registrant/contacts/show/_domains.html.erb @@ -1,4 +1,5 @@ -<% domains = contact.all_domains(page: params[:domain_page], per: 20, params: params) %> +<% domains = contact.all_domains(page: params[:domain_page], per: 20, + params: domain_filter_params.to_h) %>
@@ -50,4 +51,4 @@ -
\ No newline at end of file +
diff --git a/app/views/registrar/contacts/partials/_domains.haml b/app/views/registrar/contacts/partials/_domains.haml index f409a6f24..cf721cb86 100644 --- a/app/views/registrar/contacts/partials/_domains.haml +++ b/app/views/registrar/contacts/partials/_domains.haml @@ -1,4 +1,5 @@ -- domains = contact.all_domains(page: params[:domain_page], per: 20, params: params) +- domains = contact.all_domains(page: params[:domain_page], per: 20, + params: domain_filter_params.to_h) .panel.panel-default .panel-heading .pull-left diff --git a/app/views/registrar/domains/_search_form.html.erb b/app/views/registrar/domains/_search_form.html.erb index 743f8de60..08b370b76 100644 --- a/app/views/registrar/domains/_search_form.html.erb +++ b/app/views/registrar/domains/_search_form.html.erb @@ -3,7 +3,7 @@
<%= f.label :name, for: nil %> - <%= f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', + <%= f.search_field :name_matches, value: search_params[:name_matches], class: 'form-control', placeholder: t(:name) %>
@@ -44,7 +44,7 @@
diff --git a/app/views/layouts/registrar/base.html.erb b/app/views/layouts/registrar/base.html.erb index 57fab3336..88d20c319 100644 --- a/app/views/layouts/registrar/base.html.erb +++ b/app/views/layouts/registrar/base.html.erb @@ -54,7 +54,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, CURRENT_COMMIT_REPO/commits/CURRENT_COMMIT_HASH) %> + <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#FFFFFF;') %>
diff --git a/app/views/layouts/registrar/sessions.html.erb b/app/views/layouts/registrar/sessions.html.erb index 004689ded..ca5059ab4 100644 --- a/app/views/layouts/registrar/sessions.html.erb +++ b/app/views/layouts/registrar/sessions.html.erb @@ -44,7 +44,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, CURRENT_COMMIT_REPO/commits/CURRENT_COMMIT_HASH) %> + <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#FFFFFF;') %>
From 1fabdb6a7266eb3151d9f4fb491de577e086a193 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Wed, 16 Oct 2019 21:17:09 +0300 Subject: [PATCH 424/757] Address review comments: https://github.com/internetee/registry/pull/1345#discussion_r333904209 --- app/assets/stylesheets/shared/general.sass | 3 +++ app/views/layouts/admin/base.haml | 2 +- app/views/layouts/registrant/application.html.erb | 2 +- app/views/layouts/registrar/base.html.erb | 2 +- app/views/layouts/registrar/sessions.html.erb | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/shared/general.sass b/app/assets/stylesheets/shared/general.sass index 07b92cdbe..6d1c4956d 100644 --- a/app/assets/stylesheets/shared/general.sass +++ b/app/assets/stylesheets/shared/general.sass @@ -15,6 +15,9 @@ body > .container padding-top: 15px font-size: 10px +a.footer-version-link + color: black + .nowrap white-space: nowrap diff --git a/app/views/layouts/admin/base.haml b/app/views/layouts/admin/base.haml index d893da853..1ea29753d 100644 --- a/app/views/layouts/admin/base.haml +++ b/app/views/layouts/admin/base.haml @@ -32,5 +32,5 @@ .footer.text-right Version - = link_to "#{CURRENT_COMMIT_HASH}", "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#000000;' + = link_to "#{CURRENT_COMMIT_HASH}", "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link' = javascript_include_tag 'admin-manifest', async: true diff --git a/app/views/layouts/registrant/application.html.erb b/app/views/layouts/registrant/application.html.erb index 5e6820246..9c3341bd3 100644 --- a/app/views/layouts/registrant/application.html.erb +++ b/app/views/layouts/registrant/application.html.erb @@ -76,7 +76,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#FFFFFF;') %> + <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link') %>
diff --git a/app/views/layouts/registrar/base.html.erb b/app/views/layouts/registrar/base.html.erb index 88d20c319..2fc4cf4a2 100644 --- a/app/views/layouts/registrar/base.html.erb +++ b/app/views/layouts/registrar/base.html.erb @@ -54,7 +54,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#FFFFFF;') %> + <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link') %>
diff --git a/app/views/layouts/registrar/sessions.html.erb b/app/views/layouts/registrar/sessions.html.erb index ca5059ab4..88662a008 100644 --- a/app/views/layouts/registrar/sessions.html.erb +++ b/app/views/layouts/registrar/sessions.html.erb @@ -44,7 +44,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#FFFFFF;') %> + <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link') %>
From 197d19921561ad08e66cc82ee5e6dc8ff40ce6be Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 16 Apr 2020 16:01:34 +0500 Subject: [PATCH 425/757] Move url generation to helper, made it reliable with ssh git checkout --- app/helpers/application_helper.rb | 11 ++++++++++- app/views/layouts/admin/base.haml | 2 +- app/views/layouts/registrant/application.html.erb | 2 +- app/views/layouts/registrar/base.html.erb | 2 +- app/views/layouts/registrar/sessions.html.erb | 2 +- config/initializers/current_commit_hash.rb | 2 +- 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index a4a8e4912..608ddded7 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -33,6 +33,15 @@ module ApplicationHelper end end + def current_commit_link + hash = CURRENT_COMMIT_HASH + current_repo = CURRENT_COMMIT_REPO.gsub('com:', 'com/') + .gsub('git@', 'https://') + .gsub('.git', '') + + link_to hash.to_s, "#{current_repo}/commit/#{hash}", class: 'footer-version-link' + end + def creator_link(model) return 'not present' if model.blank? return 'unknown' if model.creator.blank? @@ -96,4 +105,4 @@ module ApplicationHelper def body_css_class [controller_path.split('/').map!(&:dasherize), action_name.dasherize, 'page'].join('-') end -end \ No newline at end of file +end diff --git a/app/views/layouts/admin/base.haml b/app/views/layouts/admin/base.haml index 1ea29753d..928629ce6 100644 --- a/app/views/layouts/admin/base.haml +++ b/app/views/layouts/admin/base.haml @@ -32,5 +32,5 @@ .footer.text-right Version - = link_to "#{CURRENT_COMMIT_HASH}", "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link' + = current_commit_link = javascript_include_tag 'admin-manifest', async: true diff --git a/app/views/layouts/registrant/application.html.erb b/app/views/layouts/registrant/application.html.erb index 9c3341bd3..c5290b70f 100644 --- a/app/views/layouts/registrant/application.html.erb +++ b/app/views/layouts/registrant/application.html.erb @@ -76,7 +76,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link') %> + <%= current_commit_link %>
diff --git a/app/views/layouts/registrar/base.html.erb b/app/views/layouts/registrar/base.html.erb index 2fc4cf4a2..5881dd400 100644 --- a/app/views/layouts/registrar/base.html.erb +++ b/app/views/layouts/registrar/base.html.erb @@ -54,7 +54,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link') %> + <%= current_commit_link %>
diff --git a/app/views/layouts/registrar/sessions.html.erb b/app/views/layouts/registrar/sessions.html.erb index 88662a008..ace645199 100644 --- a/app/views/layouts/registrar/sessions.html.erb +++ b/app/views/layouts/registrar/sessions.html.erb @@ -44,7 +44,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", class: 'footer-version-link') %> + <%= current_commit_link %>
diff --git a/config/initializers/current_commit_hash.rb b/config/initializers/current_commit_hash.rb index 3038fa33b..edba19a42 100644 --- a/config/initializers/current_commit_hash.rb +++ b/config/initializers/current_commit_hash.rb @@ -1,2 +1,2 @@ CURRENT_COMMIT_HASH = `git rev-parse --short HEAD` -CURRENT_COMMIT_REPO = `git remote get-url origin` \ No newline at end of file +CURRENT_COMMIT_REPO = `git remote get-url origin` From 6e30737bf0b859af351b279d7a7c951391dbe1c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 17 Apr 2020 18:39:22 +0300 Subject: [PATCH 426/757] Update CHANGELOG.md Clickable version string #1345 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81d4eb7fb..be1445146 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +17.04.2020 +* Webinterfaces have now clickable version string pointing to the latest deployed commit in github [#1345](https://github.com/internetee/registry/pull/1345) + 15.04.2020 * Updated Rails to 5.2 and fixed acitionview security issue [#1568](https://github.com/internetee/registry/issues/1568) From 23642355bfbea8a73a4234761d52585a989067e9 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 20 Apr 2020 13:40:03 +0500 Subject: [PATCH 427/757] Fix mina deploy issue (#1573) Use git command to get origin/repo --- app/helpers/application_helper.rb | 13 ++++++++----- config/initializers/current_commit_hash.rb | 2 -- 2 files changed, 8 insertions(+), 7 deletions(-) delete mode 100644 config/initializers/current_commit_hash.rb diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 608ddded7..8de3fdc70 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -34,12 +34,15 @@ module ApplicationHelper end def current_commit_link - hash = CURRENT_COMMIT_HASH - current_repo = CURRENT_COMMIT_REPO.gsub('com:', 'com/') - .gsub('git@', 'https://') - .gsub('.git', '') + hash = `git rev-parse --short HEAD` + current_repo = `git remote get-url origin`.gsub('com:', 'com/') + .gsub('git@', 'https://') + .gsub('.git', '') - link_to hash.to_s, "#{current_repo}/commit/#{hash}", class: 'footer-version-link' + link_to hash.to_s, "#{current_repo}/commit/#{hash}", + class: 'footer-version-link', + target: '_blank', + rel: 'noopener' end def creator_link(model) diff --git a/config/initializers/current_commit_hash.rb b/config/initializers/current_commit_hash.rb deleted file mode 100644 index edba19a42..000000000 --- a/config/initializers/current_commit_hash.rb +++ /dev/null @@ -1,2 +0,0 @@ -CURRENT_COMMIT_HASH = `git rev-parse --short HEAD` -CURRENT_COMMIT_REPO = `git remote get-url origin` From 7a7b2f988196761e805e57a55db78ffc0b5400a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 22 Apr 2020 11:00:06 +0300 Subject: [PATCH 428/757] Create scaffold for domain disputes --- app/controllers/admin/disputes_controller.rb | 66 ++++++++++++++++++ app/models/ability.rb | 1 + app/models/dispute.rb | 5 ++ app/views/admin/base/_menu.haml | 3 +- app/views/admin/disputes/_form.html.erb | 58 ++++++++++++++++ app/views/admin/disputes/edit.haml | 3 + app/views/admin/disputes/index.haml | 72 ++++++++++++++++++++ app/views/admin/disputes/new.haml | 3 + config/locales/admin/disputes.en.yml | 10 +++ config/locales/admin/menu.en.yml | 1 + config/locales/en.yml | 1 + config/routes.rb | 2 + db/migrate/20200421093637_create_disputes.rb | 14 ++++ 13 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 app/controllers/admin/disputes_controller.rb create mode 100644 app/models/dispute.rb create mode 100644 app/views/admin/disputes/_form.html.erb create mode 100644 app/views/admin/disputes/edit.haml create mode 100644 app/views/admin/disputes/index.haml create mode 100644 app/views/admin/disputes/new.haml create mode 100644 config/locales/admin/disputes.en.yml create mode 100644 db/migrate/20200421093637_create_disputes.rb diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb new file mode 100644 index 000000000..8061eb890 --- /dev/null +++ b/app/controllers/admin/disputes_controller.rb @@ -0,0 +1,66 @@ +# frozen_string_literal: true + +module Admin + class DisputesController < BaseController + load_and_authorize_resource + before_action :set_dispute, only: %i[show edit update destroy] + + # GET /admin/disputes + def index + params[:q] ||= {} + disputes = Dispute.all.order(:domain_name) + @q = disputes.search(params[:q]) + @disputes = @q.result.page(params[:page]) + @disputes = @disputes.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? + end + + # GET /admin/disputes/1 + def show; end + + # GET /admin/disputes/new + def new + @dispute = Dispute.new + end + + # GET /admin/disputes/1/edit + def edit; end + + # POST /admin/disputes + def create + @dispute = Dispute.new(dispute_params) + + if @dispute.save + redirect_to @dispute, notice: 'Dispute was successfully created.' + else + render :new + end + end + + # PATCH/PUT /admin/disputes/1 + def update + if @dispute.update(dispute_params) + redirect_to @dispute, notice: 'Dispute was successfully updated.' + else + render :edit + end + end + + # DELETE /admin/disputes/1 + def destroy + @dispute.destroy + redirect_to disputes_url, notice: 'Dispute was successfully destroyed.' + end + + private + + # Use callbacks to share common setup or constraints between actions. + def set_dispute + @dispute = Dispute.find(params[:id]) + end + + # Only allow a trusted parameter "white list" through. + def dispute_params + params.require(:dispute).permit(:domain_name, :password, :expires_at, :comment, :created_at) + end + end +end diff --git a/app/models/ability.rb b/app/models/ability.rb index a727254ad..0e18f433a 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -100,6 +100,7 @@ class Ability can :manage, Invoice can :manage, WhiteIp can :manage, AccountActivity + can :manage, Dispute can :read, ApiLog::EppLog can :read, ApiLog::ReppLog can :update, :pending diff --git a/app/models/dispute.rb b/app/models/dispute.rb new file mode 100644 index 000000000..874e46b30 --- /dev/null +++ b/app/models/dispute.rb @@ -0,0 +1,5 @@ +class Dispute < ApplicationRecord + validates :domain_name, :password, :starts_at, :expires_at, :comment, + presence: true + validates_uniqueness_of :domain_name, case_sensitive: true +end diff --git a/app/views/admin/base/_menu.haml b/app/views/admin/base/_menu.haml index fa1b50440..a327419fd 100644 --- a/app/views/admin/base/_menu.haml +++ b/app/views/admin/base/_menu.haml @@ -32,10 +32,11 @@ %li= link_to t('.zones'), admin_zones_path %li= link_to t('.blocked_domains'), admin_blocked_domains_path %li= link_to t('.reserved_domains'), admin_reserved_domains_path + %li= link_to t('.disputed_domains'), admin_disputes_path %li= link_to t('.epp_log'), admin_epp_logs_path(created_after: 'today') %li= link_to t('.repp_log'), admin_repp_logs_path(created_after: 'today') %li= link_to t('.que'), '/admin/que' %ul.nav.navbar-nav.navbar-right %li= link_to t('.sign_out'), destroy_admin_user_session_path, method: :delete, - class: 'navbar-link' \ No newline at end of file + class: 'navbar-link' diff --git a/app/views/admin/disputes/_form.html.erb b/app/views/admin/disputes/_form.html.erb new file mode 100644 index 000000000..a234c17bc --- /dev/null +++ b/app/views/admin/disputes/_form.html.erb @@ -0,0 +1,58 @@ +<%= form_for([:admin, @dispute], html: { class: 'form-horizontal' }) do |f| %> + <%= render 'shared/full_errors', object: @dispute %> + +
+
+
+
+
+ <%= t(:general) %> +
+
+
+
+
+ <%= f.label :domain_name %> +
+
+ <%= f.text_field(:domain_name, class: 'form-control', disabled: !f.object.new_record?) %> +
+
+
+
+ <%= f.label :password %> +
+
+ <%= f.text_field(:password, placeholder: t(:optional), class: 'form-control') %> + <%= t '.password_hint' %> +
+
+
+
+ <%= f.label :starts_at %> +
+
+ <%= f.text_field(:starts_at, placeholder: t(:optional), class: 'form-control') %> + <%= t '.password_hint' %> +
+
+
+
+ <%= f.label :expires_at %> +
+
+ <%= f.text_field(:expires_at, placeholder: t(:optional), class: 'form-control') %> + <%= t '.password_hint' %> +
+
+
+
+
+
+ +
+
+ <%= button_tag(t(:save), class: 'btn btn-primary') %> +
+
+<% end %> diff --git a/app/views/admin/disputes/edit.haml b/app/views/admin/disputes/edit.haml new file mode 100644 index 000000000..51d77f0cc --- /dev/null +++ b/app/views/admin/disputes/edit.haml @@ -0,0 +1,3 @@ += render 'shared/title', name: t(:edit_pw) + += render 'form' diff --git a/app/views/admin/disputes/index.haml b/app/views/admin/disputes/index.haml new file mode 100644 index 000000000..63438ad9e --- /dev/null +++ b/app/views/admin/disputes/index.haml @@ -0,0 +1,72 @@ +- content_for :actions do + = link_to(t('.new_btn'), new_admin_dispute_path, class: 'btn btn-primary') += render 'shared/title', name: t('.title') + +.row + .col-md-12 + = search_form_for [:admin, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| + .row + .col-md-3 + .form-group + = f.label :name + = f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) + .col-md-3 + .form-group + = f.label t(:created_at_from) + = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from) + .col-md-3 + .form-group + = f.label t(:created_at_until) + = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until) + .row + .col-md-3 + .form-group + = label_tag t(:results_per_page) + = text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) + .col-md-3{style: 'padding-top: 25px;'} + %button.btn.btn-primary +   + %span.glyphicon.glyphicon-search +   + = link_to(t('.reset_btn'), admin_disputes_path, class: 'btn btn-default') +%hr +.row + .col-md-12 + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-2'} + = sort_link(@q, 'name') + %th{class: 'col-xs-2'} + = sort_link(@q, 'password') + %th{class: 'col-xs-2'} + = sort_link(@q, 'expires_at') + %th{class: 'col-xs-2'} + = sort_link(@q, 'comment') + %th{class: 'col-xs-2'} + = sort_link(@q, 'created_at', t(:created_at)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'updated_at', t(:updated_at)) + %th{class: 'col-xs-2'} + = t(:actions) + %tbody + - @disputes.each do |x| + %tr + %td= x.domain_name + %td= x.password + %td= x.expires_at + %td= x.comment + %td= l(x.created_at, format: :short) + %td= l(x.updated_at, format: :short) + %td + = link_to(t(:edit_pw), edit_admin_dispute_path(id: x.id), + class: 'btn btn-primary btn-xs') + = link_to(t(:delete), delete_admin_dispute_path(id: x.id), + data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger btn-xs') +.row + .col-md-6 + = paginate @disputes + .col-md-6.text-right + .pagination + = t(:result_count, count: @disputes.total_count) diff --git a/app/views/admin/disputes/new.haml b/app/views/admin/disputes/new.haml new file mode 100644 index 000000000..0a57af7be --- /dev/null +++ b/app/views/admin/disputes/new.haml @@ -0,0 +1,3 @@ += render 'shared/title', name: t(:add_disputed_domain) + += render 'form' diff --git a/config/locales/admin/disputes.en.yml b/config/locales/admin/disputes.en.yml new file mode 100644 index 000000000..4073d6e61 --- /dev/null +++ b/config/locales/admin/disputes.en.yml @@ -0,0 +1,10 @@ +en: + admin: + disputes: + index: + title: Domain disputes + new_btn: New domain dispute + reset_btn: Reset + + form: + password_hint: Generated automatically if left blank diff --git a/config/locales/admin/menu.en.yml b/config/locales/admin/menu.en.yml index 2c31a5193..1cb396ed6 100644 --- a/config/locales/admin/menu.en.yml +++ b/config/locales/admin/menu.en.yml @@ -13,6 +13,7 @@ en: zones: Zones blocked_domains: Blocked domains reserved_domains: Reserved domains + disputed_domains: Domain disputes epp_log: EPP log repp_log: REPP log que: Que diff --git a/config/locales/en.yml b/config/locales/en.yml index cf72b1027..f1d2ad817 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -629,6 +629,7 @@ en: available_verification_url_not_found: 'Available verification url not found, for domain.' add_reserved_domain: 'Add domain to reserved list' add_blocked_domain: 'Add domain to blocked list' + add_disputed_domain: 'Add domain to disputed list' edit_pw: 'Edit Pw' optional: 'Optional' test_registrar: "Test registrar" diff --git a/config/routes.rb b/config/routes.rb index 53d78dfa9..0d2093d36 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,7 @@ require_dependency 'epp_constraint' Rails.application.routes.draw do + resources :disputes # https://github.com/internetee/epp_proxy#translation-of-epp-calls namespace :epp do constraints(EppConstraint.new(:session)) do @@ -258,6 +259,7 @@ Rails.application.routes.draw do get 'delete' end end + resources :disputes resources :registrars do resources :api_users, except: %i[index] diff --git a/db/migrate/20200421093637_create_disputes.rb b/db/migrate/20200421093637_create_disputes.rb new file mode 100644 index 000000000..48cdfae59 --- /dev/null +++ b/db/migrate/20200421093637_create_disputes.rb @@ -0,0 +1,14 @@ +class CreateDisputes < ActiveRecord::Migration[5.2] + def change + create_table :disputes do |t| + t.string :domain_name + t.string :password + t.date :expires_at + t.date :starts_at + t.text :comment + t.datetime :created_at + + t.timestamps + end + end +end From 0f2a290d647997d9d8541a1bb9657dd308ad81dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 24 Apr 2020 16:04:58 +0300 Subject: [PATCH 429/757] Add disputing logic for EPP --- app/controllers/admin/disputes_controller.rb | 11 +- app/controllers/epp/domains_controller.rb | 4 + .../domain_update_confirms_controller.rb | 6 + app/jobs/update_whois_record_job.rb | 19 +- app/models/dispute.rb | 88 ++- app/models/dns/domain_name.rb | 6 +- app/models/domain.rb | 8 +- app/models/epp/domain.rb | 22 +- app/models/setting.rb | 1 + config/app.yml | 2 + config/locales/admin/disputes.en.yml | 2 + config/locales/en.yml | 3 + config/routes.rb | 7 +- db/migrate/20200421093637_create_disputes.rb | 10 +- db/structure.sql | 746 +++++++++++------- lib/schemas/eis-1.0.xsd | 11 + lib/tasks/whois.rake | 5 + 17 files changed, 626 insertions(+), 325 deletions(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 8061eb890..8d26db614 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -28,9 +28,8 @@ module Admin # POST /admin/disputes def create @dispute = Dispute.new(dispute_params) - if @dispute.save - redirect_to @dispute, notice: 'Dispute was successfully created.' + redirect_to admin_disputes_url, notice: 'Dispute was successfully created.' else render :new end @@ -39,16 +38,16 @@ module Admin # PATCH/PUT /admin/disputes/1 def update if @dispute.update(dispute_params) - redirect_to @dispute, notice: 'Dispute was successfully updated.' + redirect_to admin_disputes_url, notice: 'Dispute was successfully updated.' else render :edit end end # DELETE /admin/disputes/1 - def destroy + def delete @dispute.destroy - redirect_to disputes_url, notice: 'Dispute was successfully destroyed.' + redirect_to admin_disputes_url, notice: 'Dispute was successfully destroyed.' end private @@ -60,7 +59,7 @@ module Admin # Only allow a trusted parameter "white list" through. def dispute_params - params.require(:dispute).permit(:domain_name, :password, :expires_at, :comment, :created_at) + params.require(:dispute).permit(:domain_name, :password, :starts_at, :comment) end end end diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 9e4f6123a..2ab1f6d3a 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -104,6 +104,10 @@ module Epp authorize! :update, @domain, @password if @domain.update(params[:parsed_frame], current_user) + if @domain.disputed? + dispute = Dispute.active.find_by(domain_name: @domain.name) + dispute.close + end if @domain.epp_pending_update.present? render_epp_response '/epp/domains/success_pending' else diff --git a/app/controllers/registrant/domain_update_confirms_controller.rb b/app/controllers/registrant/domain_update_confirms_controller.rb index 61e623ddf..83b7ee953 100644 --- a/app/controllers/registrant/domain_update_confirms_controller.rb +++ b/app/controllers/registrant/domain_update_confirms_controller.rb @@ -31,6 +31,12 @@ class Registrant::DomainUpdateConfirmsController < RegistrantController end elsif params[:confirmed] if @registrant_verification.domain_registrant_change_confirm!("email link, #{initiator}") + if @domain.disputed? + Rails.logger.info 'Closing domain dispute via RegistrantConfirmation' + dispute = Dispute.active.find_by(domain_name: @domain.name) + dispute.close + end + flash[:notice] = t(:registrant_domain_verification_confirmed) redirect_to registrant_domain_update_confirm_path(@domain.id, confirmed: true) else diff --git a/app/jobs/update_whois_record_job.rb b/app/jobs/update_whois_record_job.rb index bee0e032c..cd35823e6 100644 --- a/app/jobs/update_whois_record_job.rb +++ b/app/jobs/update_whois_record_job.rb @@ -4,10 +4,11 @@ class UpdateWhoisRecordJob < Que::Job ::PaperTrail.whodunnit = "job - #{self.class.name} - #{type}" klass = case type - when 'reserved'then ReservedDomain - when 'blocked' then BlockedDomain - when 'domain' then Domain - end + when 'reserved' then ReservedDomain + when 'blocked' then BlockedDomain + when 'domain' then Domain + when 'disputed' then Dispute + end Array(names).each do |name| record = klass.find_by(name: name) @@ -19,8 +20,6 @@ class UpdateWhoisRecordJob < Que::Job end end - - def update_domain(domain) domain.whois_record ? domain.whois_record.save : domain.create_whois_record end @@ -33,6 +32,9 @@ class UpdateWhoisRecordJob < Que::Job update_reserved(record) end + def update_disputed(record) + update_reserved(record) + end # 1. deleting own # 2. trying to regenerate reserved in order domain is still in the list @@ -41,6 +43,7 @@ class UpdateWhoisRecordJob < Que::Job BlockedDomain.find_by(name: name).try(:generate_data) ReservedDomain.find_by(name: name).try(:generate_data) + Dispute.active.find_by(domain_name: name).try(:generate_data) end def delete_reserved(name) @@ -51,4 +54,8 @@ class UpdateWhoisRecordJob < Que::Job def delete_blocked(name) delete_reserved(name) end + + def delete_disputed(name) + delete_reserved(name) + end end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 874e46b30..450a92a2b 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -1,5 +1,89 @@ +# frozen_string_literal: true + class Dispute < ApplicationRecord - validates :domain_name, :password, :starts_at, :expires_at, :comment, - presence: true + validates :domain_name, :password, :starts_at, :expires_at, presence: true validates_uniqueness_of :domain_name, case_sensitive: true + before_validation :fill_empty_passwords + before_validation :set_expiry_date + validate :validate_domain_name + + with_options on: :admin do + validate :validate_start_date + end + before_save :set_expiry_date + before_save :sync_reserved_password + after_destroy :remove_data + + scope :expired, -> { where('expires_at < ?', Time.zone.today) } + scope :active, -> { where('expires_at > ? AND closed = 0', Time.zone.today) } + scope :closed, -> { where(closed: true) } + + alias_attribute :name, :domain_name + + def set_expiry_date + return if starts_at.blank? + + self.expires_at = starts_at + Setting.dispute_period_in_months.months + end + + def generate_password + self.password = SecureRandom.hex + end + + def generate_data + return if Domain.where(name: domain_name).any? + + wr = Whois::Record.find_or_initialize_by(name: domain_name) + wr.json = @json = generate_json # we need @json to bind to class + wr.save + end + + def close + self.closed = true + save! + end + + def generate_json + h = HashWithIndifferentAccess.new + h[:name] = domain_name + h[:status] = ['Disputed'] + h + end + + def remove_data + UpdateWhoisRecordJob.enqueue domain_name, 'disputed' + end + + def fill_empty_passwords + generate_password if password.blank? + end + + def sync_reserved_password + reserved_domain = ReservedDomain.find_by(name: domain_name) + generate_password if password.blank? + + unless reserved_domain.nil? + reserved_domain.password = password + reserved_domain.save! + end + + generate_data + end + + private + + def validate_start_date + return if starts_at.nil? + + errors.add(:starts_at, :past) if starts_at.past? + end + + def validate_domain_name + return unless domain_name + + zone = domain_name.split('.').last + supported_zone = DNS::Zone.origins.include?(zone) + + errors.add(:domain_name, :unsupported_zone) unless supported_zone + end end diff --git a/app/models/dns/domain_name.rb b/app/models/dns/domain_name.rb index e4dd24fa5..c1af4d5e7 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -68,6 +68,10 @@ module DNS ReservedDomain.where(name: name).any? end + def disputed? + Dispute.active.where(domain_name: name).any? + end + def auctionable? !not_auctionable? end @@ -81,7 +85,7 @@ module DNS attr_reader :name def not_auctionable? - blocked? || reserved? + blocked? || reserved? || disputed? end def zone_with_same_origin? diff --git a/app/models/domain.rb b/app/models/domain.rb index f21317b70..011d02ec7 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -90,6 +90,7 @@ class Domain < ApplicationRecord validates :transfer_code, presence: true validate :validate_reservation + def validate_reservation return if persisted? || !in_reserved_list? @@ -99,6 +100,7 @@ class Domain < ApplicationRecord end return if ReservedDomain.pw_for(name) == reserved_pw + errors.add(:base, :invalid_auth_information_reserved) end @@ -170,7 +172,7 @@ class Domain < ApplicationRecord end attr_accessor :registrant_typeahead, :update_me, - :epp_pending_update, :epp_pending_delete, :reserved_pw + :epp_pending_update, :epp_pending_delete, :reserved_pw, :disputed_pw self.ignored_columns = %w[legacy_id legacy_registrar_id legacy_registrant_id] @@ -275,6 +277,10 @@ class Domain < ApplicationRecord @in_reserved_list ||= ReservedDomain.by_domain(name).any? end + def disputed? + Dispute.active.where(domain_name: name).any? + end + def pending_transfer transfers.find_by(status: DomainTransfer::PENDING) end diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index dc80b2e40..31fee711d 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -58,7 +58,8 @@ class Epp::Domain < Domain '2003' => [ # Required parameter missing [:registrant, :blank], [:registrar, :blank], - [:base, :required_parameter_missing_reserved] + [:base, :required_parameter_missing_reserved], + [:base, :required_parameter_missing_disputed] ], '2004' => [ # Parameter value range error [:dnskeys, :out_of_range, @@ -88,7 +89,8 @@ class Epp::Domain < Domain [:transfer_code, :wrong_pw] ], '2202' => [ - [:base, :invalid_auth_information_reserved] + [:base, :invalid_auth_information_reserved], + [:base, :invalid_auth_information_disputed] ], '2302' => [ # Object exists [:name_dirty, :taken, { value: { obj: 'name', val: name_dirty } }], @@ -154,6 +156,7 @@ class Epp::Domain < Domain at[:period_unit] = Epp::Domain.parse_period_unit_from_frame(frame) || 'y' at[:reserved_pw] = frame.css('reserved > pw').text + at[:disputed_pw] = frame.css('disputed > pw').text # at[:statuses] = domain_statuses_attrs(frame, action) at[:nameservers_attributes] = nameservers_attrs(frame, action) @@ -475,6 +478,16 @@ class Epp::Domain < Domain same_registrant_as_current = (registrant.code == frame.css('registrant').text) + if !same_registrant_as_current && disputed? + disputed_pw = frame.css('disputed > pw').text + if disputed_pw.blank? + add_epp_error('2304', nil, nil, 'Required parameter missing; disputed pw element required for dispute domains') + else + dispute = Dispute.active.find_by(domain_name: name, password: disputed_pw) + add_epp_error('2202', nil, nil, 'Invalid authorization information; invalid disputed>pw value') if dispute.nil? + end + end + if !same_registrant_as_current && errors.empty? && verify && Setting.request_confrimation_on_registrant_change_enabled && frame.css('registrant').present? && @@ -706,6 +719,11 @@ class Epp::Domain < Domain def can_be_deleted? + if disputed? + errors.add(:base, :domain_status_prohibits_operation) + return false + end + begin errors.add(:base, :domain_status_prohibits_operation) return false diff --git a/app/models/setting.rb b/app/models/setting.rb index 64a20c34f..9f00055a3 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -46,6 +46,7 @@ class Setting < RailsSettings::Base expire_warning_period redemption_grace_period expire_pending_confirmation + dispute_period_in_months ] end diff --git a/config/app.yml b/config/app.yml index 763da3373..f11189111 100644 --- a/config/app.yml +++ b/config/app.yml @@ -44,6 +44,8 @@ defaults: &defaults registrar_ip_whitelist_enabled: false api_ip_whitelist_enabled: false + dispute_period_in_months: 36 + registry_juridical_name: "Eesti Interneti SA" registry_reg_no: "90010019" registry_email: "info@internet.ee" diff --git a/config/locales/admin/disputes.en.yml b/config/locales/admin/disputes.en.yml index 4073d6e61..ba5b79099 100644 --- a/config/locales/admin/disputes.en.yml +++ b/config/locales/admin/disputes.en.yml @@ -8,3 +8,5 @@ en: form: password_hint: Generated automatically if left blank + optional: Not required by default + in_future: Must be at least today / in future diff --git a/config/locales/en.yml b/config/locales/en.yml index f1d2ad817..a825b1dc0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -24,6 +24,8 @@ en: key_data_not_allowed: 'keyData object is not allowed' required_parameter_missing_reserved: 'Required parameter missing; reserved>pw element required for reserved domains' invalid_auth_information_reserved: 'Invalid authorization information; invalid reserved>pw value' + required_parameter_missing_disputed: 'Required parameter missing; disputed pw element required for dispute domains' + invalid_auth_information_disputed: 'Invalid authorization information; invalid disputed>pw value' domain_name_blocked: 'Data management policy violation: Domain name is blocked [name]' name_dirty: invalid: 'Domain name is invalid' @@ -631,6 +633,7 @@ en: add_blocked_domain: 'Add domain to blocked list' add_disputed_domain: 'Add domain to disputed list' edit_pw: 'Edit Pw' + edit_dispute: 'Edit dispute' optional: 'Optional' test_registrar: "Test registrar" verified_confirm: 'Verified status is for cases when current registrant is the one applying for the update. Legal document signed by the registrant is required. Are you sure this update is properly verified with the registrant?' diff --git a/config/routes.rb b/config/routes.rb index 0d2093d36..4ce06b651 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,7 +1,6 @@ require_dependency 'epp_constraint' Rails.application.routes.draw do - resources :disputes # https://github.com/internetee/epp_proxy#translation-of-epp-calls namespace :epp do constraints(EppConstraint.new(:session)) do @@ -259,7 +258,11 @@ Rails.application.routes.draw do get 'delete' end end - resources :disputes + resources :disputes do + member do + get 'delete' + end + end resources :registrars do resources :api_users, except: %i[index] diff --git a/db/migrate/20200421093637_create_disputes.rb b/db/migrate/20200421093637_create_disputes.rb index 48cdfae59..b934d3297 100644 --- a/db/migrate/20200421093637_create_disputes.rb +++ b/db/migrate/20200421093637_create_disputes.rb @@ -1,12 +1,12 @@ class CreateDisputes < ActiveRecord::Migration[5.2] def change create_table :disputes do |t| - t.string :domain_name - t.string :password - t.date :expires_at - t.date :starts_at + t.string :domain_name, null: false + t.string :password, null: false + t.date :expires_at, null: false + t.date :starts_at, null: false t.text :comment - t.datetime :created_at + t.boolean :closed, null: false, default: false t.timestamps end diff --git a/db/structure.sql b/db/structure.sql index 604238d4c..2e8294d41 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,28 +1,19 @@ --- --- PostgreSQL database dump --- - SET statement_timeout = 0; SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; +SET row_security = off; -- --- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - +-- Name: audit; Type: SCHEMA; Schema: -; Owner: - -- -CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; - - --- --- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - --- - -COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; +CREATE SCHEMA audit; -- @@ -191,12 +182,75 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex $_$; +-- +-- Name: process_contact_audit(); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.process_contact_audit() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + IF (TG_OP = 'INSERT') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'UPDATE') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'DELETE') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); + RETURN OLD; + END IF; + RETURN NULL; + END +$$; + + SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: audit; Owner: - +-- + +CREATE TABLE audit.contacts ( + id integer NOT NULL, + object_id bigint, + action text NOT NULL, + recorded_at timestamp without time zone, + old_value jsonb, + new_value jsonb, + CONSTRAINT contacts_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) +); + + +-- +-- Name: contacts_id_seq; Type: SEQUENCE; Schema: audit; Owner: - +-- + +CREATE SEQUENCE audit.contacts_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contacts_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - +-- + +ALTER SEQUENCE audit.contacts_id_seq OWNED BY audit.contacts.id; + + +-- +-- Name: account_activities; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.account_activities ( @@ -236,7 +290,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.accounts ( @@ -272,7 +326,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.actions ( @@ -304,7 +358,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.ar_internal_metadata ( @@ -316,7 +370,7 @@ CREATE TABLE public.ar_internal_metadata ( -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.auctions ( @@ -349,7 +403,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.bank_statements ( @@ -385,7 +439,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.bank_transactions ( @@ -429,7 +483,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.blocked_domains ( @@ -462,7 +516,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.certificates ( @@ -500,7 +554,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.contacts ( @@ -558,7 +612,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.directos ( @@ -593,7 +647,43 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: disputes; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.disputes ( + id bigint NOT NULL, + domain_name character varying NOT NULL, + password character varying NOT NULL, + expires_at date NOT NULL, + starts_at date NOT NULL, + comment text, + closed boolean DEFAULT false NOT NULL, + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone NOT NULL +); + + +-- +-- Name: disputes_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.disputes_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: disputes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.disputes_id_seq OWNED BY public.disputes.id; + + +-- +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.dnskeys ( @@ -634,7 +724,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.domain_contacts ( @@ -672,7 +762,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.domain_transfers ( @@ -709,7 +799,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.domains ( @@ -769,7 +859,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.epp_sessions ( @@ -801,7 +891,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.invoice_items ( @@ -839,7 +929,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.invoices ( @@ -910,7 +1000,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.legal_documents ( @@ -945,7 +1035,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_account_activities ( @@ -983,7 +1073,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_accounts ( @@ -1021,7 +1111,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_actions ( @@ -1059,7 +1149,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_bank_statements ( @@ -1097,7 +1187,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_bank_transactions ( @@ -1135,7 +1225,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_blocked_domains ( @@ -1173,7 +1263,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_certificates ( @@ -1211,7 +1301,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_contacts ( @@ -1250,7 +1340,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_dnskeys ( @@ -1288,7 +1378,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_domain_contacts ( @@ -1326,7 +1416,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_domains ( @@ -1364,7 +1454,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_invoice_items ( @@ -1402,7 +1492,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_invoices ( @@ -1440,7 +1530,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_nameservers ( @@ -1478,7 +1568,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_notifications ( @@ -1516,7 +1606,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_payment_orders ( @@ -1554,7 +1644,7 @@ ALTER SEQUENCE public.log_payment_orders_id_seq OWNED BY public.log_payment_orde -- --- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_registrant_verifications ( @@ -1591,7 +1681,7 @@ ALTER SEQUENCE public.log_registrant_verifications_id_seq OWNED BY public.log_re -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_registrars ( @@ -1629,7 +1719,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_reserved_domains ( @@ -1667,7 +1757,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_settings ( @@ -1705,7 +1795,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_users ( @@ -1743,7 +1833,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_white_ips ( @@ -1781,7 +1871,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.nameservers ( @@ -1819,7 +1909,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.notifications ( @@ -1857,7 +1947,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: payment_orders; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.payment_orders ( @@ -1894,7 +1984,7 @@ ALTER SEQUENCE public.payment_orders_id_seq OWNED BY public.payment_orders.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: prices; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.prices ( @@ -1932,7 +2022,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.que_jobs ( @@ -1974,7 +2064,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.registrant_verifications ( @@ -2010,7 +2100,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.registrars ( @@ -2063,7 +2153,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.reserved_domains ( @@ -2098,7 +2188,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.schema_migrations ( @@ -2107,7 +2197,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.settings ( @@ -2143,7 +2233,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.users ( @@ -2195,7 +2285,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.versions ( @@ -2230,7 +2320,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.white_ips ( @@ -2266,7 +2356,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.whois_records ( @@ -2301,7 +2391,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.zones ( @@ -2344,385 +2434,407 @@ ALTER SEQUENCE public.zones_id_seq OWNED BY public.zones.id; -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: contacts id; Type: DEFAULT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.contacts ALTER COLUMN id SET DEFAULT nextval('audit.contacts_id_seq'::regclass); + + +-- +-- Name: account_activities id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities ALTER COLUMN id SET DEFAULT nextval('public.account_activities_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: accounts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts ALTER COLUMN id SET DEFAULT nextval('public.accounts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: actions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions ALTER COLUMN id SET DEFAULT nextval('public.actions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: auctions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions ALTER COLUMN id SET DEFAULT nextval('public.auctions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: bank_statements id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_statements ALTER COLUMN id SET DEFAULT nextval('public.bank_statements_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: bank_transactions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.bank_transactions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: blocked_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.blocked_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: certificates id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.certificates ALTER COLUMN id SET DEFAULT nextval('public.certificates_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts ALTER COLUMN id SET DEFAULT nextval('public.contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: directos id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.directos ALTER COLUMN id SET DEFAULT nextval('public.directos_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: disputes id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.disputes ALTER COLUMN id SET DEFAULT nextval('public.disputes_id_seq'::regclass); + + +-- +-- Name: dnskeys id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.dnskeys ALTER COLUMN id SET DEFAULT nextval('public.dnskeys_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domain_contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.domain_contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domain_transfers id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('public.domain_transfers_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: invoices id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.invoices_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: legal_documents id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.legal_documents ALTER COLUMN id SET DEFAULT nextval('public.legal_documents_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_account_activities id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_account_activities ALTER COLUMN id SET DEFAULT nextval('public.log_account_activities_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_accounts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_accounts ALTER COLUMN id SET DEFAULT nextval('public.log_accounts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_actions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_actions ALTER COLUMN id SET DEFAULT nextval('public.log_actions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_bank_statements id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_statements ALTER COLUMN id SET DEFAULT nextval('public.log_bank_statements_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_bank_transactions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.log_bank_transactions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_blocked_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.log_blocked_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_certificates id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_certificates ALTER COLUMN id SET DEFAULT nextval('public.log_certificates_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_dnskeys id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_dnskeys ALTER COLUMN id SET DEFAULT nextval('public.log_dnskeys_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_domain_contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_domain_contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domains ALTER COLUMN id SET DEFAULT nextval('public.log_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_invoice_items id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoice_items ALTER COLUMN id SET DEFAULT nextval('public.log_invoice_items_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_invoices id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoices ALTER COLUMN id SET DEFAULT nextval('public.log_invoices_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_nameservers id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('public.log_nameservers_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_notifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_payment_orders id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_payment_orders ALTER COLUMN id SET DEFAULT nextval('public.log_payment_orders_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.log_registrant_verifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_registrars id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrars ALTER COLUMN id SET DEFAULT nextval('public.log_registrars_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_reserved_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.log_reserved_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_settings id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_settings ALTER COLUMN id SET DEFAULT nextval('public.log_settings_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_users id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_users ALTER COLUMN id SET DEFAULT nextval('public.log_users_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_white_ips id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_white_ips ALTER COLUMN id SET DEFAULT nextval('public.log_white_ips_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: nameservers id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public.nameservers_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: notifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('public.notifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: payment_orders id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('public.payment_orders_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: prices id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices ALTER COLUMN id SET DEFAULT nextval('public.prices_id_seq'::regclass); -- --- Name: job_id; Type: DEFAULT; Schema: public; Owner: - +-- Name: que_jobs job_id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.que_jobs ALTER COLUMN job_id SET DEFAULT nextval('public.que_jobs_job_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.registrant_verifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: registrars id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars ALTER COLUMN id SET DEFAULT nextval('public.registrars_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: reserved_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.reserved_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: settings id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.settings ALTER COLUMN id SET DEFAULT nextval('public.settings_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: users id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: versions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.versions ALTER COLUMN id SET DEFAULT nextval('public.versions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: white_ips id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips ALTER COLUMN id SET DEFAULT nextval('public.white_ips_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: whois_records id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.whois_records ALTER COLUMN id SET DEFAULT nextval('public.whois_records_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: zones id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_id_seq'::regclass); -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.contacts + ADD CONSTRAINT contacts_pkey PRIMARY KEY (id); + + +-- +-- Name: account_activities account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -2730,7 +2842,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts @@ -2738,7 +2850,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -2746,7 +2858,7 @@ ALTER TABLE ONLY public.actions -- --- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.ar_internal_metadata @@ -2754,7 +2866,7 @@ ALTER TABLE ONLY public.ar_internal_metadata -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions @@ -2762,7 +2874,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_statements @@ -2770,7 +2882,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_transactions @@ -2778,7 +2890,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains @@ -2786,7 +2898,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.certificates @@ -2794,7 +2906,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -2802,7 +2914,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: directos directos_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.directos @@ -2810,7 +2922,15 @@ ALTER TABLE ONLY public.directos -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: disputes disputes_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.disputes + ADD CONSTRAINT disputes_pkey PRIMARY KEY (id); + + +-- +-- Name: dnskeys dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.dnskeys @@ -2818,7 +2938,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -2826,7 +2946,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -2834,7 +2954,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -2842,7 +2962,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -2850,7 +2970,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -2858,7 +2978,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -2866,7 +2986,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.legal_documents @@ -2874,7 +2994,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_account_activities @@ -2882,7 +3002,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_accounts @@ -2890,7 +3010,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_actions @@ -2898,7 +3018,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_statements @@ -2906,7 +3026,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_transactions @@ -2914,7 +3034,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_blocked_domains @@ -2922,7 +3042,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_certificates @@ -2930,7 +3050,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_contacts @@ -2938,7 +3058,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_dnskeys @@ -2946,7 +3066,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domain_contacts @@ -2954,7 +3074,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domains @@ -2962,7 +3082,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoice_items @@ -2970,7 +3090,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoices @@ -2978,7 +3098,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_nameservers @@ -2986,7 +3106,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_notifications @@ -2994,7 +3114,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_payment_orders log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_payment_orders @@ -3002,7 +3122,7 @@ ALTER TABLE ONLY public.log_payment_orders -- --- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrant_verifications @@ -3010,7 +3130,7 @@ ALTER TABLE ONLY public.log_registrant_verifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrars @@ -3018,7 +3138,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_reserved_domains @@ -3026,7 +3146,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_settings @@ -3034,7 +3154,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_users @@ -3042,7 +3162,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_white_ips @@ -3050,7 +3170,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers @@ -3058,7 +3178,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -3066,7 +3186,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: payment_orders payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders @@ -3074,7 +3194,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: prices prices_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices @@ -3082,7 +3202,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.que_jobs @@ -3090,7 +3210,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications @@ -3098,7 +3218,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3106,7 +3226,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains @@ -3114,7 +3234,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.settings @@ -3122,7 +3242,7 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains @@ -3130,7 +3250,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3138,7 +3258,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -3146,7 +3266,7 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains @@ -3154,7 +3274,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions @@ -3162,7 +3282,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars unique_code; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3170,7 +3290,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3178,7 +3298,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars unique_name; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3186,7 +3306,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices unique_number; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -3194,7 +3314,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3202,7 +3322,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions @@ -3210,7 +3330,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions unique_session_id; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -3218,7 +3338,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones @@ -3226,7 +3346,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users @@ -3234,7 +3354,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions versions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.versions @@ -3242,7 +3362,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips @@ -3250,7 +3370,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.whois_records @@ -3258,7 +3378,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones zones_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones @@ -3266,581 +3386,602 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: contacts_object_id_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX contacts_object_id_idx ON audit.contacts USING btree (object_id); + + +-- +-- Name: contacts_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX contacts_recorded_at_idx ON audit.contacts USING btree (recorded_at); + + +-- +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); -- --- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); + + +-- +-- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3848,7 +3989,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -3856,7 +3997,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -3864,7 +4005,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -3872,7 +4013,7 @@ ALTER TABLE ONLY public.domains -- --- Name: domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -3880,7 +4021,7 @@ ALTER TABLE ONLY public.domains -- --- Name: fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: invoices fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -3888,7 +4029,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: white_ips fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips @@ -3896,7 +4037,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -3904,7 +4045,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: prices fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices @@ -3912,7 +4053,7 @@ ALTER TABLE ONLY public.prices -- --- Name: fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -3920,7 +4061,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -3928,7 +4069,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -3936,7 +4077,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: actions fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -3944,7 +4085,7 @@ ALTER TABLE ONLY public.actions -- --- Name: fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: notifications fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -3952,7 +4093,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: actions fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -3960,7 +4101,7 @@ ALTER TABLE ONLY public.actions -- --- Name: fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: epp_sessions fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -3968,7 +4109,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -3976,7 +4117,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: accounts fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts @@ -3984,7 +4125,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -3992,7 +4133,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4000,7 +4141,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: registrant_verifications fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications @@ -4008,7 +4149,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: payment_orders fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders @@ -4016,7 +4157,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -4024,7 +4165,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: notifications messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -4032,7 +4173,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: nameservers nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers @@ -4040,7 +4181,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: users user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users @@ -4463,5 +4604,10 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200130092113'), ('20200203143458'), ('20200204103125'), -('20200311114649'); +('20200310105731'), +('20200310105736'), +('20200311111515'), +('20200311114649'), +('20200421093637'); + diff --git a/lib/schemas/eis-1.0.xsd b/lib/schemas/eis-1.0.xsd index ddb3602c0..6a6bc742d 100644 --- a/lib/schemas/eis-1.0.xsd +++ b/lib/schemas/eis-1.0.xsd @@ -25,6 +25,7 @@ + @@ -49,6 +50,16 @@ + + + + + + + + diff --git a/lib/tasks/whois.rake b/lib/tasks/whois.rake index c38b2c5ba..52be7e17f 100644 --- a/lib/tasks/whois.rake +++ b/lib/tasks/whois.rake @@ -35,6 +35,11 @@ namespace :whois do ReservedDomain.find_in_batches.each do |group| UpdateWhoisRecordJob.enqueue group.map(&:name), 'reserved' end + + print "\n-----> Update disputed domains whois_records" + Dispute.active.find_in_batches.each do |group| + UpdateWhoisRecordJob.enqueue group.map(&:domain_name), 'disputed' + end end puts "\n-----> all done in #{(Time.zone.now.to_f - start).round(2)} seconds" end From c3497ab46fe3cb9a47cce689db026e6bc224304e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 24 Apr 2020 16:05:41 +0300 Subject: [PATCH 430/757] Create views for domain disputing --- app/views/admin/disputes/_form.html.erb | 12 +++++++----- app/views/admin/disputes/edit.haml | 2 +- app/views/admin/disputes/index.haml | 11 ++++------- app/views/admin/settings/index.haml | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/app/views/admin/disputes/_form.html.erb b/app/views/admin/disputes/_form.html.erb index a234c17bc..38d5fbda2 100644 --- a/app/views/admin/disputes/_form.html.erb +++ b/app/views/admin/disputes/_form.html.erb @@ -10,6 +10,9 @@
+
+

As per domain law, expiry time is <%= Setting.dispute_period_in_months / 12 %> years ahead from start date.

+
<%= f.label :domain_name %> @@ -32,17 +35,16 @@ <%= f.label :starts_at %>
- <%= f.text_field(:starts_at, placeholder: t(:optional), class: 'form-control') %> - <%= t '.password_hint' %> + <%= f.text_field(:starts_at, class: 'form-control js-datepicker') %> + <%= t '.in_future' %>
- <%= f.label :expires_at %> + <%= f.label :comment %>
- <%= f.text_field(:expires_at, placeholder: t(:optional), class: 'form-control') %> - <%= t '.password_hint' %> + <%= f.text_field(:comment, placeholder: t(:optional), class: 'form-control') %>
diff --git a/app/views/admin/disputes/edit.haml b/app/views/admin/disputes/edit.haml index 51d77f0cc..966976891 100644 --- a/app/views/admin/disputes/edit.haml +++ b/app/views/admin/disputes/edit.haml @@ -1,3 +1,3 @@ -= render 'shared/title', name: t(:edit_pw) += render 'shared/title', name: t(:edit_dispute) = render 'form' diff --git a/app/views/admin/disputes/index.haml b/app/views/admin/disputes/index.haml index 63438ad9e..86ba2a093 100644 --- a/app/views/admin/disputes/index.haml +++ b/app/views/admin/disputes/index.haml @@ -40,14 +40,12 @@ = sort_link(@q, 'name') %th{class: 'col-xs-2'} = sort_link(@q, 'password') + %th{class: 'col-xs-2'} + = sort_link(@q, 'starts_at') %th{class: 'col-xs-2'} = sort_link(@q, 'expires_at') %th{class: 'col-xs-2'} = sort_link(@q, 'comment') - %th{class: 'col-xs-2'} - = sort_link(@q, 'created_at', t(:created_at)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'updated_at', t(:updated_at)) %th{class: 'col-xs-2'} = t(:actions) %tbody @@ -55,12 +53,11 @@ %tr %td= x.domain_name %td= x.password + %td= x.starts_at %td= x.expires_at %td= x.comment - %td= l(x.created_at, format: :short) - %td= l(x.updated_at, format: :short) %td - = link_to(t(:edit_pw), edit_admin_dispute_path(id: x.id), + = link_to(t(:edit), edit_admin_dispute_path(id: x.id), class: 'btn btn-primary btn-xs') = link_to(t(:delete), delete_admin_dispute_path(id: x.id), data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger btn-xs') diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index 23f87c4b2..977f81202 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -48,7 +48,7 @@ = render 'setting_row', var: :request_confrimation_on_registrant_change_enabled = render 'setting_row', var: :request_confirmation_on_domain_deletion_enabled = render 'setting_row', var: :address_processing - + = render 'setting_row', var: :dispute_period_in_months %tr %td.col-md-6= label_tag :default_language %td.col-md-6 From 42946dfa15ede2cbda5adfdb6ab773a18f6b0761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Apr 2020 10:56:27 +0300 Subject: [PATCH 431/757] Add closed disputed sections to disputes view --- app/controllers/admin/disputes_controller.rb | 8 +- app/models/dispute.rb | 17 +- app/views/admin/disputes/index.haml | 69 ------- app/views/admin/disputes/index.html.erb | 182 +++++++++++++++++++ 4 files changed, 202 insertions(+), 74 deletions(-) delete mode 100644 app/views/admin/disputes/index.haml create mode 100644 app/views/admin/disputes/index.html.erb diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 8d26db614..25bb41bf8 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -8,10 +8,16 @@ module Admin # GET /admin/disputes def index params[:q] ||= {} - disputes = Dispute.all.order(:domain_name) + disputes = Dispute.active.all.order(:domain_name) + @q = disputes.search(params[:q]) @disputes = @q.result.page(params[:page]) @disputes = @disputes.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? + + closed_disputes = Dispute.closed.order(:domain_name) + @closed_q = closed_disputes.search(params[:closed_q]) + @closed_disputes = @closed_q.result.page(params[:closed_page]) + @closed_disputes = @closed_disputes.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? end # GET /admin/disputes/1 diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 450a92a2b..a1fa45501 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -2,10 +2,10 @@ class Dispute < ApplicationRecord validates :domain_name, :password, :starts_at, :expires_at, presence: true - validates_uniqueness_of :domain_name, case_sensitive: true before_validation :fill_empty_passwords before_validation :set_expiry_date - validate :validate_domain_name + validate :validate_domain_name_format + validate :validate_domain_name_period_uniqueness with_options on: :admin do validate :validate_start_date @@ -15,7 +15,7 @@ class Dispute < ApplicationRecord after_destroy :remove_data scope :expired, -> { where('expires_at < ?', Time.zone.today) } - scope :active, -> { where('expires_at > ? AND closed = 0', Time.zone.today) } + scope :active, -> { where('expires_at > ? AND closed = false', Time.zone.today) } scope :closed, -> { where(closed: true) } alias_attribute :name, :domain_name @@ -78,7 +78,7 @@ class Dispute < ApplicationRecord errors.add(:starts_at, :past) if starts_at.past? end - def validate_domain_name + def validate_domain_name_format return unless domain_name zone = domain_name.split('.').last @@ -86,4 +86,13 @@ class Dispute < ApplicationRecord errors.add(:domain_name, :unsupported_zone) unless supported_zone end + + def validate_domain_name_period_uniqueness + return unless new_record? + + existing_dispute = Dispute.unscoped.where(domain_name: domain_name, closed: false).where('expires_at > ?', starts_at) + return unless existing_dispute.any? + + errors.add(:base, 'Dispute already exists for this domain at given timeframe') + end end diff --git a/app/views/admin/disputes/index.haml b/app/views/admin/disputes/index.haml deleted file mode 100644 index 86ba2a093..000000000 --- a/app/views/admin/disputes/index.haml +++ /dev/null @@ -1,69 +0,0 @@ -- content_for :actions do - = link_to(t('.new_btn'), new_admin_dispute_path, class: 'btn btn-primary') -= render 'shared/title', name: t('.title') - -.row - .col-md-12 - = search_form_for [:admin, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| - .row - .col-md-3 - .form-group - = f.label :name - = f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) - .col-md-3 - .form-group - = f.label t(:created_at_from) - = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from) - .col-md-3 - .form-group - = f.label t(:created_at_until) - = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until) - .row - .col-md-3 - .form-group - = label_tag t(:results_per_page) - = text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) - .col-md-3{style: 'padding-top: 25px;'} - %button.btn.btn-primary -   - %span.glyphicon.glyphicon-search -   - = link_to(t('.reset_btn'), admin_disputes_path, class: 'btn btn-default') -%hr -.row - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-2'} - = sort_link(@q, 'name') - %th{class: 'col-xs-2'} - = sort_link(@q, 'password') - %th{class: 'col-xs-2'} - = sort_link(@q, 'starts_at') - %th{class: 'col-xs-2'} - = sort_link(@q, 'expires_at') - %th{class: 'col-xs-2'} - = sort_link(@q, 'comment') - %th{class: 'col-xs-2'} - = t(:actions) - %tbody - - @disputes.each do |x| - %tr - %td= x.domain_name - %td= x.password - %td= x.starts_at - %td= x.expires_at - %td= x.comment - %td - = link_to(t(:edit), edit_admin_dispute_path(id: x.id), - class: 'btn btn-primary btn-xs') - = link_to(t(:delete), delete_admin_dispute_path(id: x.id), - data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger btn-xs') -.row - .col-md-6 - = paginate @disputes - .col-md-6.text-right - .pagination - = t(:result_count, count: @disputes.total_count) diff --git a/app/views/admin/disputes/index.html.erb b/app/views/admin/disputes/index.html.erb new file mode 100644 index 000000000..eea74f59a --- /dev/null +++ b/app/views/admin/disputes/index.html.erb @@ -0,0 +1,182 @@ +<% content_for :actions do %> +<%= link_to(t('.new_btn'), new_admin_dispute_path, class: 'btn btn-primary') %> +<% end %> +<%= render 'shared/title', name: t('.title') %> +
+
+ <%= search_form_for [:admin, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| %> +
+
+
+ <%= f.label :name %> + <%= f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) %> +
+
+
+
+ <%= f.label t(:created_at_from) %> + <%= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from) %> +
+
+
+
+ <%= f.label t(:created_at_until) %> + <%= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until) %> +
+
+
+
+
+
+ <%= label_tag t(:results_per_page) %> + <%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %> +
+
+
+ + <%= link_to(t('.reset_btn'), admin_disputes_path, class: 'btn btn-default') %> +
+
+ <% end %> +
+
+
+

Active disputes

+
+
+
+ + + + + + + + + + + + + <% @disputes.each do |x| %> + + + + + + + + + <% end %> + +
+ <%= sort_link(@q, 'name') %> + + <%= sort_link(@q, 'password') %> + + <%= sort_link(@q, 'starts_at') %> + + <%= sort_link(@q, 'expires_at') %> + + <%= sort_link(@q, 'comment') %> + + <%= t(:actions) %> +
+ <%= x.domain_name %> + + <%= x.password %> + + <%= x.starts_at %> + + <%= x.expires_at %> + + <%= x.comment %> + + <%= link_to t(:edit), edit_admin_dispute_path(id: x.id), + class: 'btn btn-primary btn-xs' %> + <%= link_to t(:delete), delete_admin_dispute_path(id: x.id), + data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger btn-xs' %> +
+
+
+
+
+
+ <%= paginate @disputes %> +
+
+ +
+
+
+

Expired / Closed disputes

+
+
+
+ + + + + + + + + + + + + <% @closed_disputes.each do |x| %> + + + + + + + + + <% end %> + +
+ <%= sort_link(@q, 'name') %> + + <%= sort_link(@q, 'password') %> + + <%= sort_link(@q, 'starts_at') %> + + <%= sort_link(@q, 'expires_at') %> + + <%= sort_link(@q, 'comment') %> + + <%= t(:actions) %> +
+ <%= x.domain_name %> + + <%= x.password %> + + <%= x.starts_at %> + + <%= x.expires_at %> + + <%= x.comment %> + + <%= link_to t(:delete), delete_admin_dispute_path(id: x.id), + data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger btn-xs' %> +
+
+
+
+
+
+ <%= paginate @closed_disputes %> +
+
+ +
+
From 25d78cde74fb2fa0625c5bd80e3a8b8def0f6b8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Apr 2020 12:22:31 +0300 Subject: [PATCH 432/757] Fix some code styling issues --- app/controllers/admin/disputes_controller.rb | 10 +++++--- .../domain_update_confirms_controller.rb | 1 - app/models/dispute.rb | 3 ++- app/models/epp/domain.rb | 24 +++++++++++-------- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 25bb41bf8..1435081e5 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -3,7 +3,7 @@ module Admin class DisputesController < BaseController load_and_authorize_resource - before_action :set_dispute, only: %i[show edit update destroy] + before_action :set_dispute, only: %i[show edit update delete] # GET /admin/disputes def index @@ -12,12 +12,16 @@ module Admin @q = disputes.search(params[:q]) @disputes = @q.result.page(params[:page]) - @disputes = @disputes.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? + if params[:results_per_page].to_i.positive? + @disputes = @disputes.per(params[:results_per_page]) + end closed_disputes = Dispute.closed.order(:domain_name) @closed_q = closed_disputes.search(params[:closed_q]) @closed_disputes = @closed_q.result.page(params[:closed_page]) - @closed_disputes = @closed_disputes.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? + return unless params[:results_per_page].to_i.positive? + + @closed_disputes = @closed_disputes.per(params[:results_per_page]) end # GET /admin/disputes/1 diff --git a/app/controllers/registrant/domain_update_confirms_controller.rb b/app/controllers/registrant/domain_update_confirms_controller.rb index 83b7ee953..0b964ae2b 100644 --- a/app/controllers/registrant/domain_update_confirms_controller.rb +++ b/app/controllers/registrant/domain_update_confirms_controller.rb @@ -32,7 +32,6 @@ class Registrant::DomainUpdateConfirmsController < RegistrantController elsif params[:confirmed] if @registrant_verification.domain_registrant_change_confirm!("email link, #{initiator}") if @domain.disputed? - Rails.logger.info 'Closing domain dispute via RegistrantConfirmation' dispute = Dispute.active.find_by(domain_name: @domain.name) dispute.close end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index a1fa45501..99777fa82 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -90,7 +90,8 @@ class Dispute < ApplicationRecord def validate_domain_name_period_uniqueness return unless new_record? - existing_dispute = Dispute.unscoped.where(domain_name: domain_name, closed: false).where('expires_at > ?', starts_at) + existing_dispute = Dispute.unscoped.where(domain_name: domain_name, closed: false) + .where('expires_at > ?', starts_at) return unless existing_dispute.any? errors.add(:base, 'Dispute already exists for this domain at given timeframe') diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 31fee711d..3c687ea36 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -53,13 +53,13 @@ class Epp::Domain < Domain def epp_code_map { '2002' => [ # Command use error - [:base, :domain_already_belongs_to_the_querying_registrar] + %i[base domain_already_belongs_to_the_querying_registrar] ], '2003' => [ # Required parameter missing - [:registrant, :blank], - [:registrar, :blank], - [:base, :required_parameter_missing_reserved], - [:base, :required_parameter_missing_disputed] + %i[registrant blank], + %i[registrar blank], + %i[base required_parameter_missing_reserved], + %i[base required_parameter_missing_disputed], ], '2004' => [ # Parameter value range error [:dnskeys, :out_of_range, @@ -86,11 +86,11 @@ class Epp::Domain < Domain [:puny_label, :too_long, { obj: 'name', val: name_puny }] ], '2201' => [ # Authorisation error - [:transfer_code, :wrong_pw] + %i[transfer_code wrong_pw] ], '2202' => [ - [:base, :invalid_auth_information_reserved], - [:base, :invalid_auth_information_disputed] + %i[base invalid_auth_information_reserved], + %i[base invalid_auth_information_disputed], ], '2302' => [ # Object exists [:name_dirty, :taken, { value: { obj: 'name', val: name_dirty } }], @@ -481,10 +481,14 @@ class Epp::Domain < Domain if !same_registrant_as_current && disputed? disputed_pw = frame.css('disputed > pw').text if disputed_pw.blank? - add_epp_error('2304', nil, nil, 'Required parameter missing; disputed pw element required for dispute domains') + add_epp_error('2304', nil, nil, 'Required parameter missing; disputed' \ + 'pw element required for dispute domains') else dispute = Dispute.active.find_by(domain_name: name, password: disputed_pw) - add_epp_error('2202', nil, nil, 'Invalid authorization information; invalid disputed>pw value') if dispute.nil? + if dispute.nil? + add_epp_error('2202', nil, nil, 'Invalid authorization information; '\ + 'invalid disputed>pw value') + end end end From 2c8f1081c9327420cc2589dacfc39eaa66e2aa84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Apr 2020 12:23:10 +0300 Subject: [PATCH 433/757] Remove useless properties from SQL structure --- db/structure.sql | 2 -- 1 file changed, 2 deletions(-) diff --git a/db/structure.sql b/db/structure.sql index 2e8294d41..6b690e04e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,13 +1,11 @@ SET statement_timeout = 0; SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; -SET row_security = off; -- -- Name: audit; Type: SCHEMA; Schema: -; Owner: - From 39791f5755302c40e632a6c32c6a73386a8ecbc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Apr 2020 12:32:55 +0300 Subject: [PATCH 434/757] Fix styling issues --- app/controllers/admin/disputes_controller.rb | 24 ++++++------- app/controllers/epp/domains_controller.rb | 21 ++++-------- .../domain_delete_confirms_controller.rb | 34 ++++++++++--------- app/models/dispute.rb | 5 +++ app/models/epp/domain.rb | 4 +-- 5 files changed, 42 insertions(+), 46 deletions(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 1435081e5..82b48149b 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -8,20 +8,8 @@ module Admin # GET /admin/disputes def index params[:q] ||= {} - disputes = Dispute.active.all.order(:domain_name) - - @q = disputes.search(params[:q]) - @disputes = @q.result.page(params[:page]) - if params[:results_per_page].to_i.positive? - @disputes = @disputes.per(params[:results_per_page]) - end - - closed_disputes = Dispute.closed.order(:domain_name) - @closed_q = closed_disputes.search(params[:closed_q]) - @closed_disputes = @closed_q.result.page(params[:closed_page]) - return unless params[:results_per_page].to_i.positive? - - @closed_disputes = @closed_disputes.per(params[:results_per_page]) + @disputes = sortable_dispute_query_for(Dispute.active.all, params[:q]) + @closed_disputes = sortable_dispute_query_for(Dispute.closed.all, params[:q]) end # GET /admin/disputes/1 @@ -62,6 +50,14 @@ module Admin private + def sortable_dispute_query_for(disputes, query) + @q = disputes.order(:domain_name).search(query) + disputes = @q.result.page(params[:page]) + return disputes.per(params[:results_per_page]) if params[:results_per_page].present? + + disputes + end + # Use callbacks to share common setup or constraints between actions. def set_dispute @dispute = Dispute.find(params[:id]) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 2ab1f6d3a..9a162a455 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -103,25 +103,18 @@ module Epp def update authorize! :update, @domain, @password - if @domain.update(params[:parsed_frame], current_user) - if @domain.disputed? - dispute = Dispute.active.find_by(domain_name: @domain.name) - dispute.close - end - if @domain.epp_pending_update.present? - render_epp_response '/epp/domains/success_pending' - else - render_epp_response '/epp/domains/success' - end - else - handle_errors(@domain) - end + updated = @domain.update(params[:parsed_frame], current_user) + (handle_errors(@domain) && return) unless updated + + Dispute.active.close_by_domain(@domain.name) if @domain.disputed? + pending = @domain.epp_pending_update.present? + render_epp_response "/epp/domains/success#{'_pending' if pending}" end def delete authorize! :delete, @domain, @password - handle_errors(@domain) and return unless @domain.can_be_deleted? + (handle_errors(@domain) && return) unless @domain.can_be_deleted? if @domain.epp_destroy(params[:parsed_frame], current_user.id) if @domain.epp_pending_delete.present? diff --git a/app/controllers/registrant/domain_delete_confirms_controller.rb b/app/controllers/registrant/domain_delete_confirms_controller.rb index 95eefc368..ba5dd2ba7 100644 --- a/app/controllers/registrant/domain_delete_confirms_controller.rb +++ b/app/controllers/registrant/domain_delete_confirms_controller.rb @@ -4,6 +4,7 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController def show return if params[:confirmed] || params[:rejected] + @domain = Domain.find(params[:id]) @domain = nil unless @domain.registrant_delete_confirmable?(params[:token]) end @@ -21,22 +22,23 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController initiator = current_registrant_user ? current_registrant_user.username : t(:user_not_authenticated) - if params[:rejected] - if @registrant_verification.domain_registrant_delete_reject!("email link #{initiator}") - flash[:notice] = t(:registrant_domain_verification_rejected) - redirect_to registrant_domain_delete_confirm_path(@domain.id, rejected: true) - else - flash[:alert] = t(:registrant_domain_delete_rejected_failed) - return render 'show' - end - elsif params[:confirmed] - if @registrant_verification.domain_registrant_delete_confirm!("email link #{initiator}") - flash[:notice] = t(:registrant_domain_verification_confirmed) - redirect_to registrant_domain_delete_confirm_path(@domain.id, confirmed: true) - else - flash[:alert] = t(:registrant_domain_delete_confirmed_failed) - return render 'show' - end + confirmed = params[:confirmed] ? true : false + action = if confirmed + @registrant_verification.domain_registrant_delete_reject!("email link #{initiator}") + else + @registrant_verification.domain_registrant_delete_confirm!("email link #{initiator}") + end + + fail_msg = t("registrant_domain_delete_#{confirmed ? 'confirmed' : 'rejected'}_failed".to_sym) + success_msg = t("registrant_domain_verification_#{confirmed ? 'confirmed' : 'rejected'}".to_sym) + + flash[:alert] = action ? success_msg : fail_msg + (render 'show' && return) unless action + + if confirmed + redirect_to registrant_domain_delete_confirm_path(@domain.id, confirmed: true) && return + else + redirect_to registrant_domain_delete_confirm_path(@domain.id, rejected: true) unless confirmed end end end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 99777fa82..e4d27aeb8 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -20,6 +20,11 @@ class Dispute < ApplicationRecord alias_attribute :name, :domain_name + def self.close_by_domain(domain_name) + dispute = Dispute.active.find_by(domain_name: domain_name) + dispute.update(closed: true) if dispute.present? + end + def set_expiry_date return if starts_at.blank? diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 3c687ea36..17046a8f1 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -53,7 +53,7 @@ class Epp::Domain < Domain def epp_code_map { '2002' => [ # Command use error - %i[base domain_already_belongs_to_the_querying_registrar] + %i[base domain_already_belongs_to_the_querying_registrar], ], '2003' => [ # Required parameter missing %i[registrant blank], @@ -86,7 +86,7 @@ class Epp::Domain < Domain [:puny_label, :too_long, { obj: 'name', val: name_puny }] ], '2201' => [ # Authorisation error - %i[transfer_code wrong_pw] + %i[transfer_code wrong_pw], ], '2202' => [ %i[base invalid_auth_information_reserved], From eff87d002b60d9a896361ed2423df1af1d7b12ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Apr 2020 15:31:54 +0300 Subject: [PATCH 435/757] Rollback SimpleCov to 0.17.1 --- Gemfile | 2 +- Gemfile.lock | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index c9516fa26..851094689 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ group :test do gem 'capybara' gem 'database_cleaner' gem 'minitest', '~> 5.14' - gem 'simplecov', require: false + gem 'simplecov', '0.17.1', require: false # CC last supported v0.17 gem 'webdrivers' gem 'webmock' end diff --git a/Gemfile.lock b/Gemfile.lock index 5aedfda95..fe737f7ac 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -413,10 +413,11 @@ GEM selenium-webdriver (3.142.7) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) - simplecov (0.18.1) + simplecov (0.17.1) docile (~> 1.1) - simplecov-html (~> 0.11.0) - simplecov-html (0.11.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.2) simpleidn (0.0.9) sinatra (2.0.8.1) mustermann (~> 1.0) @@ -521,7 +522,7 @@ DEPENDENCIES sdoc (= 0.4.1) select2-rails (= 3.5.9.3) selectize-rails (= 0.12.1) - simplecov + simplecov (= 0.17.1) simpleidn (= 0.0.9) uglifier validates_email_format_of (= 1.6.3) From cca7745c641c8766a40bc45ec74aa5ee7e0e7f0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Apr 2020 18:24:08 +0300 Subject: [PATCH 436/757] Improve WhoisRecord create/update for disputed domain --- app/jobs/update_whois_record_job.rb | 11 ++++++++--- app/models/dispute.rb | 29 ++++++++++++++++++++--------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/jobs/update_whois_record_job.rb b/app/jobs/update_whois_record_job.rb index cd35823e6..0642aed8d 100644 --- a/app/jobs/update_whois_record_job.rb +++ b/app/jobs/update_whois_record_job.rb @@ -1,13 +1,13 @@ class UpdateWhoisRecordJob < Que::Job def run(names, type) - ::PaperTrail.whodunnit = "job - #{self.class.name} - #{type}" + ::PaperTrail.request.whodunnit = "job - #{self.class.name} - #{type}" klass = case type when 'reserved' then ReservedDomain when 'blocked' then BlockedDomain when 'domain' then Domain - when 'disputed' then Dispute + when 'disputed' then Dispute.active end Array(names).each do |name| @@ -56,6 +56,11 @@ class UpdateWhoisRecordJob < Que::Job end def delete_disputed(name) - delete_reserved(name) + return if Dispute.active.find_by(domain_name: name).present? + + Whois::Record.where(name: name).each do |r| + r.json['status'] = r.json['status'].delete_if { |status| status == 'disputed' } + r.save! + end end end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index e4d27aeb8..42ea9ff79 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -12,6 +12,7 @@ class Dispute < ApplicationRecord end before_save :set_expiry_date before_save :sync_reserved_password + before_save :generate_data after_destroy :remove_data scope :expired, -> { where('expires_at < ?', Time.zone.today) } @@ -36,23 +37,33 @@ class Dispute < ApplicationRecord end def generate_data - return if Domain.where(name: domain_name).any? - wr = Whois::Record.find_or_initialize_by(name: domain_name) - wr.json = @json = generate_json # we need @json to bind to class - wr.save + if Domain.where(name: domain_name).any? + @json = wr.json.with_indifferent_access + @json[:status] << 'disputed' unless @json[:status].include? 'disputed' + wr.json = @json + else + wr.json = @json = generate_json(wr) # we need @json to bind to class + end + wr.save! end + alias_method :update_whois_record, :generate_data + def close self.closed = true save! end - def generate_json - h = HashWithIndifferentAccess.new - h[:name] = domain_name - h[:status] = ['Disputed'] - h + def generate_json(record) + h = HashWithIndifferentAccess.new(name: domain_name, status: ['disputed']) + return h if record.json.empty? + + status_arr = (record.json['status'] ||= []) + status_arr.push('disputed') unless status_arr.include? 'disputed' + + record.json['status'] = status_arr + record.json end def remove_data From 8b6a615dfd62299e38ea726c609b0f36d5a510d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 27 Apr 2020 21:26:40 +0300 Subject: [PATCH 437/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index be1445146..a43dcff83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +27.04.2020 +* Downgrade SimpleCov to 0.17 due to incompatibiilty with CodeClimate [#1575](https://github.com/internetee/registry/pull/1575) + 17.04.2020 * Webinterfaces have now clickable version string pointing to the latest deployed commit in github [#1345](https://github.com/internetee/registry/pull/1345) From 26e7fd870c5964a1ecfea2d7f352500d4d86f4cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 29 Apr 2020 15:44:52 +0300 Subject: [PATCH 438/757] Apply dispute statusses via DisputeStatusUpdateJob --- app/jobs/dispute_status_update_job.rb | 67 +++++++++++++++++++++++++++ app/jobs/update_whois_record_job.rb | 2 +- app/models/dispute.rb | 42 ++++++++++++----- 3 files changed, 99 insertions(+), 12 deletions(-) create mode 100644 app/jobs/dispute_status_update_job.rb diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb new file mode 100644 index 000000000..5f8f1c6b1 --- /dev/null +++ b/app/jobs/dispute_status_update_job.rb @@ -0,0 +1,67 @@ +class DisputeStatusUpdateJob < Que::Job + def run + @backlog = { activated: 0, closed: 0, active_fail: [], close_fail: [] } + + close_disputes + activate_disputes + + Rails.logger.info "DisputeStatusCloseJob - All done. Closed #{@backlog[:closed]} and " \ + "activated #{@backlog[:closed]} disputes." + + show_failed_disputes unless @backlog[:active_fail].empty? && @backlog[:close_fail].empty? + end + + def close_disputes + disputes = Dispute.where(closed: false).where('expires_at < ?', Date.today).all + Rails.logger.info "DisputeStatusCloseJob - Found #{disputes.count} closable disputes" + disputes.each do |dispute| + puts "attempnt" + close_dispute(dispute) + end + end + + def activate_disputes + disputes = Dispute.where(closed: false, starts_at: Date.today).all + Rails.logger.info "DisputeStatusCloseJob - Found #{disputes.count} activatable disputes" + + disputes.each do |dispute| + activate_dispute(dispute) + end + end + + def close_dispute(dispute) + if dispute.close + Rails.logger.info 'DisputeStatusCloseJob - Closed dispute ' \ + "##{dispute.id} for '#{dispute.domain_name}'" + @backlog[:closed] += 1 + else + Rails.logger.info 'DisputeStatusCloseJob - Failed to close dispute ' \ + "##{dispute.id} for '#{dispute.domain_name}'" + @backlog[:close_fail] << dispute.id + end + end + + def activate_dispute(dispute) + if dispute.generate_data + Rails.logger.info 'DisputeStatusCloseJob - Activated dispute ' \ + "##{dispute.id} for '#{dispute.domain_name}'" + @backlog[:activated] += 1 + else + Rails.logger.info 'DisputeStatusCloseJob - Failed to activate dispute ' \ + "##{dispute.id} for '#{dispute.domain_name}'" + @backlog[:active_fail] << dispute.id + end + end + + def show_failed_disputes + if @backlog[:close_fail].any? + Rails.logger.info('DisputeStatuseCloseJob - Failed to close disputes with Ids:' \ + "#{@backlog[:close_fail]}") + end + + return unless @backlog[:active_fail].any? + + Rails.logger.info('DisputeStatuseCloseJob - Failed to activate disputes with Ids:' \ + "#{@backlog[:active_fail]}") + end +end diff --git a/app/jobs/update_whois_record_job.rb b/app/jobs/update_whois_record_job.rb index 0642aed8d..4740a12cb 100644 --- a/app/jobs/update_whois_record_job.rb +++ b/app/jobs/update_whois_record_job.rb @@ -60,7 +60,7 @@ class UpdateWhoisRecordJob < Que::Job Whois::Record.where(name: name).each do |r| r.json['status'] = r.json['status'].delete_if { |status| status == 'disputed' } - r.save! + r.json['status'].blank? ? r.destroy : r.save end end end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 42ea9ff79..a548ba7b5 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -15,8 +15,8 @@ class Dispute < ApplicationRecord before_save :generate_data after_destroy :remove_data - scope :expired, -> { where('expires_at < ?', Time.zone.today) } - scope :active, -> { where('expires_at > ? AND closed = false', Time.zone.today) } + scope :expired, -> { where('expires_at < ?', Date.today) } + scope :active, -> { where('expires_at > ? AND closed = false', Date.today) } scope :closed, -> { where(closed: true) } alias_attribute :name, :domain_name @@ -26,6 +26,10 @@ class Dispute < ApplicationRecord dispute.update(closed: true) if dispute.present? end + def for_active_domain? + Domain.where(name: domain_name).any? + end + def set_expiry_date return if starts_at.blank? @@ -37,27 +41,43 @@ class Dispute < ApplicationRecord end def generate_data + return if starts_at > Date.today + wr = Whois::Record.find_or_initialize_by(name: domain_name) - if Domain.where(name: domain_name).any? - @json = wr.json.with_indifferent_access - @json[:status] << 'disputed' unless @json[:status].include? 'disputed' - wr.json = @json + if for_active_domain? + wr.json['status'] << 'disputed' unless wr.json['status'].include? 'disputed' else - wr.json = @json = generate_json(wr) # we need @json to bind to class + wr.json = generate_json(wr) # we need @json to bind to class end - wr.save! + wr.save end alias_method :update_whois_record, :generate_data def close - self.closed = true - save! + return false unless update(closed: true) + return if Dispute.active.where(domain_name: domain_name).any? + + puts "PASS" + whois_record = Whois::Record.find_or_initialize_by(name: domain_name) + return true if remove_whois_data(whois_record) + + false + end + + def remove_whois_data(record) + record.json['status'] = record.json['status'].delete_if { |status| status == 'disputed' } + if record.json['status'].blank? + return true if record.destroy + + return false + end + record.save end def generate_json(record) h = HashWithIndifferentAccess.new(name: domain_name, status: ['disputed']) - return h if record.json.empty? + return h if record.json.blank? status_arr = (record.json['status'] ||= []) status_arr.push('disputed') unless status_arr.include? 'disputed' From b2c2342d7d2496d3450f3f8567c20ee1cdf6178c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 29 Apr 2020 15:51:10 +0300 Subject: [PATCH 439/757] Clear CC issues --- app/jobs/dispute_status_update_job.rb | 5 ++--- app/models/dispute.rb | 7 +++---- app/models/domain.rb | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index 5f8f1c6b1..c6d048045 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -12,16 +12,15 @@ class DisputeStatusUpdateJob < Que::Job end def close_disputes - disputes = Dispute.where(closed: false).where('expires_at < ?', Date.today).all + disputes = Dispute.where(closed: false).where('expires_at < ?', Time.zone.today).all Rails.logger.info "DisputeStatusCloseJob - Found #{disputes.count} closable disputes" disputes.each do |dispute| - puts "attempnt" close_dispute(dispute) end end def activate_disputes - disputes = Dispute.where(closed: false, starts_at: Date.today).all + disputes = Dispute.where(closed: false, starts_at: Time.zone.today).all Rails.logger.info "DisputeStatusCloseJob - Found #{disputes.count} activatable disputes" disputes.each do |dispute| diff --git a/app/models/dispute.rb b/app/models/dispute.rb index a548ba7b5..754fc4208 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -15,8 +15,8 @@ class Dispute < ApplicationRecord before_save :generate_data after_destroy :remove_data - scope :expired, -> { where('expires_at < ?', Date.today) } - scope :active, -> { where('expires_at > ? AND closed = false', Date.today) } + scope :expired, -> { where('expires_at < ?', Time.zone.today) } + scope :active, -> { where('expires_at > ? AND closed = false', Time.zone.today) } scope :closed, -> { where(closed: true) } alias_attribute :name, :domain_name @@ -41,7 +41,7 @@ class Dispute < ApplicationRecord end def generate_data - return if starts_at > Date.today + return if starts_at > Time.zone.today wr = Whois::Record.find_or_initialize_by(name: domain_name) if for_active_domain? @@ -58,7 +58,6 @@ class Dispute < ApplicationRecord return false unless update(closed: true) return if Dispute.active.where(domain_name: domain_name).any? - puts "PASS" whois_record = Whois::Record.find_or_initialize_by(name: domain_name) return true if remove_whois_data(whois_record) diff --git a/app/models/domain.rb b/app/models/domain.rb index 011d02ec7..229e806fb 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -294,7 +294,7 @@ class Domain < ApplicationRecord def renewable? if Setting.days_to_renew_domain_before_expire != 0 # if you can renew domain at days_to_renew before domain expiration - if (expire_time.to_date - Date.today) + 1 > Setting.days_to_renew_domain_before_expire + if (expire_time.to_date - Time.zone.today) + 1 > Setting.days_to_renew_domain_before_expire return false end end From b4b43afa56ac8d5eb8a30f556c40879809afe5b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 29 Apr 2020 16:24:35 +0300 Subject: [PATCH 440/757] Reduce complexity for dispute whois generation --- app/models/dispute.rb | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 754fc4208..b9cabdeaa 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -26,10 +26,6 @@ class Dispute < ApplicationRecord dispute.update(closed: true) if dispute.present? end - def for_active_domain? - Domain.where(name: domain_name).any? - end - def set_expiry_date return if starts_at.blank? @@ -44,11 +40,7 @@ class Dispute < ApplicationRecord return if starts_at > Time.zone.today wr = Whois::Record.find_or_initialize_by(name: domain_name) - if for_active_domain? - wr.json['status'] << 'disputed' unless wr.json['status'].include? 'disputed' - else - wr.json = generate_json(wr) # we need @json to bind to class - end + wr.json = generate_json(wr) wr.save end @@ -75,12 +67,12 @@ class Dispute < ApplicationRecord end def generate_json(record) + status_arr = (record.json['status'] ||= []) h = HashWithIndifferentAccess.new(name: domain_name, status: ['disputed']) return h if record.json.blank? + return record.json if status_arr.include? 'disputed' - status_arr = (record.json['status'] ||= []) - status_arr.push('disputed') unless status_arr.include? 'disputed' - + status_arr.push('disputed') record.json['status'] = status_arr record.json end From 6f95925e996077e8221e7e49605b21bbd20da7b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 29 Apr 2020 16:42:34 +0300 Subject: [PATCH 441/757] Eliminate duplicated code from dispute update job --- app/jobs/dispute_status_update_job.rb | 48 ++++++++++++--------------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index c6d048045..c1cca5a78 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -1,54 +1,48 @@ class DisputeStatusUpdateJob < Que::Job def run - @backlog = { activated: 0, closed: 0, active_fail: [], close_fail: [] } + @backlog = { 'activated': 0, 'closed': 0, 'activate_fail': [], 'close_fail': [] } close_disputes activate_disputes - Rails.logger.info "DisputeStatusCloseJob - All done. Closed #{@backlog[:closed]} and " \ + Rails.logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog[:closed]} and " \ "activated #{@backlog[:closed]} disputes." - show_failed_disputes unless @backlog[:active_fail].empty? && @backlog[:close_fail].empty? + show_failed_disputes unless @backlog[:activate_fail].empty? && @backlog[:close_fail].empty? end def close_disputes disputes = Dispute.where(closed: false).where('expires_at < ?', Time.zone.today).all - Rails.logger.info "DisputeStatusCloseJob - Found #{disputes.count} closable disputes" + Rails.logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes" disputes.each do |dispute| - close_dispute(dispute) + process_dispute(dispute, closing: true) end end def activate_disputes disputes = Dispute.where(closed: false, starts_at: Time.zone.today).all - Rails.logger.info "DisputeStatusCloseJob - Found #{disputes.count} activatable disputes" + Rails.logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes" disputes.each do |dispute| - activate_dispute(dispute) + process_dispute(dispute, closing: false) end end - def close_dispute(dispute) - if dispute.close - Rails.logger.info 'DisputeStatusCloseJob - Closed dispute ' \ - "##{dispute.id} for '#{dispute.domain_name}'" - @backlog[:closed] += 1 - else - Rails.logger.info 'DisputeStatusCloseJob - Failed to close dispute ' \ - "##{dispute.id} for '#{dispute.domain_name}'" - @backlog[:close_fail] << dispute.id - end + def process_dispute(dispute, closing: false) + intent = closing ? 'close' : 'activate' + success = closing ? dispute.close : dispute.generate_data + create_backlog_entry(dispute: dispute, intent: intent, successful: success) end - def activate_dispute(dispute) - if dispute.generate_data - Rails.logger.info 'DisputeStatusCloseJob - Activated dispute ' \ - "##{dispute.id} for '#{dispute.domain_name}'" - @backlog[:activated] += 1 + def create_backlog_entry(dispute:, intent:, successful:) + if successful + @backlog["#{intent}d"] << dispute.id + Rails.logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \ + " for '#{dispute.domain_name}'" else - Rails.logger.info 'DisputeStatusCloseJob - Failed to activate dispute ' \ - "##{dispute.id} for '#{dispute.domain_name}'" - @backlog[:active_fail] << dispute.id + @backlog["#{intent}_fail"] << dispute.id + Rails.logger.info 'DisputeStatusUpdateJob - Failed to' \ + "#{intent} dispute for '#{dispute.domain_name}'" end end @@ -58,9 +52,9 @@ class DisputeStatusUpdateJob < Que::Job "#{@backlog[:close_fail]}") end - return unless @backlog[:active_fail].any? + return unless @backlog[:activate_fail].any? Rails.logger.info('DisputeStatuseCloseJob - Failed to activate disputes with Ids:' \ - "#{@backlog[:active_fail]}") + "#{@backlog[:activate_fail]}") end end From ffa529c97b3b0091510831ccb8838189c4561d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Apr 2020 08:19:17 +0300 Subject: [PATCH 442/757] Sync password between reserved/disputed --- app/models/reserved_domain.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/models/reserved_domain.rb b/app/models/reserved_domain.rb index 11c9bb2f5..898b9efee 100644 --- a/app/models/reserved_domain.rb +++ b/app/models/reserved_domain.rb @@ -2,6 +2,7 @@ class ReservedDomain < ApplicationRecord include Versions # version/reserved_domain_version.rb before_save :fill_empty_passwords before_save :generate_data + before_save :sync_dispute_password after_destroy :remove_data validates :name, domain_name: true, uniqueness: true @@ -41,6 +42,11 @@ class ReservedDomain < ApplicationRecord self.password = SecureRandom.hex end + def sync_dispute_password + dispute = Dispute.active.find_by(domain_name: domain_name) + self.password = dispute.password if dispute.present? + end + def generate_data return if Domain.where(name: name).any? From 5fabfc7f24a8fa89f8adaf22719d7671ccfbc101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Apr 2020 08:34:08 +0300 Subject: [PATCH 443/757] Improve domain zone validation for new Dispute --- app/models/dispute.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/dispute.rb b/app/models/dispute.rb index b9cabdeaa..c0579cd2c 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -108,7 +108,7 @@ class Dispute < ApplicationRecord def validate_domain_name_format return unless domain_name - zone = domain_name.split('.').last + zone = domain_name.reverse.rpartition('.').map(&:reverse).reverse.last supported_zone = DNS::Zone.origins.include?(zone) errors.add(:domain_name, :unsupported_zone) unless supported_zone From f73833e478197e1e77b49012912c0e8547dd220b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Apr 2020 08:35:17 +0300 Subject: [PATCH 444/757] Ignore domain_name attribute on dispute update --- app/controllers/admin/disputes_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 82b48149b..8292bc464 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -35,7 +35,7 @@ module Admin # PATCH/PUT /admin/disputes/1 def update - if @dispute.update(dispute_params) + if @dispute.update(dispute_params.except(:domain_name)) redirect_to admin_disputes_url, notice: 'Dispute was successfully updated.' else render :edit From c4e46149e88d815ea9b21c4f4f17e707cb7f5dfb Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 30 Apr 2020 13:01:01 +0500 Subject: [PATCH 445/757] Fix presence of ignored fields in history Closes #1576 --- app/models/concerns/versions.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index 9ffd17e9a..01766b233 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -70,7 +70,8 @@ module Versions valid_columns = ver.item_type.constantize&.column_names o = new(ver.object&.slice(*valid_columns)) o.version_loader = ver - ver.object_changes.to_h.each { |k, v| o.public_send("#{k}=", v[-1]) } + changes = ver.object_changes.to_h&.slice(*valid_columns) + changes.each { |k, v| o.public_send("#{k}=", v[-1]) } o end not_in_history = where(id: (ids.to_a - from_history.map(&:id))) From 1a58d85f15fc5a3791bc11d3824d659b7aa93935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 30 Apr 2020 12:20:30 +0300 Subject: [PATCH 446/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a43dcff83..cdc184c6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +30.04.2020 +* Fix for internal error on opening domain history with legacy id record [#1576](https://github.com/internetee/registry/issues/1576) + 27.04.2020 * Downgrade SimpleCov to 0.17 due to incompatibiilty with CodeClimate [#1575](https://github.com/internetee/registry/pull/1575) From 483eec554e769527c027d27c52cfa57f18ab07db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Apr 2020 08:59:27 +0300 Subject: [PATCH 447/757] Create tests for Dispute --- app/jobs/dispute_status_update_job.rb | 21 +++--- app/models/dispute.rb | 20 +++--- app/models/reserved_domain.rb | 2 +- test/fixtures/disputes.yml | 24 +++++++ test/integration/admin_area/disputes_test.rb | 60 ++++++++++++++++ test/jobs/dispute_status_update_job_test.rb | 70 +++++++++++++++++++ test/models/disputed_domain_test.rb | 52 ++++++++++++++ test/system/admin_area/bank_statement_test.rb | 2 +- 8 files changed, 228 insertions(+), 23 deletions(-) create mode 100644 test/fixtures/disputes.yml create mode 100644 test/integration/admin_area/disputes_test.rb create mode 100644 test/jobs/dispute_status_update_job_test.rb create mode 100644 test/models/disputed_domain_test.rb diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index c1cca5a78..736b65236 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -1,14 +1,15 @@ class DisputeStatusUpdateJob < Que::Job def run @backlog = { 'activated': 0, 'closed': 0, 'activate_fail': [], 'close_fail': [] } + .with_indifferent_access close_disputes activate_disputes - Rails.logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog[:closed]} and " \ - "activated #{@backlog[:closed]} disputes." + Rails.logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog['closed']} and " \ + "activated #{@backlog['activated']} disputes." - show_failed_disputes unless @backlog[:activate_fail].empty? && @backlog[:close_fail].empty? + show_failed_disputes unless @backlog['activate_fail'].empty? && @backlog['close_fail'].empty? end def close_disputes @@ -36,7 +37,7 @@ class DisputeStatusUpdateJob < Que::Job def create_backlog_entry(dispute:, intent:, successful:) if successful - @backlog["#{intent}d"] << dispute.id + @backlog["#{intent}d"] += 1 Rails.logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \ " for '#{dispute.domain_name}'" else @@ -47,14 +48,14 @@ class DisputeStatusUpdateJob < Que::Job end def show_failed_disputes - if @backlog[:close_fail].any? - Rails.logger.info('DisputeStatuseCloseJob - Failed to close disputes with Ids:' \ - "#{@backlog[:close_fail]}") + if @backlog['close_fail'].any? + Rails.logger.info('DisputeStatusUpdateJob - Failed to close disputes with Ids:' \ + "#{@backlog['close_fail']}") end - return unless @backlog[:activate_fail].any? + return unless @backlog['activate_fail'].any? - Rails.logger.info('DisputeStatuseCloseJob - Failed to activate disputes with Ids:' \ - "#{@backlog[:activate_fail]}") + Rails.logger.info('DisputeStatusUpdateJob - Failed to activate disputes with Ids:' \ + "#{@backlog['activate_fail']}") end end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index c0579cd2c..19644c5f8 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -16,7 +16,7 @@ class Dispute < ApplicationRecord after_destroy :remove_data scope :expired, -> { where('expires_at < ?', Time.zone.today) } - scope :active, -> { where('expires_at > ? AND closed = false', Time.zone.today) } + scope :active, -> { where('expires_at >= ? AND closed = false', Time.zone.today) } scope :closed, -> { where(closed: true) } alias_attribute :name, :domain_name @@ -52,24 +52,21 @@ class Dispute < ApplicationRecord whois_record = Whois::Record.find_or_initialize_by(name: domain_name) return true if remove_whois_data(whois_record) - - false end def remove_whois_data(record) record.json['status'] = record.json['status'].delete_if { |status| status == 'disputed' } if record.json['status'].blank? - return true if record.destroy - - return false + return true if record.destroy && record.json['status'].blank? end record.save end def generate_json(record) - status_arr = (record.json['status'] ||= []) h = HashWithIndifferentAccess.new(name: domain_name, status: ['disputed']) return h if record.json.blank? + + status_arr = (record.json['status'] ||= []) return record.json if status_arr.include? 'disputed' status_arr.push('disputed') @@ -115,12 +112,13 @@ class Dispute < ApplicationRecord end def validate_domain_name_period_uniqueness - return unless new_record? - existing_dispute = Dispute.unscoped.where(domain_name: domain_name, closed: false) - .where('expires_at > ?', starts_at) + .where('expires_at >= ?', starts_at) + + existing_dispute = existing_dispute.where.not(id: id) unless new_record? + return unless existing_dispute.any? - errors.add(:base, 'Dispute already exists for this domain at given timeframe') + errors.add(:starts_at, 'Dispute already exists for this domain at given timeframe') end end diff --git a/app/models/reserved_domain.rb b/app/models/reserved_domain.rb index 898b9efee..9ee85548b 100644 --- a/app/models/reserved_domain.rb +++ b/app/models/reserved_domain.rb @@ -43,7 +43,7 @@ class ReservedDomain < ApplicationRecord end def sync_dispute_password - dispute = Dispute.active.find_by(domain_name: domain_name) + dispute = Dispute.active.find_by(domain_name: name) self.password = dispute.password if dispute.present? end diff --git a/test/fixtures/disputes.yml b/test/fixtures/disputes.yml new file mode 100644 index 000000000..3e6b882f4 --- /dev/null +++ b/test/fixtures/disputes.yml @@ -0,0 +1,24 @@ +active: + domain_name: active-dispute.test + password: active-001 + starts_at: <%= Date.parse '2010-07-05' %> + expires_at: <%= Date.parse '2013-07-05' %> + closed: false +future: + domain_name: future-dispute.test + password: active-001 + starts_at: <%= Date.parse '2010-10-05' %> + expires_at: <%= Date.parse '2013-10-05' %> + closed: false +expired: + domain_name: expired-dispute.test + password: active-001 + starts_at: <%= Date.parse '2010-07-05' %> + expires_at: <%= Date.parse '2013-07-05' %> + closed: true +closed: + domain_name: closed_dispute.test + password: active-001 + starts_at: <%= Date.parse '2010-07-05' %> + expires_at: <%= Date.parse '2013-07-05' %> + closed: true diff --git a/test/integration/admin_area/disputes_test.rb b/test/integration/admin_area/disputes_test.rb new file mode 100644 index 000000000..fcd06f759 --- /dev/null +++ b/test/integration/admin_area/disputes_test.rb @@ -0,0 +1,60 @@ +require 'application_system_test_case' +require 'test_helper' + +class AdminDisputesSystemTest < ApplicationSystemTestCase + include ActionView::Helpers::NumberHelper + + setup do + @dispute = disputes(:active) + @original_default_language = Setting.default_language + sign_in users(:admin) + end + + teardown do + Setting.default_language = @original_default_language + end + + def test_creates_new_dispute + assert_nil Dispute.active.find_by(domain_name: 'disputed.test') + + visit admin_disputes_path + click_on 'New domain dispute' + + fill_in 'Domain name', with: 'disputed.test' + fill_in 'Password', with: '1234' + fill_in 'Starts at', with: Time.zone.today.to_s + fill_in 'Comment', with: 'Sample comment' + click_on 'Save' + + assert_text 'Dispute was successfully created.' + assert_text 'disputed.test' + end + + def test_updates_dispute + assert_not_equal Time.zone.today, @dispute.starts_at + + visit edit_admin_dispute_path(@dispute) + fill_in 'Starts at', with: Time.zone.today.to_s + click_link_or_button 'Save' + + assert_text 'Dispute was successfully updated' + assert_text Time.zone.today + end + + def test_deletes_dispute + visit delete_admin_dispute_path(@dispute) + + assert_text 'Dispute was successfully destroyed.' + end + + def test_can_not_create_overlapping_dispute + visit admin_disputes_path + click_on 'New domain dispute' + + fill_in 'Domain name', with: 'active-dispute.test' + fill_in 'Starts at', with: @dispute.starts_at + 1.day + click_on 'Save' + + assert_text 'Dispute already exists for this domain at given timeframe' + end +end diff --git a/test/jobs/dispute_status_update_job_test.rb b/test/jobs/dispute_status_update_job_test.rb new file mode 100644 index 000000000..a91dc63d5 --- /dev/null +++ b/test/jobs/dispute_status_update_job_test.rb @@ -0,0 +1,70 @@ +require "test_helper" + +class DisputeStatusUpdateJobTest < ActiveSupport::TestCase + setup do + travel_to Time.zone.parse('2010-10-05') + end + + def test_nothing_is_raised + assert_nothing_raised do + DisputeStatusUpdateJob.run + end + end + + def test_whois_data_added_when_dispute_activated + dispute = disputes(:future) + DisputeStatusUpdateJob.run + + whois_record = Whois::Record.find_by(name: dispute.domain_name) + assert whois_record.present? + assert_includes whois_record.json['status'], 'disputed' + end + + def test_unregistered_domain_whois_data_is_deleted + dispute = disputes(:active) + dispute.update!(starts_at: Time.zone.today - 3.years - 1.day) + + DisputeStatusUpdateJob.run + dispute.reload + + assert dispute.closed + + whois_record = Whois::Record.find_by(name: dispute.domain_name) + assert whois_record.nil? + end + + def test_registered_domain_whois_data_is_added + Dispute.create(domain_name: 'shop.test', starts_at: '2010-07-05') + travel_to Time.zone.parse('2010-07-05') + DisputeStatusUpdateJob.run + + whois_record = Whois::Record.find_by(name: 'shop.test') + assert_includes whois_record.json['status'], 'disputed' + end + + def test_registered_domain_whois_data_is_removed + travel_to Time.zone.parse('2010-07-05') + + domain = domains(:shop) + domain.update(valid_to: Time.zone.parse('2015-07-05').to_s(:db), + outzone_at: Time.zone.parse('2015-07-06').to_s(:db), + delete_date: nil, + force_delete_date: nil) + + # Dispute status is added automatically if starts_at is not in future + Dispute.create(domain_name: 'shop.test', starts_at: Time.zone.parse('2010-07-05')) + domain.reload + + whois_record = Whois::Record.find_by(name: 'shop.test') + assert_includes whois_record.json['status'], 'disputed' + + # Dispute status is removed night time day after it's ended + travel_to Time.zone.parse('2010-07-05') + 3.years + 1.day + + DisputeStatusUpdateJob.run + + whois_record.reload + assert_not whois_record.json['status'].include? 'disputed' + puts whois_record.json['status'] + end +end diff --git a/test/models/disputed_domain_test.rb b/test/models/disputed_domain_test.rb new file mode 100644 index 000000000..01897e19b --- /dev/null +++ b/test/models/disputed_domain_test.rb @@ -0,0 +1,52 @@ +require 'test_helper' + +class DisputedDomainTest < ActiveSupport::TestCase + setup do + @dispute = disputes(:active) + end + + def test_fixture_is_valid + assert @dispute.valid? + end + + def test_can_be_closed_by_domain_name + travel_to Time.zone.parse('2010-10-05') + + Dispute.close_by_domain(@dispute.domain_name) + @dispute.reload + + assert @dispute.closed + end + + def test_syncs_password_to_reserved + dispute = Dispute.new(domain_name: 'reserved.test', starts_at: Time.zone.today, password: 'disputepw') + dispute.save + dispute.reload + assert_equal dispute.password, ReservedDomain.find_by(name: dispute.domain_name).password + end + + def test_domain_name_zone_is_validated + dispute = Dispute.new(domain_name: 'correct.test', starts_at: Time.zone.today) + assert dispute.valid? + + dispute.domain_name = 'zone.is.unrecognized.test' + assert_not dispute.valid? + end + + def test_dispute_can_not_be_created_if_another_active_is_present + dispute = Dispute.new(domain_name: @dispute.domain_name, + starts_at: @dispute.starts_at + 1.day) + assert_not dispute.valid? + end + + def test_expires_at_date_is_appended_automatically + dispute = Dispute.new(domain_name: 'random.test', starts_at: Time.zone.today) + assert dispute.valid? + assert_equal dispute.expires_at, dispute.starts_at + 3.years + end + + def test_starts_at_must_be_present + dispute = Dispute.new(domain_name: 'random.test') + assert_not dispute.valid? + end +end diff --git a/test/system/admin_area/bank_statement_test.rb b/test/system/admin_area/bank_statement_test.rb index c95035a8d..29ed4f312 100644 --- a/test/system/admin_area/bank_statement_test.rb +++ b/test/system/admin_area/bank_statement_test.rb @@ -1,6 +1,6 @@ require 'application_system_test_case' -class BankStatementTest < ApplicationSystemTestCase +class AdminBankStatementsSystemTest < ApplicationSystemTestCase setup do sign_in users(:admin) travel_to Time.zone.parse('2010-07-05 00:30:00') From 928f96691cc8d8e270af06c2f1fd8628f55286f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 4 May 2020 08:14:56 +0300 Subject: [PATCH 448/757] Make dispute domain_name read only --- app/models/dispute.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 19644c5f8..a83157ecd 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -1,5 +1,3 @@ -# frozen_string_literal: true - class Dispute < ApplicationRecord validates :domain_name, :password, :starts_at, :expires_at, presence: true before_validation :fill_empty_passwords @@ -10,6 +8,7 @@ class Dispute < ApplicationRecord with_options on: :admin do validate :validate_start_date end + before_save :set_expiry_date before_save :sync_reserved_password before_save :generate_data @@ -19,6 +18,8 @@ class Dispute < ApplicationRecord scope :active, -> { where('expires_at >= ? AND closed = false', Time.zone.today) } scope :closed, -> { where(closed: true) } + attr_readonly :domain_name + alias_attribute :name, :domain_name def self.close_by_domain(domain_name) @@ -97,6 +98,7 @@ class Dispute < ApplicationRecord private def validate_start_date + puts 'EXECUTED' return if starts_at.nil? errors.add(:starts_at, :past) if starts_at.past? From 1dc2cf8e128923605d7ce1c950405f17f2b20f61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 4 May 2020 09:06:33 +0300 Subject: [PATCH 449/757] Check for domain dispute on create --- app/controllers/epp/domains_controller.rb | 2 +- app/models/dispute.rb | 5 ++++- app/models/domain.rb | 21 +++++++++++++++++++- test/integration/admin_area/disputes_test.rb | 16 +++++++++++++++ test/jobs/dispute_status_update_job_test.rb | 1 - 5 files changed, 41 insertions(+), 4 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 9a162a455..4e91632e5 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -92,7 +92,7 @@ module Epp status: Auction.statuses[:payment_received]) active_auction.domain_registered! end - + Dispute.close_by_domain(@domain.name) render_epp_response '/epp/domains/create' else handle_errors(@domain) diff --git a/app/models/dispute.rb b/app/models/dispute.rb index a83157ecd..b80a33e9c 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -27,6 +27,10 @@ class Dispute < ApplicationRecord dispute.update(closed: true) if dispute.present? end + def self.valid_auth?(domain_name, password) + Dispute.active.find_by(domain_name: domain_name, password: password).present? + end + def set_expiry_date return if starts_at.blank? @@ -98,7 +102,6 @@ class Dispute < ApplicationRecord private def validate_start_date - puts 'EXECUTED' return if starts_at.nil? errors.add(:starts_at, :past) if starts_at.past? diff --git a/app/models/domain.rb b/app/models/domain.rb index 229e806fb..82921e3ab 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -90,7 +90,7 @@ class Domain < ApplicationRecord validates :transfer_code, presence: true validate :validate_reservation - + validate :validate_disputed def validate_reservation return if persisted? || !in_reserved_list? @@ -104,6 +104,19 @@ class Domain < ApplicationRecord errors.add(:base, :invalid_auth_information_reserved) end + def validate_disputed + return if persisted? || !in_disputed_list? + + if reserved_pw.blank? + errors.add(:base, :required_parameter_missing_reserved) + return false + end + + return if Dispute.valid_auth?(name, reserved_pw) + + errors.add(:base, :invalid_auth_information_reserved) + end + validate :status_is_consistant def status_is_consistant has_error = (statuses.include?(DomainStatus::SERVER_HOLD) && statuses.include?(DomainStatus::SERVER_MANUAL_INZONE)) @@ -277,6 +290,10 @@ class Domain < ApplicationRecord @in_reserved_list ||= ReservedDomain.by_domain(name).any? end + def in_disputed_list? + @in_disputed_list ||= Dispute.active.find_by(domain_name: name).present? + end + def disputed? Dispute.active.where(domain_name: name).any? end @@ -302,6 +319,8 @@ class Domain < ApplicationRecord return false if statuses.include_any?(DomainStatus::DELETE_CANDIDATE, DomainStatus::PENDING_RENEW, DomainStatus::PENDING_TRANSFER, DomainStatus::PENDING_DELETE, DomainStatus::PENDING_UPDATE, DomainStatus::PENDING_DELETE_CONFIRMATION) + return false if disputed? + true end diff --git a/test/integration/admin_area/disputes_test.rb b/test/integration/admin_area/disputes_test.rb index fcd06f759..1806eaea4 100644 --- a/test/integration/admin_area/disputes_test.rb +++ b/test/integration/admin_area/disputes_test.rb @@ -30,6 +30,22 @@ class AdminDisputesSystemTest < ApplicationSystemTestCase assert_text 'disputed.test' end + def test_throws_error_if_starts_at_is_past + assert_nil Dispute.active.find_by(domain_name: 'disputed.test') + + visit admin_disputes_path + click_on 'New domain dispute' + + fill_in 'Domain name', with: 'disputed.test' + fill_in 'Password', with: '1234' + fill_in 'Starts at', with: (Time.zone.today - 2.day).to_s + fill_in 'Comment', with: 'Sample comment' + click_on 'Save' + + assert_text 'Dispute was successfully created.' + assert_text 'disputed.test' + end + def test_updates_dispute assert_not_equal Time.zone.today, @dispute.starts_at diff --git a/test/jobs/dispute_status_update_job_test.rb b/test/jobs/dispute_status_update_job_test.rb index a91dc63d5..a66db3459 100644 --- a/test/jobs/dispute_status_update_job_test.rb +++ b/test/jobs/dispute_status_update_job_test.rb @@ -65,6 +65,5 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase whois_record.reload assert_not whois_record.json['status'].include? 'disputed' - puts whois_record.json['status'] end end From a270fc84226d594acc2fa7e67930162e8ddc3254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 4 May 2020 11:11:58 +0300 Subject: [PATCH 450/757] Fix identation for Dispute form --- app/views/admin/disputes/_form.html.erb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/admin/disputes/_form.html.erb b/app/views/admin/disputes/_form.html.erb index 38d5fbda2..df2151c6c 100644 --- a/app/views/admin/disputes/_form.html.erb +++ b/app/views/admin/disputes/_form.html.erb @@ -10,9 +10,9 @@
-
-

As per domain law, expiry time is <%= Setting.dispute_period_in_months / 12 %> years ahead from start date.

-
+
+

As per domain law, expiry time is <%= Setting.dispute_period_in_months / 12 %> years ahead from start date.

+
<%= f.label :domain_name %> From 408c7c5c6c8585c4f821c2167f49efe40c165144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 4 May 2020 11:58:46 +0300 Subject: [PATCH 451/757] Remove whitespaces from structure.sql --- db/structure.sql | 697 ++++++++++++++++++++--------------------------- 1 file changed, 302 insertions(+), 395 deletions(-) diff --git a/db/structure.sql b/db/structure.sql index 6b690e04e..a810d977c 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,3 +1,7 @@ +-- +-- PostgreSQL database dump +-- + SET statement_timeout = 0; SET lock_timeout = 0; SET client_encoding = 'UTF8'; @@ -8,10 +12,17 @@ SET xmloption = content; SET client_min_messages = warning; -- --- Name: audit; Type: SCHEMA; Schema: -; Owner: - +-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - -- -CREATE SCHEMA audit; +CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; + + +-- +-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; -- @@ -180,75 +191,12 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex $_$; --- --- Name: process_contact_audit(); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.process_contact_audit() RETURNS trigger - LANGUAGE plpgsql - AS $$ - BEGIN - IF (TG_OP = 'INSERT') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'UPDATE') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'DELETE') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); - RETURN OLD; - END IF; - RETURN NULL; - END -$$; - - SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: contacts; Type: TABLE; Schema: audit; Owner: - --- - -CREATE TABLE audit.contacts ( - id integer NOT NULL, - object_id bigint, - action text NOT NULL, - recorded_at timestamp without time zone, - old_value jsonb, - new_value jsonb, - CONSTRAINT contacts_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) -); - - --- --- Name: contacts_id_seq; Type: SEQUENCE; Schema: audit; Owner: - --- - -CREATE SEQUENCE audit.contacts_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: contacts_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - --- - -ALTER SEQUENCE audit.contacts_id_seq OWNED BY audit.contacts.id; - - --- --- Name: account_activities; Type: TABLE; Schema: public; Owner: - +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -288,7 +236,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: - +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -324,7 +272,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: - +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -356,7 +304,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: - +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.ar_internal_metadata ( @@ -368,7 +316,7 @@ CREATE TABLE public.ar_internal_metadata ( -- --- Name: auctions; Type: TABLE; Schema: public; Owner: - +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -401,7 +349,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: - +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -437,7 +385,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: - +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -481,7 +429,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: - +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -514,7 +462,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: - +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -552,7 +500,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: - +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -610,7 +558,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: - +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -645,7 +593,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: disputes; Type: TABLE; Schema: public; Owner: - +-- Name: disputes; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.disputes ( @@ -681,7 +629,7 @@ ALTER SEQUENCE public.disputes_id_seq OWNED BY public.disputes.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: - +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -722,7 +670,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: - +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -760,7 +708,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: - +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -797,7 +745,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: - +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( @@ -857,7 +805,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -889,7 +837,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: - +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -927,7 +875,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: - +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -998,7 +946,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: - +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -1033,7 +981,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: - +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -1071,7 +1019,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: - +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1109,7 +1057,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: - +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1147,7 +1095,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: - +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1185,7 +1133,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: - +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1223,7 +1171,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: - +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1261,7 +1209,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: - +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1299,7 +1247,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: - +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1338,7 +1286,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: - +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1376,7 +1324,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: - +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1414,7 +1362,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: - +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1452,7 +1400,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: - +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1490,7 +1438,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: - +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1528,7 +1476,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: - +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1566,7 +1514,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: - +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1604,7 +1552,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: - +-- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_payment_orders ( @@ -1642,7 +1590,7 @@ ALTER SEQUENCE public.log_payment_orders_id_seq OWNED BY public.log_payment_orde -- --- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: - +-- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrant_verifications ( @@ -1679,7 +1627,7 @@ ALTER SEQUENCE public.log_registrant_verifications_id_seq OWNED BY public.log_re -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: - +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1717,7 +1665,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: - +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1755,7 +1703,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: - +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1793,7 +1741,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: - +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1831,7 +1779,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: - +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1869,7 +1817,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: - +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -1907,7 +1855,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: - +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -1945,7 +1893,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: payment_orders; Type: TABLE; Schema: public; Owner: - +-- Name: payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.payment_orders ( @@ -1982,7 +1930,7 @@ ALTER SEQUENCE public.payment_orders_id_seq OWNED BY public.payment_orders.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: - +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -2020,7 +1968,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: - +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -2062,7 +2010,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: - +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( @@ -2098,7 +2046,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: - +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -2151,7 +2099,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: - +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -2186,7 +2134,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: - +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -2195,7 +2143,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: - +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2231,7 +2179,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: - +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2283,7 +2231,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: - +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2318,7 +2266,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: - +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( @@ -2354,7 +2302,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: - +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2389,7 +2337,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: - +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( @@ -2432,407 +2380,392 @@ ALTER SEQUENCE public.zones_id_seq OWNED BY public.zones.id; -- --- Name: contacts id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.contacts ALTER COLUMN id SET DEFAULT nextval('audit.contacts_id_seq'::regclass); - - --- --- Name: account_activities id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities ALTER COLUMN id SET DEFAULT nextval('public.account_activities_id_seq'::regclass); -- --- Name: accounts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts ALTER COLUMN id SET DEFAULT nextval('public.accounts_id_seq'::regclass); -- --- Name: actions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions ALTER COLUMN id SET DEFAULT nextval('public.actions_id_seq'::regclass); -- --- Name: auctions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions ALTER COLUMN id SET DEFAULT nextval('public.auctions_id_seq'::regclass); -- --- Name: bank_statements id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_statements ALTER COLUMN id SET DEFAULT nextval('public.bank_statements_id_seq'::regclass); -- --- Name: bank_transactions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.bank_transactions_id_seq'::regclass); -- --- Name: blocked_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.blocked_domains_id_seq'::regclass); -- --- Name: certificates id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.certificates ALTER COLUMN id SET DEFAULT nextval('public.certificates_id_seq'::regclass); -- --- Name: contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts ALTER COLUMN id SET DEFAULT nextval('public.contacts_id_seq'::regclass); -- --- Name: directos id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.directos ALTER COLUMN id SET DEFAULT nextval('public.directos_id_seq'::regclass); -- --- Name: disputes id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.disputes ALTER COLUMN id SET DEFAULT nextval('public.disputes_id_seq'::regclass); -- --- Name: dnskeys id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.dnskeys ALTER COLUMN id SET DEFAULT nextval('public.dnskeys_id_seq'::regclass); -- --- Name: domain_contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.domain_contacts_id_seq'::regclass); -- --- Name: domain_transfers id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('public.domain_transfers_id_seq'::regclass); -- --- Name: domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); -- --- Name: invoices id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.invoices_id_seq'::regclass); -- --- Name: legal_documents id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.legal_documents ALTER COLUMN id SET DEFAULT nextval('public.legal_documents_id_seq'::regclass); -- --- Name: log_account_activities id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_account_activities ALTER COLUMN id SET DEFAULT nextval('public.log_account_activities_id_seq'::regclass); -- --- Name: log_accounts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_accounts ALTER COLUMN id SET DEFAULT nextval('public.log_accounts_id_seq'::regclass); -- --- Name: log_actions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_actions ALTER COLUMN id SET DEFAULT nextval('public.log_actions_id_seq'::regclass); -- --- Name: log_bank_statements id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_statements ALTER COLUMN id SET DEFAULT nextval('public.log_bank_statements_id_seq'::regclass); -- --- Name: log_bank_transactions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.log_bank_transactions_id_seq'::regclass); -- --- Name: log_blocked_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.log_blocked_domains_id_seq'::regclass); -- --- Name: log_certificates id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_certificates ALTER COLUMN id SET DEFAULT nextval('public.log_certificates_id_seq'::regclass); -- --- Name: log_contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_contacts_id_seq'::regclass); -- --- Name: log_dnskeys id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_dnskeys ALTER COLUMN id SET DEFAULT nextval('public.log_dnskeys_id_seq'::regclass); -- --- Name: log_domain_contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_domain_contacts_id_seq'::regclass); -- --- Name: log_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domains ALTER COLUMN id SET DEFAULT nextval('public.log_domains_id_seq'::regclass); -- --- Name: log_invoice_items id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoice_items ALTER COLUMN id SET DEFAULT nextval('public.log_invoice_items_id_seq'::regclass); -- --- Name: log_invoices id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoices ALTER COLUMN id SET DEFAULT nextval('public.log_invoices_id_seq'::regclass); -- --- Name: log_nameservers id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('public.log_nameservers_id_seq'::regclass); -- --- Name: log_notifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); -- --- Name: log_payment_orders id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_payment_orders ALTER COLUMN id SET DEFAULT nextval('public.log_payment_orders_id_seq'::regclass); -- --- Name: log_registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.log_registrant_verifications_id_seq'::regclass); -- --- Name: log_registrars id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrars ALTER COLUMN id SET DEFAULT nextval('public.log_registrars_id_seq'::regclass); -- --- Name: log_reserved_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.log_reserved_domains_id_seq'::regclass); -- --- Name: log_settings id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_settings ALTER COLUMN id SET DEFAULT nextval('public.log_settings_id_seq'::regclass); -- --- Name: log_users id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_users ALTER COLUMN id SET DEFAULT nextval('public.log_users_id_seq'::regclass); -- --- Name: log_white_ips id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_white_ips ALTER COLUMN id SET DEFAULT nextval('public.log_white_ips_id_seq'::regclass); -- --- Name: nameservers id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public.nameservers_id_seq'::regclass); -- --- Name: notifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('public.notifications_id_seq'::regclass); -- --- Name: payment_orders id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('public.payment_orders_id_seq'::regclass); -- --- Name: prices id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices ALTER COLUMN id SET DEFAULT nextval('public.prices_id_seq'::regclass); -- --- Name: que_jobs job_id; Type: DEFAULT; Schema: public; Owner: - +-- Name: job_id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.que_jobs ALTER COLUMN job_id SET DEFAULT nextval('public.que_jobs_job_id_seq'::regclass); -- --- Name: registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.registrant_verifications_id_seq'::regclass); -- --- Name: registrars id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars ALTER COLUMN id SET DEFAULT nextval('public.registrars_id_seq'::regclass); -- --- Name: reserved_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.reserved_domains_id_seq'::regclass); -- --- Name: settings id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.settings ALTER COLUMN id SET DEFAULT nextval('public.settings_id_seq'::regclass); -- --- Name: users id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass); -- --- Name: versions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.versions ALTER COLUMN id SET DEFAULT nextval('public.versions_id_seq'::regclass); -- --- Name: white_ips id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips ALTER COLUMN id SET DEFAULT nextval('public.white_ips_id_seq'::regclass); -- --- Name: whois_records id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.whois_records ALTER COLUMN id SET DEFAULT nextval('public.whois_records_id_seq'::regclass); -- --- Name: zones id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_id_seq'::regclass); -- --- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.contacts - ADD CONSTRAINT contacts_pkey PRIMARY KEY (id); - - --- --- Name: account_activities account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2840,7 +2773,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -2848,7 +2781,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -2856,7 +2789,7 @@ ALTER TABLE ONLY public.actions -- --- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.ar_internal_metadata @@ -2864,7 +2797,7 @@ ALTER TABLE ONLY public.ar_internal_metadata -- --- Name: auctions auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2872,7 +2805,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -2880,7 +2813,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -2888,7 +2821,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2896,7 +2829,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -2904,7 +2837,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2912,7 +2845,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos directos_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -2920,7 +2853,7 @@ ALTER TABLE ONLY public.directos -- --- Name: disputes disputes_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: disputes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.disputes @@ -2928,7 +2861,7 @@ ALTER TABLE ONLY public.disputes -- --- Name: dnskeys dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -2936,7 +2869,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -2944,7 +2877,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -2952,7 +2885,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2960,7 +2893,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -2968,7 +2901,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -2976,7 +2909,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -2984,7 +2917,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: legal_documents legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -2992,7 +2925,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -3000,7 +2933,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -3008,7 +2941,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -3016,7 +2949,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -3024,7 +2957,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -3032,7 +2965,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -3040,7 +2973,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -3048,7 +2981,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -3056,7 +2989,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -3064,7 +2997,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -3072,7 +3005,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -3080,7 +3013,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -3088,7 +3021,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -3096,7 +3029,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_nameservers log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -3104,7 +3037,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -3112,7 +3045,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_payment_orders log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_payment_orders @@ -3120,7 +3053,7 @@ ALTER TABLE ONLY public.log_payment_orders -- --- Name: log_registrant_verifications log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrant_verifications @@ -3128,7 +3061,7 @@ ALTER TABLE ONLY public.log_registrant_verifications -- --- Name: log_registrars log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -3136,7 +3069,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -3144,7 +3077,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -3152,7 +3085,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -3160,7 +3093,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -3168,7 +3101,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3176,7 +3109,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -3184,7 +3117,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: payment_orders payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.payment_orders @@ -3192,7 +3125,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: prices prices_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -3200,7 +3133,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -3208,7 +3141,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -3216,7 +3149,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3224,7 +3157,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3232,7 +3165,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -3240,7 +3173,7 @@ ALTER TABLE ONLY public.settings -- --- Name: blocked_domains uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -3248,7 +3181,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: contacts uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3256,7 +3189,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domains uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3264,7 +3197,7 @@ ALTER TABLE ONLY public.domains -- --- Name: reserved_domains uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3272,7 +3205,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: auctions uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3280,7 +3213,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: registrars unique_code; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3288,7 +3221,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: contacts unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3296,7 +3229,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: registrars unique_name; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3304,7 +3237,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: invoices unique_number; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3312,7 +3245,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: registrars unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3320,7 +3253,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: auctions unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3328,7 +3261,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: epp_sessions unique_session_id; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3336,7 +3269,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: zones unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3344,7 +3277,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3352,7 +3285,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions versions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3360,7 +3293,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3368,7 +3301,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3376,7 +3309,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones zones_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3384,602 +3317,581 @@ ALTER TABLE ONLY public.zones -- --- Name: contacts_object_id_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX contacts_object_id_idx ON audit.contacts USING btree (object_id); - - --- --- Name: contacts_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX contacts_recorded_at_idx ON audit.contacts USING btree (recorded_at); - - --- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: - +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: - +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); -- --- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); - - --- --- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3987,7 +3899,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -3995,7 +3907,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_contacts domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4003,7 +3915,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domains domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -4011,7 +3923,7 @@ ALTER TABLE ONLY public.domains -- --- Name: domains domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -4019,7 +3931,7 @@ ALTER TABLE ONLY public.domains -- --- Name: invoices fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -4027,7 +3939,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: white_ips fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips @@ -4035,7 +3947,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: domain_transfers fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4043,7 +3955,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: prices fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices @@ -4051,7 +3963,7 @@ ALTER TABLE ONLY public.prices -- --- Name: domain_transfers fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4059,7 +3971,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: account_activities fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4067,7 +3979,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: domain_transfers fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4075,7 +3987,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: actions fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -4083,7 +3995,7 @@ ALTER TABLE ONLY public.actions -- --- Name: notifications fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -4091,7 +4003,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: actions fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -4099,7 +4011,7 @@ ALTER TABLE ONLY public.actions -- --- Name: epp_sessions fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -4107,7 +4019,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: account_activities fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4115,7 +4027,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts @@ -4123,7 +4035,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: account_activities fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4131,7 +4043,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: account_activities fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4139,7 +4051,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: registrant_verifications fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications @@ -4147,7 +4059,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: payment_orders fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders @@ -4155,7 +4067,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: invoice_items invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -4163,7 +4075,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: notifications messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -4171,7 +4083,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: nameservers nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers @@ -4179,7 +4091,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: users user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users @@ -4602,10 +4514,5 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200130092113'), ('20200203143458'), ('20200204103125'), -('20200310105731'), -('20200310105736'), -('20200311111515'), ('20200311114649'), ('20200421093637'); - - From 53c466e6e5dd95d1d29503d2b88b4b41c0917cfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 4 May 2020 14:53:50 +0300 Subject: [PATCH 452/757] Default fixture for business addr --- app/models/contact.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index ac6facbe8..aa2f32140 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -260,8 +260,8 @@ class Contact < ApplicationRecord private def registrant_user_indirect_contacts(registrant_user) - ident = registrant_user.companies.collect(&:registration_number) - + # ident = registrant_user.companies.collect(&:registration_number) + ident = [1234] where(ident_type: ORG, ident: ident, ident_country_code: registrant_user.country.alpha2) From 7930c4d8b69392578dfd95ccc0f01f4bb216773d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 4 May 2020 15:38:48 +0300 Subject: [PATCH 453/757] Show only domains for contact that requester contact has access to --- app/models/contact.rb | 76 +++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index aa2f32140..488e72335 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -260,8 +260,8 @@ class Contact < ApplicationRecord private def registrant_user_indirect_contacts(registrant_user) - # ident = registrant_user.companies.collect(&:registration_number) - ident = [1234] + ident = registrant_user.companies.collect(&:registration_number) + where(ident_type: ORG, ident: ident, ident_country_code: registrant_user.country.alpha2) @@ -416,49 +416,63 @@ class Contact < ApplicationRecord # we also need to sort by valid_to # todo: extract to drapper. Then we can remove Domain#roles def all_domains(page: nil, per: nil, params:, requester:) - # compose filter sql - filter_sql = case params[:domain_filter] - when "Registrant".freeze - %Q{select id from domains where registrant_id=#{id}} - when AdminDomainContact.to_s, TechDomainContact.to_s - %Q{select domain_id from domain_contacts where contact_id=#{id} AND type='#{params[:domain_filter]}'} - else - %Q{select domain_id from domain_contacts where contact_id=#{id} UNION select id from domains where registrant_id=#{id}} - end + filter_sql = qualified_domain_ids(params[:domain_filter]) # get sorting rules sorts = params.fetch(:sort, {}).first || [] - sort = Domain.column_names.include?(sorts.first) ? sorts.first : "valid_to" - order = {"asc"=>"desc", "desc"=>"asc"}[sorts.second] || "desc" + sort = %w[name registrar_name valid_to].include?(sorts.first) ? sorts.first : 'valid_to' + order = %w[asc desc].include?(sorts.second) ? sorts.second : 'desc' # fetch domains - if requester - requester_domains = Contact.find(requester).domains - domains = requester_domains.where("domains.id IN (#{filter_sql})") - else - domains = Domain.where("domains.id IN (#{filter_sql})") - end - + domains = qualified_domain_name_list(requester, filter_sql) domains = domains.includes(:registrar).page(page).per(per) - if sorts.first == "registrar_name".freeze - # using small rails hack to generate outer join - domains = domains.includes(:registrar).where.not(registrars: {id: nil}).order("registrars.name #{order} NULLS LAST") - else - domains = domains.order("#{sort} #{order} NULLS LAST") - end - - + # using small rails hack to generate outer join + domains = if sorts.first == 'registrar_name'.freeze + domains.includes(:registrar).where.not(registrars: { id: nil }) + .order("registrars.name #{order} NULLS LAST") + else + domains.order("#{sort} #{order} NULLS LAST") + end # adding roles. Need here to make faster sqls domain_c = Hash.new([]) - registrant_domains.where(id: domains.map(&:id)).each{|d| domain_c[d.id] |= ["Registrant".freeze] } - DomainContact.where(contact_id: id, domain_id: domains.map(&:id)).each{|d| domain_c[d.domain_id] |= [d.type] } - domains.each{|d| d.roles = domain_c[d.id].uniq} + registrant_domains.where(id: domains.map(&:id)).each do |d| + domain_c[d.id] |= ['Registrant'.freeze] + end + + DomainContact.where(contact_id: id, domain_id: domains.map(&:id)).each do |d| + domain_c[d.domain_id] |= [d.type] + end + + domains.each { |d| d.roles = domain_c[d.id].uniq } domains end + def qualified_domain_name_list(requester, filter_sql) + if requester + requester_domains = Contact.find(requester).domains + domains = requester_domains.where('domains.id IN (?)', filter_sql) + else + domains = Domain.where('domains.id IN (?)', filter_sql) + end + + domains + end + + def qualified_domain_ids(domain_filter) + registrant_ids = Domain.select('id').where(registrant: id).pluck(:id) + return registrant_ids if domain_filter == 'Registrant' + + if %w[AdminDomainContact TechDomainContact].include? domain_filter + DomainContact.select('domain_id').where(contact_id: id, type: domain_filter) + else + (DomainContact.select('domain_id').where(contact_id: id).pluck(:id) + + registrant_ids).uniq + end + end + def update_prohibited? (statuses & [ CLIENT_UPDATE_PROHIBITED, From d0053def99d84429a46fc9e682b7cc547c2ac1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 5 May 2020 12:35:27 +0300 Subject: [PATCH 454/757] Find requester contact id solely by ident --- app/controllers/registrant/contacts_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/registrant/contacts_controller.rb b/app/controllers/registrant/contacts_controller.rb index e690b50f4..1ad403248 100644 --- a/app/controllers/registrant/contacts_controller.rb +++ b/app/controllers/registrant/contacts_controller.rb @@ -6,7 +6,7 @@ class Registrant::ContactsController < RegistrantController def show @contact = domain.contacts.find(params[:id]) - @requester_contact = domain.contacts.find_by(ident: current_registrant_user.ident).id + @requester_contact = Contact.find_by(ident: current_registrant_user.ident).id authorize! :read, @contact end From bd7b6ddb73d372841b0f7dae02708f3be034ceaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 5 May 2020 12:36:04 +0300 Subject: [PATCH 455/757] Create test for viewing other domain contacts --- .../registrant_area/contacts_test.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 test/integration/registrant_area/contacts_test.rb diff --git a/test/integration/registrant_area/contacts_test.rb b/test/integration/registrant_area/contacts_test.rb new file mode 100644 index 000000000..c906cd026 --- /dev/null +++ b/test/integration/registrant_area/contacts_test.rb @@ -0,0 +1,19 @@ +require 'test_helper' + +class RegistrantAreaContactsIntegrationTest < ApplicationIntegrationTest + setup do + @domain = domains(:shop) + @registrant = users(:registrant) + sign_in @registrant + end + + def test_can_view_other_domain_contacts + secondary_contact = contacts(:jane) + + visit registrant_domain_path(@domain) + assert_text secondary_contact.name + click_link secondary_contact.name + assert_text @domain.name + assert_text secondary_contact.email + end +end From 90f933a5a10c56ac7d318a3dfcff89f6b5bc586e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 5 May 2020 13:38:21 +0300 Subject: [PATCH 456/757] Add revoked boolean to Certificate model --- db/migrate/20200505103316_add_revoked_to_certificate.rb | 5 +++++ db/structure.sql | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20200505103316_add_revoked_to_certificate.rb diff --git a/db/migrate/20200505103316_add_revoked_to_certificate.rb b/db/migrate/20200505103316_add_revoked_to_certificate.rb new file mode 100644 index 000000000..a52c7d14c --- /dev/null +++ b/db/migrate/20200505103316_add_revoked_to_certificate.rb @@ -0,0 +1,5 @@ +class AddRevokedToCertificate < ActiveRecord::Migration[5.2] + def change + add_column :certificates, :revoked, :boolean, null: false, default: false + end +end diff --git a/db/structure.sql b/db/structure.sql index 604238d4c..6ad181ea4 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -476,7 +476,8 @@ CREATE TABLE public.certificates ( updated_at timestamp without time zone, common_name character varying, md5 character varying, - interface character varying + interface character varying, + revoked boolean DEFAULT false NOT NULL ); @@ -4463,5 +4464,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200130092113'), ('20200203143458'), ('20200204103125'), -('20200311114649'); +('20200311114649'), +('20200505103316'); + From 0fa7fcc771a9d1bf65f1e9273017919a4741a580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 5 May 2020 13:48:53 +0300 Subject: [PATCH 457/757] Check that certificate is not revoked --- app/models/api_user.rb | 6 ++++-- app/models/certificate.rb | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/models/api_user.rb b/app/models/api_user.rb index 3dc240727..99f14ad6c 100644 --- a/app/models/api_user.rb +++ b/app/models/api_user.rb @@ -66,22 +66,24 @@ class ApiUser < User def registrar_pki_ok?(crt, cn) return false if crt.blank? || cn.blank? + crt = crt.split(' ').join("\n") crt.gsub!("-----BEGIN\nCERTIFICATE-----\n", "-----BEGIN CERTIFICATE-----\n") crt.gsub!("\n-----END\nCERTIFICATE-----", "\n-----END CERTIFICATE-----") cert = OpenSSL::X509::Certificate.new(crt) md5 = OpenSSL::Digest::MD5.new(cert.to_der).to_s - certificates.registrar.exists?(md5: md5, common_name: cn) + certificates.registrar.exists?(md5: md5, common_name: cn, revoked: false) end def api_pki_ok?(crt, cn) return false if crt.blank? || cn.blank? + crt = crt.split(' ').join("\n") crt.gsub!("-----BEGIN\nCERTIFICATE-----\n", "-----BEGIN CERTIFICATE-----\n") crt.gsub!("\n-----END\nCERTIFICATE-----", "\n-----END CERTIFICATE-----") cert = OpenSSL::X509::Certificate.new(crt) md5 = OpenSSL::Digest::MD5.new(cert.to_der).to_s - certificates.api.exists?(md5: md5, common_name: cn) + certificates.api.exists?(md5: md5, common_name: cn, revoked: false) end def linked_users diff --git a/app/models/certificate.rb b/app/models/certificate.rb index 5259403c2..f0711d4f5 100644 --- a/app/models/certificate.rb +++ b/app/models/certificate.rb @@ -116,6 +116,7 @@ class Certificate < ApplicationRecord -revoke #{crt_file.path} -key '#{ENV['ca_key_password']}' -batch") if err.match(/Data Base Updated/) || err.match(/ERROR:Already revoked/) + self.revoked = true save! @cached_status = REVOKED else From 2dbcbf1c29efb7868aa5ffa04da8c3e37d4579e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 5 May 2020 14:06:02 +0300 Subject: [PATCH 458/757] Remove redundant api check blocks --- app/api/repp/api.rb | 3 +- app/controllers/epp/sessions_controller.rb | 3 +- .../registrar/sessions_controller.rb | 5 +-- app/models/api_user.rb | 32 +++++++++---------- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/app/api/repp/api.rb b/app/api/repp/api.rb index e5bda46f5..af6864cfa 100644 --- a/app/api/repp/api.rb +++ b/app/api/repp/api.rb @@ -30,7 +30,8 @@ module Repp webclient_cert_name = ENV['webclient_cert_common_name'] || 'webclient' error! "Webclient #{message} #{webclient_cert_name}", 401 if webclient_cert_name != request_name else - unless @current_user.api_pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], request.env['HTTP_SSL_CLIENT_S_DN_CN']) + unless @current_user.pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], + request.env['HTTP_SSL_CLIENT_S_DN_CN']) error! "#{message} #{@current_user.username}", 401 end end diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index ef8f125ee..cf24feb33 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -26,7 +26,8 @@ module Epp end if !Rails.env.development? && (!webclient_request && @api_user) - unless @api_user.api_pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], request.env['HTTP_SSL_CLIENT_S_DN_CN']) + unless @api_user.pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], + request.env['HTTP_SSL_CLIENT_S_DN_CN']) epp_errors << { msg: 'Authentication error; server closing connection (certificate is not valid)', code: '2501' diff --git a/app/controllers/registrar/sessions_controller.rb b/app/controllers/registrar/sessions_controller.rb index 2ca8f5cc7..5bebe5619 100644 --- a/app/controllers/registrar/sessions_controller.rb +++ b/app/controllers/registrar/sessions_controller.rb @@ -31,7 +31,8 @@ class Registrar end if @depp_user.pki - unless @api_user.registrar_pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], request.env['HTTP_SSL_CLIENT_S_DN_CN']) + unless @api_user.pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], + request.env['HTTP_SSL_CLIENT_S_DN_CN'], api: false) @depp_user.errors.add(:base, :invalid_cert) end end @@ -205,4 +206,4 @@ class Registrar redirect_to new_registrar_user_session_url, alert: @depp_user.errors.full_messages.first end end -end \ No newline at end of file +end diff --git a/app/models/api_user.rb b/app/models/api_user.rb index 99f14ad6c..b5efa7235 100644 --- a/app/models/api_user.rb +++ b/app/models/api_user.rb @@ -64,26 +64,14 @@ class ApiUser < User registrar.notifications.unread end - def registrar_pki_ok?(crt, cn) - return false if crt.blank? || cn.blank? + def pki_ok?(crt, com, api: true) + return false if crt.blank? || com.blank? - crt = crt.split(' ').join("\n") - crt.gsub!("-----BEGIN\nCERTIFICATE-----\n", "-----BEGIN CERTIFICATE-----\n") - crt.gsub!("\n-----END\nCERTIFICATE-----", "\n-----END CERTIFICATE-----") - cert = OpenSSL::X509::Certificate.new(crt) + origin = api ? certificates.api : certificates.registrar + cert = machine_readable_certificate(crt) md5 = OpenSSL::Digest::MD5.new(cert.to_der).to_s - certificates.registrar.exists?(md5: md5, common_name: cn, revoked: false) - end - def api_pki_ok?(crt, cn) - return false if crt.blank? || cn.blank? - - crt = crt.split(' ').join("\n") - crt.gsub!("-----BEGIN\nCERTIFICATE-----\n", "-----BEGIN CERTIFICATE-----\n") - crt.gsub!("\n-----END\nCERTIFICATE-----", "\n-----END CERTIFICATE-----") - cert = OpenSSL::X509::Certificate.new(crt) - md5 = OpenSSL::Digest::MD5.new(cert.to_der).to_s - certificates.api.exists?(md5: md5, common_name: cn, revoked: false) + origin.exists?(md5: md5, common_name: com, revoked: false) end def linked_users @@ -95,4 +83,14 @@ class ApiUser < User def linked_with?(another_api_user) another_api_user.identity_code == self.identity_code end + + private + + def machine_readable_certificate(cert) + cert = cert.split(' ').join("\n") + cert.gsub!("-----BEGIN\nCERTIFICATE-----\n", "-----BEGIN CERTIFICATE-----\n") + cert.gsub!("\n-----END\nCERTIFICATE-----", "\n-----END CERTIFICATE-----") + + OpenSSL::X509::Certificate.new(cert) + end end From e18942e8eee88276aecef5b8afee021a9550982e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 5 May 2020 16:33:33 +0300 Subject: [PATCH 459/757] Cover PKI validation with tests --- test/fixtures/certificates.yml | 7 +++++++ test/models/api_user_test.rb | 15 +++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 test/fixtures/certificates.yml diff --git a/test/fixtures/certificates.yml b/test/fixtures/certificates.yml new file mode 100644 index 000000000..c91df3ace --- /dev/null +++ b/test/fixtures/certificates.yml @@ -0,0 +1,7 @@ +one: + api_user: api_bestnames + common_name: registry.test + crt: "-----BEGIN CERTIFICATE-----\nMIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBNMQswCQYDVQQGEwJ1czEO\nMAwGA1UECAwFVGV4YXMxFjAUBgNVBAoMDVJlZ2lzdHJ5IHRlc3QxFjAUBgNVBAMM\nDXJlZ2lzdHJ5LnRlc3QwIBcNMjAwNTA1MTIzNzQxWhgPMjEyMDA0MTExMjM3NDFa\nME0xCzAJBgNVBAYTAnVzMQ4wDAYDVQQIDAVUZXhhczEWMBQGA1UECgwNUmVnaXN0\ncnkgdGVzdDEWMBQGA1UEAwwNcmVnaXN0cnkudGVzdDCBnzANBgkqhkiG9w0BAQEF\nAAOBjQAwgYkCgYEAyn+GCkUJIhdXVBOPrZH+Zj2B/tQfL5TLZwVYZQt38x6GQT+4\n6ndty467IJvKSUlHej7uMpsCzC8Ffmda4cZm16jO1vUb4hXIrmeKP84zLrrUpKag\ngZR4rBDbG2+uL4SzMyy3yeQysYuTiQ4N1i4vdhvkKYPSWIht/QFvuzdFq+0CAwEA\nAaNQME4wHQYDVR0OBBYEFD6B5j6NnMCDBnfbtjBYKBJM7sCRMB8GA1UdIwQYMBaA\nFD6B5j6NnMCDBnfbtjBYKBJM7sCRMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEN\nBQADgYEArtCR6VOabD3nM/KlZTmHMZVT4ntenYlNTM9FS0RatzPmdh4REhykvmZs\nOlBcpoV5tN5Y8bHOVRqY9V2e903QEhQgoccQhbt0Py6uFwfLv+WLKAUbeGnPqK9d\ndL3wXN9BQs0hJA6IZNFyz2F/gSTURrD1zWW2na3ipRzhupW5+98=\n-----END CERTIFICATE-----\n" + md5: e6771ed5dc857a1dbcc1e0a36baa1fee + interface: api + revoked: false diff --git a/test/models/api_user_test.rb b/test/models/api_user_test.rb index 20d655a9c..dd907f75c 100644 --- a/test/models/api_user_test.rb +++ b/test/models/api_user_test.rb @@ -63,6 +63,21 @@ class ApiUserTest < ActiveSupport::TestCase assert_nil ApiUser.find_by_id_card(id_card) end + def test_verifies_pki_status + certificate = certificates(:one) + + assert @user.pki_ok?(certificate.crt, certificate.common_name, api: true) + assert_not @user.pki_ok?(certificate.crt, 'invalid-cn', api: true) + + certificate.update(interface: 'registrar') + + assert @user.pki_ok?(certificate.crt, certificate.common_name, api: false) + assert_not @user.pki_ok?(certificate.crt, 'invalid-cn', api: false) + + certificate.update(revoked: true) + assert_not @user.pki_ok?(certificate.crt, certificate.common_name, api: false) + end + private def valid_user From 2525f14a18bbd7261685a77b8b50037d1ff66d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 5 May 2020 18:10:51 +0300 Subject: [PATCH 460/757] Add dispute_period_in_months to Setting --- ...20200505150413_add_dispute_period_in_months_to_setting.rb | 5 +++++ db/structure.sql | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20200505150413_add_dispute_period_in_months_to_setting.rb diff --git a/db/migrate/20200505150413_add_dispute_period_in_months_to_setting.rb b/db/migrate/20200505150413_add_dispute_period_in_months_to_setting.rb new file mode 100644 index 000000000..cffa91b7f --- /dev/null +++ b/db/migrate/20200505150413_add_dispute_period_in_months_to_setting.rb @@ -0,0 +1,5 @@ +class AddDisputePeriodInMonthsToSetting < ActiveRecord::Migration[5.2] + def change + Setting.create(var: 'dispute_period_in_months', value: 36) + end +end diff --git a/db/structure.sql b/db/structure.sql index a810d977c..7200c0cf2 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -4515,4 +4515,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200203143458'), ('20200204103125'), ('20200311114649'), -('20200421093637'); +('20200421093637'), +('20200505150413'); + From c6fd78b4cdcd39b815d2efcce4f4a1eaa108a5ac Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 17 Apr 2020 17:03:45 +0500 Subject: [PATCH 461/757] Add registration deadline field to auction model --- ...dd_registration_deadline_date_to_models.rb | 5 + db/structure.sql | 461 +++++++++++++++++- 2 files changed, 449 insertions(+), 17 deletions(-) create mode 100644 db/migrate/20200417075720_add_registration_deadline_date_to_models.rb diff --git a/db/migrate/20200417075720_add_registration_deadline_date_to_models.rb b/db/migrate/20200417075720_add_registration_deadline_date_to_models.rb new file mode 100644 index 000000000..8614ec889 --- /dev/null +++ b/db/migrate/20200417075720_add_registration_deadline_date_to_models.rb @@ -0,0 +1,5 @@ +class AddRegistrationDeadlineDateToModels < ActiveRecord::Migration[5.2] + def change + add_column :auctions, :registration_deadline, :datetime + end +end diff --git a/db/structure.sql b/db/structure.sql index 604238d4c..eae59f5e0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11,6 +11,12 @@ SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; +-- +-- Name: audit; Type: SCHEMA; Schema: -; Owner: - +-- + +CREATE SCHEMA audit; + -- -- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - -- @@ -191,12 +197,262 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex $_$; -SET default_tablespace = ''; +-- +-- Name: process_contact_audit(); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.process_contact_audit() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + IF (TG_OP = 'INSERT') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'UPDATE') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'DELETE') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); + RETURN OLD; + END IF; + RETURN NULL; + END +$$; -SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: process_dnskey_audit(); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.process_dnskey_audit() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + IF (TG_OP = 'INSERT') THEN + INSERT INTO audit.dnskeys + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'UPDATE') THEN + INSERT INTO audit.dnskeys + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'DELETE') THEN + INSERT INTO audit.dnskeys + (object_id, action, recorded_at, old_value, new_value) + VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); + RETURN OLD; + END IF; + RETURN NULL; + END +$$; + + +-- +-- Name: process_domain_audit(); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.process_domain_audit() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + IF (TG_OP = 'INSERT') THEN + INSERT INTO audit.domains + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'UPDATE') THEN + INSERT INTO audit.domains + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'DELETE') THEN + INSERT INTO audit.domains + (object_id, action, recorded_at, old_value, new_value) + VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); + RETURN OLD; + END IF; + RETURN NULL; + END +$$; + + +-- +-- Name: process_nameserver_audit(); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.process_nameserver_audit() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + IF (TG_OP = 'INSERT') THEN + INSERT INTO audit.nameservers + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'UPDATE') THEN + INSERT INTO audit.nameservers + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'DELETE') THEN + INSERT INTO audit.nameservers + (object_id, action, recorded_at, old_value, new_value) + VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); + RETURN OLD; + END IF; + RETURN NULL; + END +$$; + + +SET default_tablespace = ''; + +-- +-- Name: contacts; Type: TABLE; Schema: audit; Owner: - +-- + +CREATE TABLE audit.contacts ( + id integer NOT NULL, + object_id bigint, + action text NOT NULL, + recorded_at timestamp without time zone, + old_value jsonb, + new_value jsonb, + CONSTRAINT contacts_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) +); + + +-- +-- Name: contacts_id_seq; Type: SEQUENCE; Schema: audit; Owner: - +-- + +CREATE SEQUENCE audit.contacts_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contacts_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - +-- + +ALTER SEQUENCE audit.contacts_id_seq OWNED BY audit.contacts.id; + + +-- +-- Name: dnskeys; Type: TABLE; Schema: audit; Owner: - +-- + +CREATE TABLE audit.dnskeys ( + id integer NOT NULL, + object_id bigint, + action text NOT NULL, + recorded_at timestamp without time zone, + old_value jsonb, + new_value jsonb, + CONSTRAINT dnskeys_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) +); + + +-- +-- Name: dnskeys_id_seq; Type: SEQUENCE; Schema: audit; Owner: - +-- + +CREATE SEQUENCE audit.dnskeys_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: dnskeys_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - +-- + +ALTER SEQUENCE audit.dnskeys_id_seq OWNED BY audit.dnskeys.id; + + +-- +-- Name: domains; Type: TABLE; Schema: audit; Owner: - +-- + +CREATE TABLE audit.domains ( + id integer NOT NULL, + object_id bigint, + action text NOT NULL, + recorded_at timestamp without time zone, + old_value jsonb, + new_value jsonb, + CONSTRAINT domains_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) +); + + +-- +-- Name: domains_id_seq; Type: SEQUENCE; Schema: audit; Owner: - +-- + +CREATE SEQUENCE audit.domains_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: domains_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - +-- + +ALTER SEQUENCE audit.domains_id_seq OWNED BY audit.domains.id; + + +-- +-- Name: nameservers; Type: TABLE; Schema: audit; Owner: - +-- + +CREATE TABLE audit.nameservers ( + id integer NOT NULL, + object_id bigint, + action text NOT NULL, + recorded_at timestamp without time zone, + old_value jsonb, + new_value jsonb, + CONSTRAINT nameservers_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) +); + + +-- +-- Name: nameservers_id_seq; Type: SEQUENCE; Schema: audit; Owner: - +-- + +CREATE SEQUENCE audit.nameservers_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: nameservers_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - +-- + +ALTER SEQUENCE audit.nameservers_id_seq OWNED BY audit.nameservers.id; + + +-- +-- Name: account_activities; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.account_activities ( @@ -325,7 +581,8 @@ CREATE TABLE public.auctions ( status character varying NOT NULL, uuid uuid DEFAULT public.gen_random_uuid() NOT NULL, created_at timestamp without time zone NOT NULL, - registration_code character varying + registration_code character varying, + registration_deadline timestamp without time zone ); @@ -558,7 +815,16 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: data_migrations; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.data_migrations ( + version character varying NOT NULL +); + + +-- +-- Name: directos; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.directos ( @@ -745,7 +1011,8 @@ CREATE TABLE public.domains ( uuid uuid DEFAULT public.gen_random_uuid() NOT NULL, locked_by_registrant_at timestamp without time zone, force_delete_start timestamp without time zone, - force_delete_data public.hstore + force_delete_data public.hstore, + children jsonb ); @@ -2344,14 +2611,42 @@ ALTER SEQUENCE public.zones_id_seq OWNED BY public.zones.id; -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: contacts id; Type: DEFAULT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.contacts ALTER COLUMN id SET DEFAULT nextval('audit.contacts_id_seq'::regclass); + + +-- +-- Name: dnskeys id; Type: DEFAULT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.dnskeys ALTER COLUMN id SET DEFAULT nextval('audit.dnskeys_id_seq'::regclass); + + +-- +-- Name: domains id; Type: DEFAULT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.domains ALTER COLUMN id SET DEFAULT nextval('audit.domains_id_seq'::regclass); + + +-- +-- Name: nameservers id; Type: DEFAULT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.nameservers ALTER COLUMN id SET DEFAULT nextval('audit.nameservers_id_seq'::regclass); + + +-- +-- Name: account_activities id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities ALTER COLUMN id SET DEFAULT nextval('public.account_activities_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: accounts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts ALTER COLUMN id SET DEFAULT nextval('public.accounts_id_seq'::regclass); @@ -2722,7 +3017,39 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.contacts + ADD CONSTRAINT contacts_pkey PRIMARY KEY (id); + + +-- +-- Name: dnskeys dnskeys_pkey; Type: CONSTRAINT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.dnskeys + ADD CONSTRAINT dnskeys_pkey PRIMARY KEY (id); + + +-- +-- Name: domains domains_pkey; Type: CONSTRAINT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.domains + ADD CONSTRAINT domains_pkey PRIMARY KEY (id); + + +-- +-- Name: nameservers nameservers_pkey; Type: CONSTRAINT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.nameservers + ADD CONSTRAINT nameservers_pkey PRIMARY KEY (id); + + +-- +-- Name: account_activities account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -2730,7 +3057,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts @@ -3266,14 +3593,70 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: contacts_object_id_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX contacts_object_id_idx ON audit.contacts USING btree (object_id); + + +-- +-- Name: contacts_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX contacts_recorded_at_idx ON audit.contacts USING btree (recorded_at); + + +-- +-- Name: dnskeys_object_id_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX dnskeys_object_id_idx ON audit.dnskeys USING btree (object_id); + + +-- +-- Name: dnskeys_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX dnskeys_recorded_at_idx ON audit.dnskeys USING btree (recorded_at); + + +-- +-- Name: domains_object_id_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX domains_object_id_idx ON audit.domains USING btree (object_id); + + +-- +-- Name: domains_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX domains_recorded_at_idx ON audit.domains USING btree (recorded_at); + + +-- +-- Name: nameservers_object_id_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX nameservers_object_id_idx ON audit.nameservers USING btree (object_id); + + +-- +-- Name: nameservers_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX nameservers_recorded_at_idx ON audit.nameservers USING btree (recorded_at); + + +-- +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); @@ -3826,21 +4209,56 @@ CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((( -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); + + +-- +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); -- --- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); + + +-- +-- Name: dnskeys process_dnskey_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_dnskey_audit AFTER INSERT OR DELETE OR UPDATE ON public.dnskeys FOR EACH ROW EXECUTE PROCEDURE public.process_dnskey_audit(); + + +-- +-- Name: domains process_domain_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.domains FOR EACH ROW EXECUTE PROCEDURE public.process_domain_audit(); + + +-- +-- Name: nameservers process_nameserver_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_nameserver_audit AFTER INSERT OR DELETE OR UPDATE ON public.nameservers FOR EACH ROW EXECUTE PROCEDURE public.process_nameserver_audit(); + + +-- +-- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3848,7 +4266,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4463,5 +4881,14 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200130092113'), ('20200203143458'), ('20200204103125'), -('20200311114649'); +('20200310105731'), +('20200310105736'), +('20200311114649'), +('20200319082650'), +('20200320090152'), +('20200320094842'), +('20200330111918'), +('20200408091005'), +('20200417075720'); + From 5c419ae8be7a6f0628f32329be8e7b3a218665ba Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 6 May 2020 15:17:20 +0500 Subject: [PATCH 462/757] Update whois record with auction registration_deadline if any --- app/controllers/api/v1/auctions_controller.rb | 2 ++ app/models/auction.rb | 11 +++++++++- app/models/whois/record.rb | 3 ++- test/models/whois/record_test.rb | 20 ++++++++++++++----- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app/controllers/api/v1/auctions_controller.rb b/app/controllers/api/v1/auctions_controller.rb index bf92be930..de8e94442 100644 --- a/app/controllers/api/v1/auctions_controller.rb +++ b/app/controllers/api/v1/auctions_controller.rb @@ -30,6 +30,8 @@ module Api raise "Invalid status #{params[:status]}" end + auction.mark_deadline(params[:registration_deadline]) if params[:registration_deadline] + if auction.payment_not_received? || auction.domain_not_registered? update_whois_from_auction(Auction.pending(auction.domain)) else diff --git a/app/models/auction.rb b/app/models/auction.rb index 6ddd8e394..c4b9f6130 100644 --- a/app/models/auction.rb +++ b/app/models/auction.rb @@ -23,10 +23,19 @@ class Auction < ApplicationRecord save! end + def whois_deadline + registration_deadline.to_s + end + def mark_as_no_bids no_bids! end + def mark_deadline(registration_deadline) + self.registration_deadline = registration_deadline + save! + end + def mark_as_payment_received self.status = self.class.statuses[:payment_received] generate_registration_code @@ -69,4 +78,4 @@ class Auction < ApplicationRecord def registration_code_matches?(code) registration_code == code end -end \ No newline at end of file +end diff --git a/app/models/whois/record.rb b/app/models/whois/record.rb index ae7422403..1d827e22a 100644 --- a/app/models/whois/record.rb +++ b/app/models/whois/record.rb @@ -16,7 +16,8 @@ module Whois elsif auction.awaiting_payment? || auction.payment_received? update!(json: { name: auction.domain, status: ['PendingRegistration'], - disclaimer: self.class.disclaimer }) + disclaimer: self.class.disclaimer, + registration_deadline: auction.whois_deadline }) end end end diff --git a/test/models/whois/record_test.rb b/test/models/whois/record_test.rb index 5f2454105..64e8a894a 100644 --- a/test/models/whois/record_test.rb +++ b/test/models/whois/record_test.rb @@ -40,24 +40,34 @@ class Whois::RecordTest < ActiveSupport::TestCase end def test_updates_whois_record_from_auction_when_awaiting_payment - @auction.update!(domain: 'domain.test', status: Auction.statuses[:awaiting_payment]) + @auction.update!(domain: 'domain.test', + status: Auction.statuses[:awaiting_payment], + registration_deadline: registration_deadline) @whois_record.update!(name: 'domain.test') @whois_record.update_from_auction(@auction) @whois_record.reload assert_equal ({ 'name' => 'domain.test', 'status' => ['PendingRegistration'], - 'disclaimer' => 'disclaimer' }), @whois_record.json + 'disclaimer' => 'disclaimer', + 'registration_deadline' => registration_deadline.to_s }), @whois_record.json end def test_updates_whois_record_from_auction_when_payment_received - @auction.update!(domain: 'domain.test', status: Auction.statuses[:payment_received]) + @auction.update!(domain: 'domain.test', + status: Auction.statuses[:payment_received], + registration_deadline: registration_deadline) @whois_record.update!(name: 'domain.test') @whois_record.update_from_auction(@auction) @whois_record.reload assert_equal ({ 'name' => 'domain.test', 'status' => ['PendingRegistration'], - 'disclaimer' => 'disclaimer' }), @whois_record.json + 'disclaimer' => 'disclaimer', + 'registration_deadline' => registration_deadline.to_s }), @whois_record.json end -end \ No newline at end of file + + def registration_deadline + Time.zone.now + 10.days + end +end From fabcdf9b7e7c59ef45523cc92ef2bbf2b73dd084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 7 May 2020 16:20:09 +0300 Subject: [PATCH 463/757] Use reserved>pw element as disputed password --- app/models/epp/domain.rb | 7 +++---- lib/schemas/eis-1.0.xsd | 11 ----------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 17046a8f1..40c445ba7 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -156,7 +156,6 @@ class Epp::Domain < Domain at[:period_unit] = Epp::Domain.parse_period_unit_from_frame(frame) || 'y' at[:reserved_pw] = frame.css('reserved > pw').text - at[:disputed_pw] = frame.css('disputed > pw').text # at[:statuses] = domain_statuses_attrs(frame, action) at[:nameservers_attributes] = nameservers_attrs(frame, action) @@ -479,15 +478,15 @@ class Epp::Domain < Domain same_registrant_as_current = (registrant.code == frame.css('registrant').text) if !same_registrant_as_current && disputed? - disputed_pw = frame.css('disputed > pw').text + disputed_pw = frame.css('reserved > pw').text if disputed_pw.blank? - add_epp_error('2304', nil, nil, 'Required parameter missing; disputed' \ + add_epp_error('2304', nil, nil, 'Required parameter missing; reserved' \ 'pw element required for dispute domains') else dispute = Dispute.active.find_by(domain_name: name, password: disputed_pw) if dispute.nil? add_epp_error('2202', nil, nil, 'Invalid authorization information; '\ - 'invalid disputed>pw value') + 'invalid reserved>pw value') end end end diff --git a/lib/schemas/eis-1.0.xsd b/lib/schemas/eis-1.0.xsd index 6a6bc742d..ddb3602c0 100644 --- a/lib/schemas/eis-1.0.xsd +++ b/lib/schemas/eis-1.0.xsd @@ -25,7 +25,6 @@ - @@ -50,16 +49,6 @@ - - - - - - - - From bd8ffb7e1daa92fa86597b64cabc4ee3ac461f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 7 May 2020 16:22:48 +0300 Subject: [PATCH 464/757] Remove destroy button from closed disputes --- app/controllers/admin/disputes_controller.rb | 4 ++-- app/views/admin/disputes/index.html.erb | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 8292bc464..02773e4c7 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -44,8 +44,8 @@ module Admin # DELETE /admin/disputes/1 def delete - @dispute.destroy - redirect_to admin_disputes_url, notice: 'Dispute was successfully destroyed.' + @dispute.update(closed: true) + redirect_to admin_disputes_url, notice: 'Dispute was successfully closed.' end private diff --git a/app/views/admin/disputes/index.html.erb b/app/views/admin/disputes/index.html.erb index eea74f59a..3a72e7d41 100644 --- a/app/views/admin/disputes/index.html.erb +++ b/app/views/admin/disputes/index.html.erb @@ -136,9 +136,6 @@ <%= sort_link(@q, 'comment') %> - - <%= t(:actions) %> - @@ -159,10 +156,6 @@ <%= x.comment %> - - <%= link_to t(:delete), delete_admin_dispute_path(id: x.id), - data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger btn-xs' %> - <% end %> From 4870dab8afb108ce01e7039f85eee724d3942277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 7 May 2020 16:40:37 +0300 Subject: [PATCH 465/757] Autoaccept registrant change if valid dispute password present --- app/models/domain.rb | 2 +- app/models/epp/domain.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 82921e3ab..d3296ab0c 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -185,7 +185,7 @@ class Domain < ApplicationRecord end attr_accessor :registrant_typeahead, :update_me, - :epp_pending_update, :epp_pending_delete, :reserved_pw, :disputed_pw + :epp_pending_update, :epp_pending_delete, :reserved_pw self.ignored_columns = %w[legacy_id legacy_registrar_id legacy_registrant_id] diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 40c445ba7..e478468ba 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -495,7 +495,7 @@ class Epp::Domain < Domain Setting.request_confrimation_on_registrant_change_enabled && frame.css('registrant').present? && frame.css('registrant').attr('verified').to_s.downcase != 'yes' - registrant_verification_asked!(frame.to_s, current_user.id) + registrant_verification_asked!(frame.to_s, current_user.id) unless disputed? end errors.empty? && super(at) From d035b7727d51c6826dab07f27f57973d2a0c3772 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 7 May 2020 13:51:22 +0500 Subject: [PATCH 466/757] Add tests for registry to receive registration_deadline --- test/integration/api/v1/auctions/update_test.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/integration/api/v1/auctions/update_test.rb b/test/integration/api/v1/auctions/update_test.rb index fe4d075b0..e6ce3c683 100644 --- a/test/integration/api/v1/auctions/update_test.rb +++ b/test/integration/api/v1/auctions/update_test.rb @@ -39,6 +39,17 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest assert @auction.awaiting_payment? end + def test_sets_registration_deadline + deadline = (Time.zone.now + 10.days).end_of_day + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:awaiting_payment], + registration_deadline: deadline}, + as: :json + @auction.reload + + assert_in_delta @auction.registration_deadline, deadline, 1.second + end + def test_marks_as_no_bids patch api_v1_auction_path(@auction.uuid), params: { status: Auction.statuses[:no_bids] }, From 6bff8257983541364ff41375861e7a893e424146 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 8 May 2020 13:31:05 +0500 Subject: [PATCH 467/757] Fix structure.sql --- db/structure.sql | 454 ++--------------------------------------------- 1 file changed, 14 insertions(+), 440 deletions(-) diff --git a/db/structure.sql b/db/structure.sql index eae59f5e0..511f38d2e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11,12 +11,6 @@ SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; --- --- Name: audit; Type: SCHEMA; Schema: -; Owner: - --- - -CREATE SCHEMA audit; - -- -- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - -- @@ -197,262 +191,12 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex $_$; --- --- Name: process_contact_audit(); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.process_contact_audit() RETURNS trigger - LANGUAGE plpgsql - AS $$ - BEGIN - IF (TG_OP = 'INSERT') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'UPDATE') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'DELETE') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); - RETURN OLD; - END IF; - RETURN NULL; - END -$$; - - --- --- Name: process_dnskey_audit(); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.process_dnskey_audit() RETURNS trigger - LANGUAGE plpgsql - AS $$ - BEGIN - IF (TG_OP = 'INSERT') THEN - INSERT INTO audit.dnskeys - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'UPDATE') THEN - INSERT INTO audit.dnskeys - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'DELETE') THEN - INSERT INTO audit.dnskeys - (object_id, action, recorded_at, old_value, new_value) - VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); - RETURN OLD; - END IF; - RETURN NULL; - END -$$; - - --- --- Name: process_domain_audit(); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.process_domain_audit() RETURNS trigger - LANGUAGE plpgsql - AS $$ - BEGIN - IF (TG_OP = 'INSERT') THEN - INSERT INTO audit.domains - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'UPDATE') THEN - INSERT INTO audit.domains - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'DELETE') THEN - INSERT INTO audit.domains - (object_id, action, recorded_at, old_value, new_value) - VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); - RETURN OLD; - END IF; - RETURN NULL; - END -$$; - - --- --- Name: process_nameserver_audit(); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.process_nameserver_audit() RETURNS trigger - LANGUAGE plpgsql - AS $$ - BEGIN - IF (TG_OP = 'INSERT') THEN - INSERT INTO audit.nameservers - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'UPDATE') THEN - INSERT INTO audit.nameservers - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'DELETE') THEN - INSERT INTO audit.nameservers - (object_id, action, recorded_at, old_value, new_value) - VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); - RETURN OLD; - END IF; - RETURN NULL; - END -$$; - - SET default_tablespace = ''; --- --- Name: contacts; Type: TABLE; Schema: audit; Owner: - --- - -CREATE TABLE audit.contacts ( - id integer NOT NULL, - object_id bigint, - action text NOT NULL, - recorded_at timestamp without time zone, - old_value jsonb, - new_value jsonb, - CONSTRAINT contacts_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) -); - +SET default_with_oids = false; -- --- Name: contacts_id_seq; Type: SEQUENCE; Schema: audit; Owner: - --- - -CREATE SEQUENCE audit.contacts_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: contacts_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - --- - -ALTER SEQUENCE audit.contacts_id_seq OWNED BY audit.contacts.id; - - --- --- Name: dnskeys; Type: TABLE; Schema: audit; Owner: - --- - -CREATE TABLE audit.dnskeys ( - id integer NOT NULL, - object_id bigint, - action text NOT NULL, - recorded_at timestamp without time zone, - old_value jsonb, - new_value jsonb, - CONSTRAINT dnskeys_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) -); - - --- --- Name: dnskeys_id_seq; Type: SEQUENCE; Schema: audit; Owner: - --- - -CREATE SEQUENCE audit.dnskeys_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: dnskeys_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - --- - -ALTER SEQUENCE audit.dnskeys_id_seq OWNED BY audit.dnskeys.id; - - --- --- Name: domains; Type: TABLE; Schema: audit; Owner: - --- - -CREATE TABLE audit.domains ( - id integer NOT NULL, - object_id bigint, - action text NOT NULL, - recorded_at timestamp without time zone, - old_value jsonb, - new_value jsonb, - CONSTRAINT domains_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) -); - - --- --- Name: domains_id_seq; Type: SEQUENCE; Schema: audit; Owner: - --- - -CREATE SEQUENCE audit.domains_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: domains_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - --- - -ALTER SEQUENCE audit.domains_id_seq OWNED BY audit.domains.id; - - --- --- Name: nameservers; Type: TABLE; Schema: audit; Owner: - --- - -CREATE TABLE audit.nameservers ( - id integer NOT NULL, - object_id bigint, - action text NOT NULL, - recorded_at timestamp without time zone, - old_value jsonb, - new_value jsonb, - CONSTRAINT nameservers_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) -); - - --- --- Name: nameservers_id_seq; Type: SEQUENCE; Schema: audit; Owner: - --- - -CREATE SEQUENCE audit.nameservers_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: nameservers_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - --- - -ALTER SEQUENCE audit.nameservers_id_seq OWNED BY audit.nameservers.id; - - --- --- Name: account_activities; Type: TABLE; Schema: public; Owner: - +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -815,16 +559,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: data_migrations; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.data_migrations ( - version character varying NOT NULL -); - - --- --- Name: directos; Type: TABLE; Schema: public; Owner: - +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -1011,8 +746,7 @@ CREATE TABLE public.domains ( uuid uuid DEFAULT public.gen_random_uuid() NOT NULL, locked_by_registrant_at timestamp without time zone, force_delete_start timestamp without time zone, - force_delete_data public.hstore, - children jsonb + force_delete_data public.hstore ); @@ -2611,42 +2345,14 @@ ALTER SEQUENCE public.zones_id_seq OWNED BY public.zones.id; -- --- Name: contacts id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.contacts ALTER COLUMN id SET DEFAULT nextval('audit.contacts_id_seq'::regclass); - - --- --- Name: dnskeys id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.dnskeys ALTER COLUMN id SET DEFAULT nextval('audit.dnskeys_id_seq'::regclass); - - --- --- Name: domains id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.domains ALTER COLUMN id SET DEFAULT nextval('audit.domains_id_seq'::regclass); - - --- --- Name: nameservers id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.nameservers ALTER COLUMN id SET DEFAULT nextval('audit.nameservers_id_seq'::regclass); - - --- --- Name: account_activities id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities ALTER COLUMN id SET DEFAULT nextval('public.account_activities_id_seq'::regclass); -- --- Name: accounts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts ALTER COLUMN id SET DEFAULT nextval('public.accounts_id_seq'::regclass); @@ -3017,39 +2723,7 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.contacts - ADD CONSTRAINT contacts_pkey PRIMARY KEY (id); - - --- --- Name: dnskeys dnskeys_pkey; Type: CONSTRAINT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.dnskeys - ADD CONSTRAINT dnskeys_pkey PRIMARY KEY (id); - - --- --- Name: domains domains_pkey; Type: CONSTRAINT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.domains - ADD CONSTRAINT domains_pkey PRIMARY KEY (id); - - --- --- Name: nameservers nameservers_pkey; Type: CONSTRAINT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.nameservers - ADD CONSTRAINT nameservers_pkey PRIMARY KEY (id); - - --- --- Name: account_activities account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -3057,7 +2731,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -3593,70 +3267,14 @@ ALTER TABLE ONLY public.zones -- --- Name: contacts_object_id_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX contacts_object_id_idx ON audit.contacts USING btree (object_id); - - --- --- Name: contacts_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX contacts_recorded_at_idx ON audit.contacts USING btree (recorded_at); - - --- --- Name: dnskeys_object_id_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX dnskeys_object_id_idx ON audit.dnskeys USING btree (object_id); - - --- --- Name: dnskeys_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX dnskeys_recorded_at_idx ON audit.dnskeys USING btree (recorded_at); - - --- --- Name: domains_object_id_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX domains_object_id_idx ON audit.domains USING btree (object_id); - - --- --- Name: domains_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX domains_recorded_at_idx ON audit.domains USING btree (recorded_at); - - --- --- Name: nameservers_object_id_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX nameservers_object_id_idx ON audit.nameservers USING btree (object_id); - - --- --- Name: nameservers_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX nameservers_recorded_at_idx ON audit.nameservers USING btree (recorded_at); - - --- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); @@ -4209,56 +3827,21 @@ CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((( -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); - - --- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); -- --- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); - - --- --- Name: dnskeys process_dnskey_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_dnskey_audit AFTER INSERT OR DELETE OR UPDATE ON public.dnskeys FOR EACH ROW EXECUTE PROCEDURE public.process_dnskey_audit(); - - --- --- Name: domains process_domain_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.domains FOR EACH ROW EXECUTE PROCEDURE public.process_domain_audit(); - - --- --- Name: nameservers process_nameserver_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_nameserver_audit AFTER INSERT OR DELETE OR UPDATE ON public.nameservers FOR EACH ROW EXECUTE PROCEDURE public.process_nameserver_audit(); - - --- --- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -4266,7 +3849,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4881,14 +4464,5 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200130092113'), ('20200203143458'), ('20200204103125'), -('20200310105731'), -('20200310105736'), ('20200311114649'), -('20200319082650'), -('20200320090152'), -('20200320094842'), -('20200330111918'), -('20200408091005'), ('20200417075720'); - - From dc9bf7a5d3e757d2548b805dffb8da28713dd05b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 8 May 2020 13:50:48 +0300 Subject: [PATCH 468/757] Add reserved pw field to domain edit UI if active dispute --- app/controllers/registrar/domains_controller.rb | 1 + app/views/registrar/domains/form/_general.haml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index e6e1029f6..b2c744d09 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -100,6 +100,7 @@ class Registrar authorize! :update, Depp::Domain @data = @domain.info(params[:domain_name]) @domain_params = Depp::Domain.construct_params_from_server_data(@data) + @disputed = Dispute.active.find_by(domain_name: params[:domain_name]).present? end def update diff --git a/app/views/registrar/domains/form/_general.haml b/app/views/registrar/domains/form/_general.haml index 0a729a262..56858a916 100644 --- a/app/views/registrar/domains/form/_general.haml +++ b/app/views/registrar/domains/form/_general.haml @@ -31,7 +31,7 @@ .col-md-7 = check_box_tag 'domain[verified]', '1', @domain_params[:verified].eql?('1'), onclick: "return (confirm('#{t(:verified_confirm)}') ? true : false);" - - unless params[:domain_name] + - if !params[:domain_name] || @disputed .form-group .col-md-3.control-label = label_tag :domain_reserved_pw, t(:reserved_pw) From 529a8a1bf698bb48f35fa93d5e536c8a8029f74c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 8 May 2020 15:48:48 +0300 Subject: [PATCH 469/757] Send unregistered domain to auction after dispute is closed --- app/models/dispute.rb | 12 ++++++++++-- app/models/dns/domain_name.rb | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/dispute.rb b/app/models/dispute.rb index b80a33e9c..a21ef28f7 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -55,8 +55,16 @@ class Dispute < ApplicationRecord return false unless update(closed: true) return if Dispute.active.where(domain_name: domain_name).any? - whois_record = Whois::Record.find_or_initialize_by(name: domain_name) - return true if remove_whois_data(whois_record) + domain = DNS::DomainName.new(domain_name) + if domain.available? && domain.auctionable? + domain.sell_at_auction + return true + else + whois_record = Whois::Record.find_or_initialize_by(name: domain_name) + return true if remove_whois_data(whois_record) + end + + false end def remove_whois_data(record) diff --git a/app/models/dns/domain_name.rb b/app/models/dns/domain_name.rb index c1af4d5e7..7df38341c 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -29,6 +29,8 @@ module DNS :at_auction elsif awaiting_payment? :awaiting_payment + elsif disputed? + :disputed end end From 5e152b3b9d897b6abe3be0c38b5257b5f6bbb7c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 11 May 2020 13:54:22 +0300 Subject: [PATCH 470/757] Validate Dispute.starts_at is not in future --- app/models/dispute.rb | 7 ++----- app/views/admin/disputes/_form.html.erb | 2 +- config/locales/admin/disputes.en.yml | 9 ++++++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/models/dispute.rb b/app/models/dispute.rb index a21ef28f7..031e15855 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -4,10 +4,7 @@ class Dispute < ApplicationRecord before_validation :set_expiry_date validate :validate_domain_name_format validate :validate_domain_name_period_uniqueness - - with_options on: :admin do - validate :validate_start_date - end + validate :validate_start_date before_save :set_expiry_date before_save :sync_reserved_password @@ -112,7 +109,7 @@ class Dispute < ApplicationRecord def validate_start_date return if starts_at.nil? - errors.add(:starts_at, :past) if starts_at.past? + errors.add(:starts_at, :future) if starts_at.future? end def validate_domain_name_format diff --git a/app/views/admin/disputes/_form.html.erb b/app/views/admin/disputes/_form.html.erb index df2151c6c..2a3fb722f 100644 --- a/app/views/admin/disputes/_form.html.erb +++ b/app/views/admin/disputes/_form.html.erb @@ -36,7 +36,7 @@
<%= f.text_field(:starts_at, class: 'form-control js-datepicker') %> - <%= t '.in_future' %> + <%= t '.past_or_today' %>
diff --git a/config/locales/admin/disputes.en.yml b/config/locales/admin/disputes.en.yml index ba5b79099..072f0eebc 100644 --- a/config/locales/admin/disputes.en.yml +++ b/config/locales/admin/disputes.en.yml @@ -1,4 +1,11 @@ en: + activerecord: + errors: + models: + dispute: + attributes: + starts_at: + future: 'can not be greater than today' admin: disputes: index: @@ -9,4 +16,4 @@ en: form: password_hint: Generated automatically if left blank optional: Not required by default - in_future: Must be at least today / in future + past_or_today: Can not be greater than today's date From a2bd9a7cc0cd1bda76e2f55e71ba8a07860d8292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 11 May 2020 17:42:04 +0300 Subject: [PATCH 471/757] Update CHANGELOG.md auction due dates to whois --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cdc184c6e..e8ca16670 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +11.05.2020 +* Auction process due dates are now available over whois and rest-whois [#1201](https://github.com/internetee/registry/issues/1201) + 30.04.2020 * Fix for internal error on opening domain history with legacy id record [#1576](https://github.com/internetee/registry/issues/1576) From e7ad4a7c6427aa6cc190953394bd838b2884c393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 11 May 2020 16:06:35 +0300 Subject: [PATCH 472/757] Move domain dispute logic to concern --- app/models/concerns/domain/disputable.rb | 44 ++++++++++++++++++++ app/models/dispute.rb | 20 ++++++++- app/models/domain.rb | 29 ++----------- app/models/domain_status.rb | 3 +- app/models/whois_record.rb | 1 + test/integration/admin_area/disputes_test.rb | 2 +- 6 files changed, 70 insertions(+), 29 deletions(-) create mode 100644 app/models/concerns/domain/disputable.rb diff --git a/app/models/concerns/domain/disputable.rb b/app/models/concerns/domain/disputable.rb new file mode 100644 index 000000000..757f10fd3 --- /dev/null +++ b/app/models/concerns/domain/disputable.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +module Concerns + module Domain + module Disputable + extend ActiveSupport::Concern + + included do + validate :validate_disputed + end + + def mark_as_disputed + statuses.push(DomainStatus::DISPUTED) unless statuses.include?(DomainStatus::DISPUTED) + save + end + + def unmark_as_disputed + statuses.delete_if { |status| status == DomainStatus::DISPUTED } + save + end + + def in_disputed_list? + @in_disputed_list ||= Dispute.active.find_by(domain_name: name).present? + end + + def disputed? + Dispute.active.where(domain_name: name).any? + end + + def validate_disputed + return if persisted? || !in_disputed_list? + + if reserved_pw.blank? + errors.add(:base, :required_parameter_missing_reserved) + return false + end + + return if Dispute.valid_auth?(name, reserved_pw) + + errors.add(:base, :invalid_auth_information_reserved) + end + end + end +end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 031e15855..279475e23 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -12,16 +12,24 @@ class Dispute < ApplicationRecord after_destroy :remove_data scope :expired, -> { where('expires_at < ?', Time.zone.today) } - scope :active, -> { where('expires_at >= ? AND closed = false', Time.zone.today) } + scope :active, lambda { + where('starts_at <= ? AND expires_at >= ? AND closed = false', Time.zone.today, Time.zone.today) + } scope :closed, -> { where(closed: true) } attr_readonly :domain_name alias_attribute :name, :domain_name + def domain + Domain.find_by(name: domain_name) + end + def self.close_by_domain(domain_name) dispute = Dispute.active.find_by(domain_name: domain_name) - dispute.update(closed: true) if dispute.present? + return false unless dispute + + dispute.close end def self.valid_auth?(domain_name, password) @@ -40,6 +48,12 @@ class Dispute < ApplicationRecord def generate_data return if starts_at > Time.zone.today + return if expires_at < Time.zone.today + + domain = Domain.find_by_idn(domain_name) + domain&.mark_as_disputed + + return if domain wr = Whois::Record.find_or_initialize_by(name: domain_name) wr.json = generate_json(wr) @@ -52,6 +66,8 @@ class Dispute < ApplicationRecord return false unless update(closed: true) return if Dispute.active.where(domain_name: domain_name).any? + Domain.find_by_idn(domain_name)&.unmark_as_disputed + domain = DNS::DomainName.new(domain_name) if domain.available? && domain.auctionable? domain.sell_at_auction diff --git a/app/models/domain.rb b/app/models/domain.rb index d3296ab0c..805b58309 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -9,6 +9,7 @@ class Domain < ApplicationRecord include Concerns::Domain::Transferable include Concerns::Domain::RegistryLockable include Concerns::Domain::Releasable + include Concerns::Domain::Disputable attr_accessor :roles @@ -88,9 +89,8 @@ class Domain < ApplicationRecord validates :puny_label, length: { maximum: 63 } validates :period, presence: true, numericality: { only_integer: true } validates :transfer_code, presence: true - validate :validate_reservation - validate :validate_disputed + def validate_reservation return if persisted? || !in_reserved_list? @@ -104,19 +104,6 @@ class Domain < ApplicationRecord errors.add(:base, :invalid_auth_information_reserved) end - def validate_disputed - return if persisted? || !in_disputed_list? - - if reserved_pw.blank? - errors.add(:base, :required_parameter_missing_reserved) - return false - end - - return if Dispute.valid_auth?(name, reserved_pw) - - errors.add(:base, :invalid_auth_information_reserved) - end - validate :status_is_consistant def status_is_consistant has_error = (statuses.include?(DomainStatus::SERVER_HOLD) && statuses.include?(DomainStatus::SERVER_MANUAL_INZONE)) @@ -290,14 +277,6 @@ class Domain < ApplicationRecord @in_reserved_list ||= ReservedDomain.by_domain(name).any? end - def in_disputed_list? - @in_disputed_list ||= Dispute.active.find_by(domain_name: name).present? - end - - def disputed? - Dispute.active.where(domain_name: name).any? - end - def pending_transfer transfers.find_by(status: DomainTransfer::PENDING) end @@ -318,8 +297,8 @@ class Domain < ApplicationRecord return false if statuses.include_any?(DomainStatus::DELETE_CANDIDATE, DomainStatus::PENDING_RENEW, DomainStatus::PENDING_TRANSFER, DomainStatus::PENDING_DELETE, - DomainStatus::PENDING_UPDATE, DomainStatus::PENDING_DELETE_CONFIRMATION) - return false if disputed? + DomainStatus::PENDING_UPDATE, DomainStatus::PENDING_DELETE_CONFIRMATION, + DomainStatus::DISPUTED) true end diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index 4b1c49916..7a2f9d020 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -70,6 +70,7 @@ class DomainStatus < ApplicationRecord FORCE_DELETE = 'serverForceDelete' DELETE_CANDIDATE = 'deleteCandidate' EXPIRED = 'expired' + DISPUTED = 'disputed' STATUSES = [ CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD, @@ -78,7 +79,7 @@ class DomainStatus < ApplicationRecord 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 + DELETE_CANDIDATE, EXPIRED, DISPUTED ] CLIENT_STATUSES = [ diff --git a/app/models/whois_record.rb b/app/models/whois_record.rb index cace829fa..4994283c9 100644 --- a/app/models/whois_record.rb +++ b/app/models/whois_record.rb @@ -84,6 +84,7 @@ class WhoisRecord < ApplicationRecord def populate return if domain_id.blank? + self.json = generated_json self.name = json['name'] self.registrar_id = domain.registrar_id if domain # for faster registrar updates diff --git a/test/integration/admin_area/disputes_test.rb b/test/integration/admin_area/disputes_test.rb index 1806eaea4..cfda9d23d 100644 --- a/test/integration/admin_area/disputes_test.rb +++ b/test/integration/admin_area/disputes_test.rb @@ -60,7 +60,7 @@ class AdminDisputesSystemTest < ApplicationSystemTestCase def test_deletes_dispute visit delete_admin_dispute_path(@dispute) - assert_text 'Dispute was successfully destroyed.' + assert_text 'Dispute was successfully closed.' end def test_can_not_create_overlapping_dispute From c2f8589044da96aa4a316b6d97e5b3d4858f2ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 12 May 2020 11:38:28 +0300 Subject: [PATCH 473/757] Verify that CN is present when uploading CSR/CRT --- app/models/certificate.rb | 29 +++++++++++++++-------------- test/fixtures/certificates.yml | 9 ++++++++- test/models/api_user_test.rb | 8 ++++++-- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/app/models/certificate.rb b/app/models/certificate.rb index f0711d4f5..940c5fdc8 100644 --- a/app/models/certificate.rb +++ b/app/models/certificate.rb @@ -32,20 +32,21 @@ class Certificate < ApplicationRecord errors.add(:base, I18n.t(:invalid_csr_or_crt)) end - before_create :parse_metadata - def parse_metadata - if crt - pc = parsed_crt.try(:subject).try(:to_s) || '' - cn = pc.scan(/\/CN=(.+)/).flatten.first - self.common_name = cn.split('/').first - self.md5 = OpenSSL::Digest::MD5.new(parsed_crt.to_der).to_s - self.interface = API - elsif csr - pc = parsed_csr.try(:subject).try(:to_s) || '' - cn = pc.scan(/\/CN=(.+)/).flatten.first - self.common_name = cn.split('/').first - self.interface = REGISTRAR - end + validate :assign_metadata + + def assign_metadata + origin = crt ? parsed_crt : parsed_csr + parse_metadata(origin) + rescue NoMethodError + errors.add(:base, I18n.t(:invalid_csr_or_crt)) + end + + def parse_metadata(origin) + pc = origin.subject.to_s + cn = pc.scan(%r{\/CN=(.+)}).flatten.first + self.common_name = cn.split('/').first + self.md5 = OpenSSL::Digest::MD5.new(origin.to_der).to_s if crt + self.interface = crt ? API : REGISTRAR end def parsed_crt diff --git a/test/fixtures/certificates.yml b/test/fixtures/certificates.yml index c91df3ace..4799743ff 100644 --- a/test/fixtures/certificates.yml +++ b/test/fixtures/certificates.yml @@ -1,7 +1,14 @@ -one: +api: api_user: api_bestnames common_name: registry.test crt: "-----BEGIN CERTIFICATE-----\nMIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBNMQswCQYDVQQGEwJ1czEO\nMAwGA1UECAwFVGV4YXMxFjAUBgNVBAoMDVJlZ2lzdHJ5IHRlc3QxFjAUBgNVBAMM\nDXJlZ2lzdHJ5LnRlc3QwIBcNMjAwNTA1MTIzNzQxWhgPMjEyMDA0MTExMjM3NDFa\nME0xCzAJBgNVBAYTAnVzMQ4wDAYDVQQIDAVUZXhhczEWMBQGA1UECgwNUmVnaXN0\ncnkgdGVzdDEWMBQGA1UEAwwNcmVnaXN0cnkudGVzdDCBnzANBgkqhkiG9w0BAQEF\nAAOBjQAwgYkCgYEAyn+GCkUJIhdXVBOPrZH+Zj2B/tQfL5TLZwVYZQt38x6GQT+4\n6ndty467IJvKSUlHej7uMpsCzC8Ffmda4cZm16jO1vUb4hXIrmeKP84zLrrUpKag\ngZR4rBDbG2+uL4SzMyy3yeQysYuTiQ4N1i4vdhvkKYPSWIht/QFvuzdFq+0CAwEA\nAaNQME4wHQYDVR0OBBYEFD6B5j6NnMCDBnfbtjBYKBJM7sCRMB8GA1UdIwQYMBaA\nFD6B5j6NnMCDBnfbtjBYKBJM7sCRMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEN\nBQADgYEArtCR6VOabD3nM/KlZTmHMZVT4ntenYlNTM9FS0RatzPmdh4REhykvmZs\nOlBcpoV5tN5Y8bHOVRqY9V2e903QEhQgoccQhbt0Py6uFwfLv+WLKAUbeGnPqK9d\ndL3wXN9BQs0hJA6IZNFyz2F/gSTURrD1zWW2na3ipRzhupW5+98=\n-----END CERTIFICATE-----\n" md5: e6771ed5dc857a1dbcc1e0a36baa1fee interface: api revoked: false +registrar: + api_user: api_bestnames + common_name: registry.test + crt: "-----BEGIN CERTIFICATE-----\nMIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBNMQswCQYDVQQGEwJ1czEO\nMAwGA1UECAwFVGV4YXMxFjAUBgNVBAoMDVJlZ2lzdHJ5IHRlc3QxFjAUBgNVBAMM\nDXJlZ2lzdHJ5LnRlc3QwIBcNMjAwNTA1MTIzNzQxWhgPMjEyMDA0MTExMjM3NDFa\nME0xCzAJBgNVBAYTAnVzMQ4wDAYDVQQIDAVUZXhhczEWMBQGA1UECgwNUmVnaXN0\ncnkgdGVzdDEWMBQGA1UEAwwNcmVnaXN0cnkudGVzdDCBnzANBgkqhkiG9w0BAQEF\nAAOBjQAwgYkCgYEAyn+GCkUJIhdXVBOPrZH+Zj2B/tQfL5TLZwVYZQt38x6GQT+4\n6ndty467IJvKSUlHej7uMpsCzC8Ffmda4cZm16jO1vUb4hXIrmeKP84zLrrUpKag\ngZR4rBDbG2+uL4SzMyy3yeQysYuTiQ4N1i4vdhvkKYPSWIht/QFvuzdFq+0CAwEA\nAaNQME4wHQYDVR0OBBYEFD6B5j6NnMCDBnfbtjBYKBJM7sCRMB8GA1UdIwQYMBaA\nFD6B5j6NnMCDBnfbtjBYKBJM7sCRMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEN\nBQADgYEArtCR6VOabD3nM/KlZTmHMZVT4ntenYlNTM9FS0RatzPmdh4REhykvmZs\nOlBcpoV5tN5Y8bHOVRqY9V2e903QEhQgoccQhbt0Py6uFwfLv+WLKAUbeGnPqK9d\ndL3wXN9BQs0hJA6IZNFyz2F/gSTURrD1zWW2na3ipRzhupW5+98=\n-----END CERTIFICATE-----\n" + md5: e6771ed5dc857a1dbcc1e0a36baa1fee + interface: registrar + revoked: false diff --git a/test/models/api_user_test.rb b/test/models/api_user_test.rb index dd907f75c..ecbff5cbb 100644 --- a/test/models/api_user_test.rb +++ b/test/models/api_user_test.rb @@ -64,18 +64,22 @@ class ApiUserTest < ActiveSupport::TestCase end def test_verifies_pki_status - certificate = certificates(:one) + certificate = certificates(:api) assert @user.pki_ok?(certificate.crt, certificate.common_name, api: true) assert_not @user.pki_ok?(certificate.crt, 'invalid-cn', api: true) - certificate.update(interface: 'registrar') + certificate = certificates(:registrar) assert @user.pki_ok?(certificate.crt, certificate.common_name, api: false) assert_not @user.pki_ok?(certificate.crt, 'invalid-cn', api: false) certificate.update(revoked: true) assert_not @user.pki_ok?(certificate.crt, certificate.common_name, api: false) + + certificate = certificates(:api) + certificate.update(revoked: true) + assert_not @user.pki_ok?(certificate.crt, certificate.common_name, api: true) end private From 36e036e2315c194a624f45c9e454ec98ecec6bb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 12 May 2020 21:27:54 +0300 Subject: [PATCH 474/757] Write metadata only on create --- app/models/certificate.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/certificate.rb b/app/models/certificate.rb index 940c5fdc8..d2428365a 100644 --- a/app/models/certificate.rb +++ b/app/models/certificate.rb @@ -32,7 +32,7 @@ class Certificate < ApplicationRecord errors.add(:base, I18n.t(:invalid_csr_or_crt)) end - validate :assign_metadata + validate :assign_metadata, on: :create def assign_metadata origin = crt ? parsed_crt : parsed_csr From be14ede8b6b3bbdb21a24e5878e90b0aec200dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 12 May 2020 14:52:27 +0300 Subject: [PATCH 475/757] Refactor some dispute logic --- app/controllers/admin/disputes_controller.rb | 2 +- app/controllers/epp/domains_controller.rb | 2 +- app/models/dispute.rb | 45 ++++++++------------ app/models/dns/domain_name.rb | 2 - app/models/domain.rb | 21 ++++----- app/models/domain_status.rb | 8 ++-- app/models/epp/domain.rb | 6 ++- test/jobs/dispute_status_update_job_test.rb | 4 +- 8 files changed, 42 insertions(+), 48 deletions(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 02773e4c7..03b4d4895 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -44,7 +44,7 @@ module Admin # DELETE /admin/disputes/1 def delete - @dispute.update(closed: true) + @dispute.close redirect_to admin_disputes_url, notice: 'Dispute was successfully closed.' end diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 4e91632e5..9655eddfa 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -106,7 +106,7 @@ module Epp updated = @domain.update(params[:parsed_frame], current_user) (handle_errors(@domain) && return) unless updated - Dispute.active.close_by_domain(@domain.name) if @domain.disputed? + Dispute.close_by_domain(@domain.name) if @domain.disputed? pending = @domain.epp_pending_update.present? render_epp_response "/epp/domains/success#{'_pending' if pending}" end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 279475e23..1d445bc56 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -1,14 +1,11 @@ class Dispute < ApplicationRecord validates :domain_name, :password, :starts_at, :expires_at, presence: true - before_validation :fill_empty_passwords - before_validation :set_expiry_date + before_validation :fill_empty_passwords, :set_expiry_date validate :validate_domain_name_format validate :validate_domain_name_period_uniqueness validate :validate_start_date - before_save :set_expiry_date - before_save :sync_reserved_password - before_save :generate_data + before_save :set_expiry_date, :sync_reserved_password, :generate_data after_destroy :remove_data scope :expired, -> { where('expires_at < ?', Time.zone.today) } @@ -19,8 +16,6 @@ class Dispute < ApplicationRecord attr_readonly :domain_name - alias_attribute :name, :domain_name - def domain Domain.find_by(name: domain_name) end @@ -47,12 +42,9 @@ class Dispute < ApplicationRecord end def generate_data - return if starts_at > Time.zone.today - return if expires_at < Time.zone.today + return if starts_at > Time.zone.today || expires_at < Time.zone.today - domain = Domain.find_by_idn(domain_name) domain&.mark_as_disputed - return if domain wr = Whois::Record.find_or_initialize_by(name: domain_name) @@ -60,32 +52,31 @@ class Dispute < ApplicationRecord wr.save end - alias_method :update_whois_record, :generate_data - def close return false unless update(closed: true) return if Dispute.active.where(domain_name: domain_name).any? - Domain.find_by_idn(domain_name)&.unmark_as_disputed + domain&.unmark_as_disputed + return true if domain + forward_to_auction_if_possible + end + + def forward_to_auction_if_possible domain = DNS::DomainName.new(domain_name) - if domain.available? && domain.auctionable? - domain.sell_at_auction - return true - else - whois_record = Whois::Record.find_or_initialize_by(name: domain_name) - return true if remove_whois_data(whois_record) - end + return domain.sell_at_auction if domain.available? && domain.auctionable? - false + whois_record = Whois::Record.find_by(name: domain_name) + remove_whois_data(whois_record) end def remove_whois_data(record) - record.json['status'] = record.json['status'].delete_if { |status| status == 'disputed' } - if record.json['status'].blank? - return true if record.destroy && record.json['status'].blank? - end - record.save + return true unless record + + record.json['status'].delete_if { |status| status == 'disputed' } + record.destroy && return if record.json['status'].blank? + + save end def generate_json(record) diff --git a/app/models/dns/domain_name.rb b/app/models/dns/domain_name.rb index 7df38341c..c1af4d5e7 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -29,8 +29,6 @@ module DNS :at_auction elsif awaiting_payment? :awaiting_payment - elsif disputed? - :disputed end end diff --git a/app/models/domain.rb b/app/models/domain.rb index 805b58309..fff0d4a08 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -284,21 +284,22 @@ class Domain < ApplicationRecord def server_holdable? return false if statuses.include?(DomainStatus::SERVER_HOLD) return false if statuses.include?(DomainStatus::SERVER_MANUAL_INZONE) + true end def renewable? - if Setting.days_to_renew_domain_before_expire != 0 - # if you can renew domain at days_to_renew before domain expiration - if (expire_time.to_date - Time.zone.today) + 1 > Setting.days_to_renew_domain_before_expire - return false - end - end + blocking_statuses = [DomainStatus::DELETE_CANDIDATE, DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_TRANSFER, DomainStatus::DISPUTED, + DomainStatus::PENDING_UPDATE, DomainStatus::PENDING_DELETE, + DomainStatus::PENDING_DELETE_CONFIRMATION] + return false if statuses.include_any? blocking_statuses + return true unless Setting.days_to_renew_domain_before_expire != 0 - return false if statuses.include_any?(DomainStatus::DELETE_CANDIDATE, DomainStatus::PENDING_RENEW, - DomainStatus::PENDING_TRANSFER, DomainStatus::PENDING_DELETE, - DomainStatus::PENDING_UPDATE, DomainStatus::PENDING_DELETE_CONFIRMATION, - DomainStatus::DISPUTED) + # if you can renew domain at days_to_renew before domain expiration + if (expire_time.to_date - Time.zone.today) + 1 > Setting.days_to_renew_domain_before_expire + return false + end true end diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index 7a2f9d020..bf0ae2a51 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class DomainStatus < ApplicationRecord include EppErrors belongs_to :domain @@ -80,18 +82,18 @@ class DomainStatus < ApplicationRecord PENDING_UPDATE, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, DELETE_CANDIDATE, EXPIRED, DISPUTED - ] + ].freeze CLIENT_STATUSES = [ CLIENT_DELETE_PROHIBITED, CLIENT_HOLD, CLIENT_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED, CLIENT_UPDATE_PROHIBITED - ] + ].freeze 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 - ] + ].freeze UPDATE_PROHIBIT_STATES = [ DomainStatus::PENDING_DELETE_CONFIRMATION, diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index e478468ba..32c7a2667 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -491,10 +491,12 @@ class Epp::Domain < Domain end end + unverified_registrant_params = frame.css('registrant').present? && + frame.css('registrant').attr('verified').to_s.downcase != 'yes' + if !same_registrant_as_current && errors.empty? && verify && Setting.request_confrimation_on_registrant_change_enabled && - frame.css('registrant').present? && - frame.css('registrant').attr('verified').to_s.downcase != 'yes' + unverified_registrant_params registrant_verification_asked!(frame.to_s, current_user.id) unless disputed? end diff --git a/test/jobs/dispute_status_update_job_test.rb b/test/jobs/dispute_status_update_job_test.rb index a66db3459..64c7e000e 100644 --- a/test/jobs/dispute_status_update_job_test.rb +++ b/test/jobs/dispute_status_update_job_test.rb @@ -20,7 +20,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase assert_includes whois_record.json['status'], 'disputed' end - def test_unregistered_domain_whois_data_is_deleted + def test_on_expiry_unregistered_domain_is_sent_to_auction dispute = disputes(:active) dispute.update!(starts_at: Time.zone.today - 3.years - 1.day) @@ -30,7 +30,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase assert dispute.closed whois_record = Whois::Record.find_by(name: dispute.domain_name) - assert whois_record.nil? + assert_equal ['AtAuction'], whois_record.json['status'] end def test_registered_domain_whois_data_is_added From 18ce8534206f9bfc28c5416fa6512235de793e6f Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Thu, 14 May 2020 14:33:38 +0300 Subject: [PATCH 476/757] Simple implementation of retained domains API endpoint This needed a new name, there are several classes of database object to be included in that endpoint. Currently, there is one list ordered by name, with each object containing status and ascii name for convenience. Can be converted to multiple fields (reserved and blocked separately). Also contains total count. Includes CORS preflight which seems to be a known problem for Rails in the past. --- .../repp/v1/retained_domains_controller.rb | 11 ++++ app/models/retained_domains.rb | 51 +++++++++++++++++++ config/routes.rb | 12 +++++ .../integration/repp/retained_domains_test.rb | 39 ++++++++++++++ 4 files changed, 113 insertions(+) create mode 100644 app/controllers/repp/v1/retained_domains_controller.rb create mode 100644 app/models/retained_domains.rb create mode 100644 test/integration/repp/retained_domains_test.rb diff --git a/app/controllers/repp/v1/retained_domains_controller.rb b/app/controllers/repp/v1/retained_domains_controller.rb new file mode 100644 index 000000000..e28bc531f --- /dev/null +++ b/app/controllers/repp/v1/retained_domains_controller.rb @@ -0,0 +1,11 @@ +module Repp + module V1 + class RetainedDomainsController < ActionController::API + def index + domains = RetainedDomains.new + + render json: { count: domains.count, domains: domains.to_jsonable } + end + end + end +end diff --git a/app/models/retained_domains.rb b/app/models/retained_domains.rb new file mode 100644 index 000000000..b0f077919 --- /dev/null +++ b/app/models/retained_domains.rb @@ -0,0 +1,51 @@ +# Hiding the queries behind its own class will allow us to include disputed or +# auctioned domains without meddling up with controller logic. +class RetainedDomains + RESERVED = 'reserved'.freeze + BLOCKED = 'blocked'.freeze + + attr_reader :domains + + def initialize + @domains = gather_domains + end + + def gather_domains + blocked_domains = BlockedDomain.order(name: :desc).all + reserved_domains = ReservedDomain.order(name: :desc).all + + domains = blocked_domains.to_a.union(reserved_domains.to_a) + + domains.sort_by(&:name) + end + + def to_jsonable + domains.map { |el| domain_to_json(el) } + end + + def domain_to_json(domain) + # Smelly, but ActiveRecord objects are weird and do not respond + # to usual syntax: + # case a + # when Array then "foo" + # when Hash then "bar" + # else "baz" + # end + status = case domain.class.to_s + when 'ReservedDomain' then RESERVED + when 'BlockedDomain' then BLOCKED + end + + punycode = SimpleIDN.to_ascii(domain.name) + + { + name: domain.name, + status: status, + punycode_name: punycode + } + end + + def count + domains.count + end +end diff --git a/config/routes.rb b/config/routes.rb index 53d78dfa9..a8b78a1f9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -39,6 +39,18 @@ Rails.application.routes.draw do mount Repp::API => '/' + namespace :repp do + namespace :v1 do + resources :retained_domains, only: %i[index] + end + end + + match 'repp/v1/retained_domains', + controller: 'api/cors', + action: 'cors_preflight_check', + via: [:options], + as: 'repp_cors_preflight_check' + namespace :api do namespace :v1 do namespace :registrant do diff --git a/test/integration/repp/retained_domains_test.rb b/test/integration/repp/retained_domains_test.rb new file mode 100644 index 000000000..c30af001e --- /dev/null +++ b/test/integration/repp/retained_domains_test.rb @@ -0,0 +1,39 @@ +require 'test_helper' + +class ReppV1RetainedDomainsTest < ActionDispatch::IntegrationTest + # Uses magical fixtures, will fail once fixtures inside are changed: + # test/fixtures/blocked_domains.yml + # test/fixtures/reserved_domains.yml + + def test_get_index + get repp_v1_retained_domains_path + response_json = JSON.parse(response.body, symbolize_names: true) + + assert response_json[:count] == 3 + + expected_objects = [{ name: 'blocked.test', + status: 'blocked', + punycode_name: 'blocked.test' }, + { name: 'blockedäöüõ.test', + status: 'blocked', + punycode_name: 'xn--blocked-cxa7mj0e.test' }, + { name: 'reserved.test', + status: 'reserved', + punycode_name: 'reserved.test' }] + + assert_equal response_json[:domains], expected_objects + end + + def test_cors_preflight + process :options, repp_v1_retained_domains_path, headers: { 'Origin' => 'https://example.com' } + + assert_equal('https://example.com', response.headers['Access-Control-Allow-Origin']) + assert_equal('POST, GET, PUT, PATCH, DELETE, OPTIONS', + response.headers['Access-Control-Allow-Methods']) + assert_equal('Origin, Content-Type, Accept, Authorization, Token, Auth-Token, Email, ' \ + 'X-User-Token, X-User-Email', + response.headers['Access-Control-Allow-Headers']) + assert_equal('3600', response.headers['Access-Control-Max-Age']) + assert_equal('', response.body) + end +end From 88a3a2ebac27536a035d762122adfa5efe90b5ba Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Thu, 14 May 2020 14:59:17 +0300 Subject: [PATCH 477/757] Make Rubocop less whiny about things --- app/models/retained_domains.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/models/retained_domains.rb b/app/models/retained_domains.rb index b0f077919..98fa9f5ff 100644 --- a/app/models/retained_domains.rb +++ b/app/models/retained_domains.rb @@ -41,11 +41,9 @@ class RetainedDomains { name: domain.name, status: status, - punycode_name: punycode + punycode_name: punycode, } end - def count - domains.count - end + delegate :count, to: :domains end From 960e4084e3225287a52bc5f1a504e1439b7925e3 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Thu, 14 May 2020 15:26:33 +0300 Subject: [PATCH 478/757] Properly match against class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Turns out I was wrong 😅 --- app/models/retained_domains.rb | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/app/models/retained_domains.rb b/app/models/retained_domains.rb index 98fa9f5ff..e821adbc9 100644 --- a/app/models/retained_domains.rb +++ b/app/models/retained_domains.rb @@ -24,16 +24,9 @@ class RetainedDomains end def domain_to_json(domain) - # Smelly, but ActiveRecord objects are weird and do not respond - # to usual syntax: - # case a - # when Array then "foo" - # when Hash then "bar" - # else "baz" - # end - status = case domain.class.to_s - when 'ReservedDomain' then RESERVED - when 'BlockedDomain' then BLOCKED + status = case domain + when ReservedDomain then RESERVED + when BlockedDomain then BLOCKED end punycode = SimpleIDN.to_ascii(domain.name) From 5f645d7370667c33e0c3e40c9cde0d0fd4762361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 14 May 2020 18:56:20 +0300 Subject: [PATCH 479/757] Update CHANGELOG.md fixed revoking of certificates --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8ca16670..ae71b2adf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +14.05.2020 +* Deleted certificates are now revoked first [#952](https://github.com/internetee/registry/issues/952) + 11.05.2020 * Auction process due dates are now available over whois and rest-whois [#1201](https://github.com/internetee/registry/issues/1201) From 6e5a97ad4db836f41a0a695024e0b7e95321f606 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Fri, 15 May 2020 14:43:18 +0300 Subject: [PATCH 480/757] Add handling of type filters and handling of ETags Add API documentation and test cases around ETags for the API. --- .../repp/v1/retained_domains_controller.rb | 6 +- app/models/retained_domains.rb | 47 +++++++-- doc/repp/v1/retained_domains.md | 96 +++++++++++++++++++ doc/repp_doc.md | 17 ++-- .../integration/repp/retained_domains_test.rb | 35 +++++++ 5 files changed, 182 insertions(+), 19 deletions(-) create mode 100644 doc/repp/v1/retained_domains.md diff --git a/app/controllers/repp/v1/retained_domains_controller.rb b/app/controllers/repp/v1/retained_domains_controller.rb index e28bc531f..c1bb458e9 100644 --- a/app/controllers/repp/v1/retained_domains_controller.rb +++ b/app/controllers/repp/v1/retained_domains_controller.rb @@ -2,10 +2,14 @@ module Repp module V1 class RetainedDomainsController < ActionController::API def index - domains = RetainedDomains.new + domains = RetainedDomains.new(query_params) render json: { count: domains.count, domains: domains.to_jsonable } end + + def query_params + params.permit(:type) + end end end end diff --git a/app/models/retained_domains.rb b/app/models/retained_domains.rb index e821adbc9..ea76710ee 100644 --- a/app/models/retained_domains.rb +++ b/app/models/retained_domains.rb @@ -4,26 +4,55 @@ class RetainedDomains RESERVED = 'reserved'.freeze BLOCKED = 'blocked'.freeze - attr_reader :domains + attr_reader :domains, + :type - def initialize + def initialize(params) + @type = establish_type(params) @domains = gather_domains end - def gather_domains - blocked_domains = BlockedDomain.order(name: :desc).all - reserved_domains = ReservedDomain.order(name: :desc).all + delegate :count, to: :domains + def to_jsonable + domains.map { |el| domain_to_jsonable(el) } + end + + private + + def establish_type(params) + type = params[:type] + + case type + when 'reserved' then :reserved + when 'blocked' then :blocked + else :all + end + end + + def gather_domains domains = blocked_domains.to_a.union(reserved_domains.to_a) domains.sort_by(&:name) end - def to_jsonable - domains.map { |el| domain_to_json(el) } + def blocked_domains + if %i[all blocked].include?(type) + BlockedDomain.order(name: :desc).all + else + [] + end end - def domain_to_json(domain) + def reserved_domains + if %i[all reserved].include?(type) + ReservedDomain.order(name: :desc).all + else + [] + end + end + + def domain_to_jsonable(domain) status = case domain when ReservedDomain then RESERVED when BlockedDomain then BLOCKED @@ -37,6 +66,4 @@ class RetainedDomains punycode_name: punycode, } end - - delegate :count, to: :domains end diff --git a/doc/repp/v1/retained_domains.md b/doc/repp/v1/retained_domains.md new file mode 100644 index 000000000..bc930f435 --- /dev/null +++ b/doc/repp/v1/retained_domains.md @@ -0,0 +1,96 @@ +## GET /repp/v1/retained_domains + +Return a list of reserved and blocked domains, along with total count. You can +filter them by type of the domain, which can be either reserved or blocked. + +In contrast with other endpoints in REPP, this one is publicly available for +anyone without authentication. + +#### Parameters + +| Field name | Required | Type | Allowed values | Description | +| ---------- | -------- | ---- | -------------- | ----------- | +| type | false | string | ["reserved", "blocked"] | Type of domains to show | + + +#### Request + +``` +GET /repp/v1/retained_domains?type=reserved HTTP/1.1 +Accept: application/json +User-Agent: curl/7.64.1 +``` + +#### Response + +``` +HTTP/1.1 200 OK +Date: Fri, 15 May 2020 11:30:07 GMT +Content-Type: application/json; charset=utf-8 +ETag: W/"a905b531243a6b0be42beb9d6ce60619" +Cache-Control: max-age=0, private, must-revalidate +Transfer-Encoding: chunked + +{ + "count": 1, + "domains": [ + { + "name": "reserved.test", + "status": "reserved", + "punycode_name": "reserved.test" + } + ] +} +``` + +After you have made the first request, you can save the ETag header, and +send it as If-None-Match in the subsequent request for cache validation. +Due to the fact that the lists are not changing frequently and are quite long, +it is recommended that you take advantage of ETag cache. + +ETag key values depend on the request parameters. A request for only blocked +domains returns different cache key than request for all domains. + +### Cache Request + +``` +GET /repp/v1/retained_domains?type=reserved HTTP/1.1 +Accept: application/json +User-Agent: curl/7.64.1 +If-None-Match: W/"a905b531243a6b0be42beb9d6ce60619" +``` + +#### Cache hit response + +Response with no body and status 304 is sent in case the list have not changed. + +``` +HTTP/1.1 304 Not Modified +Date: Fri, 15 May 2020 11:34:25 GMT +ETag: W/"a905b531243a6b0be42beb9d6ce60619" +Cache-Control: max-age=0, private, must-revalidate +``` + +#### Cache miss response + +Standard 200 response is sent when the list have changed since last requested. + + +``` +HTTP/1.1 200 OK +Date: Fri, 15 May 2020 11:30:07 GMT +Content-Type: application/json; charset=utf-8 +ETag: W/"a905b531243a6b0be42beb9d6ce60619" +Transfer-Encoding: chunked + +{ + "count": 1, + "domains": [ + { + "name": "reserved.test", + "status": "reserved", + "punycode_name": "reserved.test" + } + ] +} +``` diff --git a/doc/repp_doc.md b/doc/repp_doc.md index f01484fc3..0d7cb55f8 100644 --- a/doc/repp_doc.md +++ b/doc/repp_doc.md @@ -1,7 +1,7 @@ # REPP integration specification -REPP uses HTTP/1.1 protocol (http://tools.ietf.org/html/rfc2616) and -Basic Authentication (http://tools.ietf.org/html/rfc2617#section-2) using +REPP uses HTTP/1.1 protocol (http://tools.ietf.org/html/rfc2616) and +Basic Authentication (http://tools.ietf.org/html/rfc2617#section-2) using Secure Transport (https://tools.ietf.org/html/rfc5246) with certificate and key (https://tools.ietf.org/html/rfc5280). Credentials and certificate are issued by EIS (in an exchange for desired API username, CSR and IP). @@ -10,13 +10,14 @@ To quickly test the API, use curl: curl -q -k --cert user.crt.pem --key user.key.pem https://TBA/repp/v1/accounts/balance -u username:password -Test API endpoint: https://testepp.internet.ee/repp/v1 +Test API endpoint: https://testepp.internet.ee/repp/v1 Production API endpoint: TBA Main communication specification through Restful EPP (REPP): -[Contact related functions](repp/v1/contact.md) -[Domain related functions](repp/v1/domain.md) -[Domain transfers](repp/v1/domain_transfers.md) -[Account related functions](repp/v1/account.md) -[Nameservers](repp/v1/nameservers.md) +[Contact related functions](repp/v1/contact.md) +[Domain related functions](repp/v1/domain.md) +[Domain transfers](repp/v1/domain_transfers.md) +[Account related functions](repp/v1/account.md) +[Nameservers](repp/v1/nameservers.md) +[Retained domains](repp/v1/retained_domains.md) diff --git a/test/integration/repp/retained_domains_test.rb b/test/integration/repp/retained_domains_test.rb index c30af001e..dc3a9fd0f 100644 --- a/test/integration/repp/retained_domains_test.rb +++ b/test/integration/repp/retained_domains_test.rb @@ -24,6 +24,41 @@ class ReppV1RetainedDomainsTest < ActionDispatch::IntegrationTest assert_equal response_json[:domains], expected_objects end + def test_get_index_with_type_parameter + get repp_v1_retained_domains_path({ 'type' => 'reserved' }) + response_json = JSON.parse(response.body, symbolize_names: true) + + assert response_json[:count] == 1 + + expected_objects = [{ name: 'reserved.test', + status: 'reserved', + punycode_name: 'reserved.test' }] + + assert_equal response_json[:domains], expected_objects + end + + def test_etags_cache + get repp_v1_retained_domains_path({ 'type' => 'reserved' }) + etag = response.headers['ETag'] + + get repp_v1_retained_domains_path({ 'type' => 'reserved' }), + headers: { 'If-None-Match' => etag } + + assert_equal response.status, 304 + assert_equal response.body, '' + end + + def test_etags_cache_valid_for_type_only + get repp_v1_retained_domains_path({ 'type' => 'blocked' }) + etag = response.headers['ETag'] + + get repp_v1_retained_domains_path, headers: { 'If-None-Match' => etag } + + assert_equal response.status, 200 + response_json = JSON.parse(response.body, symbolize_names: true) + assert response_json[:count] == 3 + end + def test_cors_preflight process :options, repp_v1_retained_domains_path, headers: { 'Origin' => 'https://example.com' } From 56e3784aa4245984219f5b2a363ef2a7a85dc704 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Fri, 15 May 2020 14:52:11 +0300 Subject: [PATCH 481/757] Use constants instead of strings --- app/models/retained_domains.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/retained_domains.rb b/app/models/retained_domains.rb index ea76710ee..b26bbab40 100644 --- a/app/models/retained_domains.rb +++ b/app/models/retained_domains.rb @@ -24,8 +24,8 @@ class RetainedDomains type = params[:type] case type - when 'reserved' then :reserved - when 'blocked' then :blocked + when RESERVED then :reserved + when BLOCKED then :blocked else :all end end From abc1920d45a643d32b08f06488a3a1a57127f1d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 15 May 2020 17:55:20 +0300 Subject: [PATCH 482/757] Fix dispute status removal when dispute is closed --- app/models/dispute.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 1d445bc56..7aaca65b1 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -48,7 +48,7 @@ class Dispute < ApplicationRecord return if domain wr = Whois::Record.find_or_initialize_by(name: domain_name) - wr.json = generate_json(wr) + wr.json = @json = generate_json(wr) wr.save end @@ -64,7 +64,7 @@ class Dispute < ApplicationRecord def forward_to_auction_if_possible domain = DNS::DomainName.new(domain_name) - return domain.sell_at_auction if domain.available? && domain.auctionable? + (domain.sell_at_auction && return) if domain.available? && domain.auctionable? whois_record = Whois::Record.find_by(name: domain_name) remove_whois_data(whois_record) @@ -73,10 +73,10 @@ class Dispute < ApplicationRecord def remove_whois_data(record) return true unless record - record.json['status'].delete_if { |status| status == 'disputed' } + record.json['status'] = record.json['status'].delete_if { |status| status == 'disputed' } record.destroy && return if record.json['status'].blank? - save + record.save end def generate_json(record) From 09b4575a7137a412b1f8548aaf4da1bf4bd560e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 18 May 2020 12:46:52 +0300 Subject: [PATCH 483/757] Update retained_domains.md --- doc/repp/v1/retained_domains.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/repp/v1/retained_domains.md b/doc/repp/v1/retained_domains.md index bc930f435..4209b0f58 100644 --- a/doc/repp/v1/retained_domains.md +++ b/doc/repp/v1/retained_domains.md @@ -73,7 +73,7 @@ Cache-Control: max-age=0, private, must-revalidate #### Cache miss response -Standard 200 response is sent when the list have changed since last requested. +Standard 200 response (with the current complete list) is sent when the list have changed since last requested. ``` From 26a5813fe924a95dbf4ef5f48ab8bdd50e62e9fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 18 May 2020 13:36:03 +0300 Subject: [PATCH 484/757] Improve wording for disputed domains --- config/locales/admin/disputes.en.yml | 4 ++-- config/locales/admin/menu.en.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/admin/disputes.en.yml b/config/locales/admin/disputes.en.yml index 072f0eebc..9632dde4a 100644 --- a/config/locales/admin/disputes.en.yml +++ b/config/locales/admin/disputes.en.yml @@ -9,8 +9,8 @@ en: admin: disputes: index: - title: Domain disputes - new_btn: New domain dispute + title: Disputed domains + new_btn: New disputed domain reset_btn: Reset form: diff --git a/config/locales/admin/menu.en.yml b/config/locales/admin/menu.en.yml index 1cb396ed6..617341c6a 100644 --- a/config/locales/admin/menu.en.yml +++ b/config/locales/admin/menu.en.yml @@ -13,7 +13,7 @@ en: zones: Zones blocked_domains: Blocked domains reserved_domains: Reserved domains - disputed_domains: Domain disputes + disputed_domains: Disputed domains epp_log: EPP log repp_log: REPP log que: Que From 82109c506c11acff58fae26b2ffe4a8fe059cbc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 18 May 2020 14:57:29 +0300 Subject: [PATCH 485/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae71b2adf..767f7e85f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +18.05.2020 +* REPP returns list of reserved and blocked domains [#1569](https://github.com/internetee/registry/issues/1569) + 14.05.2020 * Deleted certificates are now revoked first [#952](https://github.com/internetee/registry/issues/952) From c682155bf657e4c1b358fa155147c7eb7472d0af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 18 May 2020 15:11:34 +0300 Subject: [PATCH 486/757] Disputes: Show when and who closed dispute --- app/controllers/admin/disputes_controller.rb | 2 +- .../domain_update_confirms_controller.rb | 5 +---- app/jobs/dispute_status_update_job.rb | 6 +++--- app/models/dispute.rb | 12 ++++++------ app/views/admin/disputes/index.html.erb | 8 ++++---- ...closed_date_time_and_updator_to_dispute.rb | 19 +++++++++++++++++++ db/structure.sql | 15 +++++++++------ test/fixtures/disputes.yml | 6 ++---- test/integration/admin_area/disputes_test.rb | 6 +++--- 9 files changed, 48 insertions(+), 31 deletions(-) create mode 100644 db/migrate/20200518104105_add_closed_date_time_and_updator_to_dispute.rb diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 03b4d4895..450576aa3 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -44,7 +44,7 @@ module Admin # DELETE /admin/disputes/1 def delete - @dispute.close + @dispute.close(initiator: 'Admin') redirect_to admin_disputes_url, notice: 'Dispute was successfully closed.' end diff --git a/app/controllers/registrant/domain_update_confirms_controller.rb b/app/controllers/registrant/domain_update_confirms_controller.rb index 0b964ae2b..0e4f2a582 100644 --- a/app/controllers/registrant/domain_update_confirms_controller.rb +++ b/app/controllers/registrant/domain_update_confirms_controller.rb @@ -31,10 +31,7 @@ class Registrant::DomainUpdateConfirmsController < RegistrantController end elsif params[:confirmed] if @registrant_verification.domain_registrant_change_confirm!("email link, #{initiator}") - if @domain.disputed? - dispute = Dispute.active.find_by(domain_name: @domain.name) - dispute.close - end + Dispute.close_by_domain(@domain.name) if @domain.disputed? flash[:notice] = t(:registrant_domain_verification_confirmed) redirect_to registrant_domain_update_confirm_path(@domain.id, confirmed: true) diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index 736b65236..2a3f3445a 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -13,7 +13,7 @@ class DisputeStatusUpdateJob < Que::Job end def close_disputes - disputes = Dispute.where(closed: false).where('expires_at < ?', Time.zone.today).all + disputes = Dispute.where(closed: nil).where('expires_at < ?', Time.zone.today).all Rails.logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes" disputes.each do |dispute| process_dispute(dispute, closing: true) @@ -21,7 +21,7 @@ class DisputeStatusUpdateJob < Que::Job end def activate_disputes - disputes = Dispute.where(closed: false, starts_at: Time.zone.today).all + disputes = Dispute.where(closed: nil, starts_at: Time.zone.today).all Rails.logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes" disputes.each do |dispute| @@ -31,7 +31,7 @@ class DisputeStatusUpdateJob < Que::Job def process_dispute(dispute, closing: false) intent = closing ? 'close' : 'activate' - success = closing ? dispute.close : dispute.generate_data + success = closing ? dispute.close(initiator: 'Job') : dispute.generate_data create_backlog_entry(dispute: dispute, intent: intent, successful: success) end diff --git a/app/models/dispute.rb b/app/models/dispute.rb index 7aaca65b1..7434c8e26 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -10,9 +10,9 @@ class Dispute < ApplicationRecord scope :expired, -> { where('expires_at < ?', Time.zone.today) } scope :active, lambda { - where('starts_at <= ? AND expires_at >= ? AND closed = false', Time.zone.today, Time.zone.today) + where('starts_at <= ? AND expires_at >= ? AND closed IS NULL', Time.zone.today, Time.zone.today) } - scope :closed, -> { where(closed: true) } + scope :closed, -> { where.not(closed: nil) } attr_readonly :domain_name @@ -24,7 +24,7 @@ class Dispute < ApplicationRecord dispute = Dispute.active.find_by(domain_name: domain_name) return false unless dispute - dispute.close + dispute.close(initiator: 'Registrant') end def self.valid_auth?(domain_name, password) @@ -52,8 +52,8 @@ class Dispute < ApplicationRecord wr.save end - def close - return false unless update(closed: true) + def close(initiator: 'Unknown') + return false unless update(closed: Time.zone.now, initiator: initiator) return if Dispute.active.where(domain_name: domain_name).any? domain&.unmark_as_disputed @@ -129,7 +129,7 @@ class Dispute < ApplicationRecord end def validate_domain_name_period_uniqueness - existing_dispute = Dispute.unscoped.where(domain_name: domain_name, closed: false) + existing_dispute = Dispute.unscoped.where(domain_name: domain_name, closed: nil) .where('expires_at >= ?', starts_at) existing_dispute = existing_dispute.where.not(id: id) unless new_record? diff --git a/app/views/admin/disputes/index.html.erb b/app/views/admin/disputes/index.html.erb index 3a72e7d41..c4bd094a9 100644 --- a/app/views/admin/disputes/index.html.erb +++ b/app/views/admin/disputes/index.html.erb @@ -125,13 +125,13 @@ <%= sort_link(@q, 'name') %> - <%= sort_link(@q, 'password') %> + <%= sort_link(@q, 'Initiator') %> <%= sort_link(@q, 'starts_at') %> - <%= sort_link(@q, 'expires_at') %> + <%= sort_link(@q, 'Expired/Closed At') %> <%= sort_link(@q, 'comment') %> @@ -145,13 +145,13 @@ <%= x.domain_name %> - <%= x.password %> + <%= x.initiator %> <%= x.starts_at %> - <%= x.expires_at %> + <%= x.closed %> <%= x.comment %> diff --git a/db/migrate/20200518104105_add_closed_date_time_and_updator_to_dispute.rb b/db/migrate/20200518104105_add_closed_date_time_and_updator_to_dispute.rb new file mode 100644 index 000000000..1aae02e06 --- /dev/null +++ b/db/migrate/20200518104105_add_closed_date_time_and_updator_to_dispute.rb @@ -0,0 +1,19 @@ +class AddClosedDateTimeAndUpdatorToDispute < ActiveRecord::Migration[5.2] + def up + rename_column :disputes, :closed, :closed_boolean + add_column :disputes, :closed, :datetime + execute 'UPDATE disputes SET closed = updated_at WHERE closed_boolean = true' + execute 'UPDATE disputes SET closed = NULL WHERE closed_boolean = false' + remove_column :disputes, :closed_boolean + add_column :disputes, :initiator, :string + end + + def down + rename_column :disputes, :closed, :closed_datetime + add_column :disputes, :closed, :boolean, null: false, default: false + execute 'UPDATE disputes SET closed = true WHERE closed_datetime != NULL' + execute 'UPDATE disputes SET closed = false WHERE closed_datetime = NULL' + remove_column :disputes, :closed_datetime + remove_column :disputes, :initiator + end +end diff --git a/db/structure.sql b/db/structure.sql index ff2a625d9..4104b2db5 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,6 +1,6 @@ --- --- PostgreSQL database dump --- +--- +--- PostgreSQL database dump +--- SET statement_timeout = 0; SET lock_timeout = 0; @@ -605,9 +605,10 @@ CREATE TABLE public.disputes ( expires_at date NOT NULL, starts_at date NOT NULL, comment text, - closed boolean DEFAULT false NOT NULL, created_at timestamp without time zone NOT NULL, - updated_at timestamp without time zone NOT NULL + updated_at timestamp without time zone NOT NULL, + closed timestamp without time zone, + initiator character varying ); @@ -4520,5 +4521,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200417075720'), ('20200421093637'), ('20200505103316'), -('20200505150413'); +('20200505150413'), +('20200518104105'); + diff --git a/test/fixtures/disputes.yml b/test/fixtures/disputes.yml index 3e6b882f4..a999fa0a1 100644 --- a/test/fixtures/disputes.yml +++ b/test/fixtures/disputes.yml @@ -3,22 +3,20 @@ active: password: active-001 starts_at: <%= Date.parse '2010-07-05' %> expires_at: <%= Date.parse '2013-07-05' %> - closed: false future: domain_name: future-dispute.test password: active-001 starts_at: <%= Date.parse '2010-10-05' %> expires_at: <%= Date.parse '2013-10-05' %> - closed: false expired: domain_name: expired-dispute.test password: active-001 starts_at: <%= Date.parse '2010-07-05' %> expires_at: <%= Date.parse '2013-07-05' %> - closed: true + closed: <%= Date.parse '2013-07-05' %> closed: domain_name: closed_dispute.test password: active-001 starts_at: <%= Date.parse '2010-07-05' %> expires_at: <%= Date.parse '2013-07-05' %> - closed: true + closed: <%= Date.parse '2013-07-05' %> diff --git a/test/integration/admin_area/disputes_test.rb b/test/integration/admin_area/disputes_test.rb index cfda9d23d..b829e3b49 100644 --- a/test/integration/admin_area/disputes_test.rb +++ b/test/integration/admin_area/disputes_test.rb @@ -18,7 +18,7 @@ class AdminDisputesSystemTest < ApplicationSystemTestCase assert_nil Dispute.active.find_by(domain_name: 'disputed.test') visit admin_disputes_path - click_on 'New domain dispute' + click_on 'New disputed domain' fill_in 'Domain name', with: 'disputed.test' fill_in 'Password', with: '1234' @@ -34,7 +34,7 @@ class AdminDisputesSystemTest < ApplicationSystemTestCase assert_nil Dispute.active.find_by(domain_name: 'disputed.test') visit admin_disputes_path - click_on 'New domain dispute' + click_on 'New disputed domain' fill_in 'Domain name', with: 'disputed.test' fill_in 'Password', with: '1234' @@ -65,7 +65,7 @@ class AdminDisputesSystemTest < ApplicationSystemTestCase def test_can_not_create_overlapping_dispute visit admin_disputes_path - click_on 'New domain dispute' + click_on 'New disputed domain' fill_in 'Domain name', with: 'active-dispute.test' fill_in 'Starts at', with: @dispute.starts_at + 1.day From 36f5ec734ee3e1ddd6524a42828d5b060ce3194c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 18 May 2020 16:04:00 +0300 Subject: [PATCH 487/757] Improve logging for Dispute status update jbo --- app/jobs/dispute_status_update_job.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index 2a3f3445a..81c1fdeab 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -6,7 +6,7 @@ class DisputeStatusUpdateJob < Que::Job close_disputes activate_disputes - Rails.logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog['closed']} and " \ + logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog['closed']} and " \ "activated #{@backlog['activated']} disputes." show_failed_disputes unless @backlog['activate_fail'].empty? && @backlog['close_fail'].empty? @@ -14,7 +14,7 @@ class DisputeStatusUpdateJob < Que::Job def close_disputes disputes = Dispute.where(closed: nil).where('expires_at < ?', Time.zone.today).all - Rails.logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes" + logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes" disputes.each do |dispute| process_dispute(dispute, closing: true) end @@ -22,7 +22,7 @@ class DisputeStatusUpdateJob < Que::Job def activate_disputes disputes = Dispute.where(closed: nil, starts_at: Time.zone.today).all - Rails.logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes" + logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes" disputes.each do |dispute| process_dispute(dispute, closing: false) @@ -38,24 +38,28 @@ class DisputeStatusUpdateJob < Que::Job def create_backlog_entry(dispute:, intent:, successful:) if successful @backlog["#{intent}d"] += 1 - Rails.logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \ + logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \ " for '#{dispute.domain_name}'" else @backlog["#{intent}_fail"] << dispute.id - Rails.logger.info 'DisputeStatusUpdateJob - Failed to' \ + logger.info 'DisputeStatusUpdateJob - Failed to' \ "#{intent} dispute for '#{dispute.domain_name}'" end end def show_failed_disputes if @backlog['close_fail'].any? - Rails.logger.info('DisputeStatusUpdateJob - Failed to close disputes with Ids:' \ + logger.info('DisputeStatusUpdateJob - Failed to close disputes with Ids:' \ "#{@backlog['close_fail']}") end return unless @backlog['activate_fail'].any? - Rails.logger.info('DisputeStatusUpdateJob - Failed to activate disputes with Ids:' \ + logger.info('DisputeStatusUpdateJob - Failed to activate disputes with Ids:' \ "#{@backlog['activate_fail']}") end + + def logger + Logger.new(STDOUT) + end end From cb0051d4e0fc57e352269d12d4039b86f2735346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 19 May 2020 10:54:29 +0300 Subject: [PATCH 488/757] Alert admin if dispute created for unregistered domain --- app/controllers/admin/disputes_controller.rb | 5 +++- test/integration/admin_area/disputes_test.rb | 31 +++++++++++++++----- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index 450576aa3..ae187f86b 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -27,7 +27,10 @@ module Admin def create @dispute = Dispute.new(dispute_params) if @dispute.save - redirect_to admin_disputes_url, notice: 'Dispute was successfully created.' + notice = 'Dispute was successfully created' + notice += @dispute.domain ? '.' : ' for domain that is not registered.' + + redirect_to admin_disputes_url, notice: notice else render :new end diff --git a/test/integration/admin_area/disputes_test.rb b/test/integration/admin_area/disputes_test.rb index b829e3b49..81019bb66 100644 --- a/test/integration/admin_area/disputes_test.rb +++ b/test/integration/admin_area/disputes_test.rb @@ -15,22 +15,38 @@ class AdminDisputesSystemTest < ApplicationSystemTestCase end def test_creates_new_dispute - assert_nil Dispute.active.find_by(domain_name: 'disputed.test') + assert_nil Dispute.active.find_by(domain_name: 'hospital.test') visit admin_disputes_path click_on 'New disputed domain' - fill_in 'Domain name', with: 'disputed.test' + fill_in 'Domain name', with: 'hospital.test' + fill_in 'Password', with: '1234' + fill_in 'Starts at', with: (Time.zone.today - 2.years).to_s + fill_in 'Comment', with: 'Sample comment' + click_on 'Save' + + assert_text 'Dispute was successfully created.' + assert_text 'hospital.test' + end + + def test_creates_new_dispute_for_unregistered_domain + assert_nil Dispute.active.find_by(domain_name: 'nonexistant.test') + + visit admin_disputes_path + click_on 'New disputed domain' + + fill_in 'Domain name', with: 'nonexistant.test' fill_in 'Password', with: '1234' fill_in 'Starts at', with: Time.zone.today.to_s fill_in 'Comment', with: 'Sample comment' click_on 'Save' - assert_text 'Dispute was successfully created.' - assert_text 'disputed.test' + assert_text 'Dispute was successfully created for domain that is not registered.' + assert_text 'nonexistant.test' end - def test_throws_error_if_starts_at_is_past + def test_throws_error_if_starts_at_is_in_future assert_nil Dispute.active.find_by(domain_name: 'disputed.test') visit admin_disputes_path @@ -38,12 +54,11 @@ class AdminDisputesSystemTest < ApplicationSystemTestCase fill_in 'Domain name', with: 'disputed.test' fill_in 'Password', with: '1234' - fill_in 'Starts at', with: (Time.zone.today - 2.day).to_s + fill_in 'Starts at', with: (Time.zone.today + 2.day).to_s fill_in 'Comment', with: 'Sample comment' click_on 'Save' - assert_text 'Dispute was successfully created.' - assert_text 'disputed.test' + assert_text "Can not be greater than today's date" end def test_updates_dispute From 0998ada2fccea1638e41d0c2b2e3841af1cff0eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 19 May 2020 12:25:04 +0300 Subject: [PATCH 489/757] Fix pagination/sorting for disputed domains --- app/controllers/admin/disputes_controller.rb | 6 +++--- app/views/admin/disputes/index.html.erb | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index ae187f86b..8a8997f63 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -9,7 +9,7 @@ module Admin def index params[:q] ||= {} @disputes = sortable_dispute_query_for(Dispute.active.all, params[:q]) - @closed_disputes = sortable_dispute_query_for(Dispute.closed.all, params[:q]) + @closed_disputes = sortable_dispute_query_for(Dispute.closed.all, params[:q], closed: true) end # GET /admin/disputes/1 @@ -53,9 +53,9 @@ module Admin private - def sortable_dispute_query_for(disputes, query) + def sortable_dispute_query_for(disputes, query, closed: false) @q = disputes.order(:domain_name).search(query) - disputes = @q.result.page(params[:page]) + disputes = @q.result.page(closed ? params[:closed_page] : params[:page]) return disputes.per(params[:results_per_page]) if params[:results_per_page].present? disputes diff --git a/app/views/admin/disputes/index.html.erb b/app/views/admin/disputes/index.html.erb index c4bd094a9..e32ddb730 100644 --- a/app/views/admin/disputes/index.html.erb +++ b/app/views/admin/disputes/index.html.erb @@ -8,8 +8,8 @@
- <%= f.label :name %> - <%= f.search_field :name_matches, value: params[:q][:name_matches], class: 'form-control', placeholder: t(:name) %> + <%= f.label :domain_name %> + <%= f.search_field :domain_name_matches, value: params[:q][:domain_name_matches], class: 'form-control', placeholder: t(:name) %>
@@ -53,7 +53,7 @@ - <%= sort_link(@q, 'name') %> + <%= sort_link(@q, 'domain_name') %> <%= sort_link(@q, 'password') %> @@ -122,16 +122,16 @@ - <%= sort_link(@q, 'name') %> + <%= sort_link(@q, 'domain_name') %> - <%= sort_link(@q, 'Initiator') %> + <%= sort_link(@q, 'initiator') %> <%= sort_link(@q, 'starts_at') %> - <%= sort_link(@q, 'Expired/Closed At') %> + <%= sort_link(@q, 'closed') %> <%= sort_link(@q, 'comment') %> @@ -165,7 +165,7 @@
- <%= paginate @closed_disputes %> + <%= paginate @closed_disputes, param_name: :closed_page %>
+ +
+
+ <%= f.label t('.legaldoc_optout') %> +
+
+ <%= f.check_box :legaldoc_optout, class: 'form-control' %> +
+
diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index 98aabbd95..1cb0b70b5 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -49,6 +49,7 @@ en: misc: Miscellaneous create_btn: Create registrar update_btn: Update registrar + legaldoc_optout: Opt-out from legal document requirement address: header: Address diff --git a/db/structure.sql b/db/structure.sql index 56b3c8d97..9cd4d7cd6 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2190,8 +2190,6 @@ CREATE TABLE public.users ( username character varying, plain_text_password character varying, created_at timestamp without time zone, -<<<<<<< HEAD -======= session character varying, children json, uuid character varying From 3d734ff746291c9b6d65ab54f0c005804c14d888 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 30 Jun 2020 19:16:33 +0500 Subject: [PATCH 615/757] Add opt-out commentary field to registrar --- .../admin/registrars_controller.rb | 2 + app/views/admin/registrars/_form.html.erb | 9 + config/locales/admin/registrars.en.yml | 1 + ...81231_add_legal_doc_optout_to_registrar.rb | 1 + db/structure.sql | 1368 +---------------- 5 files changed, 25 insertions(+), 1356 deletions(-) diff --git a/app/controllers/admin/registrars_controller.rb b/app/controllers/admin/registrars_controller.rb index b925a8156..27116d871 100644 --- a/app/controllers/admin/registrars_controller.rb +++ b/app/controllers/admin/registrars_controller.rb @@ -74,6 +74,8 @@ module Admin :vat_rate, :accounting_customer_code, :billing_email, + :legaldoc_optout, + :legaldoc_optout_comment, :iban, :language) end diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb index fffcf7367..19866a31f 100644 --- a/app/views/admin/registrars/_form.html.erb +++ b/app/views/admin/registrars/_form.html.erb @@ -100,6 +100,15 @@ <%= f.check_box :legaldoc_optout, class: 'form-control' %>
+ +
+
+ <%= f.label t('.legaldoc_optout_comment') %> +
+
+ <%= f.text_area :legaldoc_optout_comment, class: 'form-control', rows: 3 %> +
+
diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index 1cb0b70b5..59a999bd2 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -50,6 +50,7 @@ en: create_btn: Create registrar update_btn: Update registrar legaldoc_optout: Opt-out from legal document requirement + legaldoc_optout_comment: Commentary on opt-out address: header: Address diff --git a/db/migrate/20200630081231_add_legal_doc_optout_to_registrar.rb b/db/migrate/20200630081231_add_legal_doc_optout_to_registrar.rb index 377956672..e5bc5a7f1 100644 --- a/db/migrate/20200630081231_add_legal_doc_optout_to_registrar.rb +++ b/db/migrate/20200630081231_add_legal_doc_optout_to_registrar.rb @@ -1,5 +1,6 @@ class AddLegalDocOptoutToRegistrar < ActiveRecord::Migration[6.0] def change add_column :registrars, :legaldoc_optout, :boolean, null: false, default: false + add_column :registrars, :legaldoc_optout_comment, :text end end diff --git a/db/structure.sql b/db/structure.sql index 9cd4d7cd6..960481c44 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -560,7 +560,16 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: data_migrations; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.data_migrations ( + version character varying NOT NULL +); + + +-- +-- Name: directos; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.directos ( @@ -2048,705 +2057,6 @@ CREATE SEQUENCE public.registrant_verifications_id_seq ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant_verifications.id; --- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.registrars ( - id integer NOT NULL, - name character varying NOT NULL, - reg_no character varying NOT NULL, - vat_no character varying, - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying, - phone character varying, - email character varying NOT NULL, - billing_email character varying, - address_country_code character varying NOT NULL, - address_state character varying, - address_city character varying NOT NULL, - address_street character varying NOT NULL, - address_zip character varying, - code character varying NOT NULL, - website character varying, - accounting_customer_code character varying NOT NULL, - legacy_id integer, - reference_no character varying NOT NULL, - test_registrar boolean DEFAULT false, - language character varying NOT NULL, - vat_rate numeric(4,3), - iban character varying, - settings jsonb DEFAULT '{}'::jsonb NOT NULL -); - - --- --- Name: registrars_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.registrars_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: registrars_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; - - --- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.reserved_domains ( - id integer NOT NULL, - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying, - legacy_id integer, - name character varying NOT NULL, - password character varying NOT NULL -); - - --- --- Name: reserved_domains_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.reserved_domains_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: reserved_domains_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.id; - - --- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.schema_migrations ( - version character varying NOT NULL -); - - --- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.settings ( - id integer NOT NULL, - var character varying NOT NULL, - value text, - thing_id integer, - thing_type character varying(30), - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying -); - - --- --- Name: settings_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.settings_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; - - --- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.users ( - id integer NOT NULL, - username character varying, - plain_text_password character varying, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_nameservers_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_nameservers_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_nameservers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; - - --- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_notifications ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_notifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_notifications_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_notifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications.id; - - --- --- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_payment_orders ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object jsonb, - object_changes jsonb, - created_at timestamp without time zone, - session character varying, - children jsonb, - uuid character varying -); - - --- --- Name: log_payment_orders_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_payment_orders_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_payment_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_payment_orders_id_seq OWNED BY public.log_payment_orders.id; - - --- --- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_registrant_verifications ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - uuid character varying -); - - --- --- Name: log_registrant_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_registrant_verifications_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_registrant_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_registrant_verifications_id_seq OWNED BY public.log_registrant_verifications.id; - - --- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_registrars ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_registrars_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_registrars_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_registrars_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; - - --- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_reserved_domains ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_reserved_domains_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_reserved_domains_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_reserved_domains_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_domains.id; - - --- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_settings ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_settings_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_settings_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; - - --- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_users ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_users_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_users_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; - - --- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_white_ips ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_white_ips_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_white_ips_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_white_ips_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; - - --- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.nameservers ( - id integer NOT NULL, - hostname character varying NOT NULL, - ipv4 character varying[] DEFAULT '{}'::character varying[], - created_at timestamp without time zone, - updated_at timestamp without time zone, - ipv6 character varying[] DEFAULT '{}'::character varying[], - domain_id integer NOT NULL, - creator_str character varying, - updator_str character varying, - legacy_domain_id integer, - hostname_puny character varying -); - - --- --- Name: nameservers_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.nameservers_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: nameservers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; - - --- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.notifications ( - id integer NOT NULL, - registrar_id integer NOT NULL, - text character varying NOT NULL, - attached_obj_type character varying, - attached_obj_id integer, - read boolean NOT NULL, - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying, - action_id integer -); - - --- --- Name: notifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.notifications_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: notifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; - - --- --- Name: payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.payment_orders ( - id integer NOT NULL, - type character varying NOT NULL, - status character varying DEFAULT 'issued'::character varying NOT NULL, - invoice_id integer, - response jsonb, - notes character varying, - creator_str character varying, - updator_str character varying, - created_at timestamp without time zone NOT NULL, - updated_at timestamp without time zone NOT NULL -); - - --- --- Name: payment_orders_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.payment_orders_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: payment_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.payment_orders_id_seq OWNED BY public.payment_orders.id; - - --- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.prices ( - id integer NOT NULL, - price_cents integer NOT NULL, - valid_from timestamp without time zone, - valid_to timestamp without time zone, - creator_str character varying, - updator_str character varying, - created_at timestamp without time zone NOT NULL, - updated_at timestamp without time zone NOT NULL, - duration interval, - operation_category character varying, - zone_id integer NOT NULL -); - - --- --- Name: prices_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.prices_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: prices_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; - - --- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.que_jobs ( - priority smallint DEFAULT 100 NOT NULL, - run_at timestamp with time zone DEFAULT now() NOT NULL, - job_id bigint NOT NULL, - job_class text NOT NULL, - args json DEFAULT '[]'::json NOT NULL, - error_count integer DEFAULT 0 NOT NULL, - last_error text, - queue text DEFAULT ''::text NOT NULL -); - - --- --- Name: TABLE que_jobs; Type: COMMENT; Schema: public; Owner: - --- - -COMMENT ON TABLE public.que_jobs IS '3'; - - --- --- Name: que_jobs_job_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.que_jobs_job_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: que_jobs_job_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; - - --- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.registrant_verifications ( - id integer NOT NULL, - verification_token character varying NOT NULL, - created_at timestamp without time zone, - updated_at timestamp without time zone, - action character varying NOT NULL, - domain_id integer NOT NULL, - action_type character varying NOT NULL, - creator_id integer, - updater_id integer -); - - --- --- Name: registrant_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.registrant_verifications_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: registrant_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant_verifications.id; - - -- -- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -2778,7 +2088,8 @@ CREATE TABLE public.registrars ( vat_rate numeric(4,3), iban character varying, settings jsonb DEFAULT '{}'::jsonb NOT NULL, - legaldoc_optout boolean DEFAULT false NOT NULL + legaldoc_optout boolean DEFAULT false NOT NULL, + legaldoc_optout_comment text ); @@ -2890,7 +2201,6 @@ CREATE TABLE public.users ( username character varying, plain_text_password character varying, created_at timestamp without time zone, ->>>>>>> 8c6e4defa... Add legaldoc_optout field to registrar updated_at timestamp without time zone, email character varying, sign_in_count integer DEFAULT 0 NOT NULL, @@ -2913,660 +2223,6 @@ CREATE TABLE public.users ( locked_at timestamp without time zone, legacy_id integer ); -<<<<<<< HEAD -======= - - --- --- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.users_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; - - --- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.versions ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object text, - created_at timestamp without time zone, - object_changes jsonb -); - - --- --- Name: versions_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.versions_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: versions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; - - --- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.white_ips ( - id integer NOT NULL, - registrar_id integer NOT NULL, - ipv4 character varying, - ipv6 character varying, - interfaces character varying[], - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying -); - - --- --- Name: white_ips_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.white_ips_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: white_ips_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; - - --- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.whois_records ( - id integer NOT NULL, - domain_id integer, - name character varying, - body text, - json json, - created_at timestamp without time zone NOT NULL, - updated_at timestamp without time zone NOT NULL, - registrar_id integer -); - - --- --- Name: whois_records_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.whois_records_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: whois_records_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; - - --- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.zones ( - id integer NOT NULL, - origin character varying NOT NULL, - ttl integer NOT NULL, - refresh integer NOT NULL, - retry integer NOT NULL, - expire integer NOT NULL, - minimum_ttl integer NOT NULL, - email character varying NOT NULL, - master_nameserver character varying NOT NULL, - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying, - ns_records text, - a_records text, - a4_records text -); - - --- --- Name: zones_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.zones_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: zones_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.zones_id_seq OWNED BY public.zones.id; - - --- --- Name: account_activities id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.account_activities ALTER COLUMN id SET DEFAULT nextval('audit.account_activities_id_seq'::regclass); - - --- --- Name: accounts id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.accounts ALTER COLUMN id SET DEFAULT nextval('audit.accounts_id_seq'::regclass); - - --- --- Name: actions id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.actions ALTER COLUMN id SET DEFAULT nextval('audit.actions_id_seq'::regclass); - - --- --- Name: bank_statements id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.bank_statements ALTER COLUMN id SET DEFAULT nextval('audit.bank_statements_id_seq'::regclass); - - --- --- Name: bank_transactions id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.bank_transactions ALTER COLUMN id SET DEFAULT nextval('audit.bank_transactions_id_seq'::regclass); - - --- --- Name: blocked_domains id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.blocked_domains ALTER COLUMN id SET DEFAULT nextval('audit.blocked_domains_id_seq'::regclass); - - --- --- Name: certificates id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.certificates ALTER COLUMN id SET DEFAULT nextval('audit.certificates_id_seq'::regclass); - - --- --- Name: contacts id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.contacts ALTER COLUMN id SET DEFAULT nextval('audit.contacts_id_seq'::regclass); - - --- --- Name: dnskeys id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.dnskeys ALTER COLUMN id SET DEFAULT nextval('audit.dnskeys_id_seq'::regclass); - - --- --- Name: domain_contacts id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.domain_contacts ALTER COLUMN id SET DEFAULT nextval('audit.domain_contacts_id_seq'::regclass); - - --- --- Name: domains id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.domains ALTER COLUMN id SET DEFAULT nextval('audit.domains_id_seq'::regclass); - - --- --- Name: invoice_items id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.invoice_items ALTER COLUMN id SET DEFAULT nextval('audit.invoice_items_id_seq'::regclass); - - --- --- Name: invoices id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.invoices ALTER COLUMN id SET DEFAULT nextval('audit.invoices_id_seq'::regclass); - - --- --- Name: nameservers id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.nameservers ALTER COLUMN id SET DEFAULT nextval('audit.nameservers_id_seq'::regclass); - - --- --- Name: notifications id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.notifications ALTER COLUMN id SET DEFAULT nextval('audit.notifications_id_seq'::regclass); - - --- --- Name: payment_orders id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.payment_orders ALTER COLUMN id SET DEFAULT nextval('audit.payment_orders_id_seq'::regclass); - - --- --- Name: registrant_verifications id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.registrant_verifications ALTER COLUMN id SET DEFAULT nextval('audit.registrant_verifications_id_seq'::regclass); - - --- --- Name: registrars id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.registrars ALTER COLUMN id SET DEFAULT nextval('audit.registrars_id_seq'::regclass); - - --- --- Name: reserved_domains id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.reserved_domains ALTER COLUMN id SET DEFAULT nextval('audit.reserved_domains_id_seq'::regclass); - - --- --- Name: settings id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.settings ALTER COLUMN id SET DEFAULT nextval('audit.settings_id_seq'::regclass); - - --- --- Name: users id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.users ALTER COLUMN id SET DEFAULT nextval('audit.users_id_seq'::regclass); - - --- --- Name: white_ips id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.white_ips ALTER COLUMN id SET DEFAULT nextval('audit.white_ips_id_seq'::regclass); - - --- --- Name: account_activities id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.account_activities ALTER COLUMN id SET DEFAULT nextval('public.account_activities_id_seq'::regclass); - - --- --- Name: accounts id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.accounts ALTER COLUMN id SET DEFAULT nextval('public.accounts_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.actions ALTER COLUMN id SET DEFAULT nextval('public.actions_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.auctions ALTER COLUMN id SET DEFAULT nextval('public.auctions_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.bank_statements ALTER COLUMN id SET DEFAULT nextval('public.bank_statements_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.bank_transactions_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.blocked_domains_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.certificates ALTER COLUMN id SET DEFAULT nextval('public.certificates_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.contacts ALTER COLUMN id SET DEFAULT nextval('public.contacts_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.directos ALTER COLUMN id SET DEFAULT nextval('public.directos_id_seq'::regclass); - - --- --- Name: disputes id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.disputes ALTER COLUMN id SET DEFAULT nextval('public.disputes_id_seq'::regclass); - - --- --- Name: dnskeys id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.dnskeys ALTER COLUMN id SET DEFAULT nextval('public.dnskeys_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.domain_contacts_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('public.domain_transfers_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.invoices_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.legal_documents ALTER COLUMN id SET DEFAULT nextval('public.legal_documents_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_account_activities ALTER COLUMN id SET DEFAULT nextval('public.log_account_activities_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_accounts ALTER COLUMN id SET DEFAULT nextval('public.log_accounts_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_actions ALTER COLUMN id SET DEFAULT nextval('public.log_actions_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_bank_statements ALTER COLUMN id SET DEFAULT nextval('public.log_bank_statements_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.log_bank_transactions_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.log_blocked_domains_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_certificates ALTER COLUMN id SET DEFAULT nextval('public.log_certificates_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_contacts_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_dnskeys ALTER COLUMN id SET DEFAULT nextval('public.log_dnskeys_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_domain_contacts_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_domains ALTER COLUMN id SET DEFAULT nextval('public.log_domains_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_invoice_items ALTER COLUMN id SET DEFAULT nextval('public.log_invoice_items_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_invoices ALTER COLUMN id SET DEFAULT nextval('public.log_invoices_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('public.log_nameservers_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_payment_orders ALTER COLUMN id SET DEFAULT nextval('public.log_payment_orders_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.log_registrant_verifications_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_registrars ALTER COLUMN id SET DEFAULT nextval('public.log_registrars_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.log_reserved_domains_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_settings ALTER COLUMN id SET DEFAULT nextval('public.log_settings_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_users ALTER COLUMN id SET DEFAULT nextval('public.log_users_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.log_white_ips ALTER COLUMN id SET DEFAULT nextval('public.log_white_ips_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public.nameservers_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('public.notifications_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('public.payment_orders_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.prices ALTER COLUMN id SET DEFAULT nextval('public.prices_id_seq'::regclass); - - --- --- Name: job_id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.que_jobs ALTER COLUMN job_id SET DEFAULT nextval('public.que_jobs_job_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.registrant_verifications_id_seq'::regclass); ->>>>>>> 8c6e4defa... Add legaldoc_optout field to registrar -- From d29ef4174c36d86e29318c0cf4cbb0411f953fee Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 1 Jul 2020 12:49:05 +0500 Subject: [PATCH 616/757] Add test if legaldoc mandatory on domain delete --- test/integration/epp/domain/delete/base_test.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index 59dfa4edb..4a0992f5b 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -162,6 +162,8 @@ class EppDomainDeleteBaseTest < EppTestCase def test_legal_document_is_required assert_equal 'shop.test', @domain.name + @domain.registrar.legaldoc_optout = true + @domain.registrar.save(validate: false) request_xml = <<-XML @@ -207,4 +209,4 @@ class EppDomainDeleteBaseTest < EppTestCase assert_epp_response :object_status_prohibits_operation end -end \ No newline at end of file +end From 60ad331903a603c20c6f41b5e53368808e7fd50c Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 1 Jul 2020 13:59:10 +0500 Subject: [PATCH 617/757] Add non-mandatory legal docs to domain transfer/delete --- app/controllers/epp/domains_controller.rb | 5 +- .../epp/domain/delete/base_test.rb | 33 +++++++++- .../epp/domain/update/base_test.rb | 62 +++++++++++++++++++ 3 files changed, 95 insertions(+), 5 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index dbf61ed9d..4249c1db6 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -246,7 +246,7 @@ module Epp def validate_update if element_count('update > chg > registrant') > 0 - requires 'extension > extdata > legalDocument' + requires 'extension > extdata > legalDocument' if current_user.legaldoc_mandatory? end @prefix = 'update > update >' @@ -256,7 +256,8 @@ module Epp end def validate_delete - requires 'extension > extdata > legalDocument' + # binding.pry + requires 'extension > extdata > legalDocument' if current_user.legaldoc_mandatory? @prefix = 'delete > delete >' requires 'name' diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index 4a0992f5b..d71e9890f 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -160,10 +160,8 @@ class EppDomainDeleteBaseTest < EppTestCase assert_epp_response :completed_successfully end - def test_legal_document_is_required + def test_legal_document_is_required_if_mandatory assert_equal 'shop.test', @domain.name - @domain.registrar.legaldoc_optout = true - @domain.registrar.save(validate: false) request_xml = <<-XML @@ -183,6 +181,35 @@ class EppDomainDeleteBaseTest < EppTestCase assert_epp_response :required_parameter_missing end + def test_legal_document_is_not_required_if_not_mandatory + assert_equal 'shop.test', @domain.name + Setting.request_confirmation_on_domain_deletion_enabled = true + @domain.registrar.legaldoc_optout = true + @domain.registrar.save(validate: false) + @domain.registrar.reload + + request_xml = <<-XML + + + + + + shop.test + + + + + XML + + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + @domain.reload + + assert_not @domain.registrant_verification_asked? + assert_not @domain.pending_delete_confirmation? + assert_no_emails + assert_epp_response :completed_successfully + end + def test_domain_cannot_be_deleted_when_explicitly_prohibited_by_registrar assert_equal 'shop.test', @domain.name @domain.update!(statuses: [DomainStatus::CLIENT_DELETE_PROHIBITED]) diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 0e435030a..593d7951c 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -160,6 +160,68 @@ class EppDomainUpdateBaseTest < EppTestCase assert_verification_and_notification_emails end + def test_updates_registrant_when_legaldoc_is_not_mandatory + Setting.request_confrimation_on_registrant_change_enabled = true + new_registrant = contacts(:william) + assert_not_equal new_registrant, @domain.registrant + + @domain.registrar.legaldoc_optout = true + @domain.registrar.save(validate: false) + @domain.registrar.reload + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + @domain.reload + + assert_epp_response :completed_successfully_action_pending + assert_not_equal new_registrant, @domain.registrant + assert @domain.registrant_verification_asked? + assert_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_verification_and_notification_emails + end + + def test_dows_not_update_registrant_when_legaldoc_is_mandatory + Setting.request_confrimation_on_registrant_change_enabled = true + new_registrant = contacts(:william) + assert_not_equal new_registrant, @domain.registrant + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + assert_epp_response :required_parameter_missing + end + def test_skips_verification_when_provided_registrant_is_the_same_as_current_one Setting.request_confrimation_on_registrant_change_enabled = true From 690368228a0a7a88463f84cbf098dab61e110007 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 1 Jul 2020 14:35:20 +0500 Subject: [PATCH 618/757] Fix legaldoc requirement at delete view --- app/views/registrar/domains/delete.haml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/registrar/domains/delete.haml b/app/views/registrar/domains/delete.haml index ab1bdfa31..34b5af1f7 100644 --- a/app/views/registrar/domains/delete.haml +++ b/app/views/registrar/domains/delete.haml @@ -10,14 +10,14 @@ .col-md-4.control-label = label_tag 'domain[verified]', t(:verified) .col-md-6 - = check_box_tag 'domain[verified]', '1', params[:verified].eql?('1'), onclick: "return (confirm('#{t(:verified_confirm)}') ? true : false);" + = check_box_tag 'domain[verified]', '1', params[:verified].eql?('1'), onclick: ("return (confirm('#{t(:verified_confirm)}') ? true : false);" if current_registrar_user.legaldoc_mandatory?) .form-group .col-md-4.control-label - = label_tag 'domain[legal_document]', t(:legal_document), class: 'required' + = label_tag 'domain[legal_document]', t(:legal_document), class: ('required' if current_registrar_user.legaldoc_mandatory?) %p.help-block= t(:legal_document_max_size) .col-md-6 - = file_field_tag 'domain[legal_document]', required: true + = file_field_tag 'domain[legal_document]', required: current_registrar_user.legaldoc_mandatory? = hidden_field_tag 'domain[name]', params[:domain_name] %hr .row From 48ac443473a292069e14c45b9223f026774b54eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 1 Jul 2020 13:00:20 +0300 Subject: [PATCH 619/757] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bbfc0b49..d6964460f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +01.07.2020 +* Reverted race condition fix due to data issues in production (#1612) [#1622](https://github.com/internetee/registry/pull/1622) +* Added legaldoc opt-out option for approved registrars [#1620](https://github.com/internetee/registry/issues/1620) + 29.06.2020 * Bumped rack to 2.2.3 [#1618](https://github.com/internetee/registry/pull/1618) * Actionpack security update to 6.0.3.2 [#1619](https://github.com/internetee/registry/pull/1619) From 16e9966d34c4e434a49265b7e07bafb23fa63c5c Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 1 Jul 2020 18:06:21 +0500 Subject: [PATCH 620/757] Make legal document optional on domain delete --- app/controllers/epp/domains_controller.rb | 3 -- app/views/registrar/domains/delete.haml | 4 +-- .../epp/domain/delete/base_test.rb | 32 ++----------------- 3 files changed, 4 insertions(+), 35 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 4249c1db6..d9a8b2b5d 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -256,9 +256,6 @@ module Epp end def validate_delete - # binding.pry - requires 'extension > extdata > legalDocument' if current_user.legaldoc_mandatory? - @prefix = 'delete > delete >' requires 'name' end diff --git a/app/views/registrar/domains/delete.haml b/app/views/registrar/domains/delete.haml index 34b5af1f7..bea9ed118 100644 --- a/app/views/registrar/domains/delete.haml +++ b/app/views/registrar/domains/delete.haml @@ -14,10 +14,10 @@ .form-group .col-md-4.control-label - = label_tag 'domain[legal_document]', t(:legal_document), class: ('required' if current_registrar_user.legaldoc_mandatory?) + = label_tag 'domain[legal_document]', t(:legal_document) %p.help-block= t(:legal_document_max_size) .col-md-6 - = file_field_tag 'domain[legal_document]', required: current_registrar_user.legaldoc_mandatory? + = file_field_tag 'domain[legal_document]' = hidden_field_tag 'domain[name]', params[:domain_name] %hr .row diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index d71e9890f..c7147957c 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -160,8 +160,9 @@ class EppDomainDeleteBaseTest < EppTestCase assert_epp_response :completed_successfully end - def test_legal_document_is_required_if_mandatory + def test_legal_document_is_optional assert_equal 'shop.test', @domain.name + Setting.request_confirmation_on_domain_deletion_enabled = false request_xml = <<-XML @@ -178,35 +179,6 @@ class EppDomainDeleteBaseTest < EppTestCase post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } - assert_epp_response :required_parameter_missing - end - - def test_legal_document_is_not_required_if_not_mandatory - assert_equal 'shop.test', @domain.name - Setting.request_confirmation_on_domain_deletion_enabled = true - @domain.registrar.legaldoc_optout = true - @domain.registrar.save(validate: false) - @domain.registrar.reload - - request_xml = <<-XML - - - - - - shop.test - - - - - XML - - post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } - @domain.reload - - assert_not @domain.registrant_verification_asked? - assert_not @domain.pending_delete_confirmation? - assert_no_emails assert_epp_response :completed_successfully end From f7994e599aa89b8a9ce9cbe4fbe65245783021f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 2 Jul 2020 11:14:36 +0300 Subject: [PATCH 621/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6964460f..89072a614 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +02.07.2020 +* Adding legaldoc to domain:delete is now optional [#1624](https://github.com/internetee/registry/issues/1624) + 01.07.2020 * Reverted race condition fix due to data issues in production (#1612) [#1622](https://github.com/internetee/registry/pull/1622) * Added legaldoc opt-out option for approved registrars [#1620](https://github.com/internetee/registry/issues/1620) From a80e8136322147ae4a69d02cea4864c3016bc288 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 1 Jul 2020 16:59:17 +0500 Subject: [PATCH 622/757] Add a setting to see if legaldocs are mandatory --- app/models/concerns/registrar/legal_doc.rb | 6 ++++- app/models/setting.rb | 3 ++- app/views/admin/settings/index.haml | 1 + config/app.yml | 1 + test/models/registrar_test.rb | 29 +++++++++++++++++++++- 5 files changed, 37 insertions(+), 3 deletions(-) diff --git a/app/models/concerns/registrar/legal_doc.rb b/app/models/concerns/registrar/legal_doc.rb index e5d7b8941..103d778f2 100644 --- a/app/models/concerns/registrar/legal_doc.rb +++ b/app/models/concerns/registrar/legal_doc.rb @@ -4,7 +4,11 @@ module Concerns extend ActiveSupport::Concern def legaldoc_mandatory? - !legaldoc_optout + !legaldoc_not_mandatory? + end + + def legaldoc_not_mandatory? + legaldoc_optout || !Setting.legal_document_is_mandatory end end end diff --git a/app/models/setting.rb b/app/models/setting.rb index 9f00055a3..86d3dff35 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -3,7 +3,7 @@ class Setting < RailsSettings::Base source Rails.root.join('config', 'app.yml') # When config/app.yml has changed, you need change this prefix to v2, v3 ... to expires caches - # cache_prefix { "v1" } + cache_prefix { 'v2' } def self.reload_settings! STDOUT << "#{Time.zone.now.utc} - Clearing settings cache\n" @@ -68,6 +68,7 @@ class Setting < RailsSettings::Base request_confirmation_on_domain_deletion_enabled nameserver_required address_processing + legal_document_is_mandatory ] end end diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index 977f81202..9eb236b65 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -22,6 +22,7 @@ = render 'setting_row', var: :ns_min_count = render 'setting_row', var: :ns_max_count = render 'setting_row', var: :expire_pending_confirmation + = render 'setting_row', var: :legal_document_is_mandatory .panel.panel-default .panel-heading diff --git a/config/app.yml b/config/app.yml index f11189111..87f99f4ad 100644 --- a/config/app.yml +++ b/config/app.yml @@ -6,6 +6,7 @@ defaults: &defaults tech_contacts_max_count: 10 orphans_contacts_in_months: 6 expire_pending_confirmation: 48 + legal_document_is_mandatory: true ds_digest_type: 2 ds_data_allowed: false diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index eaed654ec..c5d832922 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -238,6 +238,33 @@ class RegistrarTest < ActiveSupport::TestCase assert_equal iban, registrar.e_invoice_iban end + def test_legal_doc_is_mandatory + old_value = Setting.legal_document_is_mandatory + Setting.legal_document_is_mandatory = true + assert @registrar.legaldoc_mandatory? + + Setting.legal_document_is_mandatory = old_value + end + + def test_legal_doc_is_not_mandatory_if_opted_out + old_value = Setting.legal_document_is_mandatory + Setting.legal_document_is_mandatory = true + @registrar.legaldoc_optout = true + @registrar.save(validate: false) + @registrar.reload + assert_not @registrar.legaldoc_mandatory? + + Setting.legal_document_is_mandatory = old_value + end + + def test_legal_doc_is_not_mandatory_globally + old_value = Setting.legal_document_is_mandatory + Setting.legal_document_is_mandatory = false + assert_not @registrar.legaldoc_mandatory? + + Setting.legal_document_is_mandatory = old_value + end + private def valid_registrar @@ -257,4 +284,4 @@ class RegistrarTest < ActiveSupport::TestCase Registry.current.vat_country = Country.new(:us) registrar end -end \ No newline at end of file +end From 4a2176d5d7f66a67c36d0b391bf93f4cce40f431 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 2 Jul 2020 14:27:06 +0500 Subject: [PATCH 623/757] Flush settings cache on legal doc mandatority check --- .travis.yml | 1 + app/models/concerns/registrar/legal_doc.rb | 3 +- ...34_add_legal_document_mandatory_setting.rb | 9 ++++ db/data_schema.rb | 2 +- .../epp/domain/create/base_test.rb | 47 +++++++++++++++++++ .../epp/domain/update/base_test.rb | 3 ++ 6 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 db/data/20200702104334_add_legal_document_mandatory_setting.rb diff --git a/.travis.yml b/.travis.yml index 29fe14dab..01373f29d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,7 @@ before_script: - "echo \"ca_key_password: 'password'\" >> config/application.yml" - "cp config/database_travis.yml config/database.yml" - "bundle exec rake db:setup:all" + - "bundle exec rake data:migrate" - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter" - "chmod +x ./cc-test-reporter" - "./cc-test-reporter before-build" diff --git a/app/models/concerns/registrar/legal_doc.rb b/app/models/concerns/registrar/legal_doc.rb index 103d778f2..e2ed9f83e 100644 --- a/app/models/concerns/registrar/legal_doc.rb +++ b/app/models/concerns/registrar/legal_doc.rb @@ -8,7 +8,8 @@ module Concerns end def legaldoc_not_mandatory? - legaldoc_optout || !Setting.legal_document_is_mandatory + setting = Setting.find_by(var: 'legal_document_is_mandatory')&.value + legaldoc_optout || !setting end end end diff --git a/db/data/20200702104334_add_legal_document_mandatory_setting.rb b/db/data/20200702104334_add_legal_document_mandatory_setting.rb new file mode 100644 index 000000000..2e0a298f7 --- /dev/null +++ b/db/data/20200702104334_add_legal_document_mandatory_setting.rb @@ -0,0 +1,9 @@ +class AddLegalDocumentMandatorySetting < ActiveRecord::Migration[6.0] + def up + Setting.legal_document_is_mandatory = true + end + + def down + Setting.find_by(var: 'legal_document_is_mandatory').delete + end +end diff --git a/db/data_schema.rb b/db/data_schema.rb index f4a3f5d8a..7b35d4e7b 100644 --- a/db/data_schema.rb +++ b/db/data_schema.rb @@ -1,2 +1,2 @@ # encoding: UTF-8 -DataMigrate::Data.define(version: 20150707103801) +DataMigrate::Data.define(version: 20200702104334) diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index c45693981..b75ef8909 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -3,6 +3,8 @@ require 'test_helper' class EppDomainCreateBaseTest < EppTestCase def test_not_registers_domain_without_legaldoc + old_value = Setting.legal_document_is_mandatory + Setting.legal_document_is_mandatory = true now = Time.zone.parse('2010-07-05') travel_to now name = "new.#{dns_zones(:one).origin}" @@ -29,6 +31,7 @@ class EppDomainCreateBaseTest < EppTestCase end assert_epp_response :required_parameter_missing + Setting.legal_document_is_mandatory = old_value end def test_registers_new_domain_with_required_attributes @@ -112,6 +115,50 @@ class EppDomainCreateBaseTest < EppTestCase assert_equal registrant, domain.registrant end + def test_does_not_registers_domain_without_legaldoc_if_mandatory + now = Time.zone.parse('2010-07-05') + travel_to now + name = "new.#{dns_zones(:one).origin}" + contact = contacts(:john) + registrant = contact.becomes(Registrant) + old_value = Setting.legal_document_is_mandatory + Setting.legal_document_is_mandatory = true + registrar = registrant.registrar + + assert registrar.legaldoc_mandatory? + + request_xml = <<-XML + + + + + + #{name} + #{registrant.code} + + + + + XML + + + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + + assert_epp_response :required_parameter_missing + Setting.legal_document_is_mandatory = false + + assert_not registrar.legaldoc_mandatory? + assert_not Setting.legal_document_is_mandatory + + assert_difference 'Domain.count' do + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + + Setting.legal_document_is_mandatory = old_value + end + def test_registers_reserved_domain_with_registration_code reserved_domain = reserved_domains(:one) registration_code = reserved_domain.registration_code diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 593d7951c..de1ba84d8 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -198,6 +198,8 @@ class EppDomainUpdateBaseTest < EppTestCase def test_dows_not_update_registrant_when_legaldoc_is_mandatory Setting.request_confrimation_on_registrant_change_enabled = true + old_value = Setting.legal_document_is_mandatory + Setting.legal_document_is_mandatory = true new_registrant = contacts(:william) assert_not_equal new_registrant, @domain.registrant @@ -220,6 +222,7 @@ class EppDomainUpdateBaseTest < EppTestCase post epp_update_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :required_parameter_missing + Setting.legal_document_is_mandatory = old_value end def test_skips_verification_when_provided_registrant_is_the_same_as_current_one From 446569dbe225ecedf55f9699fdcde98a581e4f5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 2 Jul 2020 15:09:48 +0300 Subject: [PATCH 624/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89072a614..08c406013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 02.07.2020 * Adding legaldoc to domain:delete is now optional [#1624](https://github.com/internetee/registry/issues/1624) +* Setting to make legaldoc functionality optional [#1623](https://github.com/internetee/registry/issues/1623) 01.07.2020 * Reverted race condition fix due to data issues in production (#1612) [#1622](https://github.com/internetee/registry/pull/1622) From daac2977d02e534446000485ed2c8c31f38817ab Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 2 Jul 2020 14:00:10 +0500 Subject: [PATCH 625/757] Add support of single-character domains --- app/validators/domain_name_validator.rb | 9 +++++++-- ...9_fill_single_characted_blocked_domains.rb | 20 +++++++++++++++++++ test/models/domain_test.rb | 5 +---- 3 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 db/data/20200702074549_fill_single_characted_blocked_domains.rb diff --git a/app/validators/domain_name_validator.rb b/app/validators/domain_name_validator.rb index 2652c44d6..3372bb952 100644 --- a/app/validators/domain_name_validator.rb +++ b/app/validators/domain_name_validator.rb @@ -1,4 +1,6 @@ class DomainNameValidator < ActiveModel::EachValidator + # rubocop:disable Metrics/CyclomaticComplexity + # rubocop:disable Metrics/LineLength def validate_each(record, attribute, value) if !self.class.validate_format(value) record.errors[attribute] << (options[:message] || record.errors.generate_message(attribute, :invalid)) @@ -27,8 +29,9 @@ class DomainNameValidator < ActiveModel::EachValidator end unicode_chars = /\u00E4\u00F5\u00F6\u00FC\u0161\u017E/ # äõöüšž - regexp = /\A[a-zA-Z0-9#{unicode_chars.source}][a-zA-Z0-9#{unicode_chars.source}-]{0,61}[a-zA-Z0-9#{unicode_chars.source}]\.#{general_domains.source}\z/ - !!(value =~ regexp) + regexp = /\A[a-zA-Z0-9#{unicode_chars.source}][a-zA-Z0-9#{unicode_chars.source}-]{0,62}\.#{general_domains.source}\z/ + end_regexp = /\-\.#{general_domains.source}\z/ # should not contain dash as a closing char + !!(value =~ regexp && value !~ end_regexp) end def validate_blocked(value) @@ -39,4 +42,6 @@ class DomainNameValidator < ActiveModel::EachValidator DNS::Zone.where(origin: value).count.zero? end end + # rubocop:enable Metrics/CyclomaticComplexity + # rubocop:enable Metrics/LineLength end diff --git a/db/data/20200702074549_fill_single_characted_blocked_domains.rb b/db/data/20200702074549_fill_single_characted_blocked_domains.rb new file mode 100644 index 000000000..da8bac9be --- /dev/null +++ b/db/data/20200702074549_fill_single_characted_blocked_domains.rb @@ -0,0 +1,20 @@ +class FillSingleCharactedBlockedDomains < ActiveRecord::Migration[6.0] + + DOMAIN_NAMES = %w[a.ee b.ee c.ee d.ee e.ee f.ee g.ee h.ee i.ee j.ee k.ee l.ee m.ee n.ee o.ee + p.ee q.ee r.ee s.ee š.ee z.ee ž.ee t.ee u.ee v.ee w.ee õ.ee ä.ee ö.ee ü.ee + x.ee y.ee 0.ee 1.ee 2.ee 3.ee 4.ee 5.ee 6.ee 7.ee 8.ee 9.ee].freeze + + def up + BlockedDomain.transaction do + DOMAIN_NAMES.each do |name| + BlockedDomain.find_or_create_by(name: name) + end + end + end + + def down + BlockedDomain.transaction do + BlockedDomain.by_domain(DOMAIN_NAMES).delete_all + end + end +end diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 8bac6d7ab..83e12118d 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -31,7 +31,7 @@ class DomainTest < ActiveSupport::TestCase def test_validates_name_format assert_equal dns_zones(:one).origin, 'test' domain = valid_domain - subdomain_min_length = 2 + subdomain_min_length = 1 subdomain_max_length = 63 domain.name = '!invalid' @@ -46,9 +46,6 @@ class DomainTest < ActiveSupport::TestCase domain.name = 'example-.test' assert domain.invalid? - domain.name = "#{'a' * subdomain_min_length.pred}.test" - assert domain.invalid? - domain.name = "#{'a' * subdomain_max_length.next}.test" assert domain.invalid? From b0d560571252d9418ec2f41bf717dedb38e6d0f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 3 Jul 2020 13:07:47 +0300 Subject: [PATCH 626/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08c406013..1d65024b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +03.07.2020 +* 1-character domains are now valid but blocked by default [#1625](https://github.com/internetee/registry/issues/1625) + 02.07.2020 * Adding legaldoc to domain:delete is now optional [#1624](https://github.com/internetee/registry/issues/1624) * Setting to make legaldoc functionality optional [#1623](https://github.com/internetee/registry/issues/1623) From eb09447ee1bbf846d616daa699f775fa3106a341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 7 Jul 2020 14:04:56 +0300 Subject: [PATCH 627/757] Check legaldoc size only if it's not persisted --- app/models/legal_document.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 70ab1f37b..d3729cafb 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -14,8 +14,7 @@ class LegalDocument < ApplicationRecord belongs_to :documentable, polymorphic: true - - validate :val_body_length, if: ->(file){ file.path.blank? && !Rails.env.staging?} + validate :val_body_length, if: ->(file) { file.path.blank? } before_create :add_creator before_save :save_to_filesystem, if: :body @@ -29,6 +28,14 @@ class LegalDocument < ApplicationRecord end def val_body_length + if body.start_with? ENV['legal_documents_dir'] + if File.exist? body + self.path = body + self.body = nil + return + end + end + errors.add(:body, :length) if body.nil? || body.size < MIN_BODY_SIZE end From 52041c52b6e01deba30ec6602ad0dd4628659ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 7 Jul 2020 15:04:22 +0300 Subject: [PATCH 628/757] Disable collection cache versioning This was a new default setting introduced by Rails 6.0 --- config/initializers/new_framework_defaults_6_0.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/new_framework_defaults_6_0.rb b/config/initializers/new_framework_defaults_6_0.rb index f8bf1c520..998b2f346 100644 --- a/config/initializers/new_framework_defaults_6_0.rb +++ b/config/initializers/new_framework_defaults_6_0.rb @@ -42,4 +42,4 @@ Rails.application.config.active_job.return_false_on_aborted_enqueue = true # Enable the same cache key to be reused when the object being cached of type # `ActiveRecord::Relation` changes by moving the volatile information (max updated at and count) # of the relation's cache key into the cache version to support recycling cache key. -Rails.application.config.active_record.collection_cache_versioning = true +Rails.application.config.active_record.collection_cache_versioning = false From 58443f23aa87fa6ff9f09a44b7f509d04190b899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 7 Jul 2020 15:23:23 +0300 Subject: [PATCH 629/757] Don't create new legaldoc if it's already persistent --- app/models/epp/domain.rb | 9 ++++----- app/models/legal_document.rb | 9 --------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 8c3ffec48..a6fe58c71 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -184,12 +184,10 @@ class Epp::Domain < Domain def add_legal_file_to_new frame legal_document_data = ::Deserializers::Xml::LegalDocument.new(frame).call return unless legal_document_data + return if legal_document_data[:body].starts_with?(ENV['legal_documents_dir']) - doc = LegalDocument.create( - documentable_type: Domain, - document_type: legal_document_data[:type], - body: legal_document_data[:body] - ) + doc = LegalDocument.create(documentable_type: Domain, document_type: legal_document_data[:type], + body: legal_document_data[:body]) self.legal_documents = [doc] frame.css("legalDocument").first.content = doc.path if doc&.persisted? @@ -543,6 +541,7 @@ class Epp::Domain < Domain def attach_legal_document(legal_document_data) return unless legal_document_data + return if legal_document_data[:body].starts_with?(ENV['legal_documents_dir']) legal_documents.create( document_type: legal_document_data[:type], diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index d3729cafb..446087124 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -28,18 +28,9 @@ class LegalDocument < ApplicationRecord end def val_body_length - if body.start_with? ENV['legal_documents_dir'] - if File.exist? body - self.path = body - self.body = nil - return - end - end - errors.add(:body, :length) if body.nil? || body.size < MIN_BODY_SIZE end - def save_to_filesystem binary = Base64.decode64(body) digest = Digest::SHA1.new.update(binary).to_s From de0b7b154538fb990d07d7a569ecd06a4783fffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 7 Jul 2020 15:30:55 +0300 Subject: [PATCH 630/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d65024b5..d83e7782b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +07.07.2020 +* Fixed legaldoc validation [#1634](https://github.com/internetee/registry/issues/1634) + 03.07.2020 * 1-character domains are now valid but blocked by default [#1625](https://github.com/internetee/registry/issues/1625) From 4c13d5deb883a2efe62b8ec48306a0d01f582c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 7 Jul 2020 16:01:10 +0300 Subject: [PATCH 631/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d83e7782b..9b6f65f12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 07.07.2020 * Fixed legaldoc validation [#1634](https://github.com/internetee/registry/issues/1634) +* Disabled collection cashe versioning #1637 ](https://github.com/internetee/registry/pull/1637) 03.07.2020 * 1-character domains are now valid but blocked by default [#1625](https://github.com/internetee/registry/issues/1625) From ee44dbe4c8eba668d633b643a6a1913effe42158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 7 Jul 2020 22:29:54 +0300 Subject: [PATCH 632/757] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b6f65f12..ff7cdb176 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ 07.07.2020 * Fixed legaldoc validation [#1634](https://github.com/internetee/registry/issues/1634) -* Disabled collection cashe versioning #1637 ](https://github.com/internetee/registry/pull/1637) +* Disabled collection cashe versioning [#1637](https://github.com/internetee/registry/pull/1637) 03.07.2020 * 1-character domains are now valid but blocked by default [#1625](https://github.com/internetee/registry/issues/1625) From 2d89e8124f0388489ac384723784fe791d5cc724 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 3 Jun 2020 16:40:13 +0500 Subject: [PATCH 633/757] Add gem Truemail Closes # --- Gemfile | 3 +- Gemfile.lock | 8 +++- config/initializers/truemail.rb | 71 +++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 config/initializers/truemail.rb diff --git a/Gemfile b/Gemfile index f6c8a6397..46f507614 100644 --- a/Gemfile +++ b/Gemfile @@ -16,6 +16,7 @@ gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 gem 'ransack', '~> 2.3' gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 +gem 'truemail', '~> 1.7' # validates email by regexp, mail server existence and address existence # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server # https://github.com/huacnlee/rails-settings-cached/issues/165 @@ -39,7 +40,7 @@ gem 'grape' # registry specfic gem 'data_migrate', '~> 6.1' gem 'isikukood' # for EE-id validation -gem 'simpleidn', '0.0.9' # For punycode +gem 'simpleidn', '0.1.1' # For punycode gem 'money-rails' gem 'whenever', '0.9.4', require: false diff --git a/Gemfile.lock b/Gemfile.lock index effb7ff38..dde0effa4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -434,7 +434,8 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - simpleidn (0.0.9) + simpleidn (0.1.1) + unf (~> 0.1.4) sinatra (2.0.8.1) mustermann (~> 1.0) rack (~> 2.0) @@ -454,6 +455,8 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) + truemail (1.7.1) + simpleidn (~> 0.1.1) tzinfo (1.2.7) thread_safe (~> 0.1) uglifier (4.2.0) @@ -542,7 +545,8 @@ DEPENDENCIES select2-rails (= 3.5.9.3) selectize-rails (= 0.12.1) simplecov (= 0.17.1) - simpleidn (= 0.0.9) + simpleidn (= 0.1.1) + truemail (~> 1.7) uglifier validates_email_format_of (= 1.6.3) webdrivers diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb new file mode 100644 index 000000000..f43b73479 --- /dev/null +++ b/config/initializers/truemail.rb @@ -0,0 +1,71 @@ +require 'truemail' + +Truemail.configure do |config| + # Required parameter. Must be an existing email on behalf of which verification will be performed + config.verifier_email = 'info@internet.ee' + + # Optional parameter. Must be an existing domain on behalf of which verification will be performed. + # By default verifier domain based on verifier email + # config.verifier_domain = 'internet.ee' + + # Optional parameter. You can override default regex pattern + # config.email_pattern = /regex_pattern/ + + # Optional parameter. You can override default regex pattern + # config.smtp_error_body_pattern = /regex_pattern/ + + # Optional parameter. Connection timeout is equal to 2 ms by default. + # config.connection_timeout = 1 + + # Optional parameter. A SMTP server response timeout is equal to 2 ms by default. + # config.response_timeout = 1 + + # Optional parameter. Total of connection attempts. It is equal to 2 by default. + # This parameter uses in mx lookup timeout error and smtp request (for cases when + # there is one mx server). + config.connection_attempts = 3 + + # Optional parameter. You can predefine default validation type for + # Truemail.validate('email@email.com') call without with-parameter + # Available validation types: :regex, :mx, :smtp + config.default_validation_type = :smtp + + # Optional parameter. You can predefine which type of validation will be used for domains. + # Also you can skip validation by domain. Available validation types: :regex, :mx, :smtp + # This configuration will be used over current or default validation type parameter + # All of validations for 'somedomain.com' will be processed with regex validation only. + # And all of validations for 'otherdomain.com' will be processed with mx validation only. + # It is equal to empty hash by default. + # config.validation_type_for = { 'somedomain.com' => :regex, 'otherdomain.com' => :mx } + + # Optional parameter. Validation of email which contains whitelisted domain always will + # return true. Other validations will not processed even if it was defined in validation_type_for + # It is equal to empty array by default. + # config.whitelisted_domains = [] + + # Optional parameter. With this option Truemail will validate email which contains whitelisted + # domain only, i.e. if domain whitelisted, validation will passed to Regex, MX or SMTP validators. + # Validation of email which not contains whitelisted domain always will return false. + # It is equal false by default. + #config.whitelist_validation = true + + # Optional parameter. Validation of email which contains blacklisted domain always will + # return false. Other validations will not processed even if it was defined in validation_type_for + # It is equal to empty array by default. + #config.blacklisted_domains = [] + + # Optional parameter. This option will provide to use not RFC MX lookup flow. + # It means that MX and Null MX records will be cheked on the DNS validation layer only. + # By default this option is disabled. + # config.not_rfc_mx_lookup_flow = true + + # Optional parameter. This option will be parse bodies of SMTP errors. It will be helpful + # if SMTP server does not return an exact answer that the email does not exist + # By default this option is disabled, available for SMTP validation only. + # config.smtp_safe_check = true + + # Optional parameter. This option will enable tracking events. You can print tracking events to + # stdout, write to file or both of these. Tracking event by default is :error + # Available tracking event: :all, :unrecognized_error, :recognized_error, :error + # config.logger = { tracking_event: :all, stdout: true, log_absolute_path: '/home/app/log/truemail.log' } +end From ba4e256662ad2f45319ab7c594f67fa227311237 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 3 Jun 2020 17:07:19 +0500 Subject: [PATCH 634/757] Add test domains whitelist & fix tests --- Gemfile | 3 ++- app/models/nameserver.rb | 2 +- config/initializers/truemail.rb | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 46f507614..050c95ba0 100644 --- a/Gemfile +++ b/Gemfile @@ -15,8 +15,9 @@ gem 'paper_trail', '~> 10.3' gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 gem 'ransack', '~> 2.3' -gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 gem 'truemail', '~> 1.7' # validates email by regexp, mail server existence and address existence +gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 + # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server # https://github.com/huacnlee/rails-settings-cached/issues/165 diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 3ddf1d1c5..3e4051165 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -88,7 +88,7 @@ class Nameserver < ApplicationRecord end def normalize_attributes - self.hostname = hostname.try(:strip).try(:downcase) + self.hostname = hostname.try(:strip).try(:downcase).gsub(/\.$/, '') self.ipv4 = Array(ipv4).reject(&:blank?).map(&:strip) self.ipv6 = Array(ipv6).reject(&:blank?).map(&:strip).map(&:upcase) end diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index f43b73479..efcecd508 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -43,6 +43,11 @@ Truemail.configure do |config| # It is equal to empty array by default. # config.whitelisted_domains = [] + unless Rails.env.production? + config.whitelisted_domains = %w[bestnames.test goodnames.test example.com inbox.test mail.test + outlook.test invalid.test email.test] + end + # Optional parameter. With this option Truemail will validate email which contains whitelisted # domain only, i.e. if domain whitelisted, validation will passed to Regex, MX or SMTP validators. # Validation of email which not contains whitelisted domain always will return false. From e56162f37db1605a9e7cab123e57a2fc3342b3c4 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 3 Jun 2020 17:25:33 +0500 Subject: [PATCH 635/757] Add registrar email validation --- Gemfile | 1 - app/models/registrar.rb | 21 ++++++++++++++++----- config/initializers/truemail.rb | 11 +++++------ 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/Gemfile b/Gemfile index 050c95ba0..0804ca4db 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,6 @@ gem 'ransack', '~> 2.3' gem 'truemail', '~> 1.7' # validates email by regexp, mail server existence and address existence gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 - # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server # https://github.com/huacnlee/rails-settings-cached/issues/165 gem 'rails-settings-cached', '0.7.2' diff --git a/app/models/registrar.rb b/app/models/registrar.rb index dbdd7e8d3..2e2051542 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -29,14 +29,11 @@ class Registrar < ApplicationRecord validates :vat_rate, numericality: { greater_than_or_equal_to: 0, less_than: 100 }, allow_nil: true - validate :forbid_special_code - attribute :vat_rate, ::Type::VATRate.new after_initialize :set_defaults - validates :email, email_format: { message: :invalid }, - allow_blank: true, if: proc { |c| c.will_save_change_to_email? } - validates :billing_email, email_format: { message: :invalid }, allow_blank: true + validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? } + validate :correct_billing_email_format alias_attribute :contact_email, :email @@ -196,4 +193,18 @@ class Registrar < ApplicationRecord def vat_liable_in_foreign_country? !vat_liable_locally? end + + def verify_email_mx_smtp(field:, email:) + errors.add(field, :invalid) unless email.blank? || Truemail.valid?(email) + end + + def correct_email_format + verify_email_mx_smtp(field: :email, email: email) + end + + def correct_billing_email_format + return if self[:billing_email].blank? + + verify_email_mx_smtp(field: :billing_email, email: billing_email) + end end diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index efcecd508..337ac8605 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -28,7 +28,11 @@ Truemail.configure do |config| # Optional parameter. You can predefine default validation type for # Truemail.validate('email@email.com') call without with-parameter # Available validation types: :regex, :mx, :smtp - config.default_validation_type = :smtp + if Rails.env.production? + config.default_validation_type = :smtp + else + config.default_validation_type = :regex + end # Optional parameter. You can predefine which type of validation will be used for domains. # Also you can skip validation by domain. Available validation types: :regex, :mx, :smtp @@ -43,11 +47,6 @@ Truemail.configure do |config| # It is equal to empty array by default. # config.whitelisted_domains = [] - unless Rails.env.production? - config.whitelisted_domains = %w[bestnames.test goodnames.test example.com inbox.test mail.test - outlook.test invalid.test email.test] - end - # Optional parameter. With this option Truemail will validate email which contains whitelisted # domain only, i.e. if domain whitelisted, validation will passed to Regex, MX or SMTP validators. # Validation of email which not contains whitelisted domain always will return false. From 1b06e43f18e166a1be865cb078ef7d418d763d4f Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 4 Jun 2020 14:11:50 +0500 Subject: [PATCH 636/757] Move email checks and validation methods to concern --- app/models/concerns/email_checkable.rb | 19 +++++++++++++++++++ app/models/registrar.rb | 15 +-------------- 2 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 app/models/concerns/email_checkable.rb diff --git a/app/models/concerns/email_checkable.rb b/app/models/concerns/email_checkable.rb new file mode 100644 index 000000000..193352d74 --- /dev/null +++ b/app/models/concerns/email_checkable.rb @@ -0,0 +1,19 @@ +module Concerns + module EmailCheckable + extend ActiveSupport::Concern + + def verify_email_mx_smtp(field:, email:) + errors.add(field, :invalid) unless email.blank? || Truemail.valid?(email) + end + + def correct_email_format + verify_email_mx_smtp(field: :email, email: email) + end + + def correct_billing_email_format + return if self[:billing_email].blank? + + verify_email_mx_smtp(field: :billing_email, email: billing_email) + end + end +end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 2e2051542..6e6d41b77 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -1,6 +1,7 @@ class Registrar < ApplicationRecord include Versions # version/registrar_version.rb include Concerns::Registrar::BookKeeping + include Concerns::EmailCheckable include Concerns::Registrar::LegalDoc has_many :domains, dependent: :restrict_with_error @@ -193,18 +194,4 @@ class Registrar < ApplicationRecord def vat_liable_in_foreign_country? !vat_liable_locally? end - - def verify_email_mx_smtp(field:, email:) - errors.add(field, :invalid) unless email.blank? || Truemail.valid?(email) - end - - def correct_email_format - verify_email_mx_smtp(field: :email, email: email) - end - - def correct_billing_email_format - return if self[:billing_email].blank? - - verify_email_mx_smtp(field: :billing_email, email: billing_email) - end end From 9f5a636d726a199a34ecaf17fd092d114e04d3c5 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 4 Jun 2020 14:47:12 +0500 Subject: [PATCH 637/757] Change contact email validation --- app/models/contact.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index f07c0c114..4b60e85be 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -7,6 +7,7 @@ class Contact < ApplicationRecord include Concerns::Contact::Transferable include Concerns::Contact::Identical include Concerns::Contact::Disclosable + include Concerns::EmailCheckable belongs_to :original, class_name: self.name belongs_to :registrar, required: true @@ -29,8 +30,7 @@ class Contact < ApplicationRecord validates :phone, presence: true, e164: true, phone: true - validates :email, format: /@/ - validates :email, email_format: { message: :invalid }, if: proc { |c| c.will_save_change_to_email? } + validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? } validates :code, uniqueness: { message: :epp_id_taken }, From b8ade7628d62f9400999b0b62d91107573c511e1 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 4 Jun 2020 15:35:09 +0500 Subject: [PATCH 638/757] Add tests to see if Truemail validates ok --- test/models/contact_test.rb | 23 ++++++++++++++---- test/models/registrar_test.rb | 46 +++++++++++++++++++++++++++-------- 2 files changed, 54 insertions(+), 15 deletions(-) diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 4e500e98d..77e959a95 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -61,14 +61,27 @@ class ContactTest < ActiveSupport::TestCase assert contact.invalid? end - def test_validates_email_format - contact = valid_contact + def tests_email_mx_and_smtp + Truemail.configure do |config| + config.default_validation_type = :smtp + end - contact.email = 'invalid' + contact = valid_contact + contact.email = 'info@internet.ee' + assert contact.valid? + + contact.email = 'somecrude1337joke@internet.ee' assert contact.invalid? - contact.email = 'valid@registrar.test' - assert contact.valid? + contact.email = 'some@strangesentence@internet.ee' + assert contact.invalid? + + contact.email = 'somecrude31337joke@somestrange31337domain.ee' + assert contact.invalid? + + Truemail.configure do |config| + config.default_validation_type = :regex + end end def test_invalid_without_phone diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index c5d832922..6db466e1c 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -38,14 +38,27 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.invalid? end - def test_email_format_validation - registrar = valid_registrar + def tests_email_mx_and_smtp + Truemail.configure do |config| + config.default_validation_type = :smtp + end - registrar.email = 'invalid' + registrar = valid_registrar + registrar.email = 'info@internet.ee' + assert registrar.valid? + + registrar.email = 'somecrude1337joke@internet.ee' assert registrar.invalid? - registrar.email = 'valid@email.test' - assert registrar.valid? + registrar.email = 'some@strangesentence@internet.ee' + assert registrar.invalid? + + registrar.email = 'somecrude31337joke@somestrange31337domain.ee' + assert registrar.invalid? + + Truemail.configure do |config| + config.default_validation_type = :regex + end end def test_invalid_without_accounting_customer_code @@ -60,14 +73,27 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.valid? end - def test_billing_email_format_validation - registrar = valid_registrar + def tests_email_mx_and_smtp + Truemail.configure do |config| + config.default_validation_type = :smtp + end - registrar.billing_email = 'invalid' + registrar = valid_registrar + registrar.billing_email = 'info@internet.ee' + assert registrar.valid? + + registrar.billing_email = 'somecrude1337joke@internet.ee' assert registrar.invalid? - registrar.billing_email = 'valid@email.test' - assert registrar.valid? + registrar.billing_email = 'непонятное@словосочетание@internet.ee' + assert registrar.invalid? + + registrar.billing_email = 'somecrude31337joke@somestrange31337domain.ee' + assert registrar.invalid? + + Truemail.configure do |config| + config.default_validation_type = :regex + end end def test_returns_billing_email_when_provided From cc142076c30e4757943d7cca8b2e5a7d96d22818 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 5 Jun 2020 16:41:56 +0500 Subject: [PATCH 639/757] Add verification model & migration --- app/models/concerns/email_checkable.rb | 12 ++ app/models/email_address_verification.rb | 4 + ...0827_create_email_address_verifications.rb | 10 ++ db/structure.sql | 149 +++++++++++++++++- 4 files changed, 168 insertions(+), 7 deletions(-) create mode 100644 app/models/email_address_verification.rb create mode 100644 db/migrate/20200605100827_create_email_address_verifications.rb diff --git a/app/models/concerns/email_checkable.rb b/app/models/concerns/email_checkable.rb index 193352d74..67975e65a 100644 --- a/app/models/concerns/email_checkable.rb +++ b/app/models/concerns/email_checkable.rb @@ -2,6 +2,18 @@ module Concerns module EmailCheckable extend ActiveSupport::Concern + def email_verification + EmailAddressVerification.find_by(email: self.email) + end + + def billing_email_verification + if self.attribute_names.include?('billing_email') + EmailAddressVerification.find_by(email: self.billing_email) + else + nil + end + end + def verify_email_mx_smtp(field:, email:) errors.add(field, :invalid) unless email.blank? || Truemail.valid?(email) end diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb new file mode 100644 index 000000000..15544e6e4 --- /dev/null +++ b/app/models/email_address_verification.rb @@ -0,0 +1,4 @@ +class EmailAddressVerification < ApplicationRecord + + +end diff --git a/db/migrate/20200605100827_create_email_address_verifications.rb b/db/migrate/20200605100827_create_email_address_verifications.rb new file mode 100644 index 000000000..39f59b51e --- /dev/null +++ b/db/migrate/20200605100827_create_email_address_verifications.rb @@ -0,0 +1,10 @@ +class CreateEmailAddressVerifications < ActiveRecord::Migration[6.0] + def change + create_table :email_address_verifications do |t| + t.string :email, null: false + t.datetime :verified_at + end + + add_index :email_address_verifications, :email, unique: true + end +end diff --git a/db/structure.sql b/db/structure.sql index 960481c44..239370878 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -817,7 +817,97 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.email_address_verifications ( + id bigint NOT NULL, + email character varying NOT NULL, + verified_at timestamp without time zone +); + + +-- +-- Name: email_address_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_address_verifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_address_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_address_verifications_id_seq OWNED BY public.email_address_verifications.id; + + +-- +-- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.email_addresses_validations ( + id bigint NOT NULL, + email character varying NOT NULL, + validated_at timestamp without time zone +); + + +-- +-- Name: email_addresses_validations_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_addresses_validations_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_addresses_validations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_addresses_validations_id_seq OWNED BY public.email_addresses_validations.id; + + +-- +-- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.email_addresses_verifications ( + id bigint NOT NULL, + email character varying NOT NULL, + validated_at timestamp without time zone +); + + +-- +-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_addresses_verifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_addresses_verifications_id_seq OWNED BY public.email_addresses_verifications.id; + + +-- +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.epp_sessions ( @@ -2492,21 +2582,42 @@ ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('pu -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: email_address_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_address_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_address_verifications_id_seq'::regclass); + + +-- +-- Name: email_addresses_validations id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_validations ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_validations_id_seq'::regclass); + + +-- +-- Name: email_addresses_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_verifications_id_seq'::regclass); + + +-- +-- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); @@ -2907,7 +3018,31 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: email_address_verifications email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_address_verifications + ADD CONSTRAINT email_address_verifications_pkey PRIMARY KEY (id); + + +-- +-- Name: email_addresses_validations email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_validations + ADD CONSTRAINT email_addresses_validations_pkey PRIMARY KEY (id); + + +-- +-- Name: email_addresses_verifications email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_verifications + ADD CONSTRAINT email_addresses_verifications_pkey PRIMARY KEY (id); + + +-- +-- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -2915,7 +3050,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -4535,6 +4670,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200505150413'), ('20200518104105'), ('20200529115011'), +('20200605100827'), ('20200630081231'); - From 9ae85f3d744dc17d3c9f35990cc2fec61bc7a33b Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 5 Jun 2020 17:21:43 +0500 Subject: [PATCH 640/757] Add verification methods --- app/models/concerns/email_checkable.rb | 4 ++-- app/models/email_address_verification.rb | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/email_checkable.rb b/app/models/concerns/email_checkable.rb index 67975e65a..3edb9614d 100644 --- a/app/models/concerns/email_checkable.rb +++ b/app/models/concerns/email_checkable.rb @@ -3,12 +3,12 @@ module Concerns extend ActiveSupport::Concern def email_verification - EmailAddressVerification.find_by(email: self.email) + EmailAddressVerification.find_or_create_by(email: self.email) end def billing_email_verification if self.attribute_names.include?('billing_email') - EmailAddressVerification.find_by(email: self.billing_email) + EmailAddressVerification.find_or_create_by(email: self.billing_email) else nil end diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 15544e6e4..4fa523764 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -1,4 +1,14 @@ class EmailAddressVerification < ApplicationRecord + RECENTLY_VERIFIED_PERIOD = 1.month + def recently_verified? + verified_at > Time.zone.now - RECENTLY_VERIFIED_PERIOD + end + + def verify + validation_request = Truemail.validate(email) + + update(verified_at: Time.zone.now) if validation_request.result.success + end end From 95a017629eabdf7b19b2787ebc57e411b1a202a5 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 5 Jun 2020 17:36:37 +0500 Subject: [PATCH 641/757] Add email verification job --- app/jobs/verify_emails_job.rb | 43 ++++++++++++++++++++++++ app/models/email_address_verification.rb | 3 +- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 app/jobs/verify_emails_job.rb diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb new file mode 100644 index 000000000..4aedddb94 --- /dev/null +++ b/app/jobs/verify_emails_job.rb @@ -0,0 +1,43 @@ +class SendEInvoiceJob < Que::Job + + def run(verification_id) + email_address_verification = run_condition(EmailAddressVerification + .find(run_condition(verification_id))) + + ActiveRecord::Base.transaction do + email_address_verification.verify + log_success(email_address_verification) + destroy + end + rescue StandardError => e + log_error(verification: email_address_verification, error: e) + raise e + end + + private + + def run_condition(email_address_verification) + destroy if email_address_verification.recently_verified? + email_address_verification + end + + def logger + Rails.logger + end + + def log_success(verification) + email = verification.try(:email) || verification + message = "Email address #{email} verified successfully" + logger.info message + end + + def log_error(verification:, error:) + email = verification.try(:email) || verification + message = <<~TEXT.squish + There was an error verifying email #{email}. + The error message was the following: #{error} + This job will retry. + TEXT + logger.error message + end +end diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 4fa523764..8afc74a78 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -3,7 +3,8 @@ class EmailAddressVerification < ApplicationRecord RECENTLY_VERIFIED_PERIOD = 1.month def recently_verified? - verified_at > Time.zone.now - RECENTLY_VERIFIED_PERIOD + verified_at.present? && + verified_at > Time.zone.now - RECENTLY_VERIFIED_PERIOD end def verify From 9758c822215f5718f14b890ab1f88720488d6bd6 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 8 Jun 2020 13:41:37 +0500 Subject: [PATCH 642/757] Add fields & bulk import gem --- Gemfile | 1 + Gemfile.lock | 1 + app/jobs/verify_emails_job.rb | 2 +- ...0827_create_email_address_verifications.rb | 3 + db/structure.sql | 312 ++++++++++++++---- 5 files changed, 254 insertions(+), 65 deletions(-) diff --git a/Gemfile b/Gemfile index 0804ca4db..f7556e166 100644 --- a/Gemfile +++ b/Gemfile @@ -11,6 +11,7 @@ gem 'uglifier' gem 'figaro', '1.1.1' # model related +gem 'activerecord-import' gem 'paper_trail', '~> 10.3' gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 diff --git a/Gemfile.lock b/Gemfile.lock index dde0effa4..0f3b2d355 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -494,6 +494,7 @@ PLATFORMS ruby DEPENDENCIES + activerecord-import airbrake autodoc bootsnap (>= 1.1.0) diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb index 4aedddb94..20c172770 100644 --- a/app/jobs/verify_emails_job.rb +++ b/app/jobs/verify_emails_job.rb @@ -27,7 +27,7 @@ class SendEInvoiceJob < Que::Job def log_success(verification) email = verification.try(:email) || verification - message = "Email address #{email} verified successfully" + message = "Email address #{email} verification done" logger.info message end diff --git a/db/migrate/20200605100827_create_email_address_verifications.rb b/db/migrate/20200605100827_create_email_address_verifications.rb index 39f59b51e..7f618b3a7 100644 --- a/db/migrate/20200605100827_create_email_address_verifications.rb +++ b/db/migrate/20200605100827_create_email_address_verifications.rb @@ -3,8 +3,11 @@ class CreateEmailAddressVerifications < ActiveRecord::Migration[6.0] create_table :email_address_verifications do |t| t.string :email, null: false t.datetime :verified_at + t.boolean :success, null: false, default: false + t.string :domain, null: false end add_index :email_address_verifications, :email, unique: true + add_index :email_address_verifications, :domain end end diff --git a/db/structure.sql b/db/structure.sql index 239370878..e6e736328 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -823,7 +823,9 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; CREATE TABLE public.email_address_verifications ( id bigint NOT NULL, email character varying NOT NULL, - verified_at timestamp without time zone + verified_at timestamp without time zone, + success boolean DEFAULT false NOT NULL, + domain character varying NOT NULL ); @@ -3613,434 +3615,616 @@ CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (regist -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain); + + +-- +-- Name: index_email_address_verifications_on_email; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_email_address_verifications_on_email ON public.email_address_verifications USING btree (email); + + +-- +-- Name: index_email_addresses_validations_on_email; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_email_addresses_validations_on_email ON public.email_addresses_validations USING btree (email); + + +-- +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); + + +-- +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); -- --- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities process_account_activity_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_account_activity_audit AFTER INSERT OR DELETE OR UPDATE ON public.account_activities FOR EACH ROW EXECUTE PROCEDURE public.process_account_activity_audit(); + + +-- +-- Name: accounts process_account_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_account_audit AFTER INSERT OR DELETE OR UPDATE ON public.accounts FOR EACH ROW EXECUTE PROCEDURE public.process_account_audit(); + + +-- +-- Name: actions process_action_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_action_audit AFTER INSERT OR DELETE OR UPDATE ON public.actions FOR EACH ROW EXECUTE PROCEDURE public.process_action_audit(); + + +-- +-- Name: bank_statements process_bank_statement_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_bank_statement_audit AFTER INSERT OR DELETE OR UPDATE ON public.bank_statements FOR EACH ROW EXECUTE PROCEDURE public.process_bank_statement_audit(); + + +-- +-- Name: bank_transactions process_bank_transaction_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_bank_transaction_audit AFTER INSERT OR DELETE OR UPDATE ON public.bank_transactions FOR EACH ROW EXECUTE PROCEDURE public.process_bank_transaction_audit(); + + +-- +-- Name: blocked_domains process_blocked_domain_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_blocked_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.blocked_domains FOR EACH ROW EXECUTE PROCEDURE public.process_blocked_domain_audit(); + + +-- +-- Name: certificates process_certificate_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_certificate_audit AFTER INSERT OR DELETE OR UPDATE ON public.certificates FOR EACH ROW EXECUTE PROCEDURE public.process_certificate_audit(); + + +-- +-- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); + + +-- +-- Name: dnskeys process_dnskey_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_dnskey_audit AFTER INSERT OR DELETE OR UPDATE ON public.dnskeys FOR EACH ROW EXECUTE PROCEDURE public.process_dnskey_audit(); + + +-- +-- Name: domains process_domain_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.domains FOR EACH ROW EXECUTE PROCEDURE public.process_domain_audit(); + + +-- +-- Name: domain_contacts process_domain_contact_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_domain_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.domain_contacts FOR EACH ROW EXECUTE PROCEDURE public.process_domain_contact_audit(); + + +-- +-- Name: invoices process_invoice_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_invoice_audit AFTER INSERT OR DELETE OR UPDATE ON public.invoices FOR EACH ROW EXECUTE PROCEDURE public.process_invoice_audit(); + + +-- +-- Name: invoice_items process_invoice_item_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_invoice_item_audit AFTER INSERT OR DELETE OR UPDATE ON public.invoice_items FOR EACH ROW EXECUTE PROCEDURE public.process_invoice_item_audit(); + + +-- +-- Name: nameservers process_nameserver_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_nameserver_audit AFTER INSERT OR DELETE OR UPDATE ON public.nameservers FOR EACH ROW EXECUTE PROCEDURE public.process_nameserver_audit(); + + +-- +-- Name: notifications process_notification_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_notification_audit AFTER INSERT OR DELETE OR UPDATE ON public.notifications FOR EACH ROW EXECUTE PROCEDURE public.process_notification_audit(); + + +-- +-- Name: payment_orders process_payment_order_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_payment_order_audit AFTER INSERT OR DELETE OR UPDATE ON public.payment_orders FOR EACH ROW EXECUTE PROCEDURE public.process_payment_order_audit(); + + +-- +-- Name: registrant_verifications process_registrant_verification_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_registrant_verification_audit AFTER INSERT OR DELETE OR UPDATE ON public.registrant_verifications FOR EACH ROW EXECUTE PROCEDURE public.process_registrant_verification_audit(); + + +-- +-- Name: registrars process_registrar_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_registrar_audit AFTER INSERT OR DELETE OR UPDATE ON public.registrars FOR EACH ROW EXECUTE PROCEDURE public.process_registrar_audit(); + + +-- +-- Name: reserved_domains process_reserved_domain_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_reserved_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.reserved_domains FOR EACH ROW EXECUTE PROCEDURE public.process_reserved_domain_audit(); + + +-- +-- Name: settings process_setting_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_setting_audit AFTER INSERT OR DELETE OR UPDATE ON public.settings FOR EACH ROW EXECUTE PROCEDURE public.process_setting_audit(); + + +-- +-- Name: users process_user_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_user_audit AFTER INSERT OR DELETE OR UPDATE ON public.users FOR EACH ROW EXECUTE PROCEDURE public.process_user_audit(); + + +-- +-- Name: white_ips process_white_ip_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_white_ip_audit AFTER INSERT OR DELETE OR UPDATE ON public.white_ips FOR EACH ROW EXECUTE PROCEDURE public.process_white_ip_audit(); + + +-- +-- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -4048,7 +4232,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts From ee7d69c1ce8454ee321602a25a48b3fe9c94bdb8 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 8 Jun 2020 14:12:39 +0500 Subject: [PATCH 643/757] Add data migration to fill EmailAddressVerifications --- app/models/concerns/email_checkable.rb | 8 +- app/models/email_address_verification.rb | 7 +- ...20200608084321_fill_email_verifications.rb | 19 +++ db/structure.sql | 155 ------------------ 4 files changed, 29 insertions(+), 160 deletions(-) create mode 100644 db/data/20200608084321_fill_email_verifications.rb diff --git a/app/models/concerns/email_checkable.rb b/app/models/concerns/email_checkable.rb index 3edb9614d..5c82a0f9a 100644 --- a/app/models/concerns/email_checkable.rb +++ b/app/models/concerns/email_checkable.rb @@ -3,12 +3,14 @@ module Concerns extend ActiveSupport::Concern def email_verification - EmailAddressVerification.find_or_create_by(email: self.email) + EmailAddressVerification.find_or_create_by(email: self.email, + domain: Mail::Address.new(self.email).domain) end def billing_email_verification if self.attribute_names.include?('billing_email') - EmailAddressVerification.find_or_create_by(email: self.billing_email) + EmailAddressVerification.find_or_create_by(email: self.billing_email, + domain: Mail::Address.new(self.email).domain) else nil end @@ -23,8 +25,6 @@ module Concerns end def correct_billing_email_format - return if self[:billing_email].blank? - verify_email_mx_smtp(field: :billing_email, email: billing_email) end end diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 8afc74a78..edcdbaa35 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -10,6 +10,11 @@ class EmailAddressVerification < ApplicationRecord def verify validation_request = Truemail.validate(email) - update(verified_at: Time.zone.now) if validation_request.result.success + if validation_request.result.success + update(verified_at: Time.zone.now, + success: true) + end + + validation_request.result.success end end diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb new file mode 100644 index 000000000..f12381b3c --- /dev/null +++ b/db/data/20200608084321_fill_email_verifications.rb @@ -0,0 +1,19 @@ +class FillEmailVerifications < ActiveRecord::Migration[6.0] + def up + registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?) + registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) + contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) + + emails = (contact_emails || registrar_emails || registrar_billing_emails).uniq + + result = emails.map do |email| + { email: email, domain: Mail::Address.new(email).domain || 'not_found' } + end + + EmailAddressVerification.import result, batch_size: 500 + end + + def down + EmailAddressVerification.delete_all + end +end diff --git a/db/structure.sql b/db/structure.sql index e6e736328..c5ad902b7 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -4068,161 +4068,6 @@ CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); - --- --- Name: account_activities process_account_activity_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_account_activity_audit AFTER INSERT OR DELETE OR UPDATE ON public.account_activities FOR EACH ROW EXECUTE PROCEDURE public.process_account_activity_audit(); - - --- --- Name: accounts process_account_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_account_audit AFTER INSERT OR DELETE OR UPDATE ON public.accounts FOR EACH ROW EXECUTE PROCEDURE public.process_account_audit(); - - --- --- Name: actions process_action_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_action_audit AFTER INSERT OR DELETE OR UPDATE ON public.actions FOR EACH ROW EXECUTE PROCEDURE public.process_action_audit(); - - --- --- Name: bank_statements process_bank_statement_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_bank_statement_audit AFTER INSERT OR DELETE OR UPDATE ON public.bank_statements FOR EACH ROW EXECUTE PROCEDURE public.process_bank_statement_audit(); - - --- --- Name: bank_transactions process_bank_transaction_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_bank_transaction_audit AFTER INSERT OR DELETE OR UPDATE ON public.bank_transactions FOR EACH ROW EXECUTE PROCEDURE public.process_bank_transaction_audit(); - - --- --- Name: blocked_domains process_blocked_domain_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_blocked_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.blocked_domains FOR EACH ROW EXECUTE PROCEDURE public.process_blocked_domain_audit(); - - --- --- Name: certificates process_certificate_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_certificate_audit AFTER INSERT OR DELETE OR UPDATE ON public.certificates FOR EACH ROW EXECUTE PROCEDURE public.process_certificate_audit(); - - --- --- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); - - --- --- Name: dnskeys process_dnskey_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_dnskey_audit AFTER INSERT OR DELETE OR UPDATE ON public.dnskeys FOR EACH ROW EXECUTE PROCEDURE public.process_dnskey_audit(); - - --- --- Name: domains process_domain_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.domains FOR EACH ROW EXECUTE PROCEDURE public.process_domain_audit(); - - --- --- Name: domain_contacts process_domain_contact_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_domain_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.domain_contacts FOR EACH ROW EXECUTE PROCEDURE public.process_domain_contact_audit(); - - --- --- Name: invoices process_invoice_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_invoice_audit AFTER INSERT OR DELETE OR UPDATE ON public.invoices FOR EACH ROW EXECUTE PROCEDURE public.process_invoice_audit(); - - --- --- Name: invoice_items process_invoice_item_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_invoice_item_audit AFTER INSERT OR DELETE OR UPDATE ON public.invoice_items FOR EACH ROW EXECUTE PROCEDURE public.process_invoice_item_audit(); - - --- --- Name: nameservers process_nameserver_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_nameserver_audit AFTER INSERT OR DELETE OR UPDATE ON public.nameservers FOR EACH ROW EXECUTE PROCEDURE public.process_nameserver_audit(); - - --- --- Name: notifications process_notification_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_notification_audit AFTER INSERT OR DELETE OR UPDATE ON public.notifications FOR EACH ROW EXECUTE PROCEDURE public.process_notification_audit(); - - --- --- Name: payment_orders process_payment_order_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_payment_order_audit AFTER INSERT OR DELETE OR UPDATE ON public.payment_orders FOR EACH ROW EXECUTE PROCEDURE public.process_payment_order_audit(); - - --- --- Name: registrant_verifications process_registrant_verification_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_registrant_verification_audit AFTER INSERT OR DELETE OR UPDATE ON public.registrant_verifications FOR EACH ROW EXECUTE PROCEDURE public.process_registrant_verification_audit(); - - --- --- Name: registrars process_registrar_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_registrar_audit AFTER INSERT OR DELETE OR UPDATE ON public.registrars FOR EACH ROW EXECUTE PROCEDURE public.process_registrar_audit(); - - --- --- Name: reserved_domains process_reserved_domain_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_reserved_domain_audit AFTER INSERT OR DELETE OR UPDATE ON public.reserved_domains FOR EACH ROW EXECUTE PROCEDURE public.process_reserved_domain_audit(); - - --- --- Name: settings process_setting_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_setting_audit AFTER INSERT OR DELETE OR UPDATE ON public.settings FOR EACH ROW EXECUTE PROCEDURE public.process_setting_audit(); - - --- --- Name: users process_user_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_user_audit AFTER INSERT OR DELETE OR UPDATE ON public.users FOR EACH ROW EXECUTE PROCEDURE public.process_user_audit(); - - --- --- Name: white_ips process_white_ip_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_white_ip_audit AFTER INSERT OR DELETE OR UPDATE ON public.white_ips FOR EACH ROW EXECUTE PROCEDURE public.process_white_ip_audit(); - - -- -- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- From a13725faa7c9bad27269b156ff992bfd76716efe Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 8 Jun 2020 16:09:52 +0500 Subject: [PATCH 644/757] Add email verification rake task --- app/jobs/verify_emails_job.rb | 9 +++++---- app/models/email_address_verification.rb | 22 +++++++++++++++++++--- lib/tasks/verify_email.rake | 11 +++++++++++ 3 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 lib/tasks/verify_email.rake diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb index 20c172770..d7d512961 100644 --- a/app/jobs/verify_emails_job.rb +++ b/app/jobs/verify_emails_job.rb @@ -1,8 +1,7 @@ -class SendEInvoiceJob < Que::Job +class VerifyEmailsJob < Que::Job def run(verification_id) - email_address_verification = run_condition(EmailAddressVerification - .find(run_condition(verification_id))) + email_address_verification = run_condition(EmailAddressVerification.find(verification_id)) ActiveRecord::Base.transaction do email_address_verification.verify @@ -17,12 +16,14 @@ class SendEInvoiceJob < Que::Job private def run_condition(email_address_verification) + destroy unless email_address_verification destroy if email_address_verification.recently_verified? + email_address_verification end def logger - Rails.logger + Rails.logger = Logger.new(STDOUT) end def log_success(verification) diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index edcdbaa35..57b75fcb4 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -1,14 +1,30 @@ class EmailAddressVerification < ApplicationRecord - RECENTLY_VERIFIED_PERIOD = 1.month + scope :not_verified_recently, -> { + where('verified_at IS NULL or verified_at < ?', verification_period) + } + + scope :verified_recently, -> { + where('verified_at IS NOT NULL and verified_at >= ?', verification_period) + } + def recently_verified? verified_at.present? && - verified_at > Time.zone.now - RECENTLY_VERIFIED_PERIOD + verified_at > verification_period + end + + def verification_period + self.class.verification_period + end + + def self.verification_period + Time.zone.now - RECENTLY_VERIFIED_PERIOD end def verify - validation_request = Truemail.validate(email) + media = success ? :mx : :smtp + validation_request = Truemail.validate(email, with: media) if validation_request.result.success update(verified_at: Time.zone.now, diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake new file mode 100644 index 000000000..da94e7edb --- /dev/null +++ b/lib/tasks/verify_email.rake @@ -0,0 +1,11 @@ +namespace :verify_email do + desc 'Stars verifying email jobs' + task all_domains: :environment do + verifications_by_domain = EmailAddressVerification.not_verified_recently.group_by(&:domain) + + verifications_by_domain.each do |_domain, verifications| + ver = verifications[0] # Only first email to not to clog the SMTP servers + VerifyEmailsJob.enqueue(ver.id) + end + end +end From 3d444c3a04bad57de0e37bf2aa94ade90a2aa6d3 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 8 Jun 2020 16:16:06 +0500 Subject: [PATCH 645/757] Fix CC issues --- app/jobs/verify_emails_job.rb | 1 - app/models/concerns/email_checkable.rb | 20 +++++++++++-------- app/models/email_address_verification.rb | 7 ++++--- ...20200608084321_fill_email_verifications.rb | 8 +++++++- lib/tasks/verify_email.rake | 5 ++++- 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb index d7d512961..4da854870 100644 --- a/app/jobs/verify_emails_job.rb +++ b/app/jobs/verify_emails_job.rb @@ -1,5 +1,4 @@ class VerifyEmailsJob < Que::Job - def run(verification_id) email_address_verification = run_condition(EmailAddressVerification.find(verification_id)) diff --git a/app/models/concerns/email_checkable.rb b/app/models/concerns/email_checkable.rb index 5c82a0f9a..ba5784336 100644 --- a/app/models/concerns/email_checkable.rb +++ b/app/models/concerns/email_checkable.rb @@ -3,17 +3,21 @@ module Concerns extend ActiveSupport::Concern def email_verification - EmailAddressVerification.find_or_create_by(email: self.email, - domain: Mail::Address.new(self.email).domain) + EmailAddressVerification.find_or_create_by(email: email, + domain: domain(email)) end def billing_email_verification - if self.attribute_names.include?('billing_email') - EmailAddressVerification.find_or_create_by(email: self.billing_email, - domain: Mail::Address.new(self.email).domain) - else - nil - end + return unless attribute_names.include?('billing_email') + + EmailAddressVerification.find_or_create_by(email: billing_email, + domain: domain(email)) + end + + def domain(email) + Mail::Address.new(email).domain || 'not_found' + rescue Mail::Field::IncompleteParseError + 'not_found' end def verify_email_mx_smtp(field:, email:) diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 57b75fcb4..bed0cfae3 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -1,11 +1,11 @@ class EmailAddressVerification < ApplicationRecord RECENTLY_VERIFIED_PERIOD = 1.month - scope :not_verified_recently, -> { + scope :not_verified_recently, lambda { where('verified_at IS NULL or verified_at < ?', verification_period) } - scope :verified_recently, -> { + scope :verified_recently, lambda { where('verified_at IS NOT NULL and verified_at >= ?', verification_period) } @@ -23,7 +23,8 @@ class EmailAddressVerification < ApplicationRecord end def verify - media = success ? :mx : :smtp + # media = success ? :mx : :smtp + media = :mx validation_request = Truemail.validate(email, with: media) if validation_request.result.success diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb index f12381b3c..7d3da34ce 100644 --- a/db/data/20200608084321_fill_email_verifications.rb +++ b/db/data/20200608084321_fill_email_verifications.rb @@ -7,7 +7,7 @@ class FillEmailVerifications < ActiveRecord::Migration[6.0] emails = (contact_emails || registrar_emails || registrar_billing_emails).uniq result = emails.map do |email| - { email: email, domain: Mail::Address.new(email).domain || 'not_found' } + { email: email, domain: domain(email) } end EmailAddressVerification.import result, batch_size: 500 @@ -16,4 +16,10 @@ class FillEmailVerifications < ActiveRecord::Migration[6.0] def down EmailAddressVerification.delete_all end + + def domain(email) + Mail::Address.new(email).domain || 'not_found' + rescue Mail::Field::IncompleteParseError + 'not_found' + end end diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake index da94e7edb..c97a8e39b 100644 --- a/lib/tasks/verify_email.rake +++ b/lib/tasks/verify_email.rake @@ -3,9 +3,12 @@ namespace :verify_email do task all_domains: :environment do verifications_by_domain = EmailAddressVerification.not_verified_recently.group_by(&:domain) - verifications_by_domain.each do |_domain, verifications| + verifications_by_domain.each do |domain, verifications| + next if domain == 'not_found' + ver = verifications[0] # Only first email to not to clog the SMTP servers VerifyEmailsJob.enqueue(ver.id) + # VerifyEmailsJob.run(ver.id) end end end From 48036c660d83a1f78eeae8cf9929973cd5d3814e Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 9 Jun 2020 14:05:52 +0500 Subject: [PATCH 646/757] Add email & nonverified color to contact show --- .../concerns/{email_checkable.rb => email_verifable.rb} | 2 +- app/models/contact.rb | 2 +- app/models/registrar.rb | 2 +- app/views/admin/contacts/index.haml | 6 +++++- app/views/admin/contacts/partials/_general.haml | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) rename app/models/concerns/{email_checkable.rb => email_verifable.rb} (97%) diff --git a/app/models/concerns/email_checkable.rb b/app/models/concerns/email_verifable.rb similarity index 97% rename from app/models/concerns/email_checkable.rb rename to app/models/concerns/email_verifable.rb index ba5784336..de8041c32 100644 --- a/app/models/concerns/email_checkable.rb +++ b/app/models/concerns/email_verifable.rb @@ -1,5 +1,5 @@ module Concerns - module EmailCheckable + module EmailVerifable extend ActiveSupport::Concern def email_verification diff --git a/app/models/contact.rb b/app/models/contact.rb index 4b60e85be..3fec501c8 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -7,7 +7,7 @@ class Contact < ApplicationRecord include Concerns::Contact::Transferable include Concerns::Contact::Identical include Concerns::Contact::Disclosable - include Concerns::EmailCheckable + include Concerns::EmailVerifable belongs_to :original, class_name: self.name belongs_to :registrar, required: true diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 6e6d41b77..470d768b7 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -1,7 +1,7 @@ class Registrar < ApplicationRecord include Versions # version/registrar_version.rb include Concerns::Registrar::BookKeeping - include Concerns::EmailCheckable + include Concerns::EmailVerifable include Concerns::Registrar::LegalDoc has_many :domains, dependent: :restrict_with_error diff --git a/app/views/admin/contacts/index.haml b/app/views/admin/contacts/index.haml index cc80ac744..7ba2220a8 100644 --- a/app/views/admin/contacts/index.haml +++ b/app/views/admin/contacts/index.haml @@ -85,7 +85,9 @@ %th{class: 'col-xs-2'} = sort_link(@q, 'ident', t(:ident)) %th{class: 'col-xs-2'} - = sort_link(@q, 'email', t(:created_at)) + = sort_link(@q, 'email', t(:email)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'created_at', t(:created_at)) %th{class: 'col-xs-2'} = sort_link(@q, 'registrar_name', t(:registrar_name)) %tbody @@ -94,6 +96,8 @@ %td= link_to(contact, admin_contact_path(contact)) %td= contact.code %td= ident_for(contact) + %td{class: ('text-danger' unless contact.email_verification.success)} + = contact.email %td= l(contact.created_at, format: :short) %td - if contact.registrar diff --git a/app/views/admin/contacts/partials/_general.haml b/app/views/admin/contacts/partials/_general.haml index 029f89509..7245ca218 100644 --- a/app/views/admin/contacts/partials/_general.haml +++ b/app/views/admin/contacts/partials/_general.haml @@ -17,7 +17,8 @@ %dd= ident_for(@contact) %dt= t(:email) - %dd= @contact.email + %dd{class: ('text-danger' unless @contact.email_verification.success)} + = @contact.email %dt= t(:phone) %dd= @contact.phone From af7e0f266d8d37e8ef5fa0367e7e43a38513fb33 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 9 Jun 2020 14:57:55 +0500 Subject: [PATCH 647/757] Add non-verified email filreting in contact index --- app/controllers/admin/contacts_controller.rb | 6 ++++-- app/models/contact.rb | 9 +++++++++ app/views/admin/contacts/index.haml | 4 ++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index 4eea4faad..d48d5c09b 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -13,10 +13,12 @@ module Admin search_params[:registrant_domains_id_not_null] = 1 end - contacts = Contact.includes(:registrar).joins(:registrar).select('contacts.*, registrars.name') + contacts = Contact.includes(:registrar).joins(:registrar) + .includes(:email_address_verification) + .select('contacts.*, registrars.name') contacts = contacts.filter_by_states(params[:statuses_contains].join(',')) if params[:statuses_contains] contacts = contacts.where("ident_country_code is null or ident_country_code=''") if params[:only_no_country_code].eql?('1') - + contacts = contacts.email_not_verified if params[:email_not_verified].eql?('1') normalize_search_parameters do @q = contacts.search(search_params) diff --git a/app/models/contact.rb b/app/models/contact.rb index 3fec501c8..556907ba4 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -16,6 +16,10 @@ class Contact < ApplicationRecord has_many :legal_documents, as: :documentable has_many :registrant_domains, class_name: 'Domain', foreign_key: 'registrant_id' has_many :actions, dependent: :destroy + belongs_to :email_address_verification, class_name: 'EmailAddressVerification', + primary_key: 'email', + foreign_key: 'email', + optional: true attr_accessor :legal_document_id alias_attribute :kind, :ident_type @@ -23,6 +27,11 @@ class Contact < ApplicationRecord accepts_nested_attributes_for :legal_documents + scope :email_not_verified, lambda { + joins(:email_address_verification) + .where('verified_at IS NULL OR verified_at <= ?', EmailAddressVerification.verification_period) + } + validates :name, :email, presence: true validates :street, :city, :zip, :country_code, presence: true, if: lambda { self.class.address_processing? diff --git a/app/views/admin/contacts/index.haml b/app/views/admin/contacts/index.haml index 7ba2220a8..bf3665664 100644 --- a/app/views/admin/contacts/index.haml +++ b/app/views/admin/contacts/index.haml @@ -63,6 +63,10 @@ .form-group = label_tag :only_no_country_code, "Ident CC missing" = check_box_tag :only_no_country_code, '1',params[:only_no_country_code].eql?('1'), style: 'width:auto;height:auto;float:right' + .col-md-3 + .form-group + = label_tag :email_not_verified, "Email not verified" + = check_box_tag :email_not_verified, '1',params[:email_not_verified].eql?('1'), style: 'width:auto;height:auto;float:right' .row .col-md-3{style: 'padding-top: 25px;float:right;'} From e95996fa12059646cb76fc68e3b28ba5d71cb703 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 9 Jun 2020 15:51:51 +0500 Subject: [PATCH 648/757] Add nonverified color email to registrar index --- app/models/email_address_verification.rb | 3 +++ app/models/registrar.rb | 8 ++++++++ app/views/admin/registrars/index.html.erb | 13 +++++++++++++ config/locales/en.yml | 1 + config/locales/et.yml | 1 + db/data/20200608084321_fill_email_verifications.rb | 3 +-- lib/tasks/verify_email.rake | 5 ++--- 7 files changed, 29 insertions(+), 5 deletions(-) diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index bed0cfae3..412ce7f83 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -30,6 +30,9 @@ class EmailAddressVerification < ApplicationRecord if validation_request.result.success update(verified_at: Time.zone.now, success: true) + else + update(verified_at: nil, + success: false) end validation_request.result.success diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 470d768b7..3fec53f21 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -13,6 +13,14 @@ class Registrar < ApplicationRecord has_many :nameservers, through: :domains has_many :whois_records has_many :white_ips, dependent: :destroy + belongs_to :email_address_verification, class_name: 'EmailAddressVerification', + primary_key: 'email', + foreign_key: 'email', + optional: true + belongs_to :billing_email_address_verification, class_name: 'EmailAddressVerification', + primary_key: 'email', + foreign_key: 'billing_email', + optional: true delegate :balance, to: :cash_account, allow_nil: true diff --git a/app/views/admin/registrars/index.html.erb b/app/views/admin/registrars/index.html.erb index a66816568..4b3fbd98a 100644 --- a/app/views/admin/registrars/index.html.erb +++ b/app/views/admin/registrars/index.html.erb @@ -28,6 +28,9 @@ <%= t(:test_registrar) %> + + <%= t(:emails) %> + @@ -45,6 +48,16 @@ <%= "#{x.test_registrar}" %> + + > + <%= "#{x.email}" %> + + <% if x[:billing_email].present? %> + > + <%= "#{x[:billing_email]}" %> + + <% end %> + <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index a825b1dc0..27299072e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -636,6 +636,7 @@ en: edit_dispute: 'Edit dispute' optional: 'Optional' test_registrar: "Test registrar" + emails: 'Email addresses' verified_confirm: 'Verified status is for cases when current registrant is the one applying for the update. Legal document signed by the registrant is required. Are you sure this update is properly verified with the registrant?' verified: 'Verified' deleted: 'Deleted' diff --git a/config/locales/et.yml b/config/locales/et.yml index 05d32be24..9cb8aaa4a 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -5,3 +5,4 @@ et: date: # Don't forget the nil at the beginning; there's no such thing as a 0th month month_names: [~, Jaanuar, Veebruar, Märts, Aprill, Mai, Juuni, Juuli, August, September, Oktoober, November, Detsember] + emails: "Meillaadressid" diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb index 7d3da34ce..68f02b133 100644 --- a/db/data/20200608084321_fill_email_verifications.rb +++ b/db/data/20200608084321_fill_email_verifications.rb @@ -4,12 +4,11 @@ class FillEmailVerifications < ActiveRecord::Migration[6.0] registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) - emails = (contact_emails || registrar_emails || registrar_billing_emails).uniq + emails = (contact_emails + registrar_emails + registrar_billing_emails).uniq result = emails.map do |email| { email: email, domain: domain(email) } end - EmailAddressVerification.import result, batch_size: 500 end diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake index c97a8e39b..d069100f2 100644 --- a/lib/tasks/verify_email.rake +++ b/lib/tasks/verify_email.rake @@ -2,13 +2,12 @@ namespace :verify_email do desc 'Stars verifying email jobs' task all_domains: :environment do verifications_by_domain = EmailAddressVerification.not_verified_recently.group_by(&:domain) - verifications_by_domain.each do |domain, verifications| next if domain == 'not_found' - ver = verifications[0] # Only first email to not to clog the SMTP servers + ver = verifications.sample # Verify random email to not to clog the SMTP servers VerifyEmailsJob.enqueue(ver.id) - # VerifyEmailsJob.run(ver.id) + next end end end From 62acd8892a93b45109950e7e14d3dd366a9e4deb Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 9 Jun 2020 15:56:45 +0500 Subject: [PATCH 649/757] Add nonverified email color to registrar show --- app/controllers/admin/contacts_controller.rb | 12 +++++++++--- app/models/contact.rb | 9 +++------ app/models/registrar.rb | 18 ++++++++++-------- .../admin/contacts/partials/_general.haml | 2 +- app/views/admin/registrars/index.html.erb | 4 ++-- .../admin/registrars/show/_billing.html.erb | 6 ++++-- .../admin/registrars/show/_contacts.html.erb | 6 ++++-- 7 files changed, 33 insertions(+), 24 deletions(-) diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index d48d5c09b..685a08c86 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -14,11 +14,9 @@ module Admin end contacts = Contact.includes(:registrar).joins(:registrar) - .includes(:email_address_verification) .select('contacts.*, registrars.name') contacts = contacts.filter_by_states(params[:statuses_contains].join(',')) if params[:statuses_contains] - contacts = contacts.where("ident_country_code is null or ident_country_code=''") if params[:only_no_country_code].eql?('1') - contacts = contacts.email_not_verified if params[:email_not_verified].eql?('1') + contacts = filter_by_flags(contacts) normalize_search_parameters do @q = contacts.search(search_params) @@ -28,6 +26,14 @@ module Admin @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? end + def filter_by_flags(contacts) + if params[:only_no_country_code].eql?('1') + contacts = contacts.where("ident_country_code is null or ident_country_code=''") + end + contacts = contacts.email_not_verified if params[:email_not_verified].eql?('1') + contacts + end + def search render json: Contact.search_by_query(params[:q]) end diff --git a/app/models/contact.rb b/app/models/contact.rb index 556907ba4..a24a53a72 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -16,10 +16,6 @@ class Contact < ApplicationRecord has_many :legal_documents, as: :documentable has_many :registrant_domains, class_name: 'Domain', foreign_key: 'registrant_id' has_many :actions, dependent: :destroy - belongs_to :email_address_verification, class_name: 'EmailAddressVerification', - primary_key: 'email', - foreign_key: 'email', - optional: true attr_accessor :legal_document_id alias_attribute :kind, :ident_type @@ -28,8 +24,9 @@ class Contact < ApplicationRecord accepts_nested_attributes_for :legal_documents scope :email_not_verified, lambda { - joins(:email_address_verification) - .where('verified_at IS NULL OR verified_at <= ?', EmailAddressVerification.verification_period) + joins('LEFT JOIN :email_address_verifications emv ON contacts.email = emv.email') + .where('verified_at IS NULL OR verified_at <= ?', + EmailAddressVerification.verification_period) } validates :name, :email, presence: true diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 3fec53f21..9abdfdb68 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -13,14 +13,16 @@ class Registrar < ApplicationRecord has_many :nameservers, through: :domains has_many :whois_records has_many :white_ips, dependent: :destroy - belongs_to :email_address_verification, class_name: 'EmailAddressVerification', - primary_key: 'email', - foreign_key: 'email', - optional: true - belongs_to :billing_email_address_verification, class_name: 'EmailAddressVerification', - primary_key: 'email', - foreign_key: 'billing_email', - optional: true + # belongs_to :email_address_verification, class_name: 'EmailAddressVerification', + # primary_key: 'email', + # foreign_key: 'email', + # optional: true, + # inverse_of: :registrar + # belongs_to :billing_email_address_verification, class_name: 'EmailAddressVerification', + # primary_key: 'email', + # foreign_key: 'billing_email', + # optional: true, + # inverse_of: :billing_registrar delegate :balance, to: :cash_account, allow_nil: true diff --git a/app/views/admin/contacts/partials/_general.haml b/app/views/admin/contacts/partials/_general.haml index 7245ca218..c4a151294 100644 --- a/app/views/admin/contacts/partials/_general.haml +++ b/app/views/admin/contacts/partials/_general.haml @@ -17,7 +17,7 @@ %dd= ident_for(@contact) %dt= t(:email) - %dd{class: ('text-danger' unless @contact.email_verification.success)} + %dd{class: ('text-danger' unless @contact.email_verification&.success)} = @contact.email %dt= t(:phone) diff --git a/app/views/admin/registrars/index.html.erb b/app/views/admin/registrars/index.html.erb index 4b3fbd98a..6ed864972 100644 --- a/app/views/admin/registrars/index.html.erb +++ b/app/views/admin/registrars/index.html.erb @@ -49,11 +49,11 @@ <%= "#{x.test_registrar}" %> - > + > <%= "#{x.email}" %> <% if x[:billing_email].present? %> - > + > <%= "#{x[:billing_email]}" %> <% end %> diff --git a/app/views/admin/registrars/show/_billing.html.erb b/app/views/admin/registrars/show/_billing.html.erb index da79b9074..ab731ce1d 100644 --- a/app/views/admin/registrars/show/_billing.html.erb +++ b/app/views/admin/registrars/show/_billing.html.erb @@ -15,7 +15,9 @@
<%= registrar.accounting_customer_code %>
<%= Registrar.human_attribute_name :billing_email %>
-
<%= registrar.billing_email %>
+
> + <%= registrar.billing_email %> +
<%= Registrar.human_attribute_name :reference_no %>
<%= registrar.reference_no %>
@@ -24,4 +26,4 @@
<%= registrar.iban %>
- \ No newline at end of file + diff --git a/app/views/admin/registrars/show/_contacts.html.erb b/app/views/admin/registrars/show/_contacts.html.erb index f467e6a51..b5a222dd5 100644 --- a/app/views/admin/registrars/show/_contacts.html.erb +++ b/app/views/admin/registrars/show/_contacts.html.erb @@ -15,7 +15,9 @@
<%= @registrar.phone %>
<%= Registrar.human_attribute_name :email %>
-
<%= @registrar.email %>
+
> + <%= @registrar.email %> +
- \ No newline at end of file + From 438a2e05ab949ba5751851be199b733e078c9c7d Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 10 Jun 2020 13:27:54 +0500 Subject: [PATCH 650/757] Add test for email verification job --- app/jobs/verify_emails_job.rb | 7 +++- test/fixtures/contacts.yml | 8 ++++ test/jobs/verify_emails_job_test.rb | 59 +++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 test/jobs/verify_emails_job_test.rb diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb index 4da854870..a0d7234c5 100644 --- a/app/jobs/verify_emails_job.rb +++ b/app/jobs/verify_emails_job.rb @@ -2,6 +2,11 @@ class VerifyEmailsJob < Que::Job def run(verification_id) email_address_verification = run_condition(EmailAddressVerification.find(verification_id)) + if email_address_verification.recently_verified? + destroy + return + end + ActiveRecord::Base.transaction do email_address_verification.verify log_success(email_address_verification) @@ -22,7 +27,7 @@ class VerifyEmailsJob < Que::Job end def logger - Rails.logger = Logger.new(STDOUT) + Rails.logger end def log_success(verification) diff --git a/test/fixtures/contacts.yml b/test/fixtures/contacts.yml index ddfbfe93f..0173d56dd 100644 --- a/test/fixtures/contacts.yml +++ b/test/fixtures/contacts.yml @@ -85,3 +85,11 @@ invalid: auth_info: any registrar: bestnames uuid: bd80c0f9-26ee-49e0-a2cb-2311d931c433 + +invalid_email: + name: any + code: invalid_email + email: invalid@invalid. + auth_info: any + registrar: bestnames + uuid: fa8c4f51-a221-4628-b3c6-47995f4edea3 diff --git a/test/jobs/verify_emails_job_test.rb b/test/jobs/verify_emails_job_test.rb new file mode 100644 index 000000000..f55a474db --- /dev/null +++ b/test/jobs/verify_emails_job_test.rb @@ -0,0 +1,59 @@ +require "test_helper" + +class VerifyEmailsJobTest < ActiveSupport::TestCase + def setup + @contact = contacts(:john) + @invalid_contact = contacts(:invalid_email) + @contact_verification = @contact.email_verification + @invalid_contact_verification = @invalid_contact.email_verification + + @default_whitelist = Truemail.configure.whitelisted_domains + @default_blacklist = Truemail.configure.blacklisted_domains + Truemail.configure.whitelisted_domains = whitelisted_domains + Truemail.configure.blacklisted_domains = blacklisted_domains + end + + def teardown + Truemail.configure.whitelisted_domains = @default_whitelist + Truemail.configure.blacklisted_domains = @default_blacklist + end + + def domain(email) + Mail::Address.new(email).domain + rescue Mail::Field::IncompleteParseError + nil + end + + def whitelisted_domains + [domain(@contact.email)].reject(&:blank?) + end + + def blacklisted_domains + [domain(@invalid_contact.email)].reject(&:blank?) + end + + def test_job_checks_if_email_valid + VerifyEmailsJob.run(@contact_verification.id) + @contact_verification.reload + + assert @contact_verification.success + end + + def test_job_checks_does_not_run_if_recent + old_verified_at = Time.zone.now - 10.days + @contact_verification.update(success: true, verified_at: old_verified_at) + assert @contact_verification.recently_verified? + + VerifyEmailsJob.run(@contact_verification.id) + @contact_verification.reload + + assert_in_delta @contact_verification.verified_at.to_i, old_verified_at.to_i, 1 + end + + def test_job_checks_if_email_invalid + VerifyEmailsJob.run(@invalid_contact_verification.id) + @contact_verification.reload + + refute @contact_verification.success + end +end From f8eea0835799e06ec9fb189a3e868683a3656c1a Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 10 Jun 2020 14:14:03 +0500 Subject: [PATCH 651/757] Move emails & domains to citext, CC fixes --- app/jobs/verify_emails_job.rb | 5 +---- app/models/concerns/email_verifable.rb | 8 ++++---- config/schedule.rb | 4 ++++ ...change_email_verification_fields_to_citext.rb | 13 +++++++++++++ db/structure.sql | 16 ++++++++++++---- 5 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 db/migrate/20200610090110_change_email_verification_fields_to_citext.rb diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb index a0d7234c5..41965c9d9 100644 --- a/app/jobs/verify_emails_job.rb +++ b/app/jobs/verify_emails_job.rb @@ -2,10 +2,7 @@ class VerifyEmailsJob < Que::Job def run(verification_id) email_address_verification = run_condition(EmailAddressVerification.find(verification_id)) - if email_address_verification.recently_verified? - destroy - return - end + return if email_address_verification.recently_verified? ActiveRecord::Base.transaction do email_address_verification.verify diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb index de8041c32..f7c9e59fb 100644 --- a/app/models/concerns/email_verifable.rb +++ b/app/models/concerns/email_verifable.rb @@ -3,15 +3,15 @@ module Concerns extend ActiveSupport::Concern def email_verification - EmailAddressVerification.find_or_create_by(email: email, - domain: domain(email)) + EmailAddressVerification.find_or_create_by(email: email.downcase, + domain: domain(email.downcase)) end def billing_email_verification return unless attribute_names.include?('billing_email') - EmailAddressVerification.find_or_create_by(email: billing_email, - domain: domain(email)) + EmailAddressVerification.find_or_create_by(email: billing_email.downcase, + domain: domain(email.downcase)) end def domain(email) diff --git a/config/schedule.rb b/config/schedule.rb index 089ce93f9..7ebf97d12 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -62,6 +62,10 @@ if @cron_group == 'registry' rake 'domain:discard' end + every 10.minutes do + rake 'verify_email:all_domains' + end + # Should be at least once every 4 days, since according to LHV specs: # "Unread messages older than 5 days are automatically scheduled for deletion" # https://partners.lhv.ee/en/connect/#messaging diff --git a/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb b/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb new file mode 100644 index 000000000..a7e2f8ee8 --- /dev/null +++ b/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb @@ -0,0 +1,13 @@ +class ChangeEmailVerificationFieldsToCitext < ActiveRecord::Migration[6.0] + def up + enable_extension 'citext' + change_column :email_address_verifications, :email, :citext + change_column :email_address_verifications, :domain, :citext + end + + def down + change_column :email_address_verifications, :email, :string + change_column :email_address_verifications, :domain, :string + disable_extension 'citext' + end +end diff --git a/db/structure.sql b/db/structure.sql index c5ad902b7..9db7d07d1 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -33,10 +33,17 @@ CREATE EXTENSION IF NOT EXISTS btree_gist WITH SCHEMA public; -- --- Name: EXTENSION btree_gist; Type: COMMENT; Schema: -; Owner: - +-- Name: citext; Type: EXTENSION; Schema: -; Owner: - -- -COMMENT ON EXTENSION btree_gist IS 'support for indexing common datatypes in GiST'; +CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public; + + +-- +-- Name: EXTENSION citext; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON EXTENSION citext IS 'data type for case-insensitive character strings'; -- @@ -822,10 +829,10 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; CREATE TABLE public.email_address_verifications ( id bigint NOT NULL, - email character varying NOT NULL, + email public.citext NOT NULL, verified_at timestamp without time zone, success boolean DEFAULT false NOT NULL, - domain character varying NOT NULL + domain public.citext NOT NULL ); @@ -4700,5 +4707,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200518104105'), ('20200529115011'), ('20200605100827'), +('20200610090110'), ('20200630081231'); From 56ac816dd1aa36ad246d682663764f5ac331749d Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 12 Jun 2020 15:37:53 +0500 Subject: [PATCH 652/757] Add thirs status - verification failed --- app/controllers/admin/contacts_controller.rb | 2 +- app/helpers/application_helper.rb | 10 ++++ app/models/contact.rb | 7 ++- app/models/email_address_verification.rb | 22 +++++++-- app/models/registrar.rb | 10 ---- app/views/admin/contacts/index.haml | 7 ++- .../admin/contacts/partials/_general.haml | 3 +- app/views/admin/registrars/index.html.erb | 8 +-- .../admin/registrars/show/_billing.html.erb | 4 +- .../admin/registrars/show/_contacts.html.erb | 4 +- ...20200608084321_fill_email_verifications.rb | 6 +-- lib/tasks/verify_email.rake | 4 +- test/tasks/emails/verify_email_task_test.rb | 49 +++++++++++++++++++ 13 files changed, 96 insertions(+), 40 deletions(-) create mode 100644 test/tasks/emails/verify_email_task_test.rb diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index 685a08c86..793fa1209 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -30,7 +30,7 @@ module Admin if params[:only_no_country_code].eql?('1') contacts = contacts.where("ident_country_code is null or ident_country_code=''") end - contacts = contacts.email_not_verified if params[:email_not_verified].eql?('1') + contacts = contacts.email_verification_failed if params[:email_verification_failed].eql?('1') contacts end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8de3fdc70..5c742afce 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -108,4 +108,14 @@ module ApplicationHelper def body_css_class [controller_path.split('/').map!(&:dasherize), action_name.dasherize, 'page'].join('-') end + + def verified_email_span(verification) + content_tag(:span, verification.email, class: verified_email_class(verification)) + end + + def verified_email_class(verification) + return 'text-danger' if verification.failed? + return 'text-primary' if verification.not_verified? + return 'text-success' if verification.verified? + end end diff --git a/app/models/contact.rb b/app/models/contact.rb index a24a53a72..ac64b059f 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -23,10 +23,9 @@ class Contact < ApplicationRecord accepts_nested_attributes_for :legal_documents - scope :email_not_verified, lambda { - joins('LEFT JOIN :email_address_verifications emv ON contacts.email = emv.email') - .where('verified_at IS NULL OR verified_at <= ?', - EmailAddressVerification.verification_period) + scope :email_verification_failed, lambda { + joins('LEFT JOIN email_address_verifications emv ON contacts.email = emv.email') + .where('success = false and verified_at IS NOT NULL') } validates :name, :email, presence: true diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 412ce7f83..b478ab0f8 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -6,7 +6,11 @@ class EmailAddressVerification < ApplicationRecord } scope :verified_recently, lambda { - where('verified_at IS NOT NULL and verified_at >= ?', verification_period) + where('verified_at IS NOT NULL and verified_at >= ?', verification_period).where(success: true) + } + + scope :verification_failed, lambda { + where.not(verified_at: nil).where(success: false) } def recently_verified? @@ -22,16 +26,28 @@ class EmailAddressVerification < ApplicationRecord Time.zone.now - RECENTLY_VERIFIED_PERIOD end + def not_verified? + verified_at.blank? && !success + end + + def failed? + verified_at.present? && !success + end + + def verified? + success + end + def verify # media = success ? :mx : :smtp - media = :mx + media = :regex validation_request = Truemail.validate(email, with: media) if validation_request.result.success update(verified_at: Time.zone.now, success: true) else - update(verified_at: nil, + update(verified_at: Time.zone.now, success: false) end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 9abdfdb68..470d768b7 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -13,16 +13,6 @@ class Registrar < ApplicationRecord has_many :nameservers, through: :domains has_many :whois_records has_many :white_ips, dependent: :destroy - # belongs_to :email_address_verification, class_name: 'EmailAddressVerification', - # primary_key: 'email', - # foreign_key: 'email', - # optional: true, - # inverse_of: :registrar - # belongs_to :billing_email_address_verification, class_name: 'EmailAddressVerification', - # primary_key: 'email', - # foreign_key: 'billing_email', - # optional: true, - # inverse_of: :billing_registrar delegate :balance, to: :cash_account, allow_nil: true diff --git a/app/views/admin/contacts/index.haml b/app/views/admin/contacts/index.haml index bf3665664..cbd11d3fc 100644 --- a/app/views/admin/contacts/index.haml +++ b/app/views/admin/contacts/index.haml @@ -65,8 +65,8 @@ = check_box_tag :only_no_country_code, '1',params[:only_no_country_code].eql?('1'), style: 'width:auto;height:auto;float:right' .col-md-3 .form-group - = label_tag :email_not_verified, "Email not verified" - = check_box_tag :email_not_verified, '1',params[:email_not_verified].eql?('1'), style: 'width:auto;height:auto;float:right' + = label_tag :email_verification_failed, "Email verification failed" + = check_box_tag :email_verification_failed, '1',params[:email_verification_failed].eql?('1'), style: 'width:auto;height:auto;float:right' .row .col-md-3{style: 'padding-top: 25px;float:right;'} @@ -100,8 +100,7 @@ %td= link_to(contact, admin_contact_path(contact)) %td= contact.code %td= ident_for(contact) - %td{class: ('text-danger' unless contact.email_verification.success)} - = contact.email + %td= verified_email_span(contact.email_verification) %td= l(contact.created_at, format: :short) %td - if contact.registrar diff --git a/app/views/admin/contacts/partials/_general.haml b/app/views/admin/contacts/partials/_general.haml index c4a151294..6568cd3d0 100644 --- a/app/views/admin/contacts/partials/_general.haml +++ b/app/views/admin/contacts/partials/_general.haml @@ -17,8 +17,7 @@ %dd= ident_for(@contact) %dt= t(:email) - %dd{class: ('text-danger' unless @contact.email_verification&.success)} - = @contact.email + %dd= verified_email_span(@contact.email_verification) %dt= t(:phone) %dd= @contact.phone diff --git a/app/views/admin/registrars/index.html.erb b/app/views/admin/registrars/index.html.erb index 6ed864972..e641f5294 100644 --- a/app/views/admin/registrars/index.html.erb +++ b/app/views/admin/registrars/index.html.erb @@ -49,13 +49,9 @@ <%= "#{x.test_registrar}" %> - > - <%= "#{x.email}" %> - + <%= verified_email_span(x.email_verification) %> <% if x[:billing_email].present? %> - > - <%= "#{x[:billing_email]}" %> - + <%= verified_email_span(x.billing_email_verification) %> <% end %> diff --git a/app/views/admin/registrars/show/_billing.html.erb b/app/views/admin/registrars/show/_billing.html.erb index ab731ce1d..07bccc7f4 100644 --- a/app/views/admin/registrars/show/_billing.html.erb +++ b/app/views/admin/registrars/show/_billing.html.erb @@ -15,8 +15,8 @@
<%= registrar.accounting_customer_code %>
<%= Registrar.human_attribute_name :billing_email %>
-
> - <%= registrar.billing_email %> +
+ <%= verified_email_span(registrar.billing_email_verification) %>
<%= Registrar.human_attribute_name :reference_no %>
diff --git a/app/views/admin/registrars/show/_contacts.html.erb b/app/views/admin/registrars/show/_contacts.html.erb index b5a222dd5..0ca1158d3 100644 --- a/app/views/admin/registrars/show/_contacts.html.erb +++ b/app/views/admin/registrars/show/_contacts.html.erb @@ -15,8 +15,8 @@
<%= @registrar.phone %>
<%= Registrar.human_attribute_name :email %>
-
> - <%= @registrar.email %> +
+ <%= verified_email_span(@registrar.email_verification) %>
diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb index 68f02b133..073bf2b24 100644 --- a/db/data/20200608084321_fill_email_verifications.rb +++ b/db/data/20200608084321_fill_email_verifications.rb @@ -1,8 +1,8 @@ class FillEmailVerifications < ActiveRecord::Migration[6.0] def up - registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?) - registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) - contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) + registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?).map(&:downcase) + registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?).map(&:downcase) + contact_emails = Contact.pluck(:email).uniq.reject(&:blank?).map(&:downcase) emails = (contact_emails + registrar_emails + registrar_billing_emails).uniq diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake index d069100f2..68dda6e60 100644 --- a/lib/tasks/verify_email.rake +++ b/lib/tasks/verify_email.rake @@ -2,9 +2,7 @@ namespace :verify_email do desc 'Stars verifying email jobs' task all_domains: :environment do verifications_by_domain = EmailAddressVerification.not_verified_recently.group_by(&:domain) - verifications_by_domain.each do |domain, verifications| - next if domain == 'not_found' - + verifications_by_domain.each do |_domain, verifications| ver = verifications.sample # Verify random email to not to clog the SMTP servers VerifyEmailsJob.enqueue(ver.id) next diff --git a/test/tasks/emails/verify_email_task_test.rb b/test/tasks/emails/verify_email_task_test.rb new file mode 100644 index 000000000..ff70730fd --- /dev/null +++ b/test/tasks/emails/verify_email_task_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' + +class VerifyEmailTaskTest < ActiveSupport::TestCase + + def setup + @contact = contacts(:john) + @invalid_contact = contacts(:invalid_email) + @contact_verification = @contact.email_verification + @invalid_contact_verification = @invalid_contact.email_verification + + @default_whitelist = Truemail.configure.whitelisted_domains + @default_blacklist = Truemail.configure.blacklisted_domains + Truemail.configure.whitelisted_domains = whitelisted_domains + Truemail.configure.blacklisted_domains = blacklisted_domains + end + + def teardown + Truemail.configure.whitelisted_domains = @default_whitelist + Truemail.configure.blacklisted_domains = @default_blacklist + end + + def domain(email) + Mail::Address.new(email).domain + rescue Mail::Field::IncompleteParseError + nil + end + + def whitelisted_domains + [domain(@contact.email)].reject(&:blank?) + end + + def blacklisted_domains + [domain(@invalid_contact.email)].reject(&:blank?) + end + + def test_tasks_verifies_emails + capture_io { run_task } + + @contact_verification.reload + @invalid_contact_verification.reload + + assert @contact_verification.verified? + assert @invalid_contact_verification.failed? + end + + def run_task + Rake::Task['verify_email:all_domains'].execute + end +end From b4369bdcd0996a37ee959e30161b0aa345b6eec1 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 15 Jun 2020 15:57:44 +0500 Subject: [PATCH 653/757] Add support of punycode domains in emails --- app/models/concerns/email_verifable.rb | 47 ++++++++++++++++--- app/models/email_address_verification.rb | 3 +- config/initializers/truemail.rb | 4 +- ...20200608084321_fill_email_verifications.rb | 19 ++++---- test/models/contact_test.rb | 10 ++++ test/models/registrar_test.rb | 15 ++++++ 6 files changed, 77 insertions(+), 21 deletions(-) diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb index f7c9e59fb..ea55ad3b9 100644 --- a/app/models/concerns/email_verifable.rb +++ b/app/models/concerns/email_verifable.rb @@ -3,21 +3,54 @@ module Concerns extend ActiveSupport::Concern def email_verification - EmailAddressVerification.find_or_create_by(email: email.downcase, - domain: domain(email.downcase)) + EmailAddressVerification.find_or_create_by(email: self.class.punycode_to_unicode(email), + domain: domain(email)) end def billing_email_verification return unless attribute_names.include?('billing_email') - EmailAddressVerification.find_or_create_by(email: billing_email.downcase, - domain: domain(email.downcase)) + EmailAddressVerification.find_or_create_by(email: self.class + .punycode_to_unicode(billing_email), + domain: domain(billing_email)) + end + + class_methods do + def domain(email) + Mail::Address.new(email).domain&.downcase || 'not_found' + rescue Mail::Field::IncompleteParseError + 'not_found' + end + + def local(email) + Mail::Address.new(email).local&.downcase || email + rescue Mail::Field::IncompleteParseError + email + end + + def punycode_to_unicode(email) + return email if domain(email) == 'not_found' + + local = local(email) + domain = SimpleIDN.to_unicode(domain(email)) + "#{local}@#{domain}"&.downcase + end + + def unicode_to_punycode(email) + return email if domain(email) == 'not_found' + + local = local(email) + domain = SimpleIDN.to_ascii(domain(email)) + "#{local}@#{domain}"&.downcase + end end def domain(email) - Mail::Address.new(email).domain || 'not_found' - rescue Mail::Field::IncompleteParseError - 'not_found' + SimpleIDN.to_unicode(self.class.domain(email)) + end + + def punycode_to_unicode(email) + self.class.punycode_to_unicode(email) end def verify_email_mx_smtp(field:, email:) diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index b478ab0f8..5cc982da6 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -39,8 +39,7 @@ class EmailAddressVerification < ApplicationRecord end def verify - # media = success ? :mx : :smtp - media = :regex + media = :mx validation_request = Truemail.validate(email, with: media) if validation_request.result.success diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index 337ac8605..cfc8e14b1 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -30,8 +30,10 @@ Truemail.configure do |config| # Available validation types: :regex, :mx, :smtp if Rails.env.production? config.default_validation_type = :smtp - else + elsif Rails.env.test? config.default_validation_type = :regex + else + config.default_validation_type = :mx end # Optional parameter. You can predefine which type of validation will be used for domains. diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb index 073bf2b24..37a7f275c 100644 --- a/db/data/20200608084321_fill_email_verifications.rb +++ b/db/data/20200608084321_fill_email_verifications.rb @@ -1,10 +1,13 @@ class FillEmailVerifications < ActiveRecord::Migration[6.0] - def up - registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?).map(&:downcase) - registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?).map(&:downcase) - contact_emails = Contact.pluck(:email).uniq.reject(&:blank?).map(&:downcase) + include Concerns::EmailVerifable - emails = (contact_emails + registrar_emails + registrar_billing_emails).uniq + def up + registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?) + registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) + contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) + + emails = (contact_emails + registrar_emails + registrar_billing_emails) + emails = emails.map{ |email| punycode_to_unicode(email) }.uniq result = emails.map do |email| { email: email, domain: domain(email) } @@ -15,10 +18,4 @@ class FillEmailVerifications < ActiveRecord::Migration[6.0] def down EmailAddressVerification.delete_all end - - def domain(email) - Mail::Address.new(email).domain || 'not_found' - rescue Mail::Field::IncompleteParseError - 'not_found' - end end diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 77e959a95..a412df203 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -270,6 +270,16 @@ class ContactTest < ActiveSupport::TestCase assert_equal domain.whois_record.try(:json).try(:[], 'registrant'), @contact.name end + def test_creates_email_verification_in_unicode + unicode_email = 'suur@äri.ee' + punycode_email = Contact.unicode_to_punycode(unicode_email) + + @contact.email = punycode_email + @contact.save + + assert_equal @contact.email_verification.email, unicode_email + end + private def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 6db466e1c..5a497fd76 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -61,6 +61,21 @@ class RegistrarTest < ActiveSupport::TestCase end end + def test_creates_email_verification_in_unicode + unicode_email = 'suur@äri.ee' + punycode_email = Registrar.unicode_to_punycode(unicode_email) + unicode_billing_email = 'billing@äri.ee' + punycode_billing_email = Registrar.unicode_to_punycode(unicode_billing_email) + + registrar = valid_registrar + registrar.email = punycode_email + registrar.billing_email = punycode_billing_email + registrar.save + + assert_equal registrar.email_verification.email, unicode_email + assert_equal registrar.billing_email_verification.email, unicode_billing_email + end + def test_invalid_without_accounting_customer_code registrar = valid_registrar registrar.accounting_customer_code = '' From 57cd588eee5ab1de4646985b78f0d04e0e9bec0e Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 16 Jun 2020 13:41:35 +0500 Subject: [PATCH 654/757] Add email verification rake task for one domain only --- app/models/email_address_verification.rb | 2 ++ lib/tasks/verify_email.rake | 14 +++++++++++++- test/tasks/emails/verify_email_task_test.rb | 14 ++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 5cc982da6..28bd6a2f9 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -13,6 +13,8 @@ class EmailAddressVerification < ApplicationRecord where.not(verified_at: nil).where(success: false) } + scope :by_domain, ->(domain_name) { where(domain: domain_name) } + def recently_verified? verified_at.present? && verified_at > verification_period diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake index 68dda6e60..6b64e0765 100644 --- a/lib/tasks/verify_email.rake +++ b/lib/tasks/verify_email.rake @@ -1,5 +1,5 @@ namespace :verify_email do - desc 'Stars verifying email jobs' + desc 'Stars verifying email jobs for all the domain' task all_domains: :environment do verifications_by_domain = EmailAddressVerification.not_verified_recently.group_by(&:domain) verifications_by_domain.each do |_domain, verifications| @@ -8,4 +8,16 @@ namespace :verify_email do next end end + + # Need to be run like 'bundle exec rake verify_email:domain['gmail.com']' + # In zsh syntax will be 'bundle exec rake verify_email:domain\['gmail.com'\]' + # Default 'bundle exec rake verify_email:domain' wil use 'internet.ee' domain + desc 'Stars verifying email jobs for domain stated in argument' + task :domain, [:domain_name] => [:environment] do |_task, args| + args.with_defaults(domain_name: "internet.ee") + + verifications_by_domain = EmailAddressVerification.not_verified_recently + .by_domain(args[:domain_name]) + verifications_by_domain.map{ |ver| VerifyEmailsJob.enqueue(ver.id) } + end end diff --git a/test/tasks/emails/verify_email_task_test.rb b/test/tasks/emails/verify_email_task_test.rb index ff70730fd..7cca11845 100644 --- a/test/tasks/emails/verify_email_task_test.rb +++ b/test/tasks/emails/verify_email_task_test.rb @@ -43,7 +43,21 @@ class VerifyEmailTaskTest < ActiveSupport::TestCase assert @invalid_contact_verification.failed? end + def test_domain_task_verifies_for_one_domain + capture_io { run_single_domain_task(@contact_verification.domain) } + + @contact_verification.reload + @invalid_contact_verification.reload + + assert @contact_verification.verified? + assert @invalid_contact_verification.not_verified? + end + def run_task Rake::Task['verify_email:all_domains'].execute end + + def run_single_domain_task(domain) + Rake::Task["verify_email:domain"].invoke(domain) + end end From b0332a7abdc6e6608d2c5c74328267895c593309 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 16 Jun 2020 14:31:16 +0500 Subject: [PATCH 655/757] Add logging to email_verification.log --- app/jobs/verify_emails_job.rb | 2 +- lib/tasks/verify_email.rake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb index 41965c9d9..75f4b7d91 100644 --- a/app/jobs/verify_emails_job.rb +++ b/app/jobs/verify_emails_job.rb @@ -24,7 +24,7 @@ class VerifyEmailsJob < Que::Job end def logger - Rails.logger + @logger ||= Logger.new(Rails.root.join('log', 'email_verification.log')) end def log_success(verification) diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake index 6b64e0765..d49bb38b9 100644 --- a/lib/tasks/verify_email.rake +++ b/lib/tasks/verify_email.rake @@ -14,10 +14,10 @@ namespace :verify_email do # Default 'bundle exec rake verify_email:domain' wil use 'internet.ee' domain desc 'Stars verifying email jobs for domain stated in argument' task :domain, [:domain_name] => [:environment] do |_task, args| - args.with_defaults(domain_name: "internet.ee") + args.with_defaults(domain_name: 'internet.ee') verifications_by_domain = EmailAddressVerification.not_verified_recently .by_domain(args[:domain_name]) - verifications_by_domain.map{ |ver| VerifyEmailsJob.enqueue(ver.id) } + verifications_by_domain.map { |ver| VerifyEmailsJob.enqueue(ver.id) } end end From b446cff3fd2e78ee2e0663d281fa84741bd9b609 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 16 Jun 2020 16:50:19 +0500 Subject: [PATCH 656/757] Add verification creation on email validation, add tests --- app/models/concerns/email_verifable.rb | 43 ++++++--- app/models/email_address_verification.rb | 5 +- config/locales/admin/email_verifable.en.yml | 5 + config/locales/admin/email_verifable.et.yml | 5 + test/models/contact_test.rb | 35 +++++-- test/models/registrar_test.rb | 102 +++++++++++++------- 6 files changed, 137 insertions(+), 58 deletions(-) create mode 100644 config/locales/admin/email_verifable.en.yml create mode 100644 config/locales/admin/email_verifable.et.yml diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb index ea55ad3b9..22c030753 100644 --- a/app/models/concerns/email_verifable.rb +++ b/app/models/concerns/email_verifable.rb @@ -3,16 +3,16 @@ module Concerns extend ActiveSupport::Concern def email_verification - EmailAddressVerification.find_or_create_by(email: self.class.punycode_to_unicode(email), - domain: domain(email)) + @email_verification ||= EmailAddressVerification.find_or_create_by(email: unicode_email, + domain: domain(email)) end def billing_email_verification return unless attribute_names.include?('billing_email') - EmailAddressVerification.find_or_create_by(email: self.class - .punycode_to_unicode(billing_email), - domain: domain(billing_email)) + @billing_email_verification ||= EmailAddressVerification + .find_or_create_by(email: unicode_billing_email, + domain: domain(billing_email)) end class_methods do @@ -45,6 +45,14 @@ module Concerns end end + def unicode_billing_email + self.class.punycode_to_unicode(billing_email) + end + + def unicode_email + self.class.punycode_to_unicode(email) + end + def domain(email) SimpleIDN.to_unicode(self.class.domain(email)) end @@ -53,16 +61,29 @@ module Concerns self.class.punycode_to_unicode(email) end - def verify_email_mx_smtp(field:, email:) - errors.add(field, :invalid) unless email.blank? || Truemail.valid?(email) - end - def correct_email_format - verify_email_mx_smtp(field: :email, email: email) + return if email.blank? + + result = email_verification.verify + process_result(result: result, field: :email) end def correct_billing_email_format - verify_email_mx_smtp(field: :billing_email, email: billing_email) + return if email.blank? + + result = billing_email_verification.verify + process_result(result: result, field: :billing_email) + end + + def process_result(result:, field:) + case result[:errors].keys.first + when :smtp + errors.add(field, I18n.t('email.email_smtp_check_error')) + when :mx + errors.add(field, I18n.t('email.email_mx_check_error')) + when :regex + errors.add(field, I18n.t('email.email_regex_check_error')) + end end end end diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 28bd6a2f9..2fe7c0dbe 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -41,8 +41,7 @@ class EmailAddressVerification < ApplicationRecord end def verify - media = :mx - validation_request = Truemail.validate(email, with: media) + validation_request = Truemail.validate(email) if validation_request.result.success update(verified_at: Time.zone.now, @@ -52,6 +51,6 @@ class EmailAddressVerification < ApplicationRecord success: false) end - validation_request.result.success + validation_request.result end end diff --git a/config/locales/admin/email_verifable.en.yml b/config/locales/admin/email_verifable.en.yml new file mode 100644 index 000000000..28a502ad9 --- /dev/null +++ b/config/locales/admin/email_verifable.en.yml @@ -0,0 +1,5 @@ +en: + email: + email_smtp_check_error: SMTP check error + email_mx_check_error: Mail domain not found + email_regex_check_error: Invalid format diff --git a/config/locales/admin/email_verifable.et.yml b/config/locales/admin/email_verifable.et.yml new file mode 100644 index 000000000..dfe82e15f --- /dev/null +++ b/config/locales/admin/email_verifable.et.yml @@ -0,0 +1,5 @@ +et: + email: + email_smtp_check_error: Eposti aadressi ei leitud (SMTP viga) + email_mx_check_error: Eposti aadressi domeeni ei leitud + email_regex_check_error: Eposti aadress on vigane diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index a412df203..0cef5950e 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -3,6 +3,11 @@ require 'test_helper' class ContactTest < ActiveSupport::TestCase setup do @contact = contacts(:john) + @old_validation_type = Truemail.configure.default_validation_type + end + + teardown do + Truemail.configure.default_validation_type = @old_validation_type end def test_valid_contact_fixture_is_valid @@ -61,27 +66,37 @@ class ContactTest < ActiveSupport::TestCase assert contact.invalid? end - def tests_email_mx_and_smtp - Truemail.configure do |config| - config.default_validation_type = :smtp - end - + def test_email_verification_valid contact = valid_contact contact.email = 'info@internet.ee' assert contact.valid? + end + def test_email_verification_smtp_error + Truemail.configure.default_validation_type = :smtp + + contact = valid_contact contact.email = 'somecrude1337joke@internet.ee' assert contact.invalid? + assert_equal I18n.t('email.email_smtp_check_error'), contact.errors.messages[:email].first + end - contact.email = 'some@strangesentence@internet.ee' - assert contact.invalid? + def test_email_verification_mx_error + Truemail.configure.default_validation_type = :mx + contact = valid_contact contact.email = 'somecrude31337joke@somestrange31337domain.ee' assert contact.invalid? + assert_equal I18n.t('email.email_mx_check_error'), contact.errors.messages[:email].first + end - Truemail.configure do |config| - config.default_validation_type = :regex - end + def test_email_verification_regex_error + Truemail.configure.default_validation_type = :regex + + contact = valid_contact + contact.email = 'some@strangesentence@internet.ee' + assert contact.invalid? + assert_equal I18n.t('email.email_regex_check_error'), contact.errors.messages[:email].first end def test_invalid_without_phone diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 5a497fd76..e59dc0695 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -5,11 +5,13 @@ class RegistrarTest < ActiveSupport::TestCase @registrar = registrars(:bestnames) @original_default_language = Setting.default_language @original_days_to_keep_invoices_active = Setting.days_to_keep_invoices_active + @old_validation_type = Truemail.configure.default_validation_type end teardown do Setting.default_language = @original_default_language Setting.days_to_keep_invoices_active = @original_days_to_keep_invoices_active + Truemail.configure.default_validation_type = @old_validation_type end def test_valid_registrar_is_valid @@ -38,27 +40,82 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.invalid? end - def tests_email_mx_and_smtp - Truemail.configure do |config| - config.default_validation_type = :smtp - end - + def test_email_verification_valid registrar = valid_registrar registrar.email = 'info@internet.ee' + registrar.billing_email = nil + assert registrar.valid? + end + def test_email_verification_smtp_error + Truemail.configure.default_validation_type = :smtp + + registrar = valid_registrar registrar.email = 'somecrude1337joke@internet.ee' - assert registrar.invalid? + registrar.billing_email = nil - registrar.email = 'some@strangesentence@internet.ee' assert registrar.invalid? + assert_equal I18n.t('email.email_smtp_check_error'), registrar.errors.messages[:email].first + end + def test_email_verification_mx_error + Truemail.configure.default_validation_type = :mx + + registrar = valid_registrar registrar.email = 'somecrude31337joke@somestrange31337domain.ee' - assert registrar.invalid? + registrar.billing_email = nil - Truemail.configure do |config| - config.default_validation_type = :regex - end + assert registrar.invalid? + assert_equal I18n.t('email.email_mx_check_error'), registrar.errors.messages[:email].first + end + + def test_email_verification_regex_error + Truemail.configure.default_validation_type = :regex + + registrar = valid_registrar + registrar.email = 'some@strangesentence@internet.ee' + registrar.billing_email = nil + + assert registrar.invalid? + assert_equal I18n.t('email.email_regex_check_error'), registrar.errors.messages[:email].first + end + + def test_billing_email_verification_valid + registrar = valid_registrar + registrar.billing_email = 'info@internet.ee' + + assert registrar.valid? + end + + def test_billing_email_verification_smtp_error + Truemail.configure.default_validation_type = :smtp + + registrar = valid_registrar + registrar.billing_email = 'somecrude1337joke@internet.ee' + + assert registrar.invalid? + assert_equal I18n.t('email.email_smtp_check_error'), registrar.errors.messages[:billing_email].first + end + + def test_billing_email_verification_mx_error + Truemail.configure.default_validation_type = :mx + + registrar = valid_registrar + registrar.billing_email = 'somecrude31337joke@somestrange31337domain.ee' + + assert registrar.invalid? + assert_equal I18n.t('email.email_mx_check_error'), registrar.errors.messages[:billing_email].first + end + + def test_billing_email_verification_regex_error + Truemail.configure.default_validation_type = :regex + + registrar = valid_registrar + registrar.billing_email = 'some@strangesentence@internet.ee' + + assert registrar.invalid? + assert_equal I18n.t('email.email_regex_check_error'), registrar.errors.messages[:billing_email].first end def test_creates_email_verification_in_unicode @@ -88,29 +145,6 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.valid? end - def tests_email_mx_and_smtp - Truemail.configure do |config| - config.default_validation_type = :smtp - end - - registrar = valid_registrar - registrar.billing_email = 'info@internet.ee' - assert registrar.valid? - - registrar.billing_email = 'somecrude1337joke@internet.ee' - assert registrar.invalid? - - registrar.billing_email = 'непонятное@словосочетание@internet.ee' - assert registrar.invalid? - - registrar.billing_email = 'somecrude31337joke@somestrange31337domain.ee' - assert registrar.invalid? - - Truemail.configure do |config| - config.default_validation_type = :regex - end - end - def test_returns_billing_email_when_provided billing_email = 'billing@registrar.test' registrar = Registrar.new(billing_email: billing_email) From 68d32568fcfa01e46f57d5140129b7114514fb18 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 17 Jun 2020 11:06:43 +0500 Subject: [PATCH 657/757] Fix I18n --- .travis.yml | 3 ++- app/models/concerns/email_verifable.rb | 6 +++--- config/locales/admin/email_verifable.en.yml | 2 +- config/locales/admin/email_verifable.et.yml | 2 +- test/models/contact_test.rb | 6 +++--- test/models/registrar_test.rb | 12 ++++++------ 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index 01373f29d..6994c551e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,6 @@ language: ruby cache: bundler env: - DB=postgresql -bundler_args: --without development staging production before_install: - "wget -N http://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip -P ~/" - "unzip ~/chromedriver_linux64.zip -d ~/" @@ -10,6 +9,7 @@ before_install: - "sudo mv -f ~/chromedriver /usr/local/share/" - "sudo chmod +x /usr/local/share/chromedriver" - "sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver" + before_script: - "cp config/application.yml.sample config/application.yml" - "echo \"openssl_config_path: 'test/fixtures/files/test_ca/openssl.cnf'\" >> config/application.yml" @@ -19,6 +19,7 @@ before_script: - "echo \"ca_key_path: 'test/fixtures/files/test_ca/private/ca.key.pem'\" >> config/application.yml" - "echo \"ca_key_password: 'password'\" >> config/application.yml" - "cp config/database_travis.yml config/database.yml" + - "bundle config set without 'development staging production'" - "bundle exec rake db:setup:all" - "bundle exec rake data:migrate" - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter" diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb index 22c030753..b4fbf74e3 100644 --- a/app/models/concerns/email_verifable.rb +++ b/app/models/concerns/email_verifable.rb @@ -78,11 +78,11 @@ module Concerns def process_result(result:, field:) case result[:errors].keys.first when :smtp - errors.add(field, I18n.t('email.email_smtp_check_error')) + errors.add(field, I18n.t('email_verifable.email_smtp_check_error')) when :mx - errors.add(field, I18n.t('email.email_mx_check_error')) + errors.add(field, I18n.t('email_verifable.email_mx_check_error')) when :regex - errors.add(field, I18n.t('email.email_regex_check_error')) + errors.add(field, I18n.t('email_verifable.email_regex_check_error')) end end end diff --git a/config/locales/admin/email_verifable.en.yml b/config/locales/admin/email_verifable.en.yml index 28a502ad9..724fa4c32 100644 --- a/config/locales/admin/email_verifable.en.yml +++ b/config/locales/admin/email_verifable.en.yml @@ -1,5 +1,5 @@ en: - email: + email_verifable: email_smtp_check_error: SMTP check error email_mx_check_error: Mail domain not found email_regex_check_error: Invalid format diff --git a/config/locales/admin/email_verifable.et.yml b/config/locales/admin/email_verifable.et.yml index dfe82e15f..6c008ed11 100644 --- a/config/locales/admin/email_verifable.et.yml +++ b/config/locales/admin/email_verifable.et.yml @@ -1,5 +1,5 @@ et: - email: + email_verifable: email_smtp_check_error: Eposti aadressi ei leitud (SMTP viga) email_mx_check_error: Eposti aadressi domeeni ei leitud email_regex_check_error: Eposti aadress on vigane diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 0cef5950e..856019bfb 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -78,7 +78,7 @@ class ContactTest < ActiveSupport::TestCase contact = valid_contact contact.email = 'somecrude1337joke@internet.ee' assert contact.invalid? - assert_equal I18n.t('email.email_smtp_check_error'), contact.errors.messages[:email].first + assert_equal I18n.t('email_verifable.email_smtp_check_error'), contact.errors.messages[:email].first end def test_email_verification_mx_error @@ -87,7 +87,7 @@ class ContactTest < ActiveSupport::TestCase contact = valid_contact contact.email = 'somecrude31337joke@somestrange31337domain.ee' assert contact.invalid? - assert_equal I18n.t('email.email_mx_check_error'), contact.errors.messages[:email].first + assert_equal I18n.t('email_verifable.email_mx_check_error'), contact.errors.messages[:email].first end def test_email_verification_regex_error @@ -96,7 +96,7 @@ class ContactTest < ActiveSupport::TestCase contact = valid_contact contact.email = 'some@strangesentence@internet.ee' assert contact.invalid? - assert_equal I18n.t('email.email_regex_check_error'), contact.errors.messages[:email].first + assert_equal I18n.t('email_verifable.email_regex_check_error'), contact.errors.messages[:email].first end def test_invalid_without_phone diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index e59dc0695..8edbb1e4b 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -56,7 +56,7 @@ class RegistrarTest < ActiveSupport::TestCase registrar.billing_email = nil assert registrar.invalid? - assert_equal I18n.t('email.email_smtp_check_error'), registrar.errors.messages[:email].first + assert_equal I18n.t('email_verifable.email_smtp_check_error'), registrar.errors.messages[:email].first end def test_email_verification_mx_error @@ -67,7 +67,7 @@ class RegistrarTest < ActiveSupport::TestCase registrar.billing_email = nil assert registrar.invalid? - assert_equal I18n.t('email.email_mx_check_error'), registrar.errors.messages[:email].first + assert_equal I18n.t('email_verifable.email_mx_check_error'), registrar.errors.messages[:email].first end def test_email_verification_regex_error @@ -78,7 +78,7 @@ class RegistrarTest < ActiveSupport::TestCase registrar.billing_email = nil assert registrar.invalid? - assert_equal I18n.t('email.email_regex_check_error'), registrar.errors.messages[:email].first + assert_equal I18n.t('email_verifable.email_regex_check_error'), registrar.errors.messages[:email].first end def test_billing_email_verification_valid @@ -95,7 +95,7 @@ class RegistrarTest < ActiveSupport::TestCase registrar.billing_email = 'somecrude1337joke@internet.ee' assert registrar.invalid? - assert_equal I18n.t('email.email_smtp_check_error'), registrar.errors.messages[:billing_email].first + assert_equal I18n.t('email_verifable.email_smtp_check_error'), registrar.errors.messages[:billing_email].first end def test_billing_email_verification_mx_error @@ -105,7 +105,7 @@ class RegistrarTest < ActiveSupport::TestCase registrar.billing_email = 'somecrude31337joke@somestrange31337domain.ee' assert registrar.invalid? - assert_equal I18n.t('email.email_mx_check_error'), registrar.errors.messages[:billing_email].first + assert_equal I18n.t('email_verifable.email_mx_check_error'), registrar.errors.messages[:billing_email].first end def test_billing_email_verification_regex_error @@ -115,7 +115,7 @@ class RegistrarTest < ActiveSupport::TestCase registrar.billing_email = 'some@strangesentence@internet.ee' assert registrar.invalid? - assert_equal I18n.t('email.email_regex_check_error'), registrar.errors.messages[:billing_email].first + assert_equal I18n.t('email_verifable.email_regex_check_error'), registrar.errors.messages[:billing_email].first end def test_creates_email_verification_in_unicode From 840f21c48fafcc50550dca7fe27b1f5cf413b024 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 8 Jul 2020 17:20:43 +0500 Subject: [PATCH 658/757] Update Travis bundler command --- .travis.yml | 4 +- Gemfile | 2 +- Gemfile.lock | 87 +++++++++++++++++---------------- config/initializers/airbrake.rb | 2 +- db/structure.sql | 14 ------ 5 files changed, 49 insertions(+), 60 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6994c551e..bb74deecc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,8 @@ before_install: - "sudo mv -f ~/chromedriver /usr/local/share/" - "sudo chmod +x /usr/local/share/chromedriver" - "sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver" - + - "bundle config set without 'development staging production'" + - "bundle config set deployment '[secure]'" before_script: - "cp config/application.yml.sample config/application.yml" - "echo \"openssl_config_path: 'test/fixtures/files/test_ca/openssl.cnf'\" >> config/application.yml" @@ -19,7 +20,6 @@ before_script: - "echo \"ca_key_path: 'test/fixtures/files/test_ca/private/ca.key.pem'\" >> config/application.yml" - "echo \"ca_key_password: 'password'\" >> config/application.yml" - "cp config/database_travis.yml config/database.yml" - - "bundle config set without 'development staging production'" - "bundle exec rake db:setup:all" - "bundle exec rake data:migrate" - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter" diff --git a/Gemfile b/Gemfile index f7556e166..99091f556 100644 --- a/Gemfile +++ b/Gemfile @@ -69,7 +69,7 @@ gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'lhv', github: 'internetee/lhv', branch: :master gem 'domain_name' gem 'haml', '~> 5.0' -gem 'wkhtmltopdf-binary' +gem 'wkhtmltopdf-binary', '~> 0.12.5.1' gem 'directo', github: 'internetee/directo', branch: 'master' diff --git a/Gemfile.lock b/Gemfile.lock index 0f3b2d355..e4ad26396 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/directo.git - revision: bdfab4be20803c666dcefc9a9c607f915a056ac5 + revision: 8ff8a382d004ffb85722a6a7a68a020bd4d7159b branch: master specs: directo (1.0.1) @@ -112,6 +112,8 @@ GEM activerecord (6.0.3.2) activemodel (= 6.0.3.2) activesupport (= 6.0.3.2) + activerecord-import (1.0.5) + activerecord (>= 3.2) activestorage (6.0.3.2) actionpack (= 6.0.3.2) activejob (= 6.0.3.2) @@ -125,18 +127,18 @@ GEM zeitwerk (~> 2.2, >= 2.2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - airbrake (10.0.1) + airbrake (10.0.5) airbrake-ruby (~> 4.13) - airbrake-ruby (4.13.0) + airbrake-ruby (4.15.0) rbtree3 (~> 0.5) akami (1.3.1) gyoku (>= 0.4.0) nokogiri - autodoc (0.7.3) + autodoc (0.7.4) actionpack activesupport (>= 3.0.0) rspec - autoprefixer-rails (9.7.4) + autoprefixer-rails (9.8.4) execjs bcrypt (3.1.13) bootsnap (1.4.6) @@ -145,8 +147,8 @@ GEM autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) builder (3.2.4) - cancancan (3.0.2) - capybara (3.31.0) + cancancan (3.1.0) + capybara (3.33.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -165,8 +167,8 @@ GEM execjs coffee-script-source (1.12.2) concurrent-ruby (1.1.6) - countries (3.0.0) - i18n_data (~> 0.8.0) + countries (3.0.1) + i18n_data (~> 0.10.0) sixarm_ruby_unaccent (~> 1.1) unicode_utils (~> 1.4) crack (0.4.3) @@ -176,22 +178,23 @@ GEM daemons-rails (1.2.1) daemons multi_json (~> 1.0) - data_migrate (6.2.0) + data_migrate (6.3.0) rails (>= 5.0) - database_cleaner (1.8.2) - devise (4.7.1) + database_cleaner (1.8.5) + devise (4.7.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.3) + diff-lcs (1.4.4) docile (1.3.2) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dry-configurable (0.9.0) + dry-configurable (0.11.6) concurrent-ruby (~> 1.0) dry-core (~> 0.4, >= 0.4.7) + dry-equalizer (~> 0.2) dry-container (0.7.2) concurrent-ruby (~> 1.0) dry-configurable (~> 0.1, >= 0.1.3) @@ -199,11 +202,11 @@ GEM concurrent-ruby (~> 1.0) dry-equalizer (0.3.0) dry-inflector (0.2.0) - dry-logic (1.0.5) + dry-logic (1.0.6) concurrent-ruby (~> 1.0) dry-core (~> 0.2) dry-equalizer (~> 0.2) - dry-types (1.2.2) + dry-types (1.4.0) concurrent-ruby (~> 1.0) dry-container (~> 0.3) dry-core (~> 0.4, >= 0.4.4) @@ -213,12 +216,12 @@ GEM erubi (1.9.0) erubis (2.7.0) execjs (2.7.0) - ffi (1.12.2) + ffi (1.13.1) figaro (1.1.1) thor (~> 0.14) globalid (0.4.2) activesupport (>= 4.2.0) - grape (1.3.0) + grape (1.3.3) activesupport builder dry-types (>= 1.1) @@ -230,7 +233,7 @@ GEM haml (5.1.2) temple (>= 0.8.0) tilt - hashdiff (1.0.0) + hashdiff (1.0.1) hpricot (0.8.6) http-accept (1.7.0) http-cookie (1.0.3) @@ -241,10 +244,10 @@ GEM socksify i18n (1.8.3) concurrent-ruby (~> 1.0) - i18n_data (0.8.0) + i18n_data (0.10.0) isikukood (0.1.2) iso8601 (0.12.1) - jquery-rails (4.3.5) + jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) @@ -264,7 +267,7 @@ GEM kaminari-core (= 1.2.1) kaminari-core (1.2.1) keystores (0.4.0) - libxml-ruby (3.1.0) + libxml-ruby (3.2.0) listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) @@ -279,7 +282,7 @@ GEM method_source (0.8.2) mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2019.1009) + mime-types-data (3.2020.0512) mimemagic (0.3.5) mina (0.3.1) open4 (~> 1.3.4) @@ -289,7 +292,7 @@ GEM minitest (5.14.1) monetize (1.9.4) money (~> 6.12) - money (6.13.7) + money (6.13.8) i18n (>= 0.6.4, <= 2) money-rails (1.13.3) activesupport (>= 3.0) @@ -304,7 +307,7 @@ GEM mustermann (>= 1.0.0) netrc (0.11.0) nio4r (2.5.2) - nokogiri (1.10.9) + nokogiri (1.10.10) mini_portile2 (~> 2.4.0) nori (2.6.0) open4 (1.3.4) @@ -312,7 +315,7 @@ GEM paper_trail (10.3.1) activerecord (>= 4.2) request_store (~> 1.1) - pdfkit (0.8.4.1) + pdfkit (0.8.4.3.1) pg (1.2.2) polyamorous (2.3.2) activerecord (>= 5.2.1) @@ -320,7 +323,7 @@ GEM coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - public_suffix (4.0.3) + public_suffix (4.0.5) puma (4.3.5) nio4r (~> 2.0) que (0.14.3) @@ -375,10 +378,10 @@ GEM ffi (~> 1.0) rbtree3 (0.6.0) rdoc (4.3.0) - regexp_parser (1.6.0) + regexp_parser (1.7.1) request_store (1.5.0) rack (>= 1.4) - responders (3.0.0) + responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) rest-client (2.1.0) @@ -390,21 +393,21 @@ GEM rspec-core (~> 3.9.0) rspec-expectations (~> 3.9.0) rspec-mocks (~> 3.9.0) - rspec-core (3.9.1) - rspec-support (~> 3.9.1) - rspec-expectations (3.9.0) + rspec-core (3.9.2) + rspec-support (~> 3.9.3) + rspec-expectations (3.9.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) rspec-mocks (3.9.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) - rspec-support (3.9.2) + rspec-support (3.9.3) ruby2_keywords (0.0.2) - rubyzip (2.2.0) + rubyzip (2.3.0) safe_yaml (1.0.5) sass-rails (6.0.0) sassc-rails (~> 2.1, >= 2.1.1) - sassc (2.2.1) + sassc (2.4.0) ffi (~> 1.9) sassc-rails (2.1.2) railties (>= 4.0.0) @@ -412,7 +415,7 @@ GEM sprockets (> 3.0) sprockets-rails tilt - savon (2.12.0) + savon (2.12.1) akami (~> 1.2) builder (>= 2.1.2) gyoku (~> 1.2) @@ -455,7 +458,7 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) - truemail (1.7.1) + truemail (1.8.0) simpleidn (~> 0.1.1) tzinfo (1.2.7) thread_safe (~> 0.1) @@ -463,7 +466,7 @@ GEM execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) + unf_ext (0.0.7.7) unicode_utils (1.4.0) validates_email_format_of (1.6.3) i18n @@ -472,11 +475,11 @@ GEM wasabi (3.5.0) httpi (~> 2.0) nokogiri (>= 1.4.2) - webdrivers (4.2.0) + webdrivers (4.4.1) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) - webmock (3.8.0) + webmock (3.8.3) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -485,7 +488,7 @@ GEM websocket-extensions (0.1.5) whenever (0.9.4) chronic (>= 0.6.3) - wkhtmltopdf-binary (0.12.5.1) + wkhtmltopdf-binary (0.12.5.4) xpath (3.2.0) nokogiri (~> 1.8) zeitwerk (2.3.1) @@ -553,7 +556,7 @@ DEPENDENCIES webdrivers webmock whenever (= 0.9.4) - wkhtmltopdf-binary + wkhtmltopdf-binary (~> 0.12.5.1) BUNDLED WITH 2.1.4 diff --git a/config/initializers/airbrake.rb b/config/initializers/airbrake.rb index 5c1983369..abfe408c1 100644 --- a/config/initializers/airbrake.rb +++ b/config/initializers/airbrake.rb @@ -17,5 +17,5 @@ Airbrake.configure do |config| end config.environment = ENV['airbrake_env'] || Rails.env config.ignore_environments = %w[test] - config.blacklist_keys = Rails.application.config.filter_parameters + config.blocklist_keys = Rails.application.config.filter_parameters end diff --git a/db/structure.sql b/db/structure.sql index 9db7d07d1..587f68be8 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -3635,20 +3635,6 @@ CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain); --- --- Name: index_email_address_verifications_on_email; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX index_email_address_verifications_on_email ON public.email_address_verifications USING btree (email); - - --- --- Name: index_email_addresses_validations_on_email; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX index_email_addresses_validations_on_email ON public.email_addresses_validations USING btree (email); - - -- -- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - -- From 1094c41fa35b3ba607330e495ffb9186419fe514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 8 Jul 2020 16:46:59 +0300 Subject: [PATCH 659/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff7cdb176..708a97438 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +08.07.2020 +* Thorough email address validations and processing with truemail gem [#297](https://github.com/internetee/registry/issues/297) + 07.07.2020 * Fixed legaldoc validation [#1634](https://github.com/internetee/registry/issues/1634) * Disabled collection cashe versioning [#1637](https://github.com/internetee/registry/pull/1637) From 6900ce11274f1ecebb88222c37b83bb65eae867f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 10 Jul 2020 16:16:00 +0300 Subject: [PATCH 660/757] Revert "297 email address validation truemail" --- .travis.yml | 3 +- Gemfile | 6 +- Gemfile.lock | 94 +++--- app/controllers/admin/contacts_controller.rb | 14 +- app/helpers/application_helper.rb | 10 - app/jobs/verify_emails_job.rb | 45 --- app/models/concerns/email_verifable.rb | 89 ----- app/models/contact.rb | 9 +- app/models/email_address_verification.rb | 56 ---- app/models/nameserver.rb | 2 +- app/models/registrar.rb | 8 +- app/views/admin/contacts/index.haml | 9 +- .../admin/contacts/partials/_general.haml | 2 +- app/views/admin/registrars/index.html.erb | 9 - .../admin/registrars/show/_billing.html.erb | 6 +- .../admin/registrars/show/_contacts.html.erb | 6 +- config/initializers/airbrake.rb | 2 +- config/initializers/truemail.rb | 77 ----- config/locales/admin/email_verifable.en.yml | 5 - config/locales/admin/email_verifable.et.yml | 5 - config/locales/en.yml | 1 - config/locales/et.yml | 1 - config/schedule.rb | 4 - ...20200608084321_fill_email_verifications.rb | 21 -- ...0827_create_email_address_verifications.rb | 13 - ...nge_email_verification_fields_to_citext.rb | 13 - db/structure.sql | 304 +++++------------- lib/tasks/verify_email.rake | 23 -- test/fixtures/contacts.yml | 8 - test/jobs/verify_emails_job_test.rb | 59 ---- test/models/contact_test.rb | 50 +-- test/models/registrar_test.rb | 105 +----- test/tasks/emails/verify_email_task_test.rb | 63 ---- 33 files changed, 158 insertions(+), 964 deletions(-) delete mode 100644 app/jobs/verify_emails_job.rb delete mode 100644 app/models/concerns/email_verifable.rb delete mode 100644 app/models/email_address_verification.rb delete mode 100644 config/initializers/truemail.rb delete mode 100644 config/locales/admin/email_verifable.en.yml delete mode 100644 config/locales/admin/email_verifable.et.yml delete mode 100644 db/data/20200608084321_fill_email_verifications.rb delete mode 100644 db/migrate/20200605100827_create_email_address_verifications.rb delete mode 100644 db/migrate/20200610090110_change_email_verification_fields_to_citext.rb delete mode 100644 lib/tasks/verify_email.rake delete mode 100644 test/jobs/verify_emails_job_test.rb delete mode 100644 test/tasks/emails/verify_email_task_test.rb diff --git a/.travis.yml b/.travis.yml index bb74deecc..01373f29d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: ruby cache: bundler env: - DB=postgresql +bundler_args: --without development staging production before_install: - "wget -N http://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip -P ~/" - "unzip ~/chromedriver_linux64.zip -d ~/" @@ -9,8 +10,6 @@ before_install: - "sudo mv -f ~/chromedriver /usr/local/share/" - "sudo chmod +x /usr/local/share/chromedriver" - "sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver" - - "bundle config set without 'development staging production'" - - "bundle config set deployment '[secure]'" before_script: - "cp config/application.yml.sample config/application.yml" - "echo \"openssl_config_path: 'test/fixtures/files/test_ca/openssl.cnf'\" >> config/application.yml" diff --git a/Gemfile b/Gemfile index 99091f556..f6c8a6397 100644 --- a/Gemfile +++ b/Gemfile @@ -11,12 +11,10 @@ gem 'uglifier' gem 'figaro', '1.1.1' # model related -gem 'activerecord-import' gem 'paper_trail', '~> 10.3' gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 gem 'ransack', '~> 2.3' -gem 'truemail', '~> 1.7' # validates email by regexp, mail server existence and address existence gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server @@ -41,7 +39,7 @@ gem 'grape' # registry specfic gem 'data_migrate', '~> 6.1' gem 'isikukood' # for EE-id validation -gem 'simpleidn', '0.1.1' # For punycode +gem 'simpleidn', '0.0.9' # For punycode gem 'money-rails' gem 'whenever', '0.9.4', require: false @@ -69,7 +67,7 @@ gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'lhv', github: 'internetee/lhv', branch: :master gem 'domain_name' gem 'haml', '~> 5.0' -gem 'wkhtmltopdf-binary', '~> 0.12.5.1' +gem 'wkhtmltopdf-binary' gem 'directo', github: 'internetee/directo', branch: 'master' diff --git a/Gemfile.lock b/Gemfile.lock index e4ad26396..effb7ff38 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/directo.git - revision: 8ff8a382d004ffb85722a6a7a68a020bd4d7159b + revision: bdfab4be20803c666dcefc9a9c607f915a056ac5 branch: master specs: directo (1.0.1) @@ -112,8 +112,6 @@ GEM activerecord (6.0.3.2) activemodel (= 6.0.3.2) activesupport (= 6.0.3.2) - activerecord-import (1.0.5) - activerecord (>= 3.2) activestorage (6.0.3.2) actionpack (= 6.0.3.2) activejob (= 6.0.3.2) @@ -127,18 +125,18 @@ GEM zeitwerk (~> 2.2, >= 2.2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - airbrake (10.0.5) + airbrake (10.0.1) airbrake-ruby (~> 4.13) - airbrake-ruby (4.15.0) + airbrake-ruby (4.13.0) rbtree3 (~> 0.5) akami (1.3.1) gyoku (>= 0.4.0) nokogiri - autodoc (0.7.4) + autodoc (0.7.3) actionpack activesupport (>= 3.0.0) rspec - autoprefixer-rails (9.8.4) + autoprefixer-rails (9.7.4) execjs bcrypt (3.1.13) bootsnap (1.4.6) @@ -147,8 +145,8 @@ GEM autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) builder (3.2.4) - cancancan (3.1.0) - capybara (3.33.0) + cancancan (3.0.2) + capybara (3.31.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -167,8 +165,8 @@ GEM execjs coffee-script-source (1.12.2) concurrent-ruby (1.1.6) - countries (3.0.1) - i18n_data (~> 0.10.0) + countries (3.0.0) + i18n_data (~> 0.8.0) sixarm_ruby_unaccent (~> 1.1) unicode_utils (~> 1.4) crack (0.4.3) @@ -178,23 +176,22 @@ GEM daemons-rails (1.2.1) daemons multi_json (~> 1.0) - data_migrate (6.3.0) + data_migrate (6.2.0) rails (>= 5.0) - database_cleaner (1.8.5) - devise (4.7.2) + database_cleaner (1.8.2) + devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.4.4) + diff-lcs (1.3) docile (1.3.2) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dry-configurable (0.11.6) + dry-configurable (0.9.0) concurrent-ruby (~> 1.0) dry-core (~> 0.4, >= 0.4.7) - dry-equalizer (~> 0.2) dry-container (0.7.2) concurrent-ruby (~> 1.0) dry-configurable (~> 0.1, >= 0.1.3) @@ -202,11 +199,11 @@ GEM concurrent-ruby (~> 1.0) dry-equalizer (0.3.0) dry-inflector (0.2.0) - dry-logic (1.0.6) + dry-logic (1.0.5) concurrent-ruby (~> 1.0) dry-core (~> 0.2) dry-equalizer (~> 0.2) - dry-types (1.4.0) + dry-types (1.2.2) concurrent-ruby (~> 1.0) dry-container (~> 0.3) dry-core (~> 0.4, >= 0.4.4) @@ -216,12 +213,12 @@ GEM erubi (1.9.0) erubis (2.7.0) execjs (2.7.0) - ffi (1.13.1) + ffi (1.12.2) figaro (1.1.1) thor (~> 0.14) globalid (0.4.2) activesupport (>= 4.2.0) - grape (1.3.3) + grape (1.3.0) activesupport builder dry-types (>= 1.1) @@ -233,7 +230,7 @@ GEM haml (5.1.2) temple (>= 0.8.0) tilt - hashdiff (1.0.1) + hashdiff (1.0.0) hpricot (0.8.6) http-accept (1.7.0) http-cookie (1.0.3) @@ -244,10 +241,10 @@ GEM socksify i18n (1.8.3) concurrent-ruby (~> 1.0) - i18n_data (0.10.0) + i18n_data (0.8.0) isikukood (0.1.2) iso8601 (0.12.1) - jquery-rails (4.4.0) + jquery-rails (4.3.5) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) @@ -267,7 +264,7 @@ GEM kaminari-core (= 1.2.1) kaminari-core (1.2.1) keystores (0.4.0) - libxml-ruby (3.2.0) + libxml-ruby (3.1.0) listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) @@ -282,7 +279,7 @@ GEM method_source (0.8.2) mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2020.0512) + mime-types-data (3.2019.1009) mimemagic (0.3.5) mina (0.3.1) open4 (~> 1.3.4) @@ -292,7 +289,7 @@ GEM minitest (5.14.1) monetize (1.9.4) money (~> 6.12) - money (6.13.8) + money (6.13.7) i18n (>= 0.6.4, <= 2) money-rails (1.13.3) activesupport (>= 3.0) @@ -307,7 +304,7 @@ GEM mustermann (>= 1.0.0) netrc (0.11.0) nio4r (2.5.2) - nokogiri (1.10.10) + nokogiri (1.10.9) mini_portile2 (~> 2.4.0) nori (2.6.0) open4 (1.3.4) @@ -315,7 +312,7 @@ GEM paper_trail (10.3.1) activerecord (>= 4.2) request_store (~> 1.1) - pdfkit (0.8.4.3.1) + pdfkit (0.8.4.1) pg (1.2.2) polyamorous (2.3.2) activerecord (>= 5.2.1) @@ -323,7 +320,7 @@ GEM coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - public_suffix (4.0.5) + public_suffix (4.0.3) puma (4.3.5) nio4r (~> 2.0) que (0.14.3) @@ -378,10 +375,10 @@ GEM ffi (~> 1.0) rbtree3 (0.6.0) rdoc (4.3.0) - regexp_parser (1.7.1) + regexp_parser (1.6.0) request_store (1.5.0) rack (>= 1.4) - responders (3.0.1) + responders (3.0.0) actionpack (>= 5.0) railties (>= 5.0) rest-client (2.1.0) @@ -393,21 +390,21 @@ GEM rspec-core (~> 3.9.0) rspec-expectations (~> 3.9.0) rspec-mocks (~> 3.9.0) - rspec-core (3.9.2) - rspec-support (~> 3.9.3) - rspec-expectations (3.9.2) + rspec-core (3.9.1) + rspec-support (~> 3.9.1) + rspec-expectations (3.9.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) rspec-mocks (3.9.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) - rspec-support (3.9.3) + rspec-support (3.9.2) ruby2_keywords (0.0.2) - rubyzip (2.3.0) + rubyzip (2.2.0) safe_yaml (1.0.5) sass-rails (6.0.0) sassc-rails (~> 2.1, >= 2.1.1) - sassc (2.4.0) + sassc (2.2.1) ffi (~> 1.9) sassc-rails (2.1.2) railties (>= 4.0.0) @@ -415,7 +412,7 @@ GEM sprockets (> 3.0) sprockets-rails tilt - savon (2.12.1) + savon (2.12.0) akami (~> 1.2) builder (>= 2.1.2) gyoku (~> 1.2) @@ -437,8 +434,7 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - simpleidn (0.1.1) - unf (~> 0.1.4) + simpleidn (0.0.9) sinatra (2.0.8.1) mustermann (~> 1.0) rack (~> 2.0) @@ -458,15 +454,13 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) - truemail (1.8.0) - simpleidn (~> 0.1.1) tzinfo (1.2.7) thread_safe (~> 0.1) uglifier (4.2.0) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.7) + unf_ext (0.0.7.6) unicode_utils (1.4.0) validates_email_format_of (1.6.3) i18n @@ -475,11 +469,11 @@ GEM wasabi (3.5.0) httpi (~> 2.0) nokogiri (>= 1.4.2) - webdrivers (4.4.1) + webdrivers (4.2.0) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) - webmock (3.8.3) + webmock (3.8.0) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -488,7 +482,7 @@ GEM websocket-extensions (0.1.5) whenever (0.9.4) chronic (>= 0.6.3) - wkhtmltopdf-binary (0.12.5.4) + wkhtmltopdf-binary (0.12.5.1) xpath (3.2.0) nokogiri (~> 1.8) zeitwerk (2.3.1) @@ -497,7 +491,6 @@ PLATFORMS ruby DEPENDENCIES - activerecord-import airbrake autodoc bootsnap (>= 1.1.0) @@ -549,14 +542,13 @@ DEPENDENCIES select2-rails (= 3.5.9.3) selectize-rails (= 0.12.1) simplecov (= 0.17.1) - simpleidn (= 0.1.1) - truemail (~> 1.7) + simpleidn (= 0.0.9) uglifier validates_email_format_of (= 1.6.3) webdrivers webmock whenever (= 0.9.4) - wkhtmltopdf-binary (~> 0.12.5.1) + wkhtmltopdf-binary BUNDLED WITH 2.1.4 diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index 793fa1209..4eea4faad 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -13,10 +13,10 @@ module Admin search_params[:registrant_domains_id_not_null] = 1 end - contacts = Contact.includes(:registrar).joins(:registrar) - .select('contacts.*, registrars.name') + contacts = Contact.includes(:registrar).joins(:registrar).select('contacts.*, registrars.name') contacts = contacts.filter_by_states(params[:statuses_contains].join(',')) if params[:statuses_contains] - contacts = filter_by_flags(contacts) + contacts = contacts.where("ident_country_code is null or ident_country_code=''") if params[:only_no_country_code].eql?('1') + normalize_search_parameters do @q = contacts.search(search_params) @@ -26,14 +26,6 @@ module Admin @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? end - def filter_by_flags(contacts) - if params[:only_no_country_code].eql?('1') - contacts = contacts.where("ident_country_code is null or ident_country_code=''") - end - contacts = contacts.email_verification_failed if params[:email_verification_failed].eql?('1') - contacts - end - def search render json: Contact.search_by_query(params[:q]) end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5c742afce..8de3fdc70 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -108,14 +108,4 @@ module ApplicationHelper def body_css_class [controller_path.split('/').map!(&:dasherize), action_name.dasherize, 'page'].join('-') end - - def verified_email_span(verification) - content_tag(:span, verification.email, class: verified_email_class(verification)) - end - - def verified_email_class(verification) - return 'text-danger' if verification.failed? - return 'text-primary' if verification.not_verified? - return 'text-success' if verification.verified? - end end diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb deleted file mode 100644 index 75f4b7d91..000000000 --- a/app/jobs/verify_emails_job.rb +++ /dev/null @@ -1,45 +0,0 @@ -class VerifyEmailsJob < Que::Job - def run(verification_id) - email_address_verification = run_condition(EmailAddressVerification.find(verification_id)) - - return if email_address_verification.recently_verified? - - ActiveRecord::Base.transaction do - email_address_verification.verify - log_success(email_address_verification) - destroy - end - rescue StandardError => e - log_error(verification: email_address_verification, error: e) - raise e - end - - private - - def run_condition(email_address_verification) - destroy unless email_address_verification - destroy if email_address_verification.recently_verified? - - email_address_verification - end - - def logger - @logger ||= Logger.new(Rails.root.join('log', 'email_verification.log')) - end - - def log_success(verification) - email = verification.try(:email) || verification - message = "Email address #{email} verification done" - logger.info message - end - - def log_error(verification:, error:) - email = verification.try(:email) || verification - message = <<~TEXT.squish - There was an error verifying email #{email}. - The error message was the following: #{error} - This job will retry. - TEXT - logger.error message - end -end diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb deleted file mode 100644 index b4fbf74e3..000000000 --- a/app/models/concerns/email_verifable.rb +++ /dev/null @@ -1,89 +0,0 @@ -module Concerns - module EmailVerifable - extend ActiveSupport::Concern - - def email_verification - @email_verification ||= EmailAddressVerification.find_or_create_by(email: unicode_email, - domain: domain(email)) - end - - def billing_email_verification - return unless attribute_names.include?('billing_email') - - @billing_email_verification ||= EmailAddressVerification - .find_or_create_by(email: unicode_billing_email, - domain: domain(billing_email)) - end - - class_methods do - def domain(email) - Mail::Address.new(email).domain&.downcase || 'not_found' - rescue Mail::Field::IncompleteParseError - 'not_found' - end - - def local(email) - Mail::Address.new(email).local&.downcase || email - rescue Mail::Field::IncompleteParseError - email - end - - def punycode_to_unicode(email) - return email if domain(email) == 'not_found' - - local = local(email) - domain = SimpleIDN.to_unicode(domain(email)) - "#{local}@#{domain}"&.downcase - end - - def unicode_to_punycode(email) - return email if domain(email) == 'not_found' - - local = local(email) - domain = SimpleIDN.to_ascii(domain(email)) - "#{local}@#{domain}"&.downcase - end - end - - def unicode_billing_email - self.class.punycode_to_unicode(billing_email) - end - - def unicode_email - self.class.punycode_to_unicode(email) - end - - def domain(email) - SimpleIDN.to_unicode(self.class.domain(email)) - end - - def punycode_to_unicode(email) - self.class.punycode_to_unicode(email) - end - - def correct_email_format - return if email.blank? - - result = email_verification.verify - process_result(result: result, field: :email) - end - - def correct_billing_email_format - return if email.blank? - - result = billing_email_verification.verify - process_result(result: result, field: :billing_email) - end - - def process_result(result:, field:) - case result[:errors].keys.first - when :smtp - errors.add(field, I18n.t('email_verifable.email_smtp_check_error')) - when :mx - errors.add(field, I18n.t('email_verifable.email_mx_check_error')) - when :regex - errors.add(field, I18n.t('email_verifable.email_regex_check_error')) - end - end - end -end diff --git a/app/models/contact.rb b/app/models/contact.rb index ac64b059f..f07c0c114 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -7,7 +7,6 @@ class Contact < ApplicationRecord include Concerns::Contact::Transferable include Concerns::Contact::Identical include Concerns::Contact::Disclosable - include Concerns::EmailVerifable belongs_to :original, class_name: self.name belongs_to :registrar, required: true @@ -23,11 +22,6 @@ class Contact < ApplicationRecord accepts_nested_attributes_for :legal_documents - scope :email_verification_failed, lambda { - joins('LEFT JOIN email_address_verifications emv ON contacts.email = emv.email') - .where('success = false and verified_at IS NOT NULL') - } - validates :name, :email, presence: true validates :street, :city, :zip, :country_code, presence: true, if: lambda { self.class.address_processing? @@ -35,7 +29,8 @@ class Contact < ApplicationRecord validates :phone, presence: true, e164: true, phone: true - validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? } + validates :email, format: /@/ + validates :email, email_format: { message: :invalid }, if: proc { |c| c.will_save_change_to_email? } validates :code, uniqueness: { message: :epp_id_taken }, diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb deleted file mode 100644 index 2fe7c0dbe..000000000 --- a/app/models/email_address_verification.rb +++ /dev/null @@ -1,56 +0,0 @@ -class EmailAddressVerification < ApplicationRecord - RECENTLY_VERIFIED_PERIOD = 1.month - - scope :not_verified_recently, lambda { - where('verified_at IS NULL or verified_at < ?', verification_period) - } - - scope :verified_recently, lambda { - where('verified_at IS NOT NULL and verified_at >= ?', verification_period).where(success: true) - } - - scope :verification_failed, lambda { - where.not(verified_at: nil).where(success: false) - } - - scope :by_domain, ->(domain_name) { where(domain: domain_name) } - - def recently_verified? - verified_at.present? && - verified_at > verification_period - end - - def verification_period - self.class.verification_period - end - - def self.verification_period - Time.zone.now - RECENTLY_VERIFIED_PERIOD - end - - def not_verified? - verified_at.blank? && !success - end - - def failed? - verified_at.present? && !success - end - - def verified? - success - end - - def verify - validation_request = Truemail.validate(email) - - if validation_request.result.success - update(verified_at: Time.zone.now, - success: true) - else - update(verified_at: Time.zone.now, - success: false) - end - - validation_request.result - end -end diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 3e4051165..3ddf1d1c5 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -88,7 +88,7 @@ class Nameserver < ApplicationRecord end def normalize_attributes - self.hostname = hostname.try(:strip).try(:downcase).gsub(/\.$/, '') + self.hostname = hostname.try(:strip).try(:downcase) self.ipv4 = Array(ipv4).reject(&:blank?).map(&:strip) self.ipv6 = Array(ipv6).reject(&:blank?).map(&:strip).map(&:upcase) end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 470d768b7..dbdd7e8d3 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -1,7 +1,6 @@ class Registrar < ApplicationRecord include Versions # version/registrar_version.rb include Concerns::Registrar::BookKeeping - include Concerns::EmailVerifable include Concerns::Registrar::LegalDoc has_many :domains, dependent: :restrict_with_error @@ -30,11 +29,14 @@ class Registrar < ApplicationRecord validates :vat_rate, numericality: { greater_than_or_equal_to: 0, less_than: 100 }, allow_nil: true + validate :forbid_special_code + attribute :vat_rate, ::Type::VATRate.new after_initialize :set_defaults - validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? } - validate :correct_billing_email_format + validates :email, email_format: { message: :invalid }, + allow_blank: true, if: proc { |c| c.will_save_change_to_email? } + validates :billing_email, email_format: { message: :invalid }, allow_blank: true alias_attribute :contact_email, :email diff --git a/app/views/admin/contacts/index.haml b/app/views/admin/contacts/index.haml index cbd11d3fc..cc80ac744 100644 --- a/app/views/admin/contacts/index.haml +++ b/app/views/admin/contacts/index.haml @@ -63,10 +63,6 @@ .form-group = label_tag :only_no_country_code, "Ident CC missing" = check_box_tag :only_no_country_code, '1',params[:only_no_country_code].eql?('1'), style: 'width:auto;height:auto;float:right' - .col-md-3 - .form-group - = label_tag :email_verification_failed, "Email verification failed" - = check_box_tag :email_verification_failed, '1',params[:email_verification_failed].eql?('1'), style: 'width:auto;height:auto;float:right' .row .col-md-3{style: 'padding-top: 25px;float:right;'} @@ -89,9 +85,7 @@ %th{class: 'col-xs-2'} = sort_link(@q, 'ident', t(:ident)) %th{class: 'col-xs-2'} - = sort_link(@q, 'email', t(:email)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'created_at', t(:created_at)) + = sort_link(@q, 'email', t(:created_at)) %th{class: 'col-xs-2'} = sort_link(@q, 'registrar_name', t(:registrar_name)) %tbody @@ -100,7 +94,6 @@ %td= link_to(contact, admin_contact_path(contact)) %td= contact.code %td= ident_for(contact) - %td= verified_email_span(contact.email_verification) %td= l(contact.created_at, format: :short) %td - if contact.registrar diff --git a/app/views/admin/contacts/partials/_general.haml b/app/views/admin/contacts/partials/_general.haml index 6568cd3d0..029f89509 100644 --- a/app/views/admin/contacts/partials/_general.haml +++ b/app/views/admin/contacts/partials/_general.haml @@ -17,7 +17,7 @@ %dd= ident_for(@contact) %dt= t(:email) - %dd= verified_email_span(@contact.email_verification) + %dd= @contact.email %dt= t(:phone) %dd= @contact.phone diff --git a/app/views/admin/registrars/index.html.erb b/app/views/admin/registrars/index.html.erb index e641f5294..a66816568 100644 --- a/app/views/admin/registrars/index.html.erb +++ b/app/views/admin/registrars/index.html.erb @@ -28,9 +28,6 @@ <%= t(:test_registrar) %> - - <%= t(:emails) %> - @@ -48,12 +45,6 @@ <%= "#{x.test_registrar}" %> - - <%= verified_email_span(x.email_verification) %> - <% if x[:billing_email].present? %> - <%= verified_email_span(x.billing_email_verification) %> - <% end %> - <% end %> diff --git a/app/views/admin/registrars/show/_billing.html.erb b/app/views/admin/registrars/show/_billing.html.erb index 07bccc7f4..da79b9074 100644 --- a/app/views/admin/registrars/show/_billing.html.erb +++ b/app/views/admin/registrars/show/_billing.html.erb @@ -15,9 +15,7 @@
<%= registrar.accounting_customer_code %>
<%= Registrar.human_attribute_name :billing_email %>
-
- <%= verified_email_span(registrar.billing_email_verification) %> -
+
<%= registrar.billing_email %>
<%= Registrar.human_attribute_name :reference_no %>
<%= registrar.reference_no %>
@@ -26,4 +24,4 @@
<%= registrar.iban %>
- + \ No newline at end of file diff --git a/app/views/admin/registrars/show/_contacts.html.erb b/app/views/admin/registrars/show/_contacts.html.erb index 0ca1158d3..f467e6a51 100644 --- a/app/views/admin/registrars/show/_contacts.html.erb +++ b/app/views/admin/registrars/show/_contacts.html.erb @@ -15,9 +15,7 @@
<%= @registrar.phone %>
<%= Registrar.human_attribute_name :email %>
-
- <%= verified_email_span(@registrar.email_verification) %> -
+
<%= @registrar.email %>
- + \ No newline at end of file diff --git a/config/initializers/airbrake.rb b/config/initializers/airbrake.rb index abfe408c1..5c1983369 100644 --- a/config/initializers/airbrake.rb +++ b/config/initializers/airbrake.rb @@ -17,5 +17,5 @@ Airbrake.configure do |config| end config.environment = ENV['airbrake_env'] || Rails.env config.ignore_environments = %w[test] - config.blocklist_keys = Rails.application.config.filter_parameters + config.blacklist_keys = Rails.application.config.filter_parameters end diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb deleted file mode 100644 index cfc8e14b1..000000000 --- a/config/initializers/truemail.rb +++ /dev/null @@ -1,77 +0,0 @@ -require 'truemail' - -Truemail.configure do |config| - # Required parameter. Must be an existing email on behalf of which verification will be performed - config.verifier_email = 'info@internet.ee' - - # Optional parameter. Must be an existing domain on behalf of which verification will be performed. - # By default verifier domain based on verifier email - # config.verifier_domain = 'internet.ee' - - # Optional parameter. You can override default regex pattern - # config.email_pattern = /regex_pattern/ - - # Optional parameter. You can override default regex pattern - # config.smtp_error_body_pattern = /regex_pattern/ - - # Optional parameter. Connection timeout is equal to 2 ms by default. - # config.connection_timeout = 1 - - # Optional parameter. A SMTP server response timeout is equal to 2 ms by default. - # config.response_timeout = 1 - - # Optional parameter. Total of connection attempts. It is equal to 2 by default. - # This parameter uses in mx lookup timeout error and smtp request (for cases when - # there is one mx server). - config.connection_attempts = 3 - - # Optional parameter. You can predefine default validation type for - # Truemail.validate('email@email.com') call without with-parameter - # Available validation types: :regex, :mx, :smtp - if Rails.env.production? - config.default_validation_type = :smtp - elsif Rails.env.test? - config.default_validation_type = :regex - else - config.default_validation_type = :mx - end - - # Optional parameter. You can predefine which type of validation will be used for domains. - # Also you can skip validation by domain. Available validation types: :regex, :mx, :smtp - # This configuration will be used over current or default validation type parameter - # All of validations for 'somedomain.com' will be processed with regex validation only. - # And all of validations for 'otherdomain.com' will be processed with mx validation only. - # It is equal to empty hash by default. - # config.validation_type_for = { 'somedomain.com' => :regex, 'otherdomain.com' => :mx } - - # Optional parameter. Validation of email which contains whitelisted domain always will - # return true. Other validations will not processed even if it was defined in validation_type_for - # It is equal to empty array by default. - # config.whitelisted_domains = [] - - # Optional parameter. With this option Truemail will validate email which contains whitelisted - # domain only, i.e. if domain whitelisted, validation will passed to Regex, MX or SMTP validators. - # Validation of email which not contains whitelisted domain always will return false. - # It is equal false by default. - #config.whitelist_validation = true - - # Optional parameter. Validation of email which contains blacklisted domain always will - # return false. Other validations will not processed even if it was defined in validation_type_for - # It is equal to empty array by default. - #config.blacklisted_domains = [] - - # Optional parameter. This option will provide to use not RFC MX lookup flow. - # It means that MX and Null MX records will be cheked on the DNS validation layer only. - # By default this option is disabled. - # config.not_rfc_mx_lookup_flow = true - - # Optional parameter. This option will be parse bodies of SMTP errors. It will be helpful - # if SMTP server does not return an exact answer that the email does not exist - # By default this option is disabled, available for SMTP validation only. - # config.smtp_safe_check = true - - # Optional parameter. This option will enable tracking events. You can print tracking events to - # stdout, write to file or both of these. Tracking event by default is :error - # Available tracking event: :all, :unrecognized_error, :recognized_error, :error - # config.logger = { tracking_event: :all, stdout: true, log_absolute_path: '/home/app/log/truemail.log' } -end diff --git a/config/locales/admin/email_verifable.en.yml b/config/locales/admin/email_verifable.en.yml deleted file mode 100644 index 724fa4c32..000000000 --- a/config/locales/admin/email_verifable.en.yml +++ /dev/null @@ -1,5 +0,0 @@ -en: - email_verifable: - email_smtp_check_error: SMTP check error - email_mx_check_error: Mail domain not found - email_regex_check_error: Invalid format diff --git a/config/locales/admin/email_verifable.et.yml b/config/locales/admin/email_verifable.et.yml deleted file mode 100644 index 6c008ed11..000000000 --- a/config/locales/admin/email_verifable.et.yml +++ /dev/null @@ -1,5 +0,0 @@ -et: - email_verifable: - email_smtp_check_error: Eposti aadressi ei leitud (SMTP viga) - email_mx_check_error: Eposti aadressi domeeni ei leitud - email_regex_check_error: Eposti aadress on vigane diff --git a/config/locales/en.yml b/config/locales/en.yml index 27299072e..a825b1dc0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -636,7 +636,6 @@ en: edit_dispute: 'Edit dispute' optional: 'Optional' test_registrar: "Test registrar" - emails: 'Email addresses' verified_confirm: 'Verified status is for cases when current registrant is the one applying for the update. Legal document signed by the registrant is required. Are you sure this update is properly verified with the registrant?' verified: 'Verified' deleted: 'Deleted' diff --git a/config/locales/et.yml b/config/locales/et.yml index 9cb8aaa4a..05d32be24 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -5,4 +5,3 @@ et: date: # Don't forget the nil at the beginning; there's no such thing as a 0th month month_names: [~, Jaanuar, Veebruar, Märts, Aprill, Mai, Juuni, Juuli, August, September, Oktoober, November, Detsember] - emails: "Meillaadressid" diff --git a/config/schedule.rb b/config/schedule.rb index 7ebf97d12..089ce93f9 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -62,10 +62,6 @@ if @cron_group == 'registry' rake 'domain:discard' end - every 10.minutes do - rake 'verify_email:all_domains' - end - # Should be at least once every 4 days, since according to LHV specs: # "Unread messages older than 5 days are automatically scheduled for deletion" # https://partners.lhv.ee/en/connect/#messaging diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb deleted file mode 100644 index 37a7f275c..000000000 --- a/db/data/20200608084321_fill_email_verifications.rb +++ /dev/null @@ -1,21 +0,0 @@ -class FillEmailVerifications < ActiveRecord::Migration[6.0] - include Concerns::EmailVerifable - - def up - registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?) - registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) - contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) - - emails = (contact_emails + registrar_emails + registrar_billing_emails) - emails = emails.map{ |email| punycode_to_unicode(email) }.uniq - - result = emails.map do |email| - { email: email, domain: domain(email) } - end - EmailAddressVerification.import result, batch_size: 500 - end - - def down - EmailAddressVerification.delete_all - end -end diff --git a/db/migrate/20200605100827_create_email_address_verifications.rb b/db/migrate/20200605100827_create_email_address_verifications.rb deleted file mode 100644 index 7f618b3a7..000000000 --- a/db/migrate/20200605100827_create_email_address_verifications.rb +++ /dev/null @@ -1,13 +0,0 @@ -class CreateEmailAddressVerifications < ActiveRecord::Migration[6.0] - def change - create_table :email_address_verifications do |t| - t.string :email, null: false - t.datetime :verified_at - t.boolean :success, null: false, default: false - t.string :domain, null: false - end - - add_index :email_address_verifications, :email, unique: true - add_index :email_address_verifications, :domain - end -end diff --git a/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb b/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb deleted file mode 100644 index a7e2f8ee8..000000000 --- a/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb +++ /dev/null @@ -1,13 +0,0 @@ -class ChangeEmailVerificationFieldsToCitext < ActiveRecord::Migration[6.0] - def up - enable_extension 'citext' - change_column :email_address_verifications, :email, :citext - change_column :email_address_verifications, :domain, :citext - end - - def down - change_column :email_address_verifications, :email, :string - change_column :email_address_verifications, :domain, :string - disable_extension 'citext' - end -end diff --git a/db/structure.sql b/db/structure.sql index 587f68be8..960481c44 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -33,17 +33,10 @@ CREATE EXTENSION IF NOT EXISTS btree_gist WITH SCHEMA public; -- --- Name: citext; Type: EXTENSION; Schema: -; Owner: - +-- Name: EXTENSION btree_gist; Type: COMMENT; Schema: -; Owner: - -- -CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public; - - --- --- Name: EXTENSION citext; Type: COMMENT; Schema: -; Owner: - --- - -COMMENT ON EXTENSION citext IS 'data type for case-insensitive character strings'; +COMMENT ON EXTENSION btree_gist IS 'support for indexing common datatypes in GiST'; -- @@ -824,99 +817,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.email_address_verifications ( - id bigint NOT NULL, - email public.citext NOT NULL, - verified_at timestamp without time zone, - success boolean DEFAULT false NOT NULL, - domain public.citext NOT NULL -); - - --- --- Name: email_address_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.email_address_verifications_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: email_address_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.email_address_verifications_id_seq OWNED BY public.email_address_verifications.id; - - --- --- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.email_addresses_validations ( - id bigint NOT NULL, - email character varying NOT NULL, - validated_at timestamp without time zone -); - - --- --- Name: email_addresses_validations_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.email_addresses_validations_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: email_addresses_validations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.email_addresses_validations_id_seq OWNED BY public.email_addresses_validations.id; - - --- --- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.email_addresses_verifications ( - id bigint NOT NULL, - email character varying NOT NULL, - validated_at timestamp without time zone -); - - --- --- Name: email_addresses_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.email_addresses_verifications_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: email_addresses_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.email_addresses_verifications_id_seq OWNED BY public.email_addresses_verifications.id; - - --- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -2591,42 +2492,21 @@ ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('pu -- --- Name: domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: email_address_verifications id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_address_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_address_verifications_id_seq'::regclass); - - --- --- Name: email_addresses_validations id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_addresses_validations ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_validations_id_seq'::regclass); - - --- --- Name: email_addresses_verifications id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_addresses_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_verifications_id_seq'::regclass); - - --- --- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); @@ -3027,31 +2907,7 @@ ALTER TABLE ONLY public.domains -- --- Name: email_address_verifications email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_address_verifications - ADD CONSTRAINT email_address_verifications_pkey PRIMARY KEY (id); - - --- --- Name: email_addresses_validations email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_addresses_validations - ADD CONSTRAINT email_addresses_validations_pkey PRIMARY KEY (id); - - --- --- Name: email_addresses_verifications email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_addresses_verifications - ADD CONSTRAINT email_addresses_verifications_pkey PRIMARY KEY (id); - - --- --- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3059,7 +2915,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -3622,447 +3478,434 @@ CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (regist -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain); - - --- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); - - --- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); + -- --- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -4070,7 +3913,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4692,7 +4535,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200505150413'), ('20200518104105'), ('20200529115011'), -('20200605100827'), -('20200610090110'), ('20200630081231'); + diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake deleted file mode 100644 index d49bb38b9..000000000 --- a/lib/tasks/verify_email.rake +++ /dev/null @@ -1,23 +0,0 @@ -namespace :verify_email do - desc 'Stars verifying email jobs for all the domain' - task all_domains: :environment do - verifications_by_domain = EmailAddressVerification.not_verified_recently.group_by(&:domain) - verifications_by_domain.each do |_domain, verifications| - ver = verifications.sample # Verify random email to not to clog the SMTP servers - VerifyEmailsJob.enqueue(ver.id) - next - end - end - - # Need to be run like 'bundle exec rake verify_email:domain['gmail.com']' - # In zsh syntax will be 'bundle exec rake verify_email:domain\['gmail.com'\]' - # Default 'bundle exec rake verify_email:domain' wil use 'internet.ee' domain - desc 'Stars verifying email jobs for domain stated in argument' - task :domain, [:domain_name] => [:environment] do |_task, args| - args.with_defaults(domain_name: 'internet.ee') - - verifications_by_domain = EmailAddressVerification.not_verified_recently - .by_domain(args[:domain_name]) - verifications_by_domain.map { |ver| VerifyEmailsJob.enqueue(ver.id) } - end -end diff --git a/test/fixtures/contacts.yml b/test/fixtures/contacts.yml index 0173d56dd..ddfbfe93f 100644 --- a/test/fixtures/contacts.yml +++ b/test/fixtures/contacts.yml @@ -85,11 +85,3 @@ invalid: auth_info: any registrar: bestnames uuid: bd80c0f9-26ee-49e0-a2cb-2311d931c433 - -invalid_email: - name: any - code: invalid_email - email: invalid@invalid. - auth_info: any - registrar: bestnames - uuid: fa8c4f51-a221-4628-b3c6-47995f4edea3 diff --git a/test/jobs/verify_emails_job_test.rb b/test/jobs/verify_emails_job_test.rb deleted file mode 100644 index f55a474db..000000000 --- a/test/jobs/verify_emails_job_test.rb +++ /dev/null @@ -1,59 +0,0 @@ -require "test_helper" - -class VerifyEmailsJobTest < ActiveSupport::TestCase - def setup - @contact = contacts(:john) - @invalid_contact = contacts(:invalid_email) - @contact_verification = @contact.email_verification - @invalid_contact_verification = @invalid_contact.email_verification - - @default_whitelist = Truemail.configure.whitelisted_domains - @default_blacklist = Truemail.configure.blacklisted_domains - Truemail.configure.whitelisted_domains = whitelisted_domains - Truemail.configure.blacklisted_domains = blacklisted_domains - end - - def teardown - Truemail.configure.whitelisted_domains = @default_whitelist - Truemail.configure.blacklisted_domains = @default_blacklist - end - - def domain(email) - Mail::Address.new(email).domain - rescue Mail::Field::IncompleteParseError - nil - end - - def whitelisted_domains - [domain(@contact.email)].reject(&:blank?) - end - - def blacklisted_domains - [domain(@invalid_contact.email)].reject(&:blank?) - end - - def test_job_checks_if_email_valid - VerifyEmailsJob.run(@contact_verification.id) - @contact_verification.reload - - assert @contact_verification.success - end - - def test_job_checks_does_not_run_if_recent - old_verified_at = Time.zone.now - 10.days - @contact_verification.update(success: true, verified_at: old_verified_at) - assert @contact_verification.recently_verified? - - VerifyEmailsJob.run(@contact_verification.id) - @contact_verification.reload - - assert_in_delta @contact_verification.verified_at.to_i, old_verified_at.to_i, 1 - end - - def test_job_checks_if_email_invalid - VerifyEmailsJob.run(@invalid_contact_verification.id) - @contact_verification.reload - - refute @contact_verification.success - end -end diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 856019bfb..4e500e98d 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -3,11 +3,6 @@ require 'test_helper' class ContactTest < ActiveSupport::TestCase setup do @contact = contacts(:john) - @old_validation_type = Truemail.configure.default_validation_type - end - - teardown do - Truemail.configure.default_validation_type = @old_validation_type end def test_valid_contact_fixture_is_valid @@ -66,39 +61,16 @@ class ContactTest < ActiveSupport::TestCase assert contact.invalid? end - def test_email_verification_valid + def test_validates_email_format contact = valid_contact - contact.email = 'info@internet.ee' + + contact.email = 'invalid' + assert contact.invalid? + + contact.email = 'valid@registrar.test' assert contact.valid? end - def test_email_verification_smtp_error - Truemail.configure.default_validation_type = :smtp - - contact = valid_contact - contact.email = 'somecrude1337joke@internet.ee' - assert contact.invalid? - assert_equal I18n.t('email_verifable.email_smtp_check_error'), contact.errors.messages[:email].first - end - - def test_email_verification_mx_error - Truemail.configure.default_validation_type = :mx - - contact = valid_contact - contact.email = 'somecrude31337joke@somestrange31337domain.ee' - assert contact.invalid? - assert_equal I18n.t('email_verifable.email_mx_check_error'), contact.errors.messages[:email].first - end - - def test_email_verification_regex_error - Truemail.configure.default_validation_type = :regex - - contact = valid_contact - contact.email = 'some@strangesentence@internet.ee' - assert contact.invalid? - assert_equal I18n.t('email_verifable.email_regex_check_error'), contact.errors.messages[:email].first - end - def test_invalid_without_phone contact = valid_contact contact.phone = '' @@ -285,16 +257,6 @@ class ContactTest < ActiveSupport::TestCase assert_equal domain.whois_record.try(:json).try(:[], 'registrant'), @contact.name end - def test_creates_email_verification_in_unicode - unicode_email = 'suur@äri.ee' - punycode_email = Contact.unicode_to_punycode(unicode_email) - - @contact.email = punycode_email - @contact.save - - assert_equal @contact.email_verification.email, unicode_email - end - private def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 8edbb1e4b..c5d832922 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -5,13 +5,11 @@ class RegistrarTest < ActiveSupport::TestCase @registrar = registrars(:bestnames) @original_default_language = Setting.default_language @original_days_to_keep_invoices_active = Setting.days_to_keep_invoices_active - @old_validation_type = Truemail.configure.default_validation_type end teardown do Setting.default_language = @original_default_language Setting.days_to_keep_invoices_active = @original_days_to_keep_invoices_active - Truemail.configure.default_validation_type = @old_validation_type end def test_valid_registrar_is_valid @@ -40,99 +38,16 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.invalid? end - def test_email_verification_valid + def test_email_format_validation registrar = valid_registrar - registrar.email = 'info@internet.ee' - registrar.billing_email = nil + registrar.email = 'invalid' + assert registrar.invalid? + + registrar.email = 'valid@email.test' assert registrar.valid? end - def test_email_verification_smtp_error - Truemail.configure.default_validation_type = :smtp - - registrar = valid_registrar - registrar.email = 'somecrude1337joke@internet.ee' - registrar.billing_email = nil - - assert registrar.invalid? - assert_equal I18n.t('email_verifable.email_smtp_check_error'), registrar.errors.messages[:email].first - end - - def test_email_verification_mx_error - Truemail.configure.default_validation_type = :mx - - registrar = valid_registrar - registrar.email = 'somecrude31337joke@somestrange31337domain.ee' - registrar.billing_email = nil - - assert registrar.invalid? - assert_equal I18n.t('email_verifable.email_mx_check_error'), registrar.errors.messages[:email].first - end - - def test_email_verification_regex_error - Truemail.configure.default_validation_type = :regex - - registrar = valid_registrar - registrar.email = 'some@strangesentence@internet.ee' - registrar.billing_email = nil - - assert registrar.invalid? - assert_equal I18n.t('email_verifable.email_regex_check_error'), registrar.errors.messages[:email].first - end - - def test_billing_email_verification_valid - registrar = valid_registrar - registrar.billing_email = 'info@internet.ee' - - assert registrar.valid? - end - - def test_billing_email_verification_smtp_error - Truemail.configure.default_validation_type = :smtp - - registrar = valid_registrar - registrar.billing_email = 'somecrude1337joke@internet.ee' - - assert registrar.invalid? - assert_equal I18n.t('email_verifable.email_smtp_check_error'), registrar.errors.messages[:billing_email].first - end - - def test_billing_email_verification_mx_error - Truemail.configure.default_validation_type = :mx - - registrar = valid_registrar - registrar.billing_email = 'somecrude31337joke@somestrange31337domain.ee' - - assert registrar.invalid? - assert_equal I18n.t('email_verifable.email_mx_check_error'), registrar.errors.messages[:billing_email].first - end - - def test_billing_email_verification_regex_error - Truemail.configure.default_validation_type = :regex - - registrar = valid_registrar - registrar.billing_email = 'some@strangesentence@internet.ee' - - assert registrar.invalid? - assert_equal I18n.t('email_verifable.email_regex_check_error'), registrar.errors.messages[:billing_email].first - end - - def test_creates_email_verification_in_unicode - unicode_email = 'suur@äri.ee' - punycode_email = Registrar.unicode_to_punycode(unicode_email) - unicode_billing_email = 'billing@äri.ee' - punycode_billing_email = Registrar.unicode_to_punycode(unicode_billing_email) - - registrar = valid_registrar - registrar.email = punycode_email - registrar.billing_email = punycode_billing_email - registrar.save - - assert_equal registrar.email_verification.email, unicode_email - assert_equal registrar.billing_email_verification.email, unicode_billing_email - end - def test_invalid_without_accounting_customer_code registrar = valid_registrar registrar.accounting_customer_code = '' @@ -145,6 +60,16 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.valid? end + def test_billing_email_format_validation + registrar = valid_registrar + + registrar.billing_email = 'invalid' + assert registrar.invalid? + + registrar.billing_email = 'valid@email.test' + assert registrar.valid? + end + def test_returns_billing_email_when_provided billing_email = 'billing@registrar.test' registrar = Registrar.new(billing_email: billing_email) diff --git a/test/tasks/emails/verify_email_task_test.rb b/test/tasks/emails/verify_email_task_test.rb deleted file mode 100644 index 7cca11845..000000000 --- a/test/tasks/emails/verify_email_task_test.rb +++ /dev/null @@ -1,63 +0,0 @@ -require 'test_helper' - -class VerifyEmailTaskTest < ActiveSupport::TestCase - - def setup - @contact = contacts(:john) - @invalid_contact = contacts(:invalid_email) - @contact_verification = @contact.email_verification - @invalid_contact_verification = @invalid_contact.email_verification - - @default_whitelist = Truemail.configure.whitelisted_domains - @default_blacklist = Truemail.configure.blacklisted_domains - Truemail.configure.whitelisted_domains = whitelisted_domains - Truemail.configure.blacklisted_domains = blacklisted_domains - end - - def teardown - Truemail.configure.whitelisted_domains = @default_whitelist - Truemail.configure.blacklisted_domains = @default_blacklist - end - - def domain(email) - Mail::Address.new(email).domain - rescue Mail::Field::IncompleteParseError - nil - end - - def whitelisted_domains - [domain(@contact.email)].reject(&:blank?) - end - - def blacklisted_domains - [domain(@invalid_contact.email)].reject(&:blank?) - end - - def test_tasks_verifies_emails - capture_io { run_task } - - @contact_verification.reload - @invalid_contact_verification.reload - - assert @contact_verification.verified? - assert @invalid_contact_verification.failed? - end - - def test_domain_task_verifies_for_one_domain - capture_io { run_single_domain_task(@contact_verification.domain) } - - @contact_verification.reload - @invalid_contact_verification.reload - - assert @contact_verification.verified? - assert @invalid_contact_verification.not_verified? - end - - def run_task - Rake::Task['verify_email:all_domains'].execute - end - - def run_single_domain_task(domain) - Rake::Task["verify_email:domain"].invoke(domain) - end -end From 68833e11aba0a7dda1063021fa73bfcb736b8b35 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 14 Jul 2020 17:11:42 +0500 Subject: [PATCH 661/757] Add uniquie constraints to domain_contacts & nameservers --- ...dd_unique_constraints_to_domain_objects.rb | 36 +++++++++++++++++++ db/structure.sql | 27 +++++++++++--- test/models/contact_test.rb | 2 +- test/models/domain_test.rb | 12 +++---- 4 files changed, 65 insertions(+), 12 deletions(-) create mode 100644 db/migrate/20200714115338_add_unique_constraints_to_domain_objects.rb diff --git a/db/migrate/20200714115338_add_unique_constraints_to_domain_objects.rb b/db/migrate/20200714115338_add_unique_constraints_to_domain_objects.rb new file mode 100644 index 000000000..8c1b25c73 --- /dev/null +++ b/db/migrate/20200714115338_add_unique_constraints_to_domain_objects.rb @@ -0,0 +1,36 @@ +class AddUniqueConstraintsToDomainObjects < ActiveRecord::Migration[6.0] + def up + + 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 + + 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 diff --git a/db/structure.sql b/db/structure.sql index 960481c44..2455bec5a 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -3195,7 +3195,15 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts uniq_contact_of_type_per_domain; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.domain_contacts + ADD CONSTRAINT uniq_contact_of_type_per_domain UNIQUE (domain_id, type, contact_id); + + +-- +-- Name: contacts uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3203,7 +3211,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -3211,7 +3219,15 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers uniq_hostname_per_domain; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.nameservers + ADD CONSTRAINT uniq_hostname_per_domain UNIQUE (domain_id, hostname); + + +-- +-- Name: reserved_domains uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains @@ -3219,7 +3235,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions @@ -4535,6 +4551,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200505150413'), ('20200518104105'), ('20200529115011'), -('20200630081231'); +('20200630081231'), +('20200714115338'); diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 4e500e98d..8847c8c49 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -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.update_all(contact_id: @contact.id) + DomainContact.first.update(contact_id: @contact.id) assert @contact.linked? end diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 83e12118d..726def1b1 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -134,9 +134,9 @@ class DomainTest < ActiveSupport::TestCase contact = contacts(:john) domain.admin_contacts << contact - domain.admin_contacts << contact - - assert domain.invalid? + assert_raise ActiveRecord::RecordNotUnique do + domain.admin_contacts << contact + end end def test_invalid_when_the_same_tech_contact_is_linked_twice @@ -144,9 +144,9 @@ class DomainTest < ActiveSupport::TestCase contact = contacts(:john) domain.tech_contacts << contact - domain.tech_contacts << contact - - assert domain.invalid? + assert_raise ActiveRecord::RecordNotUnique do + domain.tech_contacts << contact + end end def test_validates_name_server_count_when_name_servers_are_required From 735a0e1642b9aa0222c3388c4c5573fd1d1cb050 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 14 Jul 2020 19:02:55 +0500 Subject: [PATCH 662/757] WIP Add getting contacts from companies --- app/models/contact.rb | 23 +++++++++++++++++++++++ app/models/domain_contact.rb | 2 ++ 2 files changed, 25 insertions(+) diff --git a/app/models/contact.rb b/app/models/contact.rb index f07c0c114..779f24e0f 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -12,6 +12,8 @@ class Contact < ApplicationRecord belongs_to :registrar, required: true has_many :domain_contacts has_many :domains, through: :domain_contacts + has_many :admin_domains, -> { merge(DomainContact.admin) }, source: :domain, + through: :domain_contacts has_many :legal_documents, as: :documentable has_many :registrant_domains, class_name: 'Domain', foreign_key: 'registrant_id' has_many :actions, dependent: :destroy @@ -252,6 +254,16 @@ class Contact < ApplicationRecord def registrant_user_contacts(registrant_user) registrant_user_direct_contacts(registrant_user) .or(registrant_user_indirect_contacts(registrant_user)) + # .or(registrant_user_indirect_admin_registrar_contacts(registrant_user)) + end + + def registrant_user_indirect_admin_registrar_contacts(registrant_user) + indirect_contacts = registrant_user_indirect_contacts(registrant_user) + admin_contact_ids = admin_contact_ids(indirect_contacts) + reg_contact_ids = registrar_contact_ids(indirect_contacts) + + total_ids = (admin_contact_ids + reg_contact_ids).uniq + where(id: total_ids) end def registrant_user_direct_contacts(registrant_user) @@ -263,11 +275,22 @@ class Contact < ApplicationRecord def registrant_user_indirect_contacts(registrant_user) ident = registrant_user.companies.collect(&:registration_number) + # ident = ['12345678'] where(ident_type: ORG, ident: ident, ident_country_code: registrant_user.country.alpha2) end + + def admin_contact_ids(indirect_contacts) + domains = indirect_contacts.map(&:admin_domains).flatten + domains.map(&:contacts).flatten.collect(&:id) + end + + def registrar_contact_ids(indirect_contacts) + registrar_domains = indirect_contacts.map(&:registrant_domains).flatten + registrar_domains.map(&:contacts).flatten.collect(&:id) + end end def roid diff --git a/app/models/domain_contact.rb b/app/models/domain_contact.rb index 910f4e445..57446071a 100644 --- a/app/models/domain_contact.rb +++ b/app/models/domain_contact.rb @@ -6,6 +6,8 @@ class DomainContact < ApplicationRecord belongs_to :contact belongs_to :domain + scope :admin, -> { where(type: 'AdminDomainContact') } + attr_accessor :value_typeahead self.ignored_columns = %w[legacy_domain_id legacy_contact_id] From c4de5655e1464ce73201512b56b4c9633f49bb6e Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 15 Jul 2020 15:11:47 +0500 Subject: [PATCH 663/757] Add company controlled contacts to registrant API Fix tests. --- app/models/contact.rb | 28 ++++++------------- app/models/domain.rb | 17 +++++++++++ .../registrant_api_contacts_test.rb | 4 +-- .../v1/registrant/contacts/details_test.rb | 9 ++++-- .../api/v1/registrant/contacts/list_test.rb | 6 ++-- .../api/v1/registrant/contacts/update_test.rb | 3 ++ test/models/contact_test.rb | 9 +++--- test/models/domain_test.rb | 4 +-- 8 files changed, 45 insertions(+), 35 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index 779f24e0f..e29789be1 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -253,17 +253,8 @@ class Contact < ApplicationRecord def registrant_user_contacts(registrant_user) registrant_user_direct_contacts(registrant_user) + .or(registrant_user_company_contacts(registrant_user)) .or(registrant_user_indirect_contacts(registrant_user)) - # .or(registrant_user_indirect_admin_registrar_contacts(registrant_user)) - end - - def registrant_user_indirect_admin_registrar_contacts(registrant_user) - indirect_contacts = registrant_user_indirect_contacts(registrant_user) - admin_contact_ids = admin_contact_ids(indirect_contacts) - reg_contact_ids = registrar_contact_ids(indirect_contacts) - - total_ids = (admin_contact_ids + reg_contact_ids).uniq - where(id: total_ids) end def registrant_user_direct_contacts(registrant_user) @@ -271,9 +262,7 @@ class Contact < ApplicationRecord .country.alpha2) end - private - - def registrant_user_indirect_contacts(registrant_user) + def registrant_user_company_contacts(registrant_user) ident = registrant_user.companies.collect(&:registration_number) # ident = ['12345678'] @@ -282,14 +271,13 @@ class Contact < ApplicationRecord ident_country_code: registrant_user.country.alpha2) end - def admin_contact_ids(indirect_contacts) - domains = indirect_contacts.map(&:admin_domains).flatten - domains.map(&:contacts).flatten.collect(&:id) - end + def registrant_user_indirect_contacts(registrant_user) + company_domains = Domain.registrant_user_indirect_domains(registrant_user) + company_contact_ids = company_domains.map(&:contacts).flatten.collect(&:id) + company_ids = Contact.registrant_user_company_contacts(registrant_user).collect(&:id) + total_ids = (company_contact_ids + company_ids).uniq - def registrar_contact_ids(indirect_contacts) - registrar_domains = indirect_contacts.map(&:registrant_domains).flatten - registrar_domains.map(&:contacts).flatten.collect(&:id) + where(id: total_ids) end end diff --git a/app/models/domain.rb b/app/models/domain.rb index fff0d4a08..a97a2bc8a 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -200,6 +200,7 @@ class Domain < ApplicationRecord def registrant_user_domains(registrant_user) from( "(#{registrant_user_domains_by_registrant(registrant_user).to_sql} UNION " \ + "#{registrant_user_indirect_domains(registrant_user).to_sql} UNION " \ "#{registrant_user_domains_by_contact(registrant_user).to_sql}) AS domains" ) end @@ -218,6 +219,14 @@ class Domain < ApplicationRecord ) end + def registrant_user_indirect_domains(registrant_user) + companies = Contact.registrant_user_company_contacts(registrant_user) + from( + "(#{registrant_user_company_registrant(companies).to_sql} UNION "\ + "#{registrant_user_domains_company(companies).to_sql}) AS domains" + ) + end + private def registrant_user_domains_by_registrant(registrant_user) @@ -240,6 +249,14 @@ class Domain < ApplicationRecord def registrant_user_direct_domains_by_contact(registrant_user) joins(:domain_contacts).where(domain_contacts: { contact_id: registrant_user.direct_contacts }) end + + def registrant_user_company_registrant(companies) + where(registrant: companies) + end + + def registrant_user_domains_company(companies) + joins(:domain_contacts).where(domain_contacts: { contact: companies }) + end end def name=(value) diff --git a/test/integration/api/registrant/registrant_api_contacts_test.rb b/test/integration/api/registrant/registrant_api_contacts_test.rb index c2950a5f8..af57c1c1a 100644 --- a/test/integration/api/registrant/registrant_api_contacts_test.rb +++ b/test/integration/api/registrant/registrant_api_contacts_test.rb @@ -12,7 +12,7 @@ class RegistrantApiContactsTest < ApplicationIntegrationTest def test_root_accepts_limit_and_offset_parameters contacts(:william).update!(ident: '1234', ident_type: 'priv', ident_country_code: 'US') - assert_equal 3, @user.contacts.size + assert_equal 4, @user.contacts.size get '/api/v1/registrant/contacts', params: { 'limit' => 1, 'offset' => 0 }, headers: @auth_headers @@ -22,7 +22,7 @@ class RegistrantApiContactsTest < ApplicationIntegrationTest get '/api/v1/registrant/contacts', headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) - assert_equal(3, response_json.count) + assert_equal(@user.contacts.size, response_json.count) end def test_get_contact_details_by_uuid diff --git a/test/integration/api/v1/registrant/contacts/details_test.rb b/test/integration/api/v1/registrant/contacts/details_test.rb index 901d5be92..0352ade8d 100644 --- a/test/integration/api/v1/registrant/contacts/details_test.rb +++ b/test/integration/api/v1/registrant/contacts/details_test.rb @@ -75,8 +75,11 @@ class RegistrantApiV1ContactDetailsTest < ActionDispatch::IntegrationTest end def test_unmanaged_contact_cannot_be_accessed - assert_equal 'US-1234', @user.registrant_ident - @contact.update!(ident: '12345') + @user.update!(registrant_ident: 'US-12345') + @contact.update!(ident: '12345879') + companies = Contact.where(ident_type: 'org') + companies.update_all(ident: '78964521') + companies.reload get api_v1_registrant_contact_path(@contact.uuid), as: :json, headers: { 'HTTP_AUTHORIZATION' => auth_token } @@ -93,4 +96,4 @@ class RegistrantApiV1ContactDetailsTest < ActionDispatch::IntegrationTest hash = token_creator.token_in_hash "Bearer #{hash[:access_token]}" end -end \ No newline at end of file +end diff --git a/test/integration/api/v1/registrant/contacts/list_test.rb b/test/integration/api/v1/registrant/contacts/list_test.rb index 864d56c0d..a42aca694 100644 --- a/test/integration/api/v1/registrant/contacts/list_test.rb +++ b/test/integration/api/v1/registrant/contacts/list_test.rb @@ -35,8 +35,8 @@ class RegistrantApiV1ContactListTest < ActionDispatch::IntegrationTest get api_v1_registrant_contacts_path, as: :json, headers: { 'HTTP_AUTHORIZATION' => auth_token } response_json = JSON.parse(response.body, symbolize_names: true) - assert_equal 1, response_json.size - assert_equal 'acme-ltd-001', response_json.first[:code] + assert_equal @user.contacts.count, response_json.size + assert_includes response_json.map{ |hash| hash[:code] }, @contact.code end def test_returns_direct_contacts_when_company_register_is_unavailable @@ -70,4 +70,4 @@ class RegistrantApiV1ContactListTest < ActionDispatch::IntegrationTest hash = token_creator.token_in_hash "Bearer #{hash[:access_token]}" end -end \ No newline at end of file +end diff --git a/test/integration/api/v1/registrant/contacts/update_test.rb b/test/integration/api/v1/registrant/contacts/update_test.rb index 6e0c0eea3..0a2322bf5 100644 --- a/test/integration/api/v1/registrant/contacts/update_test.rb +++ b/test/integration/api/v1/registrant/contacts/update_test.rb @@ -214,6 +214,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest def test_unmanaged_contact_cannot_be_updated assert_equal 'US-1234', @user.registrant_ident @contact.update!(ident: '12345') + companies = Contact.where(ident_type: 'org') + companies.update_all(ident: '78964521') + companies.reload patch api_v1_registrant_contact_path(@contact.uuid), params: { name: 'new name' }, as: :json, diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 4e500e98d..bf7c242a7 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -150,13 +150,12 @@ class ContactTest < ActiveSupport::TestCase end def test_returns_registrant_user_indirect_contacts - @contact.update!(ident_type: Contact::ORG) - assert_equal '1234', @contact.ident + @contact.update!(ident_type: Contact::ORG, ident: '1234321') assert_equal 'US', @contact.ident_country_code - registrant_user = RegistrantUser.new(registrant_ident: 'US-1234') + registrant_user = RegistrantUser.new(registrant_ident: 'US-1234321') - registrant_user.stub(:companies, [OpenStruct.new(registration_number: '1234')]) do - assert_equal [@contact], Contact.registrant_user_contacts(registrant_user) + registrant_user.stub(:companies, [OpenStruct.new(registration_number: '1234321')]) do + assert_equal registrant_user.contacts, Contact.registrant_user_contacts(registrant_user) end end diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 83e12118d..03b7bfc27 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -273,7 +273,7 @@ class DomainTest < ActiveSupport::TestCase def test_returns_registrant_user_domains_by_registrant registrant = contacts(:john).becomes(Registrant) assert_equal registrant, @domain.registrant - registrant_user = RegistrantUser.new + registrant_user = RegistrantUser.new(registrant_ident: 'US-12345') registrant_user.stub(:contacts, [registrant]) do assert_includes Domain.registrant_user_domains(registrant_user), @domain @@ -284,7 +284,7 @@ class DomainTest < ActiveSupport::TestCase contact = contacts(:jane) assert_not_equal contact.becomes(Registrant), @domain.registrant assert_includes @domain.contacts, contact - registrant_user = RegistrantUser.new + registrant_user = RegistrantUser.new(registrant_ident: 'US-12345') registrant_user.stub(:contacts, [contact]) do assert_includes Domain.registrant_user_domains(registrant_user), @domain From 294c7658194046d5c9e89194a68a2a9bcbc61a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 15 Jul 2020 15:27:16 +0300 Subject: [PATCH 664/757] Update CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 708a97438..6f893bb07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -08.07.2020 -* Thorough email address validations and processing with truemail gem [#297](https://github.com/internetee/registry/issues/297) +15.07.2020 +* Reapplied race condition fix after fixing the data in prod env [#1612](https://github.com/internetee/registry/issues/1612) 07.07.2020 * Fixed legaldoc validation [#1634](https://github.com/internetee/registry/issues/1634) From 6c36296aaa295c2e7b170289f72661ddaaf5982c Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 16 Jul 2020 11:37:32 +0500 Subject: [PATCH 665/757] Polish the code --- app/models/contact.rb | 3 --- app/models/domain_contact.rb | 2 -- 2 files changed, 5 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index e29789be1..5300b4103 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -12,8 +12,6 @@ class Contact < ApplicationRecord belongs_to :registrar, required: true has_many :domain_contacts has_many :domains, through: :domain_contacts - has_many :admin_domains, -> { merge(DomainContact.admin) }, source: :domain, - through: :domain_contacts has_many :legal_documents, as: :documentable has_many :registrant_domains, class_name: 'Domain', foreign_key: 'registrant_id' has_many :actions, dependent: :destroy @@ -264,7 +262,6 @@ class Contact < ApplicationRecord def registrant_user_company_contacts(registrant_user) ident = registrant_user.companies.collect(&:registration_number) - # ident = ['12345678'] where(ident_type: ORG, ident: ident, diff --git a/app/models/domain_contact.rb b/app/models/domain_contact.rb index 57446071a..910f4e445 100644 --- a/app/models/domain_contact.rb +++ b/app/models/domain_contact.rb @@ -6,8 +6,6 @@ class DomainContact < ApplicationRecord belongs_to :contact belongs_to :domain - scope :admin, -> { where(type: 'AdminDomainContact') } - attr_accessor :value_typeahead self.ignored_columns = %w[legacy_domain_id legacy_contact_id] From 0a7b754c4ce6c21b62afe421e6bb8fc7e07a4b35 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 13 Jul 2020 13:48:08 +0500 Subject: [PATCH 666/757] Add email description to epp responce on contact creation --- app/models/concerns/email_verifable.rb | 89 +++++++++++++++++++ app/models/epp/contact.rb | 5 +- config/initializers/truemail.rb | 77 ++++++++++++++++ config/locales/contacts.en.yml | 3 + .../epp/contact/create/base_test.rb | 35 ++++++++ test/models/contact_test.rb | 20 ++++- test/models/registrar_test.rb | 61 ++++++++++++- 7 files changed, 284 insertions(+), 6 deletions(-) create mode 100644 app/models/concerns/email_verifable.rb create mode 100644 config/initializers/truemail.rb diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb new file mode 100644 index 000000000..f573b5e44 --- /dev/null +++ b/app/models/concerns/email_verifable.rb @@ -0,0 +1,89 @@ +module Concerns + module EmailVerifable + extend ActiveSupport::Concern + + def email_verification + @email_verification ||= EmailAddressVerification.find_or_create_by(email: unicode_email, + domain: domain(email)) + end + + def billing_email_verification + return unless attribute_names.include?('billing_email') + + @billing_email_verification ||= EmailAddressVerification + .find_or_create_by(email: unicode_billing_email, + domain: domain(billing_email)) + end + + class_methods do + def domain(email) + Mail::Address.new(email).domain&.downcase || 'not_found' + rescue Mail::Field::IncompleteParseError + 'not_found' + end + + def local(email) + Mail::Address.new(email).local&.downcase || email + rescue Mail::Field::IncompleteParseError + email + end + + def punycode_to_unicode(email) + return email if domain(email) == 'not_found' + + local = local(email) + domain = SimpleIDN.to_unicode(domain(email)) + "#{local}@#{domain}"&.downcase + end + + def unicode_to_punycode(email) + return email if domain(email) == 'not_found' + + local = local(email) + domain = SimpleIDN.to_ascii(domain(email)) + "#{local}@#{domain}"&.downcase + end + end + + def unicode_billing_email + self.class.punycode_to_unicode(billing_email) + end + + def unicode_email + self.class.punycode_to_unicode(email) + end + + def domain(email) + SimpleIDN.to_unicode(self.class.domain(email)) + end + + def punycode_to_unicode(email) + self.class.punycode_to_unicode(email) + end + + def correct_email_format + return if email.blank? + + result = email_verification.verify + process_result(result: result, field: :email) + end + + def correct_billing_email_format + return if email.blank? + + result = billing_email_verification.verify + process_result(result: result, field: :billing_email) + end + + def process_result(result:, field:) + case result[:errors].keys.first + when :smtp + errors.add(field, I18n.t('activerecord.errors.models.contact.attributes.email.email_smtp_check_error')) + when :mx + errors.add(field, I18n.t('activerecord.errors.models.contact.attributes.email.email_mx_check_error')) + when :regex + errors.add(field, I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error')) + end + end + end +end diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index 3fb87a1f0..82dd57aa4 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -77,7 +77,10 @@ class Epp::Contact < Contact [:email, :invalid], [:country_code, :invalid], [:code, :invalid], - [:code, :too_long_contact_code] + [:code, :too_long_contact_code], + [:email, :email_smtp_check_error], + [:email, :email_mx_check_error], + [:email, :email_regex_check_error] ], '2302' => [ # Object exists [:code, :epp_id_taken] diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb new file mode 100644 index 000000000..26e4e0dc5 --- /dev/null +++ b/config/initializers/truemail.rb @@ -0,0 +1,77 @@ +require 'truemail' + +Truemail.configure do |config| + # Required parameter. Must be an existing email on behalf of which verification will be performed + config.verifier_email = ENV['action_mailer_default_from'] + + # Optional parameter. Must be an existing domain on behalf of which verification will be performed. + # By default verifier domain based on verifier email + # config.verifier_domain = 'internet.ee' + + # Optional parameter. You can override default regex pattern + # config.email_pattern = /regex_pattern/ + + # Optional parameter. You can override default regex pattern + # config.smtp_error_body_pattern = /regex_pattern/ + + # Optional parameter. Connection timeout is equal to 2 ms by default. + # config.connection_timeout = 1 + + # Optional parameter. A SMTP server response timeout is equal to 2 ms by default. + # config.response_timeout = 1 + + # Optional parameter. Total of connection attempts. It is equal to 2 by default. + # This parameter uses in mx lookup timeout error and smtp request (for cases when + # there is one mx server). + config.connection_attempts = 3 + + # Optional parameter. You can predefine default validation type for + # Truemail.validate('email@email.com') call without with-parameter + # Available validation types: :regex, :mx, :smtp + if Rails.env.production? + config.default_validation_type = :smtp + elsif Rails.env.test? + config.default_validation_type = :regex + else + config.default_validation_type = :mx + end + + # Optional parameter. You can predefine which type of validation will be used for domains. + # Also you can skip validation by domain. Available validation types: :regex, :mx, :smtp + # This configuration will be used over current or default validation type parameter + # All of validations for 'somedomain.com' will be processed with regex validation only. + # And all of validations for 'otherdomain.com' will be processed with mx validation only. + # It is equal to empty hash by default. + # config.validation_type_for = { 'somedomain.com' => :regex, 'otherdomain.com' => :mx } + + # Optional parameter. Validation of email which contains whitelisted domain always will + # return true. Other validations will not processed even if it was defined in validation_type_for + # It is equal to empty array by default. + # config.whitelisted_domains = [] + + # Optional parameter. With this option Truemail will validate email which contains whitelisted + # domain only, i.e. if domain whitelisted, validation will passed to Regex, MX or SMTP validators. + # Validation of email which not contains whitelisted domain always will return false. + # It is equal false by default. + #config.whitelist_validation = true + + # Optional parameter. Validation of email which contains blacklisted domain always will + # return false. Other validations will not processed even if it was defined in validation_type_for + # It is equal to empty array by default. + #config.blacklisted_domains = [] + + # Optional parameter. This option will provide to use not RFC MX lookup flow. + # It means that MX and Null MX records will be cheked on the DNS validation layer only. + # By default this option is disabled. + # config.not_rfc_mx_lookup_flow = true + + # Optional parameter. This option will be parse bodies of SMTP errors. It will be helpful + # if SMTP server does not return an exact answer that the email does not exist + # By default this option is disabled, available for SMTP validation only. + # config.smtp_safe_check = true + + # Optional parameter. This option will enable tracking events. You can print tracking events to + # stdout, write to file or both of these. Tracking event by default is :error + # Available tracking event: :all, :unrecognized_error, :recognized_error, :error + # config.logger = { tracking_event: :all, stdout: true, log_absolute_path: '/home/app/log/truemail.log' } +end diff --git a/config/locales/contacts.en.yml b/config/locales/contacts.en.yml index cdfe2277d..906bde193 100644 --- a/config/locales/contacts.en.yml +++ b/config/locales/contacts.en.yml @@ -20,6 +20,9 @@ en: email: blank: "Required parameter missing - email" invalid: "Email is invalid" + email_smtp_check_error: SMTP check error + email_mx_check_error: Mail domain not found + email_regex_check_error: Invalid format domains: exist: 'Object association prohibits operation' statuses: diff --git a/test/integration/epp/contact/create/base_test.rb b/test/integration/epp/contact/create/base_test.rb index 0a14f1f4f..e9a59b8d2 100644 --- a/test/integration/epp/contact/create/base_test.rb +++ b/test/integration/epp/contact/create/base_test.rb @@ -41,6 +41,41 @@ class EppContactCreateBaseTest < EppTestCase assert_not_empty contact.code end + def test_responces_error_with_email_error + name = 'new' + email = 'new@registrar@test' + phone = '+1.2' + + request_xml = <<-XML + + + + + + + #{name} + + #{phone} + #{email} + + + + + any + + + + + XML + + assert_no_difference 'Contact.count' do + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + + assert_epp_response :parameter_value_syntax_error + end + def test_respects_custom_code name = 'new' code = 'custom-id' diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 8847c8c49..f71546088 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -66,9 +66,25 @@ class ContactTest < ActiveSupport::TestCase contact.email = 'invalid' assert contact.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_smtp_check_error'), contact.errors.messages[:email].first + end - contact.email = 'valid@registrar.test' - assert contact.valid? + def test_email_verification_mx_error + Truemail.configure.default_validation_type = :mx + + contact = valid_contact + contact.email = 'somecrude31337joke@somestrange31337domain.ee' + assert contact.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_mx_check_error'), contact.errors.messages[:email].first + end + + def test_email_verification_regex_error + Truemail.configure.default_validation_type = :regex + + contact = valid_contact + contact.email = 'some@strangesentence@internet.ee' + assert contact.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), contact.errors.messages[:email].first end def test_invalid_without_phone diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index c5d832922..2536bbdd8 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -43,15 +43,25 @@ class RegistrarTest < ActiveSupport::TestCase registrar.email = 'invalid' assert registrar.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_smtp_check_error'), registrar.errors.messages[:email].first + end - registrar.email = 'valid@email.test' - assert registrar.valid? + def test_email_verification_mx_error + Truemail.configure.default_validation_type = :mx + + registrar = valid_registrar + registrar.email = 'somecrude31337joke@somestrange31337domain.ee' + registrar.billing_email = nil + + assert registrar.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_mx_check_error'), registrar.errors.messages[:email].first end def test_invalid_without_accounting_customer_code registrar = valid_registrar registrar.accounting_customer_code = '' assert registrar.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), registrar.errors.messages[:email].first end def test_optional_billing_email @@ -65,8 +75,53 @@ class RegistrarTest < ActiveSupport::TestCase registrar.billing_email = 'invalid' assert registrar.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_smtp_check_error'), registrar.errors.messages[:billing_email].first + end - registrar.billing_email = 'valid@email.test' + def test_billing_email_verification_mx_error + Truemail.configure.default_validation_type = :mx + + registrar = valid_registrar + registrar.billing_email = 'somecrude31337joke@somestrange31337domain.ee' + + assert registrar.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_mx_check_error'), registrar.errors.messages[:billing_email].first + end + + def test_billing_email_verification_regex_error + Truemail.configure.default_validation_type = :regex + + registrar = valid_registrar + registrar.billing_email = 'some@strangesentence@internet.ee' + + assert registrar.invalid? + assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), registrar.errors.messages[:billing_email].first + end + + def test_creates_email_verification_in_unicode + unicode_email = 'suur@äri.ee' + punycode_email = Registrar.unicode_to_punycode(unicode_email) + unicode_billing_email = 'billing@äri.ee' + punycode_billing_email = Registrar.unicode_to_punycode(unicode_billing_email) + + registrar = valid_registrar + registrar.email = punycode_email + registrar.billing_email = punycode_billing_email + registrar.save + + assert_equal registrar.email_verification.email, unicode_email + assert_equal registrar.billing_email_verification.email, unicode_billing_email + end + + def test_invalid_without_accounting_customer_code + registrar = valid_registrar + registrar.accounting_customer_code = '' + assert registrar.invalid? + end + + def test_optional_billing_email + registrar = valid_registrar + registrar.billing_email = '' assert registrar.valid? end From e4a02c2e47e1dbd1c113ec79664d820b1ba4a5b5 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 13 Jul 2020 15:04:56 +0500 Subject: [PATCH 667/757] Return truemail This reverts commit 862f5639ebbe4d3e6abd5d5be7fb7840e7b83bdf. --- .codeclimate.yml | 4 + .travis.yml | 3 +- Gemfile | 6 +- Gemfile.lock | 94 +++--- app/controllers/admin/contacts_controller.rb | 14 +- app/helpers/application_helper.rb | 10 + app/jobs/verify_emails_job.rb | 45 +++ app/models/concerns/email_verifable.rb | 2 + app/models/contact.rb | 9 +- app/models/email_address_verification.rb | 56 ++++ app/models/epp/contact.rb | 4 +- app/models/nameserver.rb | 2 +- app/models/registrar.rb | 8 +- app/views/admin/contacts/index.haml | 9 +- .../admin/contacts/partials/_general.haml | 2 +- app/views/admin/registrars/index.html.erb | 9 + .../admin/registrars/show/_billing.html.erb | 6 +- .../admin/registrars/show/_contacts.html.erb | 6 +- config/initializers/airbrake.rb | 2 +- config/initializers/truemail.rb | 6 +- config/locales/admin/email_verifable.en.yml | 5 + config/locales/admin/email_verifable.et.yml | 5 + config/locales/en.yml | 1 + config/locales/et.yml | 1 + config/schedule.rb | 4 + ...20200608084321_fill_email_verifications.rb | 21 ++ ...0827_create_email_address_verifications.rb | 13 + ...nge_email_verification_fields_to_citext.rb | 13 + db/structure.sql | 304 +++++++++++++----- lib/tasks/verify_email.rake | 23 ++ test/fixtures/contacts.yml | 8 + test/jobs/verify_emails_job_test.rb | 59 ++++ test/models/contact_test.rb | 26 +- test/models/registrar_test.rb | 38 ++- test/tasks/emails/verify_email_task_test.rb | 63 ++++ 35 files changed, 728 insertions(+), 153 deletions(-) create mode 100644 app/jobs/verify_emails_job.rb create mode 100644 app/models/email_address_verification.rb create mode 100644 config/locales/admin/email_verifable.en.yml create mode 100644 config/locales/admin/email_verifable.et.yml create mode 100644 db/data/20200608084321_fill_email_verifications.rb create mode 100644 db/migrate/20200605100827_create_email_address_verifications.rb create mode 100644 db/migrate/20200610090110_change_email_verification_fields_to_citext.rb create mode 100644 lib/tasks/verify_email.rake create mode 100644 test/jobs/verify_emails_job_test.rb create mode 100644 test/tasks/emails/verify_email_task_test.rb diff --git a/.codeclimate.yml b/.codeclimate.yml index 2d22653b8..2bc90b200 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -23,6 +23,10 @@ plugins: rubocop: enabled: true channel: rubocop-0-74 +checks: + method-lines: + config: + threshold: 40 exclude_patterns: - "app/models/version/" - "bin/" diff --git a/.travis.yml b/.travis.yml index 01373f29d..bb74deecc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,6 @@ language: ruby cache: bundler env: - DB=postgresql -bundler_args: --without development staging production before_install: - "wget -N http://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip -P ~/" - "unzip ~/chromedriver_linux64.zip -d ~/" @@ -10,6 +9,8 @@ before_install: - "sudo mv -f ~/chromedriver /usr/local/share/" - "sudo chmod +x /usr/local/share/chromedriver" - "sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver" + - "bundle config set without 'development staging production'" + - "bundle config set deployment '[secure]'" before_script: - "cp config/application.yml.sample config/application.yml" - "echo \"openssl_config_path: 'test/fixtures/files/test_ca/openssl.cnf'\" >> config/application.yml" diff --git a/Gemfile b/Gemfile index f6c8a6397..99091f556 100644 --- a/Gemfile +++ b/Gemfile @@ -11,10 +11,12 @@ gem 'uglifier' gem 'figaro', '1.1.1' # model related +gem 'activerecord-import' gem 'paper_trail', '~> 10.3' gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 gem 'ransack', '~> 2.3' +gem 'truemail', '~> 1.7' # validates email by regexp, mail server existence and address existence gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server @@ -39,7 +41,7 @@ gem 'grape' # registry specfic gem 'data_migrate', '~> 6.1' gem 'isikukood' # for EE-id validation -gem 'simpleidn', '0.0.9' # For punycode +gem 'simpleidn', '0.1.1' # For punycode gem 'money-rails' gem 'whenever', '0.9.4', require: false @@ -67,7 +69,7 @@ gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'lhv', github: 'internetee/lhv', branch: :master gem 'domain_name' gem 'haml', '~> 5.0' -gem 'wkhtmltopdf-binary' +gem 'wkhtmltopdf-binary', '~> 0.12.5.1' gem 'directo', github: 'internetee/directo', branch: 'master' diff --git a/Gemfile.lock b/Gemfile.lock index effb7ff38..e4ad26396 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/directo.git - revision: bdfab4be20803c666dcefc9a9c607f915a056ac5 + revision: 8ff8a382d004ffb85722a6a7a68a020bd4d7159b branch: master specs: directo (1.0.1) @@ -112,6 +112,8 @@ GEM activerecord (6.0.3.2) activemodel (= 6.0.3.2) activesupport (= 6.0.3.2) + activerecord-import (1.0.5) + activerecord (>= 3.2) activestorage (6.0.3.2) actionpack (= 6.0.3.2) activejob (= 6.0.3.2) @@ -125,18 +127,18 @@ GEM zeitwerk (~> 2.2, >= 2.2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - airbrake (10.0.1) + airbrake (10.0.5) airbrake-ruby (~> 4.13) - airbrake-ruby (4.13.0) + airbrake-ruby (4.15.0) rbtree3 (~> 0.5) akami (1.3.1) gyoku (>= 0.4.0) nokogiri - autodoc (0.7.3) + autodoc (0.7.4) actionpack activesupport (>= 3.0.0) rspec - autoprefixer-rails (9.7.4) + autoprefixer-rails (9.8.4) execjs bcrypt (3.1.13) bootsnap (1.4.6) @@ -145,8 +147,8 @@ GEM autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) builder (3.2.4) - cancancan (3.0.2) - capybara (3.31.0) + cancancan (3.1.0) + capybara (3.33.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -165,8 +167,8 @@ GEM execjs coffee-script-source (1.12.2) concurrent-ruby (1.1.6) - countries (3.0.0) - i18n_data (~> 0.8.0) + countries (3.0.1) + i18n_data (~> 0.10.0) sixarm_ruby_unaccent (~> 1.1) unicode_utils (~> 1.4) crack (0.4.3) @@ -176,22 +178,23 @@ GEM daemons-rails (1.2.1) daemons multi_json (~> 1.0) - data_migrate (6.2.0) + data_migrate (6.3.0) rails (>= 5.0) - database_cleaner (1.8.2) - devise (4.7.1) + database_cleaner (1.8.5) + devise (4.7.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.3) + diff-lcs (1.4.4) docile (1.3.2) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dry-configurable (0.9.0) + dry-configurable (0.11.6) concurrent-ruby (~> 1.0) dry-core (~> 0.4, >= 0.4.7) + dry-equalizer (~> 0.2) dry-container (0.7.2) concurrent-ruby (~> 1.0) dry-configurable (~> 0.1, >= 0.1.3) @@ -199,11 +202,11 @@ GEM concurrent-ruby (~> 1.0) dry-equalizer (0.3.0) dry-inflector (0.2.0) - dry-logic (1.0.5) + dry-logic (1.0.6) concurrent-ruby (~> 1.0) dry-core (~> 0.2) dry-equalizer (~> 0.2) - dry-types (1.2.2) + dry-types (1.4.0) concurrent-ruby (~> 1.0) dry-container (~> 0.3) dry-core (~> 0.4, >= 0.4.4) @@ -213,12 +216,12 @@ GEM erubi (1.9.0) erubis (2.7.0) execjs (2.7.0) - ffi (1.12.2) + ffi (1.13.1) figaro (1.1.1) thor (~> 0.14) globalid (0.4.2) activesupport (>= 4.2.0) - grape (1.3.0) + grape (1.3.3) activesupport builder dry-types (>= 1.1) @@ -230,7 +233,7 @@ GEM haml (5.1.2) temple (>= 0.8.0) tilt - hashdiff (1.0.0) + hashdiff (1.0.1) hpricot (0.8.6) http-accept (1.7.0) http-cookie (1.0.3) @@ -241,10 +244,10 @@ GEM socksify i18n (1.8.3) concurrent-ruby (~> 1.0) - i18n_data (0.8.0) + i18n_data (0.10.0) isikukood (0.1.2) iso8601 (0.12.1) - jquery-rails (4.3.5) + jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) @@ -264,7 +267,7 @@ GEM kaminari-core (= 1.2.1) kaminari-core (1.2.1) keystores (0.4.0) - libxml-ruby (3.1.0) + libxml-ruby (3.2.0) listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) @@ -279,7 +282,7 @@ GEM method_source (0.8.2) mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2019.1009) + mime-types-data (3.2020.0512) mimemagic (0.3.5) mina (0.3.1) open4 (~> 1.3.4) @@ -289,7 +292,7 @@ GEM minitest (5.14.1) monetize (1.9.4) money (~> 6.12) - money (6.13.7) + money (6.13.8) i18n (>= 0.6.4, <= 2) money-rails (1.13.3) activesupport (>= 3.0) @@ -304,7 +307,7 @@ GEM mustermann (>= 1.0.0) netrc (0.11.0) nio4r (2.5.2) - nokogiri (1.10.9) + nokogiri (1.10.10) mini_portile2 (~> 2.4.0) nori (2.6.0) open4 (1.3.4) @@ -312,7 +315,7 @@ GEM paper_trail (10.3.1) activerecord (>= 4.2) request_store (~> 1.1) - pdfkit (0.8.4.1) + pdfkit (0.8.4.3.1) pg (1.2.2) polyamorous (2.3.2) activerecord (>= 5.2.1) @@ -320,7 +323,7 @@ GEM coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - public_suffix (4.0.3) + public_suffix (4.0.5) puma (4.3.5) nio4r (~> 2.0) que (0.14.3) @@ -375,10 +378,10 @@ GEM ffi (~> 1.0) rbtree3 (0.6.0) rdoc (4.3.0) - regexp_parser (1.6.0) + regexp_parser (1.7.1) request_store (1.5.0) rack (>= 1.4) - responders (3.0.0) + responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) rest-client (2.1.0) @@ -390,21 +393,21 @@ GEM rspec-core (~> 3.9.0) rspec-expectations (~> 3.9.0) rspec-mocks (~> 3.9.0) - rspec-core (3.9.1) - rspec-support (~> 3.9.1) - rspec-expectations (3.9.0) + rspec-core (3.9.2) + rspec-support (~> 3.9.3) + rspec-expectations (3.9.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) rspec-mocks (3.9.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) - rspec-support (3.9.2) + rspec-support (3.9.3) ruby2_keywords (0.0.2) - rubyzip (2.2.0) + rubyzip (2.3.0) safe_yaml (1.0.5) sass-rails (6.0.0) sassc-rails (~> 2.1, >= 2.1.1) - sassc (2.2.1) + sassc (2.4.0) ffi (~> 1.9) sassc-rails (2.1.2) railties (>= 4.0.0) @@ -412,7 +415,7 @@ GEM sprockets (> 3.0) sprockets-rails tilt - savon (2.12.0) + savon (2.12.1) akami (~> 1.2) builder (>= 2.1.2) gyoku (~> 1.2) @@ -434,7 +437,8 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - simpleidn (0.0.9) + simpleidn (0.1.1) + unf (~> 0.1.4) sinatra (2.0.8.1) mustermann (~> 1.0) rack (~> 2.0) @@ -454,13 +458,15 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) + truemail (1.8.0) + simpleidn (~> 0.1.1) tzinfo (1.2.7) thread_safe (~> 0.1) uglifier (4.2.0) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) + unf_ext (0.0.7.7) unicode_utils (1.4.0) validates_email_format_of (1.6.3) i18n @@ -469,11 +475,11 @@ GEM wasabi (3.5.0) httpi (~> 2.0) nokogiri (>= 1.4.2) - webdrivers (4.2.0) + webdrivers (4.4.1) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) - webmock (3.8.0) + webmock (3.8.3) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -482,7 +488,7 @@ GEM websocket-extensions (0.1.5) whenever (0.9.4) chronic (>= 0.6.3) - wkhtmltopdf-binary (0.12.5.1) + wkhtmltopdf-binary (0.12.5.4) xpath (3.2.0) nokogiri (~> 1.8) zeitwerk (2.3.1) @@ -491,6 +497,7 @@ PLATFORMS ruby DEPENDENCIES + activerecord-import airbrake autodoc bootsnap (>= 1.1.0) @@ -542,13 +549,14 @@ DEPENDENCIES select2-rails (= 3.5.9.3) selectize-rails (= 0.12.1) simplecov (= 0.17.1) - simpleidn (= 0.0.9) + simpleidn (= 0.1.1) + truemail (~> 1.7) uglifier validates_email_format_of (= 1.6.3) webdrivers webmock whenever (= 0.9.4) - wkhtmltopdf-binary + wkhtmltopdf-binary (~> 0.12.5.1) BUNDLED WITH 2.1.4 diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index 4eea4faad..793fa1209 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -13,10 +13,10 @@ module Admin search_params[:registrant_domains_id_not_null] = 1 end - contacts = Contact.includes(:registrar).joins(:registrar).select('contacts.*, registrars.name') + contacts = Contact.includes(:registrar).joins(:registrar) + .select('contacts.*, registrars.name') contacts = contacts.filter_by_states(params[:statuses_contains].join(',')) if params[:statuses_contains] - contacts = contacts.where("ident_country_code is null or ident_country_code=''") if params[:only_no_country_code].eql?('1') - + contacts = filter_by_flags(contacts) normalize_search_parameters do @q = contacts.search(search_params) @@ -26,6 +26,14 @@ module Admin @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? end + def filter_by_flags(contacts) + if params[:only_no_country_code].eql?('1') + contacts = contacts.where("ident_country_code is null or ident_country_code=''") + end + contacts = contacts.email_verification_failed if params[:email_verification_failed].eql?('1') + contacts + end + def search render json: Contact.search_by_query(params[:q]) end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8de3fdc70..5c742afce 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -108,4 +108,14 @@ module ApplicationHelper def body_css_class [controller_path.split('/').map!(&:dasherize), action_name.dasherize, 'page'].join('-') end + + def verified_email_span(verification) + content_tag(:span, verification.email, class: verified_email_class(verification)) + end + + def verified_email_class(verification) + return 'text-danger' if verification.failed? + return 'text-primary' if verification.not_verified? + return 'text-success' if verification.verified? + end end diff --git a/app/jobs/verify_emails_job.rb b/app/jobs/verify_emails_job.rb new file mode 100644 index 000000000..75f4b7d91 --- /dev/null +++ b/app/jobs/verify_emails_job.rb @@ -0,0 +1,45 @@ +class VerifyEmailsJob < Que::Job + def run(verification_id) + email_address_verification = run_condition(EmailAddressVerification.find(verification_id)) + + return if email_address_verification.recently_verified? + + ActiveRecord::Base.transaction do + email_address_verification.verify + log_success(email_address_verification) + destroy + end + rescue StandardError => e + log_error(verification: email_address_verification, error: e) + raise e + end + + private + + def run_condition(email_address_verification) + destroy unless email_address_verification + destroy if email_address_verification.recently_verified? + + email_address_verification + end + + def logger + @logger ||= Logger.new(Rails.root.join('log', 'email_verification.log')) + end + + def log_success(verification) + email = verification.try(:email) || verification + message = "Email address #{email} verification done" + logger.info message + end + + def log_error(verification:, error:) + email = verification.try(:email) || verification + message = <<~TEXT.squish + There was an error verifying email #{email}. + The error message was the following: #{error} + This job will retry. + TEXT + logger.error message + end +end diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb index f573b5e44..dc512b2c8 100644 --- a/app/models/concerns/email_verifable.rb +++ b/app/models/concerns/email_verifable.rb @@ -75,6 +75,7 @@ module Concerns process_result(result: result, field: :billing_email) end + # rubocop:disable Metrics/LineLength def process_result(result:, field:) case result[:errors].keys.first when :smtp @@ -85,5 +86,6 @@ module Concerns errors.add(field, I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error')) end end + # rubocop:enable Metrics/LineLength end end diff --git a/app/models/contact.rb b/app/models/contact.rb index f07c0c114..ac64b059f 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -7,6 +7,7 @@ class Contact < ApplicationRecord include Concerns::Contact::Transferable include Concerns::Contact::Identical include Concerns::Contact::Disclosable + include Concerns::EmailVerifable belongs_to :original, class_name: self.name belongs_to :registrar, required: true @@ -22,6 +23,11 @@ class Contact < ApplicationRecord accepts_nested_attributes_for :legal_documents + scope :email_verification_failed, lambda { + joins('LEFT JOIN email_address_verifications emv ON contacts.email = emv.email') + .where('success = false and verified_at IS NOT NULL') + } + validates :name, :email, presence: true validates :street, :city, :zip, :country_code, presence: true, if: lambda { self.class.address_processing? @@ -29,8 +35,7 @@ class Contact < ApplicationRecord validates :phone, presence: true, e164: true, phone: true - validates :email, format: /@/ - validates :email, email_format: { message: :invalid }, if: proc { |c| c.will_save_change_to_email? } + validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? } validates :code, uniqueness: { message: :epp_id_taken }, diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb new file mode 100644 index 000000000..2fe7c0dbe --- /dev/null +++ b/app/models/email_address_verification.rb @@ -0,0 +1,56 @@ +class EmailAddressVerification < ApplicationRecord + RECENTLY_VERIFIED_PERIOD = 1.month + + scope :not_verified_recently, lambda { + where('verified_at IS NULL or verified_at < ?', verification_period) + } + + scope :verified_recently, lambda { + where('verified_at IS NOT NULL and verified_at >= ?', verification_period).where(success: true) + } + + scope :verification_failed, lambda { + where.not(verified_at: nil).where(success: false) + } + + scope :by_domain, ->(domain_name) { where(domain: domain_name) } + + def recently_verified? + verified_at.present? && + verified_at > verification_period + end + + def verification_period + self.class.verification_period + end + + def self.verification_period + Time.zone.now - RECENTLY_VERIFIED_PERIOD + end + + def not_verified? + verified_at.blank? && !success + end + + def failed? + verified_at.present? && !success + end + + def verified? + success + end + + def verify + validation_request = Truemail.validate(email) + + if validation_request.result.success + update(verified_at: Time.zone.now, + success: true) + else + update(verified_at: Time.zone.now, + success: false) + end + + validation_request.result + end +end diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index 82dd57aa4..6867b037d 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -60,6 +60,7 @@ class Epp::Contact < Contact delegate :ident_attr_valid?, to: :class + # rubocop:disable Style/SymbolArray def epp_code_map { '2003' => [ # Required parameter missing @@ -80,7 +81,7 @@ class Epp::Contact < Contact [:code, :too_long_contact_code], [:email, :email_smtp_check_error], [:email, :email_mx_check_error], - [:email, :email_regex_check_error] + [:email, :email_regex_check_error], ], '2302' => [ # Object exists [:code, :epp_id_taken] @@ -90,6 +91,7 @@ class Epp::Contact < Contact ] } end + # rubocop:enable Style/SymbolArray def attach_legal_document(legal_document_data) return unless legal_document_data diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 3ddf1d1c5..3e4051165 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -88,7 +88,7 @@ class Nameserver < ApplicationRecord end def normalize_attributes - self.hostname = hostname.try(:strip).try(:downcase) + self.hostname = hostname.try(:strip).try(:downcase).gsub(/\.$/, '') self.ipv4 = Array(ipv4).reject(&:blank?).map(&:strip) self.ipv6 = Array(ipv6).reject(&:blank?).map(&:strip).map(&:upcase) end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index dbdd7e8d3..470d768b7 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -1,6 +1,7 @@ class Registrar < ApplicationRecord include Versions # version/registrar_version.rb include Concerns::Registrar::BookKeeping + include Concerns::EmailVerifable include Concerns::Registrar::LegalDoc has_many :domains, dependent: :restrict_with_error @@ -29,14 +30,11 @@ class Registrar < ApplicationRecord validates :vat_rate, numericality: { greater_than_or_equal_to: 0, less_than: 100 }, allow_nil: true - validate :forbid_special_code - attribute :vat_rate, ::Type::VATRate.new after_initialize :set_defaults - validates :email, email_format: { message: :invalid }, - allow_blank: true, if: proc { |c| c.will_save_change_to_email? } - validates :billing_email, email_format: { message: :invalid }, allow_blank: true + validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? } + validate :correct_billing_email_format alias_attribute :contact_email, :email diff --git a/app/views/admin/contacts/index.haml b/app/views/admin/contacts/index.haml index cc80ac744..cbd11d3fc 100644 --- a/app/views/admin/contacts/index.haml +++ b/app/views/admin/contacts/index.haml @@ -63,6 +63,10 @@ .form-group = label_tag :only_no_country_code, "Ident CC missing" = check_box_tag :only_no_country_code, '1',params[:only_no_country_code].eql?('1'), style: 'width:auto;height:auto;float:right' + .col-md-3 + .form-group + = label_tag :email_verification_failed, "Email verification failed" + = check_box_tag :email_verification_failed, '1',params[:email_verification_failed].eql?('1'), style: 'width:auto;height:auto;float:right' .row .col-md-3{style: 'padding-top: 25px;float:right;'} @@ -85,7 +89,9 @@ %th{class: 'col-xs-2'} = sort_link(@q, 'ident', t(:ident)) %th{class: 'col-xs-2'} - = sort_link(@q, 'email', t(:created_at)) + = sort_link(@q, 'email', t(:email)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'created_at', t(:created_at)) %th{class: 'col-xs-2'} = sort_link(@q, 'registrar_name', t(:registrar_name)) %tbody @@ -94,6 +100,7 @@ %td= link_to(contact, admin_contact_path(contact)) %td= contact.code %td= ident_for(contact) + %td= verified_email_span(contact.email_verification) %td= l(contact.created_at, format: :short) %td - if contact.registrar diff --git a/app/views/admin/contacts/partials/_general.haml b/app/views/admin/contacts/partials/_general.haml index 029f89509..6568cd3d0 100644 --- a/app/views/admin/contacts/partials/_general.haml +++ b/app/views/admin/contacts/partials/_general.haml @@ -17,7 +17,7 @@ %dd= ident_for(@contact) %dt= t(:email) - %dd= @contact.email + %dd= verified_email_span(@contact.email_verification) %dt= t(:phone) %dd= @contact.phone diff --git a/app/views/admin/registrars/index.html.erb b/app/views/admin/registrars/index.html.erb index a66816568..e641f5294 100644 --- a/app/views/admin/registrars/index.html.erb +++ b/app/views/admin/registrars/index.html.erb @@ -28,6 +28,9 @@ <%= t(:test_registrar) %> + + <%= t(:emails) %> + @@ -45,6 +48,12 @@ <%= "#{x.test_registrar}" %> + + <%= verified_email_span(x.email_verification) %> + <% if x[:billing_email].present? %> + <%= verified_email_span(x.billing_email_verification) %> + <% end %> + <% end %> diff --git a/app/views/admin/registrars/show/_billing.html.erb b/app/views/admin/registrars/show/_billing.html.erb index da79b9074..07bccc7f4 100644 --- a/app/views/admin/registrars/show/_billing.html.erb +++ b/app/views/admin/registrars/show/_billing.html.erb @@ -15,7 +15,9 @@
<%= registrar.accounting_customer_code %>
<%= Registrar.human_attribute_name :billing_email %>
-
<%= registrar.billing_email %>
+
+ <%= verified_email_span(registrar.billing_email_verification) %> +
<%= Registrar.human_attribute_name :reference_no %>
<%= registrar.reference_no %>
@@ -24,4 +26,4 @@
<%= registrar.iban %>
- \ No newline at end of file + diff --git a/app/views/admin/registrars/show/_contacts.html.erb b/app/views/admin/registrars/show/_contacts.html.erb index f467e6a51..0ca1158d3 100644 --- a/app/views/admin/registrars/show/_contacts.html.erb +++ b/app/views/admin/registrars/show/_contacts.html.erb @@ -15,7 +15,9 @@
<%= @registrar.phone %>
<%= Registrar.human_attribute_name :email %>
-
<%= @registrar.email %>
+
+ <%= verified_email_span(@registrar.email_verification) %> +
- \ No newline at end of file + diff --git a/config/initializers/airbrake.rb b/config/initializers/airbrake.rb index 5c1983369..abfe408c1 100644 --- a/config/initializers/airbrake.rb +++ b/config/initializers/airbrake.rb @@ -17,5 +17,5 @@ Airbrake.configure do |config| end config.environment = ENV['airbrake_env'] || Rails.env config.ignore_environments = %w[test] - config.blacklist_keys = Rails.application.config.filter_parameters + config.blocklist_keys = Rails.application.config.filter_parameters end diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index 26e4e0dc5..88f244e8f 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -29,11 +29,9 @@ Truemail.configure do |config| # Truemail.validate('email@email.com') call without with-parameter # Available validation types: :regex, :mx, :smtp if Rails.env.production? - config.default_validation_type = :smtp - elsif Rails.env.test? - config.default_validation_type = :regex - else config.default_validation_type = :mx + else + config.default_validation_type = :regex end # Optional parameter. You can predefine which type of validation will be used for domains. diff --git a/config/locales/admin/email_verifable.en.yml b/config/locales/admin/email_verifable.en.yml new file mode 100644 index 000000000..724fa4c32 --- /dev/null +++ b/config/locales/admin/email_verifable.en.yml @@ -0,0 +1,5 @@ +en: + email_verifable: + email_smtp_check_error: SMTP check error + email_mx_check_error: Mail domain not found + email_regex_check_error: Invalid format diff --git a/config/locales/admin/email_verifable.et.yml b/config/locales/admin/email_verifable.et.yml new file mode 100644 index 000000000..6c008ed11 --- /dev/null +++ b/config/locales/admin/email_verifable.et.yml @@ -0,0 +1,5 @@ +et: + email_verifable: + email_smtp_check_error: Eposti aadressi ei leitud (SMTP viga) + email_mx_check_error: Eposti aadressi domeeni ei leitud + email_regex_check_error: Eposti aadress on vigane diff --git a/config/locales/en.yml b/config/locales/en.yml index a825b1dc0..27299072e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -636,6 +636,7 @@ en: edit_dispute: 'Edit dispute' optional: 'Optional' test_registrar: "Test registrar" + emails: 'Email addresses' verified_confirm: 'Verified status is for cases when current registrant is the one applying for the update. Legal document signed by the registrant is required. Are you sure this update is properly verified with the registrant?' verified: 'Verified' deleted: 'Deleted' diff --git a/config/locales/et.yml b/config/locales/et.yml index 05d32be24..9cb8aaa4a 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -5,3 +5,4 @@ et: date: # Don't forget the nil at the beginning; there's no such thing as a 0th month month_names: [~, Jaanuar, Veebruar, Märts, Aprill, Mai, Juuni, Juuli, August, September, Oktoober, November, Detsember] + emails: "Meillaadressid" diff --git a/config/schedule.rb b/config/schedule.rb index 089ce93f9..7ebf97d12 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -62,6 +62,10 @@ if @cron_group == 'registry' rake 'domain:discard' end + every 10.minutes do + rake 'verify_email:all_domains' + end + # Should be at least once every 4 days, since according to LHV specs: # "Unread messages older than 5 days are automatically scheduled for deletion" # https://partners.lhv.ee/en/connect/#messaging diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb new file mode 100644 index 000000000..37a7f275c --- /dev/null +++ b/db/data/20200608084321_fill_email_verifications.rb @@ -0,0 +1,21 @@ +class FillEmailVerifications < ActiveRecord::Migration[6.0] + include Concerns::EmailVerifable + + def up + registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?) + registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) + contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) + + emails = (contact_emails + registrar_emails + registrar_billing_emails) + emails = emails.map{ |email| punycode_to_unicode(email) }.uniq + + result = emails.map do |email| + { email: email, domain: domain(email) } + end + EmailAddressVerification.import result, batch_size: 500 + end + + def down + EmailAddressVerification.delete_all + end +end diff --git a/db/migrate/20200605100827_create_email_address_verifications.rb b/db/migrate/20200605100827_create_email_address_verifications.rb new file mode 100644 index 000000000..7f618b3a7 --- /dev/null +++ b/db/migrate/20200605100827_create_email_address_verifications.rb @@ -0,0 +1,13 @@ +class CreateEmailAddressVerifications < ActiveRecord::Migration[6.0] + def change + create_table :email_address_verifications do |t| + t.string :email, null: false + t.datetime :verified_at + t.boolean :success, null: false, default: false + t.string :domain, null: false + end + + add_index :email_address_verifications, :email, unique: true + add_index :email_address_verifications, :domain + end +end diff --git a/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb b/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb new file mode 100644 index 000000000..a7e2f8ee8 --- /dev/null +++ b/db/migrate/20200610090110_change_email_verification_fields_to_citext.rb @@ -0,0 +1,13 @@ +class ChangeEmailVerificationFieldsToCitext < ActiveRecord::Migration[6.0] + def up + enable_extension 'citext' + change_column :email_address_verifications, :email, :citext + change_column :email_address_verifications, :domain, :citext + end + + def down + change_column :email_address_verifications, :email, :string + change_column :email_address_verifications, :domain, :string + disable_extension 'citext' + end +end diff --git a/db/structure.sql b/db/structure.sql index 2455bec5a..29e59a8a0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -33,10 +33,17 @@ CREATE EXTENSION IF NOT EXISTS btree_gist WITH SCHEMA public; -- --- Name: EXTENSION btree_gist; Type: COMMENT; Schema: -; Owner: - +-- Name: citext; Type: EXTENSION; Schema: -; Owner: - -- -COMMENT ON EXTENSION btree_gist IS 'support for indexing common datatypes in GiST'; +CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public; + + +-- +-- Name: EXTENSION citext; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON EXTENSION citext IS 'data type for case-insensitive character strings'; -- @@ -817,7 +824,99 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.email_address_verifications ( + id bigint NOT NULL, + email public.citext NOT NULL, + verified_at timestamp without time zone, + success boolean DEFAULT false NOT NULL, + domain public.citext NOT NULL +); + + +-- +-- Name: email_address_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_address_verifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_address_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_address_verifications_id_seq OWNED BY public.email_address_verifications.id; + + +-- +-- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.email_addresses_validations ( + id bigint NOT NULL, + email character varying NOT NULL, + validated_at timestamp without time zone +); + + +-- +-- Name: email_addresses_validations_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_addresses_validations_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_addresses_validations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_addresses_validations_id_seq OWNED BY public.email_addresses_validations.id; + + +-- +-- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.email_addresses_verifications ( + id bigint NOT NULL, + email character varying NOT NULL, + validated_at timestamp without time zone +); + + +-- +-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_addresses_verifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_addresses_verifications_id_seq OWNED BY public.email_addresses_verifications.id; + + +-- +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.epp_sessions ( @@ -2492,21 +2591,42 @@ ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('pu -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: email_address_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_address_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_address_verifications_id_seq'::regclass); + + +-- +-- Name: email_addresses_validations id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_validations ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_validations_id_seq'::regclass); + + +-- +-- Name: email_addresses_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_verifications_id_seq'::regclass); + + +-- +-- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); @@ -2907,7 +3027,31 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: email_address_verifications email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_address_verifications + ADD CONSTRAINT email_address_verifications_pkey PRIMARY KEY (id); + + +-- +-- Name: email_addresses_validations email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_validations + ADD CONSTRAINT email_addresses_validations_pkey PRIMARY KEY (id); + + +-- +-- Name: email_addresses_verifications email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_verifications + ADD CONSTRAINT email_addresses_verifications_pkey PRIMARY KEY (id); + + +-- +-- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -2915,7 +3059,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -3494,434 +3638,447 @@ CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (regist -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain); + + +-- +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); + + +-- +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); - -- --- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3929,7 +4086,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4551,7 +4708,8 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200505150413'), ('20200518104105'), ('20200529115011'), +('20200605100827'), +('20200610090110'), ('20200630081231'), ('20200714115338'); - diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake new file mode 100644 index 000000000..d49bb38b9 --- /dev/null +++ b/lib/tasks/verify_email.rake @@ -0,0 +1,23 @@ +namespace :verify_email do + desc 'Stars verifying email jobs for all the domain' + task all_domains: :environment do + verifications_by_domain = EmailAddressVerification.not_verified_recently.group_by(&:domain) + verifications_by_domain.each do |_domain, verifications| + ver = verifications.sample # Verify random email to not to clog the SMTP servers + VerifyEmailsJob.enqueue(ver.id) + next + end + end + + # Need to be run like 'bundle exec rake verify_email:domain['gmail.com']' + # In zsh syntax will be 'bundle exec rake verify_email:domain\['gmail.com'\]' + # Default 'bundle exec rake verify_email:domain' wil use 'internet.ee' domain + desc 'Stars verifying email jobs for domain stated in argument' + task :domain, [:domain_name] => [:environment] do |_task, args| + args.with_defaults(domain_name: 'internet.ee') + + verifications_by_domain = EmailAddressVerification.not_verified_recently + .by_domain(args[:domain_name]) + verifications_by_domain.map { |ver| VerifyEmailsJob.enqueue(ver.id) } + end +end diff --git a/test/fixtures/contacts.yml b/test/fixtures/contacts.yml index ddfbfe93f..0173d56dd 100644 --- a/test/fixtures/contacts.yml +++ b/test/fixtures/contacts.yml @@ -85,3 +85,11 @@ invalid: auth_info: any registrar: bestnames uuid: bd80c0f9-26ee-49e0-a2cb-2311d931c433 + +invalid_email: + name: any + code: invalid_email + email: invalid@invalid. + auth_info: any + registrar: bestnames + uuid: fa8c4f51-a221-4628-b3c6-47995f4edea3 diff --git a/test/jobs/verify_emails_job_test.rb b/test/jobs/verify_emails_job_test.rb new file mode 100644 index 000000000..f55a474db --- /dev/null +++ b/test/jobs/verify_emails_job_test.rb @@ -0,0 +1,59 @@ +require "test_helper" + +class VerifyEmailsJobTest < ActiveSupport::TestCase + def setup + @contact = contacts(:john) + @invalid_contact = contacts(:invalid_email) + @contact_verification = @contact.email_verification + @invalid_contact_verification = @invalid_contact.email_verification + + @default_whitelist = Truemail.configure.whitelisted_domains + @default_blacklist = Truemail.configure.blacklisted_domains + Truemail.configure.whitelisted_domains = whitelisted_domains + Truemail.configure.blacklisted_domains = blacklisted_domains + end + + def teardown + Truemail.configure.whitelisted_domains = @default_whitelist + Truemail.configure.blacklisted_domains = @default_blacklist + end + + def domain(email) + Mail::Address.new(email).domain + rescue Mail::Field::IncompleteParseError + nil + end + + def whitelisted_domains + [domain(@contact.email)].reject(&:blank?) + end + + def blacklisted_domains + [domain(@invalid_contact.email)].reject(&:blank?) + end + + def test_job_checks_if_email_valid + VerifyEmailsJob.run(@contact_verification.id) + @contact_verification.reload + + assert @contact_verification.success + end + + def test_job_checks_does_not_run_if_recent + old_verified_at = Time.zone.now - 10.days + @contact_verification.update(success: true, verified_at: old_verified_at) + assert @contact_verification.recently_verified? + + VerifyEmailsJob.run(@contact_verification.id) + @contact_verification.reload + + assert_in_delta @contact_verification.verified_at.to_i, old_verified_at.to_i, 1 + end + + def test_job_checks_if_email_invalid + VerifyEmailsJob.run(@invalid_contact_verification.id) + @contact_verification.reload + + refute @contact_verification.success + end +end diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index f71546088..f833011c6 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -3,6 +3,11 @@ require 'test_helper' class ContactTest < ActiveSupport::TestCase setup do @contact = contacts(:john) + @old_validation_type = Truemail.configure.default_validation_type + end + + teardown do + Truemail.configure.default_validation_type = @old_validation_type end def test_valid_contact_fixture_is_valid @@ -61,10 +66,17 @@ class ContactTest < ActiveSupport::TestCase assert contact.invalid? end - def test_validates_email_format + def test_email_verification_valid contact = valid_contact + contact.email = 'info@internet.ee' + assert contact.valid? + end - contact.email = 'invalid' + def test_email_verification_smtp_error + Truemail.configure.default_validation_type = :smtp + + contact = valid_contact + contact.email = 'somecrude1337joke@internet.ee' assert contact.invalid? assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_smtp_check_error'), contact.errors.messages[:email].first end @@ -273,6 +285,16 @@ class ContactTest < ActiveSupport::TestCase assert_equal domain.whois_record.try(:json).try(:[], 'registrant'), @contact.name end + def test_creates_email_verification_in_unicode + unicode_email = 'suur@äri.ee' + punycode_email = Contact.unicode_to_punycode(unicode_email) + + @contact.email = punycode_email + @contact.save + + assert_equal @contact.email_verification.email, unicode_email + end + private def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 2536bbdd8..091b8e6f4 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -5,11 +5,13 @@ class RegistrarTest < ActiveSupport::TestCase @registrar = registrars(:bestnames) @original_default_language = Setting.default_language @original_days_to_keep_invoices_active = Setting.days_to_keep_invoices_active + @old_validation_type = Truemail.configure.default_validation_type end teardown do Setting.default_language = @original_default_language Setting.days_to_keep_invoices_active = @original_days_to_keep_invoices_active + Truemail.configure.default_validation_type = @old_validation_type end def test_valid_registrar_is_valid @@ -38,10 +40,21 @@ class RegistrarTest < ActiveSupport::TestCase assert registrar.invalid? end - def test_email_format_validation + def test_email_verification_valid registrar = valid_registrar + registrar.email = 'info@internet.ee' + registrar.billing_email = nil + + assert registrar.valid? + end + + def test_email_verification_smtp_error + Truemail.configure.default_validation_type = :smtp + + registrar = valid_registrar + registrar.email = 'somecrude1337joke@internet.ee' + registrar.billing_email = nil - registrar.email = 'invalid' assert registrar.invalid? assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_smtp_check_error'), registrar.errors.messages[:email].first end @@ -57,23 +70,30 @@ class RegistrarTest < ActiveSupport::TestCase assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_mx_check_error'), registrar.errors.messages[:email].first end - def test_invalid_without_accounting_customer_code + def test_email_verification_regex_error + Truemail.configure.default_validation_type = :regex + registrar = valid_registrar - registrar.accounting_customer_code = '' + registrar.email = 'some@strangesentence@internet.ee' + registrar.billing_email = nil + assert registrar.invalid? assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), registrar.errors.messages[:email].first end - def test_optional_billing_email + def test_billing_email_verification_valid registrar = valid_registrar - registrar.billing_email = '' + registrar.billing_email = 'info@internet.ee' + assert registrar.valid? end - def test_billing_email_format_validation - registrar = valid_registrar + def test_billing_email_verification_smtp_error + Truemail.configure.default_validation_type = :smtp + + registrar = valid_registrar + registrar.billing_email = 'somecrude1337joke@internet.ee' - registrar.billing_email = 'invalid' assert registrar.invalid? assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_smtp_check_error'), registrar.errors.messages[:billing_email].first end diff --git a/test/tasks/emails/verify_email_task_test.rb b/test/tasks/emails/verify_email_task_test.rb new file mode 100644 index 000000000..7cca11845 --- /dev/null +++ b/test/tasks/emails/verify_email_task_test.rb @@ -0,0 +1,63 @@ +require 'test_helper' + +class VerifyEmailTaskTest < ActiveSupport::TestCase + + def setup + @contact = contacts(:john) + @invalid_contact = contacts(:invalid_email) + @contact_verification = @contact.email_verification + @invalid_contact_verification = @invalid_contact.email_verification + + @default_whitelist = Truemail.configure.whitelisted_domains + @default_blacklist = Truemail.configure.blacklisted_domains + Truemail.configure.whitelisted_domains = whitelisted_domains + Truemail.configure.blacklisted_domains = blacklisted_domains + end + + def teardown + Truemail.configure.whitelisted_domains = @default_whitelist + Truemail.configure.blacklisted_domains = @default_blacklist + end + + def domain(email) + Mail::Address.new(email).domain + rescue Mail::Field::IncompleteParseError + nil + end + + def whitelisted_domains + [domain(@contact.email)].reject(&:blank?) + end + + def blacklisted_domains + [domain(@invalid_contact.email)].reject(&:blank?) + end + + def test_tasks_verifies_emails + capture_io { run_task } + + @contact_verification.reload + @invalid_contact_verification.reload + + assert @contact_verification.verified? + assert @invalid_contact_verification.failed? + end + + def test_domain_task_verifies_for_one_domain + capture_io { run_single_domain_task(@contact_verification.domain) } + + @contact_verification.reload + @invalid_contact_verification.reload + + assert @contact_verification.verified? + assert @invalid_contact_verification.not_verified? + end + + def run_task + Rake::Task['verify_email:all_domains'].execute + end + + def run_single_domain_task(domain) + Rake::Task["verify_email:domain"].invoke(domain) + end +end From 600541c4a10f527bdc2e3037d21441e99b4fb08a Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 13 Jul 2020 19:59:49 +0500 Subject: [PATCH 668/757] Add truemail logging --- config/initializers/truemail.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index 88f244e8f..8830ae31d 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -71,5 +71,7 @@ Truemail.configure do |config| # Optional parameter. This option will enable tracking events. You can print tracking events to # stdout, write to file or both of these. Tracking event by default is :error # Available tracking event: :all, :unrecognized_error, :recognized_error, :error - # config.logger = { tracking_event: :all, stdout: true, log_absolute_path: '/home/app/log/truemail.log' } + unless Rails.env.test? + config.logger = { tracking_event: :all, stdout: true, log_absolute_path: '/home/app/log/truemail.log' } + end end From 4297ff198e0193c8585af3b786cad74fb6638b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 17 Jul 2020 13:58:57 +0300 Subject: [PATCH 669/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f893bb07..59fb46eb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +17.07.2020 +* Added turemail gem for validating email addresses syntactically and on MX record level [#297](https://github.com/internetee/registry/issues/297) + 15.07.2020 * Reapplied race condition fix after fixing the data in prod env [#1612](https://github.com/internetee/registry/issues/1612) From 481bb34e67c52694a18d5d0612eecb0a3767d843 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 17 Jul 2020 16:36:44 +0500 Subject: [PATCH 670/757] Hotfix truemail log storage --- config/initializers/truemail.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index 8830ae31d..18527d26c 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -72,6 +72,6 @@ Truemail.configure do |config| # stdout, write to file or both of these. Tracking event by default is :error # Available tracking event: :all, :unrecognized_error, :recognized_error, :error unless Rails.env.test? - config.logger = { tracking_event: :all, stdout: true, log_absolute_path: '/home/app/log/truemail.log' } + config.logger = { tracking_event: :all, stdout: true, log_absolute_path: Rails.root.join('log', 'truemail.log') } end end From 76eed1ef08b7399d1001153287ef7066084ab424 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Fri, 17 Jul 2020 04:00:17 +0300 Subject: [PATCH 671/757] Introduce log_dir env variable for truemail and require it with figaro. Use log_dir in truemail initializer. --- config/application.yml.sample | 3 +++ config/initializers/figaro.rb | 1 + config/initializers/truemail.rb | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/application.yml.sample b/config/application.yml.sample index 691740b2a..820020c83 100644 --- a/config/application.yml.sample +++ b/config/application.yml.sample @@ -4,6 +4,9 @@ # # Be sure to restart your server when you modify settings. # +# Log directory for gems not using syslog +log_dir: /home/app/current/log + # # SMTP configuration (for Admin/EPP/Registrar/Registrant servers) diff --git a/config/initializers/figaro.rb b/config/initializers/figaro.rb index c057f8eee..e873fa39d 100644 --- a/config/initializers/figaro.rb +++ b/config/initializers/figaro.rb @@ -5,4 +5,5 @@ Figaro.require_keys(%w[ time_zone action_mailer_default_host action_mailer_default_from + log_dir ]) diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index 18527d26c..1f694a79b 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -72,6 +72,6 @@ Truemail.configure do |config| # stdout, write to file or both of these. Tracking event by default is :error # Available tracking event: :all, :unrecognized_error, :recognized_error, :error unless Rails.env.test? - config.logger = { tracking_event: :all, stdout: true, log_absolute_path: Rails.root.join('log', 'truemail.log') } + config.logger = { tracking_event: :all, stdout: true, log_absolute_path: "#{ENV['log_dir']}/truemail.log" } end end From d4f49e6556c073c0476558e7439d1d69c67227f3 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 17 Jul 2020 16:58:42 +0500 Subject: [PATCH 672/757] Revert "Introduce log_dir env variable for truemail and require it with figaro." This reverts commit 76eed1ef08b7399d1001153287ef7066084ab424. --- config/application.yml.sample | 3 --- config/initializers/figaro.rb | 1 - config/initializers/truemail.rb | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/config/application.yml.sample b/config/application.yml.sample index 820020c83..691740b2a 100644 --- a/config/application.yml.sample +++ b/config/application.yml.sample @@ -4,9 +4,6 @@ # # Be sure to restart your server when you modify settings. # -# Log directory for gems not using syslog -log_dir: /home/app/current/log - # # SMTP configuration (for Admin/EPP/Registrar/Registrant servers) diff --git a/config/initializers/figaro.rb b/config/initializers/figaro.rb index e873fa39d..c057f8eee 100644 --- a/config/initializers/figaro.rb +++ b/config/initializers/figaro.rb @@ -5,5 +5,4 @@ Figaro.require_keys(%w[ time_zone action_mailer_default_host action_mailer_default_from - log_dir ]) diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index 1f694a79b..18527d26c 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -72,6 +72,6 @@ Truemail.configure do |config| # stdout, write to file or both of these. Tracking event by default is :error # Available tracking event: :all, :unrecognized_error, :recognized_error, :error unless Rails.env.test? - config.logger = { tracking_event: :all, stdout: true, log_absolute_path: "#{ENV['log_dir']}/truemail.log" } + config.logger = { tracking_event: :all, stdout: true, log_absolute_path: Rails.root.join('log', 'truemail.log') } end end From 87f586587e270c519953bdc6a2aa374bd9027ad5 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 17 Jul 2020 17:01:16 +0500 Subject: [PATCH 673/757] Fix truemail log storage --- config/initializers/truemail.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/truemail.rb b/config/initializers/truemail.rb index 18527d26c..f4517fbc0 100644 --- a/config/initializers/truemail.rb +++ b/config/initializers/truemail.rb @@ -72,6 +72,6 @@ Truemail.configure do |config| # stdout, write to file or both of these. Tracking event by default is :error # Available tracking event: :all, :unrecognized_error, :recognized_error, :error unless Rails.env.test? - config.logger = { tracking_event: :all, stdout: true, log_absolute_path: Rails.root.join('log', 'truemail.log') } + config.logger = { tracking_event: :all, stdout: true, log_absolute_path: Rails.root.join('log', 'truemail.log').to_s } end end From 8d3fc077545592beeaad11bd52cc11842e09c4ed Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 17 Jul 2020 18:23:33 +0500 Subject: [PATCH 674/757] Fix presence of email address verifications --- ...20200608084321_fill_email_verifications.rb | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/db/data/20200608084321_fill_email_verifications.rb b/db/data/20200608084321_fill_email_verifications.rb index 37a7f275c..f1186983e 100644 --- a/db/data/20200608084321_fill_email_verifications.rb +++ b/db/data/20200608084321_fill_email_verifications.rb @@ -2,17 +2,17 @@ class FillEmailVerifications < ActiveRecord::Migration[6.0] include Concerns::EmailVerifable def up - registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?) - registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) - contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) - - emails = (contact_emails + registrar_emails + registrar_billing_emails) - emails = emails.map{ |email| punycode_to_unicode(email) }.uniq - - result = emails.map do |email| - { email: email, domain: domain(email) } - end - EmailAddressVerification.import result, batch_size: 500 + # registrar_billing_emails = Registrar.pluck(:billing_email).uniq.reject(&:blank?) + # registrar_emails = Registrar.pluck(:email).uniq.reject(&:blank?) + # contact_emails = Contact.pluck(:email).uniq.reject(&:blank?) + # + # emails = (contact_emails + registrar_emails + registrar_billing_emails) + # emails = emails.map{ |email| punycode_to_unicode(email) }.uniq + # + # result = emails.map do |email| + # { email: email, domain: domain(email) } + # end + # EmailAddressVerification.import result, batch_size: 500 end def down From 65a749edc8214f995d89117d86cb42e0a10b0a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Jul 2020 11:47:49 +0300 Subject: [PATCH 675/757] Reference LHV branch without keystores gem --- Gemfile | 2 +- Gemfile.lock | 6 ++---- test/fixtures/files/keystore.jks | Bin 2242 -> 0 bytes test/fixtures/files/keystore.p12 | Bin 0 -> 2579 bytes 4 files changed, 3 insertions(+), 5 deletions(-) delete mode 100644 test/fixtures/files/keystore.jks create mode 100644 test/fixtures/files/keystore.p12 diff --git a/Gemfile b/Gemfile index 99091f556..b78d2edbd 100644 --- a/Gemfile +++ b/Gemfile @@ -66,7 +66,7 @@ gem 'airbrake' gem 'company_register', github: 'internetee/company_register', branch: :master gem 'e_invoice', github: 'internetee/e_invoice', branch: :master -gem 'lhv', github: 'internetee/lhv', branch: :master +gem 'lhv', github: 'internetee/lhv', branch: 'remove-keystores-gem' gem 'domain_name' gem 'haml', '~> 5.0' gem 'wkhtmltopdf-binary', '~> 0.12.5.1' diff --git a/Gemfile.lock b/Gemfile.lock index e4ad26396..8d303b602 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -45,11 +45,10 @@ GIT GIT remote: https://github.com/internetee/lhv.git - revision: c53dd82393f8a81f6e9da793ae0474294ef88762 - branch: master + revision: af0d3127bed6606ac50c44696bd56b09c096ac39 + branch: remove-keystores-gem specs: lhv (0.1.0) - keystores logger nokogiri @@ -266,7 +265,6 @@ GEM activerecord kaminari-core (= 1.2.1) kaminari-core (1.2.1) - keystores (0.4.0) libxml-ruby (3.2.0) listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) diff --git a/test/fixtures/files/keystore.jks b/test/fixtures/files/keystore.jks deleted file mode 100644 index 7ce34f308d5df462a90842275cecdb54f6fef5ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2242 zcmchYS5VW58pZQZLP(@ZS%UNuFrY|6LRG4iD1wq0dJ}1yEU+NLg0$c!2ulf|$fAgV zFiLMqk!I*62uKqaM2Sj?2rMAg%iX#6&d&ILAI`)1J$-ZL%=r$u2V4*c1U?k-x1cw? zgKr!f>Pyl0L^j;iLMA?U*BE~Ic;{x7h$jG9xLQl zEzf4?w3~P(#%`%9y4NkX&Mmv5{cwiOwEjUOHgSO4@3);~;NGbBGcU~}j@`!hx%C;> z=RhHW5n>z~0A}&`?W}|?aOro0F8hM%aw*mO6hCGxHwe`gy-A`;+SEp=m7W^p zbwahjtHdIDE=fzybMOsN7cJ?#7Ahwg=NX{5}TD6;Lvy z7Os_>s#^6z?aT-am7w(*K1nm1EY8X0CYVp6wErEKuT@fJe+o3m`a<62c_s<7)pXwT zkLJp6Gf;gZI={L0Oe?p@Q1`E-9_TKH2G$(AQBfz(-@+B<6{&YxJ&$Ycx}>`*qSNTU zRD1%e_y+kzaA!DY#D@fC$)93*31Nd7vb4(Pa1)1L=2NSlpVj|fp{ID;48bxOEGJc# z&|w6c$g`V6u$at-0hNeeLHwB9lkr zEa~?_p9ZuGhZeY#BYuGw&}L}d*WLpPJc~IBs(Y458frZRhq6Sw`os7CzE3=$G5j_ z)lPm;YTDN0PFu`&246nEvaZ>JsYE z$-JO@&KBOSoD=3EKA%?TNiiDzBrbUEcBXt>BMviGdwQYJY9f8Fq~q7gSJX2Qjbzyv zza<}rbuyx1v3S_>Sxj`ey~#VtO;jtks30`l@TT$BL>tN7*#=row+$)ru7x_66I>

#;q z{e!G#eTxM{)FBS`iFc>N-=rDy5fFacA1p1Z$0PyjEFjVZ(!^wn@p)gTivOmQ?Ak_cA z1pWiz{ec|$f$;r6Apav6S)>3~52K6G!)jvma5$%bTPzl%^B?-U{xgolZvmkJ zLLdwcI0B{t0H`<|noSsbGSgf^RB(R3ahG2w6`Hmn|2y68+Il3ab<3>Yx)r=C*2Lc; zSJe|}4Tb<9AYTC^hmkpKh>Rdq94bbTugp$HuJtr#9gmW^IaO_Iq+jyS5Dz8RpAbE^Tlwo4qKM zVb9M-4#zpJ8Vt>jf?S#-QX|O;3$3c_Dgo&P?W>!NK4XM+j*FLhFcByWm9spjPK?JZ Q*B=|e+h($ diff --git a/test/fixtures/files/keystore.p12 b/test/fixtures/files/keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..962ddede2ae754b1ca56a2967b800799ba2d0194 GIT binary patch literal 2579 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 Date: Mon, 27 Jul 2020 11:48:51 +0300 Subject: [PATCH 676/757] Replace LHV JKS store with P12 --- config/application.yml.sample | 6 ++---- .../create_bank_transactions.rake | 11 ++++------- lib/tasks/invoices/process_payments.rake | 11 ++++------- test/tasks/invoices/process_payments_test.rb | 6 ++++++ 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/config/application.yml.sample b/config/application.yml.sample index 691740b2a..7fd92d092 100644 --- a/config/application.yml.sample +++ b/config/application.yml.sample @@ -148,9 +148,8 @@ action_mailer_default_port: # default: no port (80) action_mailer_default_from: # no-reply@example.com action_mailer_force_delete_from: # `From` header for `DomainDeleteMailer#forced` email -lhv_keystore: +lhv_p12_keystore: lhv_keystore_password: -lhv_keystore_alias: lhv_ca_file: # Needed only in dev mode lhv_dev_mode: 'false' @@ -163,9 +162,8 @@ test: action_mailer_default_host: 'registry.test' action_mailer_default_from: 'no-reply@registry.test' action_mailer_force_delete_from: 'legal@registry.test' - lhv_keystore: 'test/fixtures/files/keystore.jks' + lhv_p12_keystore: 'test/fixtures/files/keystore.p12' lhv_keystore_password: 'testtest' - lhv_keystore_alias: 'testtest' # Airbrake // Errbit: airbrake_host: "https://your-errbit-host.ee" diff --git a/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake b/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake index 33614d049..17b7586e2 100644 --- a/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake +++ b/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake @@ -3,12 +3,9 @@ namespace :dev do remitter_iban = ENV['remitter_iban'] beneficiary_iban = Setting.registry_iban - keystore_password = ENV['lhv_keystore_password'] - keystore_alias = ENV['lhv_keystore_alias'] - keystore = Keystores::JavaKeystore.new - keystore.load(ENV['lhv_keystore'], keystore_password) - cert = keystore.get_certificate(keystore_alias) - key = keystore.get_key(keystore_alias, keystore_password) + keystore = OpenSSL::PKCS12.new(File.read(ENV['lhv_p12_keystore']), ENV['lhv_keystore_password']) + key = keystore.key + cert = keystore.certificate api_base_uri = URI.parse('https://testconnect.lhv.eu/connect-prelive') request_headers = { 'content-type' => 'application/xml' } @@ -38,4 +35,4 @@ namespace :dev do end end end -end \ No newline at end of file +end diff --git a/lib/tasks/invoices/process_payments.rake b/lib/tasks/invoices/process_payments.rake index 6e4c57213..340aba187 100644 --- a/lib/tasks/invoices/process_payments.rake +++ b/lib/tasks/invoices/process_payments.rake @@ -2,12 +2,9 @@ namespace :invoices do task process_payments: :environment do registry_bank_account_iban = Setting.registry_iban - keystore_password = ENV['lhv_keystore_password'] - keystore_alias = ENV['lhv_keystore_alias'] - keystore = Keystores::JavaKeystore.new - keystore.load(ENV['lhv_keystore'], keystore_password) - cert = keystore.get_certificate(keystore_alias) - key = keystore.get_key(keystore_alias, keystore_password) + keystore = OpenSSL::PKCS12.new(File.read(ENV['lhv_p12_keystore']), ENV['lhv_keystore_password']) + key = keystore.key + cert = keystore.certificate api = Lhv::ConnectApi.new api.cert = cert @@ -46,4 +43,4 @@ namespace :invoices do puts "Transactions processed: #{incoming_transactions.size}" end -end \ No newline at end of file +end diff --git a/test/tasks/invoices/process_payments_test.rb b/test/tasks/invoices/process_payments_test.rb index 02855e9fa..bd447be29 100644 --- a/test/tasks/invoices/process_payments_test.rb +++ b/test/tasks/invoices/process_payments_test.rb @@ -88,6 +88,12 @@ class ProcessPaymentsTaskTest < ActiveSupport::TestCase end end + def test_parses_keystore_properly + assert_nothing_raised do + run_task + end + end + private def run_task From 78d473f3e660e89c6635f635f345e7f1bddb6bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Jul 2020 13:10:13 +0300 Subject: [PATCH 677/757] Create tests for jobs triggered by registrant confirmations --- config/application.yml.sample | 1 + test/fixtures/files/legaldoc.pdf | Bin 0 -> 7613 bytes test/jobs/domain_delete_confirm_job_test.rb | 62 +++++++++++++++++--- test/jobs/domain_update_confirm_job_test.rb | 31 ++++++++++ 4 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 test/fixtures/files/legaldoc.pdf diff --git a/config/application.yml.sample b/config/application.yml.sample index 691740b2a..8f71d75d8 100644 --- a/config/application.yml.sample +++ b/config/application.yml.sample @@ -166,6 +166,7 @@ test: lhv_keystore: 'test/fixtures/files/keystore.jks' lhv_keystore_password: 'testtest' lhv_keystore_alias: 'testtest' + legal_documents_dir: 'test/fixtures/files' # Airbrake // Errbit: airbrake_host: "https://your-errbit-host.ee" diff --git a/test/fixtures/files/legaldoc.pdf b/test/fixtures/files/legaldoc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1ddf7a0e8cd4188cf5af1650ae4745eecf5d1d61 GIT binary patch literal 7613 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 r8tN!GN)xH2rKo|>M8FW*5Df^8ej3^A*-$ie literal 0 HcmV?d00001 diff --git a/test/jobs/domain_delete_confirm_job_test.rb b/test/jobs/domain_delete_confirm_job_test.rb index 51af58c24..b999bd3c7 100644 --- a/test/jobs/domain_delete_confirm_job_test.rb +++ b/test/jobs/domain_delete_confirm_job_test.rb @@ -1,17 +1,11 @@ require "test_helper" class DomainDeleteConfirmJobTest < ActiveSupport::TestCase - def setup - super - + setup do + @legal_doc_path = 'test/fixtures/files/legaldoc.pdf' @domain = domains(:shop) @new_registrant = contacts(:william) @user = users(:api_bestnames) - - @domain.update!(pending_json: { new_registrant_id: @new_registrant.id, - new_registrant_name: @new_registrant.name, - new_registrant_email: @new_registrant.email, - current_user_id: @user.id }) end def teardown @@ -19,6 +13,11 @@ class DomainDeleteConfirmJobTest < ActiveSupport::TestCase end def test_rejected_registrant_verification_notifies_registrar + @domain.update!(pending_json: { new_registrant_id: @new_registrant.id, + new_registrant_name: @new_registrant.name, + new_registrant_email: @new_registrant.email, + current_user_id: @user.id }) + DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED) last_registrar_notification = @domain.registrar.notifications.last @@ -27,10 +26,57 @@ class DomainDeleteConfirmJobTest < ActiveSupport::TestCase end def test_accepted_registrant_verification_notifies_registrar + @domain.update!(pending_json: { new_registrant_id: @new_registrant.id, + new_registrant_name: @new_registrant.name, + new_registrant_email: @new_registrant.email, + current_user_id: @user.id }) + DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED) last_registrar_notification = @domain.registrar.notifications.last assert_equal(last_registrar_notification.attached_obj_id, @domain.id) assert_equal(last_registrar_notification.text, 'Registrant confirmed domain deletion: shop.test') end + + def test_marks_domain_as_pending_delete_after_acceptance + epp_xml = "\n\n \n \n" \ + " \n #{@domain.name}\n \n \n \n" \ + " \n #{@legal_doc_path}\n" \ + " \n \n 20alla-1594212240\n \n\n" + + @domain.registrant_verification_asked!(epp_xml, @user.id) + @domain.pending_delete! + @domain.reload + + assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token) + assert_equal @user.id, @domain.pending_json['current_user_id'] + + DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED) + @domain.reload + + assert @domain.statuses.include? DomainStatus::PENDING_DELETE + assert @domain.statuses.include? DomainStatus::SERVER_HOLD + assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION + end + + def test_clears_pending_flags_after_delete_denial + epp_xml = "\n\n \n \n" \ + " \n #{@domain.name}\n \n \n \n" \ + " \n #{@legal_doc_path}\n" \ + " \n \n 20alla-1594212240\n \n\n" + + @domain.registrant_verification_asked!(epp_xml, @user.id) + @domain.pending_delete! + @domain.reload + + assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token) + assert_equal @user.id, @domain.pending_json['current_user_id'] + + DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED) + @domain.reload + + assert_equal ['ok'], @domain.statuses + assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION + assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE + end end diff --git a/test/jobs/domain_update_confirm_job_test.rb b/test/jobs/domain_update_confirm_job_test.rb index 070b5d5f7..59bbf758d 100644 --- a/test/jobs/domain_update_confirm_job_test.rb +++ b/test/jobs/domain_update_confirm_job_test.rb @@ -7,6 +7,7 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase @domain = domains(:shop) @new_registrant = contacts(:william) @user = users(:api_bestnames) + @legal_doc_path = 'test/fixtures/files/legaldoc.pdf' @domain.update!(pending_json: { new_registrant_id: @new_registrant.id, new_registrant_name: @new_registrant.name, @@ -33,4 +34,34 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase assert_equal(last_registrar_notification.attached_obj_id, @domain.id) assert_equal(last_registrar_notification.text, 'Registrant confirmed domain update: shop.test') end + + def test_changes_domain_registrant_after_approval + epp_xml = "\n\n \n \n \n #{@domain.name}\n" \ + " \n #{@new_registrant.code}\n \n \n \n \n \n" \ + " \n #{@legal_doc_path}\n \n" \ + " \n 20alla-1594199756\n \n\n" + @domain.pending_json['frame'] = epp_xml + @domain.update(pending_json: @domain.pending_json) + + @domain.reload + DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED) + @domain.reload + + assert_equal @domain.registrant.code, @new_registrant.code + end + + def test_clears_pending_update_after_denial + epp_xml = "\n\n \n \n \n #{@domain.name}\n" \ + " \n #{@new_registrant.code}\n \n \n \n \n \n" \ + " \n #{@legal_doc_path}\n \n" \ + " \n 20alla-1594199756\n \n\n" + @domain.pending_json['frame'] = epp_xml + @domain.update(pending_json: @domain.pending_json) + + DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED) + @domain.reload + + assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION + assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE + end end From 310e0adac81897d9289d63024699780078d73f37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Jul 2020 16:35:52 +0300 Subject: [PATCH 678/757] Pass whole Customer object to Directo --- app/models/concerns/invoice/book_keeping.rb | 10 +++++++++- app/models/concerns/registrar/book_keeping.rb | 10 +++++++++- test/jobs/directo_invoice_forward_job_test.rb | 9 +++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/invoice/book_keeping.rb b/app/models/concerns/invoice/book_keeping.rb index 2469f45eb..82e6506c9 100644 --- a/app/models/concerns/invoice/book_keeping.rb +++ b/app/models/concerns/invoice/book_keeping.rb @@ -5,7 +5,7 @@ module Concerns def as_directo_json invoice = ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(self)) - invoice['customer_code'] = buyer.accounting_customer_code + invoice['customer'] = compose_directo_customer invoice['issue_date'] = issue_date.strftime('%Y-%m-%d') invoice['transaction_date'] = account_activity .bank_transaction&.paid_at&.strftime('%Y-%m-%d') @@ -21,6 +21,14 @@ module Concerns subtotal, precision: 2, separator: '.' ) }].as_json end + + def compose_directo_customer + { + 'code': buyer.accounting_customer_code, + 'destination': buyer_country_code, + 'vat_reg_no': buyer_vat_no, + }.as_json + end end end end diff --git a/app/models/concerns/registrar/book_keeping.rb b/app/models/concerns/registrar/book_keeping.rb index 27645d2cb..60b9c2b1a 100644 --- a/app/models/concerns/registrar/book_keeping.rb +++ b/app/models/concerns/registrar/book_keeping.rb @@ -12,7 +12,7 @@ module Concerns invoice = { 'number': 1, - 'customer_code': accounting_customer_code, + 'customer': compose_directo_customer, 'language': language == 'en' ? 'ENG' : '', 'currency': activities.first.currency, 'date': month.end_of_month.strftime('%Y-%m-%d') }.as_json @@ -109,6 +109,14 @@ module Concerns } end + def compose_directo_customer + { + 'code': accounting_customer_code, + 'destination': address_country_code, + 'vat_reg_no': vat_no, + }.as_json + end + def load_price(account_activity) @pricelists ||= {} return @pricelists[account_activity.price_id] if @pricelists.key? account_activity.price_id diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb index 8a4fb43aa..57b1759ff 100644 --- a/test/jobs/directo_invoice_forward_job_test.rb +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -14,6 +14,15 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase Setting.directo_monthly_number_last = 309901 end + def test_directo_json_sends_customer_as_hash + @invoice.update!(buyer_country_code: @user.address_country_code) + + json_output = @invoice.as_directo_json + assert json_output['customer'].is_a? Hash + assert_equal @user.accounting_customer_code, json_output['customer']['code'] + assert_equal @user.address_country_code, json_output['customer']['destination'] + end + def test_xml_is_include_transaction_date @invoice.update(total: @invoice.account_activity.bank_transaction.sum) @invoice.account_activity.bank_transaction.update(paid_at: Time.zone.now) From 59a6251510084360159d27dfeb767409036e33ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 3 Aug 2020 13:00:48 +0300 Subject: [PATCH 679/757] Call valid Job when confirming domain delete action --- .../registrant/domain_delete_confirms_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/registrant/domain_delete_confirms_controller.rb b/app/controllers/registrant/domain_delete_confirms_controller.rb index ba5dd2ba7..337ca2403 100644 --- a/app/controllers/registrant/domain_delete_confirms_controller.rb +++ b/app/controllers/registrant/domain_delete_confirms_controller.rb @@ -24,9 +24,9 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController confirmed = params[:confirmed] ? true : false action = if confirmed - @registrant_verification.domain_registrant_delete_reject!("email link #{initiator}") - else @registrant_verification.domain_registrant_delete_confirm!("email link #{initiator}") + else + @registrant_verification.domain_registrant_delete_reject!("email link #{initiator}") end fail_msg = t("registrant_domain_delete_#{confirmed ? 'confirmed' : 'rejected'}_failed".to_sym) @@ -36,9 +36,9 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController (render 'show' && return) unless action if confirmed - redirect_to registrant_domain_delete_confirm_path(@domain.id, confirmed: true) && return + redirect_to registrant_domain_delete_confirm_path(@domain.id, confirmed: true) else - redirect_to registrant_domain_delete_confirm_path(@domain.id, rejected: true) unless confirmed + redirect_to registrant_domain_delete_confirm_path(@domain.id, rejected: true) end end end From 1b0c264f547209c59789bf27f9c1ba05ddd36ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 3 Aug 2020 13:38:35 +0300 Subject: [PATCH 680/757] Add tests for domain delete confirm UI --- .../domains/domain_delete_confirms_test.rb | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/system/registrant_area/domains/domain_delete_confirms_test.rb diff --git a/test/system/registrant_area/domains/domain_delete_confirms_test.rb b/test/system/registrant_area/domains/domain_delete_confirms_test.rb new file mode 100644 index 000000000..fac381dc4 --- /dev/null +++ b/test/system/registrant_area/domains/domain_delete_confirms_test.rb @@ -0,0 +1,32 @@ +require 'application_system_test_case' + +class DomainDeleteConfirmsTest < ApplicationSystemTestCase + setup do + @user = users(:registrant) + sign_in @user + + @domain = domains(:shop) + @domain.registrant_verification_asked!('\n', @user.id) + @domain.pending_delete! + end + + def test_enqueues_approve_job_after_verification + visit registrant_domain_delete_confirm_url(@domain.id, token: @domain.registrant_verification_token) + + click_on 'Confirm domain delete' + assert_text 'Domain registrant change has successfully received.' + + @domain.reload + assert_includes @domain.statuses, 'serverHold' + end + + def test_enqueues_reject_job_after_verification + visit registrant_domain_delete_confirm_url(@domain.id, token: @domain.registrant_verification_token) + + click_on 'Reject domain delete' + assert_text 'Domain registrant change has been rejected successfully.' + + @domain.reload + assert_equal ['ok'], @domain.statuses + end +end From 18337c4f8d26f4eb55c3d3348fba2826f8dc09f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 3 Aug 2020 16:24:15 +0300 Subject: [PATCH 681/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59fb46eb4..589ff5bd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +03.08.2020 +* Fixed 0 vat issue with invoices sent to Directo [#1647](https://github.com/internetee/registry/issues/1647) + 17.07.2020 * Added turemail gem for validating email addresses syntactically and on MX record level [#297](https://github.com/internetee/registry/issues/297) From a56dc03565238de7cfb29757f62e0ceb772d797e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 3 Aug 2020 17:45:17 +0300 Subject: [PATCH 682/757] Set PaperTrail :whodunnit for all Registrar-related controllers --- app/controllers/epp/base_controller.rb | 1 + app/controllers/registrar/base_controller.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index b8d73f8da..525131cf4 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -20,6 +20,7 @@ module Epp rescue_from StandardError, with: :respond_with_command_failed_error rescue_from AuthorizationError, with: :respond_with_authorization_error rescue_from ActiveRecord::RecordNotFound, with: :respond_with_object_does_not_exist_error + before_action :set_paper_trail_whodunnit protected diff --git a/app/controllers/registrar/base_controller.rb b/app/controllers/registrar/base_controller.rb index 499d44594..54bed977b 100644 --- a/app/controllers/registrar/base_controller.rb +++ b/app/controllers/registrar/base_controller.rb @@ -6,6 +6,7 @@ class Registrar before_action :check_ip_restriction helper_method :depp_controller? helper_method :head_title_sufix + before_action :set_paper_trail_whodunnit protected From a44466b0a6b5a0d382c2309716ace0b1d9fe8a62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Aug 2020 12:12:55 +0300 Subject: [PATCH 683/757] Provide ApiUser name as whodunnit --- app/controllers/epp/base_controller.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index 525131cf4..e9d58a4ed 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -398,5 +398,9 @@ module Epp logger.error(([exception.message] + exception.backtrace).join($INPUT_RECORD_SEPARATOR)) notify_airbrake(exception) end + + def user_for_paper_trail + current_user ? current_user.id_role_username : 'anonymous' + end end end From 6dbdedfa807ec580f618942c417e370c79494df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 4 Aug 2020 14:39:30 +0300 Subject: [PATCH 684/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 589ff5bd3..266a820b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +04.08.2020 +* FIxed registrant verification for domain delete [#1631](https://github.com/internetee/registry/issues/1631) + 03.08.2020 * Fixed 0 vat issue with invoices sent to Directo [#1647](https://github.com/internetee/registry/issues/1647) From 9ce85e155fbd711868d56163a88a48787753082f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Aug 2020 16:10:58 +0300 Subject: [PATCH 685/757] Transfer: Do not reuse identical contacts --- app/models/concerns/contact/transferable.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/models/concerns/contact/transferable.rb b/app/models/concerns/contact/transferable.rb index 987933a8d..2466e4726 100644 --- a/app/models/concerns/contact/transferable.rb +++ b/app/models/concerns/contact/transferable.rb @@ -7,8 +7,6 @@ module Concerns::Contact::Transferable end def transfer(new_registrar) - return identical(new_registrar) if identical(new_registrar) - new_contact = self.dup new_contact.registrar = new_registrar new_contact.original = self From 6318535fe1e53cb93adb2ae9535db2b235ef9563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Aug 2020 16:35:43 +0300 Subject: [PATCH 686/757] Create test for identical contact transfer --- test/models/domain_transfer_test.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/models/domain_transfer_test.rb b/test/models/domain_transfer_test.rb index 943fc2a0a..a955f37a6 100644 --- a/test/models/domain_transfer_test.rb +++ b/test/models/domain_transfer_test.rb @@ -29,4 +29,23 @@ class DomainTransferTest < ActiveSupport::TestCase assert_equal id, notification.attached_obj_id assert_equal class_name, notification.attached_obj_type end + + def test_does_not_reuse_identical_contacts_on_transfer + # Create identical contact and assign it to domain + domain = @domain_transfer.domain + identical_contact = domain.contacts.first.transfer(domain.registrar) + + assert_equal 3, domain.domain_contacts.count + domain.domain_contacts.create!(contact: identical_contact, type: 'AdminDomainContact') + + assert_equal 4, domain.domain_contacts.count + + @domain_transfer.approve + @domain_transfer.reload + domain.reload + + assert @domain_transfer.approved? + assert_equal 4, domain.domain_contacts.count + assert_equal domain.registrar, @domain_transfer.new_registrar + end end From 40d68fc7f133076f1ab5be54153a47867954d670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Aug 2020 17:47:16 +0300 Subject: [PATCH 687/757] Transfer: Return identical objects occassionally --- app/models/concerns/contact/transferable.rb | 9 +++++++++ test/integration/api/domain_transfers_test.rb | 4 ++-- test/integration/epp/domain/transfer/request_test.rb | 4 ++-- test/models/contact/transfer_test.rb | 5 ----- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/models/concerns/contact/transferable.rb b/app/models/concerns/contact/transferable.rb index 2466e4726..407922f25 100644 --- a/app/models/concerns/contact/transferable.rb +++ b/app/models/concerns/contact/transferable.rb @@ -7,6 +7,8 @@ module Concerns::Contact::Transferable end def transfer(new_registrar) + return identical(new_registrar) if identical_with_registrar?(new_registrar) + new_contact = self.dup new_contact.registrar = new_registrar new_contact.original = self @@ -21,6 +23,13 @@ module Concerns::Contact::Transferable protected + def identical_with_registrar?(registrar) + return false unless identical(registrar) + return true unless DomainContact.where(contact_id: id).any? + + false + end + def generate_auth_info self.auth_info = SecureRandom.hex(11) end diff --git a/test/integration/api/domain_transfers_test.rb b/test/integration/api/domain_transfers_test.rb index aabaeb728..dac04bd2c 100644 --- a/test/integration/api/domain_transfers_test.rb +++ b/test/integration/api/domain_transfers_test.rb @@ -64,7 +64,7 @@ class APIDomainTransfersTest < ApplicationIntegrationTest end def test_duplicates_registrant_admin_and_tech_contacts - assert_difference -> { @new_registrar.contacts.size }, 3 do + assert_difference -> { @new_registrar.contacts.size }, 4 do post '/repp/v1/domain_transfers', params: request_params, as: :json, headers: { 'HTTP_AUTHORIZATION' => http_auth_key } end @@ -73,7 +73,7 @@ class APIDomainTransfersTest < ApplicationIntegrationTest def test_reuses_identical_contact post '/repp/v1/domain_transfers', params: request_params, as: :json, headers: { 'HTTP_AUTHORIZATION' => http_auth_key } - assert_equal 1, @new_registrar.contacts.where(name: 'William').size + assert_equal 2, @new_registrar.contacts.where(name: 'William').size end def test_fails_if_domain_does_not_exist diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index c7a838ca6..5b8dad6ad 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -59,7 +59,7 @@ class EppDomainTransferRequestTest < EppTestCase end def test_duplicates_registrant_admin_and_tech_contacts - assert_difference -> { @new_registrar.contacts.size }, 3 do + assert_difference -> { @new_registrar.contacts.size }, 4 do post epp_transfer_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } end @@ -68,7 +68,7 @@ class EppDomainTransferRequestTest < EppTestCase def test_reuses_identical_contact post epp_transfer_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } - assert_equal 1, @new_registrar.contacts.where(name: 'William').size + assert_equal 2, @new_registrar.contacts.where(name: 'William').size end def test_saves_legal_document diff --git a/test/models/contact/transfer_test.rb b/test/models/contact/transfer_test.rb index cc35cfdea..af51048aa 100644 --- a/test/models/contact/transfer_test.rb +++ b/test/models/contact/transfer_test.rb @@ -47,11 +47,6 @@ class ContactTransferTest < ActiveSupport::TestCase end end - def test_reuses_identical_contact - identical = contacts(:identical_to_william) - assert_equal identical, contacts(:william).transfer(@new_registrar) - end - def test_bypasses_validation @contact = contacts(:invalid) From a96106bcccd90832969294d6a0fd6a9041756da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Aug 2020 21:00:46 +0300 Subject: [PATCH 688/757] Remove duplicate domain_contacts on transfer --- app/models/concerns/domain/transferable.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/domain/transferable.rb b/app/models/concerns/domain/transferable.rb index 56e77f34d..9de2fff83 100644 --- a/app/models/concerns/domain/transferable.rb +++ b/app/models/concerns/domain/transferable.rb @@ -57,7 +57,8 @@ module Concerns::Domain::Transferable def transfer_domain_contacts(new_registrar) copied_ids = [] - contacts.each do |contact| + domain_contacts.each do |dc| + contact = Contact.find(dc.contact_id) next if copied_ids.include?(contact.id) || contact.registrar == new_registrar if registrant_id_was == contact.id # registrant was copied previously, do not copy it again @@ -66,7 +67,11 @@ module Concerns::Domain::Transferable oc = contact.transfer(new_registrar) end - domain_contacts.where(contact_id: contact.id).update_all({ contact_id: oc.id }) # n+1 workaround + if domain_contacts.find_by(contact_id: oc.id, domain_id: id, type: dc.type).present? + dc.destroy + else + dc.update(contact_id: oc.id) + end copied_ids << contact.id end end From 7ed938484803ab8ebd74399e314ac07ccc9ca3c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 4 Aug 2020 22:12:36 +0300 Subject: [PATCH 689/757] Revert "Domain transfer: Conditionally reuse contacts" --- app/models/concerns/contact/transferable.rb | 9 +-------- test/integration/api/domain_transfers_test.rb | 4 ++-- .../epp/domain/transfer/request_test.rb | 4 ++-- test/models/contact/transfer_test.rb | 5 +++++ test/models/domain_transfer_test.rb | 19 ------------------- 5 files changed, 10 insertions(+), 31 deletions(-) diff --git a/app/models/concerns/contact/transferable.rb b/app/models/concerns/contact/transferable.rb index 407922f25..987933a8d 100644 --- a/app/models/concerns/contact/transferable.rb +++ b/app/models/concerns/contact/transferable.rb @@ -7,7 +7,7 @@ module Concerns::Contact::Transferable end def transfer(new_registrar) - return identical(new_registrar) if identical_with_registrar?(new_registrar) + return identical(new_registrar) if identical(new_registrar) new_contact = self.dup new_contact.registrar = new_registrar @@ -23,13 +23,6 @@ module Concerns::Contact::Transferable protected - def identical_with_registrar?(registrar) - return false unless identical(registrar) - return true unless DomainContact.where(contact_id: id).any? - - false - end - def generate_auth_info self.auth_info = SecureRandom.hex(11) end diff --git a/test/integration/api/domain_transfers_test.rb b/test/integration/api/domain_transfers_test.rb index dac04bd2c..aabaeb728 100644 --- a/test/integration/api/domain_transfers_test.rb +++ b/test/integration/api/domain_transfers_test.rb @@ -64,7 +64,7 @@ class APIDomainTransfersTest < ApplicationIntegrationTest end def test_duplicates_registrant_admin_and_tech_contacts - assert_difference -> { @new_registrar.contacts.size }, 4 do + assert_difference -> { @new_registrar.contacts.size }, 3 do post '/repp/v1/domain_transfers', params: request_params, as: :json, headers: { 'HTTP_AUTHORIZATION' => http_auth_key } end @@ -73,7 +73,7 @@ class APIDomainTransfersTest < ApplicationIntegrationTest def test_reuses_identical_contact post '/repp/v1/domain_transfers', params: request_params, as: :json, headers: { 'HTTP_AUTHORIZATION' => http_auth_key } - assert_equal 2, @new_registrar.contacts.where(name: 'William').size + assert_equal 1, @new_registrar.contacts.where(name: 'William').size end def test_fails_if_domain_does_not_exist diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index 5b8dad6ad..c7a838ca6 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -59,7 +59,7 @@ class EppDomainTransferRequestTest < EppTestCase end def test_duplicates_registrant_admin_and_tech_contacts - assert_difference -> { @new_registrar.contacts.size }, 4 do + assert_difference -> { @new_registrar.contacts.size }, 3 do post epp_transfer_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } end @@ -68,7 +68,7 @@ class EppDomainTransferRequestTest < EppTestCase def test_reuses_identical_contact post epp_transfer_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } - assert_equal 2, @new_registrar.contacts.where(name: 'William').size + assert_equal 1, @new_registrar.contacts.where(name: 'William').size end def test_saves_legal_document diff --git a/test/models/contact/transfer_test.rb b/test/models/contact/transfer_test.rb index af51048aa..cc35cfdea 100644 --- a/test/models/contact/transfer_test.rb +++ b/test/models/contact/transfer_test.rb @@ -47,6 +47,11 @@ class ContactTransferTest < ActiveSupport::TestCase end end + def test_reuses_identical_contact + identical = contacts(:identical_to_william) + assert_equal identical, contacts(:william).transfer(@new_registrar) + end + def test_bypasses_validation @contact = contacts(:invalid) diff --git a/test/models/domain_transfer_test.rb b/test/models/domain_transfer_test.rb index a955f37a6..943fc2a0a 100644 --- a/test/models/domain_transfer_test.rb +++ b/test/models/domain_transfer_test.rb @@ -29,23 +29,4 @@ class DomainTransferTest < ActiveSupport::TestCase assert_equal id, notification.attached_obj_id assert_equal class_name, notification.attached_obj_type end - - def test_does_not_reuse_identical_contacts_on_transfer - # Create identical contact and assign it to domain - domain = @domain_transfer.domain - identical_contact = domain.contacts.first.transfer(domain.registrar) - - assert_equal 3, domain.domain_contacts.count - domain.domain_contacts.create!(contact: identical_contact, type: 'AdminDomainContact') - - assert_equal 4, domain.domain_contacts.count - - @domain_transfer.approve - @domain_transfer.reload - domain.reload - - assert @domain_transfer.approved? - assert_equal 4, domain.domain_contacts.count - assert_equal domain.registrar, @domain_transfer.new_registrar - end end From a0229e5e857b44750b4f5a638b9ba1d4042a2300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 4 Aug 2020 23:00:13 +0300 Subject: [PATCH 690/757] Revert "Domain transfer: remove duplicate domain_contacts on transfer" --- app/models/concerns/domain/transferable.rb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/app/models/concerns/domain/transferable.rb b/app/models/concerns/domain/transferable.rb index 9de2fff83..56e77f34d 100644 --- a/app/models/concerns/domain/transferable.rb +++ b/app/models/concerns/domain/transferable.rb @@ -57,8 +57,7 @@ module Concerns::Domain::Transferable def transfer_domain_contacts(new_registrar) copied_ids = [] - domain_contacts.each do |dc| - contact = Contact.find(dc.contact_id) + contacts.each do |contact| next if copied_ids.include?(contact.id) || contact.registrar == new_registrar if registrant_id_was == contact.id # registrant was copied previously, do not copy it again @@ -67,11 +66,7 @@ module Concerns::Domain::Transferable oc = contact.transfer(new_registrar) end - if domain_contacts.find_by(contact_id: oc.id, domain_id: id, type: dc.type).present? - dc.destroy - else - dc.update(contact_id: oc.id) - end + domain_contacts.where(contact_id: contact.id).update_all({ contact_id: oc.id }) # n+1 workaround copied_ids << contact.id end end From 7b170b5026e58aa58e441f608181e08612befecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 4 Aug 2020 23:09:43 +0300 Subject: [PATCH 691/757] Revert "Revert "Domain transfer: remove duplicate domain_contacts on transfer"" --- app/models/concerns/domain/transferable.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/domain/transferable.rb b/app/models/concerns/domain/transferable.rb index 56e77f34d..9de2fff83 100644 --- a/app/models/concerns/domain/transferable.rb +++ b/app/models/concerns/domain/transferable.rb @@ -57,7 +57,8 @@ module Concerns::Domain::Transferable def transfer_domain_contacts(new_registrar) copied_ids = [] - contacts.each do |contact| + domain_contacts.each do |dc| + contact = Contact.find(dc.contact_id) next if copied_ids.include?(contact.id) || contact.registrar == new_registrar if registrant_id_was == contact.id # registrant was copied previously, do not copy it again @@ -66,7 +67,11 @@ module Concerns::Domain::Transferable oc = contact.transfer(new_registrar) end - domain_contacts.where(contact_id: contact.id).update_all({ contact_id: oc.id }) # n+1 workaround + if domain_contacts.find_by(contact_id: oc.id, domain_id: id, type: dc.type).present? + dc.destroy + else + dc.update(contact_id: oc.id) + end copied_ids << contact.id end end From 8688de3248fafd79d6be58cd683456e085dff1a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 5 Aug 2020 01:01:09 +0300 Subject: [PATCH 692/757] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 266a820b1..e1c63e4ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 04.08.2020 -* FIxed registrant verification for domain delete [#1631](https://github.com/internetee/registry/issues/1631) +* Fixed registrant verification for domain delete [#1631](https://github.com/internetee/registry/issues/1631) +* Fixed domain transfer issue when one person was present in the same role more than once (different objects) [#1651](https://github.com/internetee/registry/issues/1651) 03.08.2020 * Fixed 0 vat issue with invoices sent to Directo [#1647](https://github.com/internetee/registry/issues/1647) From 5b963d9e97c5455551c8a4ee26c0a59091ed8d7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 7 Aug 2020 13:31:55 +0300 Subject: [PATCH 693/757] Force whodunnit hook on registrant controllers --- app/controllers/registrant_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/registrant_controller.rb b/app/controllers/registrant_controller.rb index 6589d6f89..1e97281e7 100644 --- a/app/controllers/registrant_controller.rb +++ b/app/controllers/registrant_controller.rb @@ -1,5 +1,6 @@ class RegistrantController < ApplicationController before_action :authenticate_registrant_user! + before_action :set_paper_trail_whodunnit layout 'registrant/application' include Registrant::ApplicationHelper @@ -33,4 +34,4 @@ class RegistrantController < ApplicationController flash.now[:notice] = t('registrant.company_register_unavailable') current_registrant_user.direct_domains end -end \ No newline at end of file +end From cca51b8a037a91cb0ba77bee6a6f0e1b2931f1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 7 Aug 2020 14:48:54 +0300 Subject: [PATCH 694/757] Fix paper trail versioning for RegistrantVerification --- app/models/concerns/versions.rb | 2 + app/models/registrant_verification.rb | 2 +- ...rification_creator_updator_id_to_string.rb | 9 + db/structure.sql | 192 +++++++++--------- .../domains/domain_delete_confirms_test.rb | 9 + 5 files changed, 118 insertions(+), 96 deletions(-) create mode 100644 db/migrate/20200807110611_change_registrant_verification_creator_updator_id_to_string.rb diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index a016a8a04..033ebe52a 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -30,12 +30,14 @@ module Versions def creator return nil if creator_str.blank? + creator = user_from_id_role_username creator_str creator.present? ? creator : creator_str end def updator return nil if updator_str.blank? + updator = user_from_id_role_username updator_str updator.present? ? updator : updator_str end diff --git a/app/models/registrant_verification.rb b/app/models/registrant_verification.rb index 10f6b4881..097f0cfa9 100644 --- a/app/models/registrant_verification.rb +++ b/app/models/registrant_verification.rb @@ -1,7 +1,7 @@ # Used in Registrant portal to collect registrant verifications # Registrant postgres user can access this table directly. class RegistrantVerification < ApplicationRecord - has_paper_trail versions: { class_name: 'RegistrantVerificationVersion' } + include Versions # version/domain_version.rb # actions CONFIRMED = 'confirmed' diff --git a/db/migrate/20200807110611_change_registrant_verification_creator_updator_id_to_string.rb b/db/migrate/20200807110611_change_registrant_verification_creator_updator_id_to_string.rb new file mode 100644 index 000000000..144a80ceb --- /dev/null +++ b/db/migrate/20200807110611_change_registrant_verification_creator_updator_id_to_string.rb @@ -0,0 +1,9 @@ +class ChangeRegistrantVerificationCreatorUpdatorIdToString < ActiveRecord::Migration[6.0] + def change + add_column :registrant_verifications, :creator_str, :string + add_column :registrant_verifications, :updator_str, :string + + remove_column :registrant_verifications, :creator_id + remove_column :registrant_verifications, :updater_id + end +end diff --git a/db/structure.sql b/db/structure.sql index 29e59a8a0..59492ff4a 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,6 +1,6 @@ ----- ----- PostgreSQL database dump ----- +--- +--- PostgreSQL database dump +--- SET statement_timeout = 0; SET lock_timeout = 0; @@ -31,7 +31,6 @@ COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; CREATE EXTENSION IF NOT EXISTS btree_gist WITH SCHEMA public; - -- -- Name: citext; Type: EXTENSION; Schema: -; Owner: - -- @@ -567,7 +566,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: data_migrations; Type: TABLE; Schema: public; Owner: - +-- Name: data_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.data_migrations ( @@ -576,7 +575,7 @@ CREATE TABLE public.data_migrations ( -- --- Name: directos; Type: TABLE; Schema: public; Owner: - +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -824,7 +823,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: - +-- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.email_address_verifications ( @@ -856,7 +855,7 @@ ALTER SEQUENCE public.email_address_verifications_id_seq OWNED BY public.email_a -- --- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: - +-- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.email_addresses_validations ( @@ -886,7 +885,7 @@ ALTER SEQUENCE public.email_addresses_validations_id_seq OWNED BY public.email_a -- --- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: - +-- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.email_addresses_verifications ( @@ -916,7 +915,7 @@ ALTER SEQUENCE public.email_addresses_verifications_id_seq OWNED BY public.email -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -2132,8 +2131,8 @@ CREATE TABLE public.registrant_verifications ( action character varying NOT NULL, domain_id integer NOT NULL, action_type character varying NOT NULL, - creator_id integer, - updater_id integer + creator_str character varying, + updator_str character varying ); @@ -2591,42 +2590,42 @@ ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('pu -- --- Name: domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: email_address_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.email_address_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_address_verifications_id_seq'::regclass); -- --- Name: email_addresses_validations id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.email_addresses_validations ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_validations_id_seq'::regclass); -- --- Name: email_addresses_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.email_addresses_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_verifications_id_seq'::regclass); -- --- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); @@ -3027,7 +3026,7 @@ ALTER TABLE ONLY public.domains -- --- Name: email_address_verifications email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.email_address_verifications @@ -3035,7 +3034,7 @@ ALTER TABLE ONLY public.email_address_verifications -- --- Name: email_addresses_validations email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.email_addresses_validations @@ -3043,7 +3042,7 @@ ALTER TABLE ONLY public.email_addresses_validations -- --- Name: email_addresses_verifications email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.email_addresses_verifications @@ -3051,7 +3050,7 @@ ALTER TABLE ONLY public.email_addresses_verifications -- --- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3059,7 +3058,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -3339,7 +3338,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: domain_contacts uniq_contact_of_type_per_domain; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_contact_of_type_per_domain; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -3347,7 +3346,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: contacts uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3355,7 +3354,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domains uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3363,7 +3362,7 @@ ALTER TABLE ONLY public.domains -- --- Name: nameservers uniq_hostname_per_domain; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_hostname_per_domain; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3371,7 +3370,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: reserved_domains uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3379,7 +3378,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: auctions uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3638,447 +3637,448 @@ CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (regist -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: - +-- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: - +-- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); + -- --- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -4086,7 +4086,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4711,5 +4711,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200605100827'), ('20200610090110'), ('20200630081231'), -('20200714115338'); +('20200714115338'), +('20200807110611'); + diff --git a/test/system/registrant_area/domains/domain_delete_confirms_test.rb b/test/system/registrant_area/domains/domain_delete_confirms_test.rb index fac381dc4..0eb61ada8 100644 --- a/test/system/registrant_area/domains/domain_delete_confirms_test.rb +++ b/test/system/registrant_area/domains/domain_delete_confirms_test.rb @@ -29,4 +29,13 @@ class DomainDeleteConfirmsTest < ApplicationSystemTestCase @domain.reload assert_equal ['ok'], @domain.statuses end + + def test_saves_whodunnit_info_after_verifivation + visit registrant_domain_delete_confirm_url(@domain.id, token: @domain.registrant_verification_token) + token = @domain.registrant_verification_token + click_on 'Confirm domain delete' + assert_text 'Domain registrant change has successfully received.' + + refute RegistrantVerification.find_by(verification_token:token).updator_str.empty? + end end From 8e0b02af2dd8d9ae353a0938c22a3e141f0b161b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 7 Aug 2020 15:37:35 +0300 Subject: [PATCH 695/757] Upgrade sdoc to 1.1, json to 2.3.1 --- Gemfile | 2 +- Gemfile.lock | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 99091f556..f1d03f8a8 100644 --- a/Gemfile +++ b/Gemfile @@ -81,10 +81,10 @@ end group :development, :test do gem 'pry', '0.10.1' - gem 'sdoc', '0.4.1' # bundle exec rake doc:rails generates the API under doc/api. gem 'railroady', '1.3.0' # to generate database diagrams gem 'autodoc' gem 'puma' + gem 'sdoc', '~> 1.1' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index e4ad26396..dcf62a343 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -253,7 +253,7 @@ GEM thor (>= 0.14, < 2.0) jquery-ui-rails (5.0.5) railties (>= 3.2.16) - json (1.8.6) + json (2.3.1) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -377,7 +377,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rbtree3 (0.6.0) - rdoc (4.3.0) + rdoc (6.2.1) regexp_parser (1.7.1) request_store (1.5.0) rack (>= 1.4) @@ -423,9 +423,8 @@ GEM nokogiri (>= 1.8.1) nori (~> 2.4) wasabi (~> 3.4) - sdoc (0.4.1) - json (~> 1.7, >= 1.7.7) - rdoc (~> 4.0) + sdoc (1.1.0) + rdoc (>= 5.0) select2-rails (3.5.9.3) thor (~> 0.14) selectize-rails (0.12.1) @@ -545,7 +544,7 @@ DEPENDENCIES ransack (~> 2.3) rest-client sass-rails - sdoc (= 0.4.1) + sdoc (~> 1.1) select2-rails (= 3.5.9.3) selectize-rails (= 0.12.1) simplecov (= 0.17.1) From e7f8c83eb6139b30aa0e5276e5d07ac1ee9f9aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 7 Aug 2020 15:47:56 +0300 Subject: [PATCH 696/757] Force whodunnit hook on admin controllers --- app/controllers/admin/base_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/base_controller.rb b/app/controllers/admin/base_controller.rb index 17e75785a..1fec2a18f 100644 --- a/app/controllers/admin/base_controller.rb +++ b/app/controllers/admin/base_controller.rb @@ -2,6 +2,7 @@ module Admin class BaseController < ApplicationController before_action :authenticate_admin_user! helper_method :head_title_sufix + before_action :set_paper_trail_whodunnit def head_title_sufix t(:admin_head_title_sufix) @@ -17,4 +18,4 @@ module Admin current_admin_user ? current_admin_user.id_role_username : 'anonymous' end end -end \ No newline at end of file +end From 3303e246d11ce37b95b07eccd12eb5a4d686ec54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 7 Aug 2020 19:16:27 +0300 Subject: [PATCH 697/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1c63e4ab..ac69189d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +07.08.2020 +* Restored creator and updator strings to contacts and related object records [#1636](https://github.com/internetee/registry/issues/1636) + 04.08.2020 * Fixed registrant verification for domain delete [#1631](https://github.com/internetee/registry/issues/1631) * Fixed domain transfer issue when one person was present in the same role more than once (different objects) [#1651](https://github.com/internetee/registry/issues/1651) From 21d246cc3e2eb35ea0b2c4d076f78cf536b70b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 7 Aug 2020 19:35:19 +0300 Subject: [PATCH 698/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac69189d5..f6a9ff66a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 07.08.2020 * Restored creator and updator strings to contacts and related object records [#1636](https://github.com/internetee/registry/issues/1636) +* Security gem updates: sdoc to 1.1 and json to 2.3.1 [#1657](https://github.com/internetee/registry/pull/1657) 04.08.2020 * Fixed registrant verification for domain delete [#1631](https://github.com/internetee/registry/issues/1631) From 3b53e122845c395d87a57847644068982c67d881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 10 Aug 2020 12:47:02 +0300 Subject: [PATCH 699/757] Clear contact address fields if address processing turned off --- app/models/contact.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/models/contact.rb b/app/models/contact.rb index ac64b059f..e91dab3b5 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -62,6 +62,7 @@ class Contact < ApplicationRecord mapping: [%w[ident code], %w[ident_type type], %w[ident_country_code country_code]] after_save :update_related_whois_records + before_save :clear_address_modifications, if: -> { !self.class.address_processing? } self.ignored_columns = %w[legacy_id legacy_history_id] @@ -507,6 +508,21 @@ class Contact < ApplicationRecord ]).present? end + def clear_address_modifications + return unless modifies_address? + + addr_fields = %i[city street zip state country_code] + addr_fields.each { |field| self[field] = nil } + end + + def modifies_address? + addr_fields = %i[city street zip state country_code] + modified = false + addr_fields.each { |field| modified = true if changes.key?(field) } + + modified + end + def update_related_whois_records # not doing anything if no real changes ignored_columns = %w[updated_at created_at statuses status_notes] From 1bc0ec07d38b39c86875780473775fa1f80d353e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 10 Aug 2020 13:59:50 +0300 Subject: [PATCH 700/757] Fix registrant API test --- test/integration/api/v1/registrant/contacts/update_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/api/v1/registrant/contacts/update_test.rb b/test/integration/api/v1/registrant/contacts/update_test.rb index 6e0c0eea3..e2e9abe9a 100644 --- a/test/integration/api/v1/registrant/contacts/update_test.rb +++ b/test/integration/api/v1/registrant/contacts/update_test.rb @@ -91,8 +91,8 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest end def test_address_is_optional_when_enabled - @contact.update!(street: 'any', zip: 'any', city: 'any', state: 'any', country_code: 'US') Setting.address_processing = true + @contact.update!(street: 'any', zip: 'any', city: 'any', state: 'any', country_code: 'US') patch api_v1_registrant_contact_path(@contact.uuid), params: { name: 'any' }, as: :json, From 55ae0dc0b785e1a3fd3c514e215dd353039ab59a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 10 Aug 2020 14:05:22 +0300 Subject: [PATCH 701/757] Remove redundant functions --- app/models/contact.rb | 6 ++---- test/models/contact_test.rb | 2 ++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index e91dab3b5..a2057f229 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -511,14 +511,12 @@ class Contact < ApplicationRecord def clear_address_modifications return unless modifies_address? - addr_fields = %i[city street zip state country_code] - addr_fields.each { |field| self[field] = nil } + remove_address end def modifies_address? - addr_fields = %i[city street zip state country_code] modified = false - addr_fields.each { |field| modified = true if changes.key?(field) } + self.class.address_attribute_names.each { |field| modified = true if changes.key?(field) } modified end diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index f833011c6..48b98a0d2 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -152,6 +152,8 @@ class ContactTest < ActiveSupport::TestCase end def test_address + Setting.address_processing = true + address = Contact::Address.new('new street', '83746', 'new city', 'new state', 'EE') @contact.address = address @contact.save! From 625bd459de045ae7f923acefc47b81e57a10164b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 10 Aug 2020 14:27:05 +0300 Subject: [PATCH 702/757] Explicitly set address_processing to false in tests --- test/test_helper.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/test_helper.rb b/test/test_helper.rb index bee6fdcf9..1b70baf49 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -47,6 +47,7 @@ class ActiveSupport::TestCase teardown do travel_back + Setting.address_processing = false end end @@ -60,9 +61,14 @@ class ApplicationIntegrationTest < ActionDispatch::IntegrationTest WebMock.reset! Capybara.reset_sessions! Capybara.use_default_driver + Setting.address_processing = false end end class EppTestCase < ActionDispatch::IntegrationTest include Assertions::EppAssertions + + teardown do + Setting.address_processing = false + end end From 8f8b246e493779503dd7c19e6c13d9ff51d093d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 10 Aug 2020 16:04:02 +0300 Subject: [PATCH 703/757] Query address mandatoryness via Contact.address_processing? --- app/models/actions/contact_update.rb | 2 +- app/models/contact.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/actions/contact_update.rb b/app/models/actions/contact_update.rb index 5b94cf918..f8b39ecb4 100644 --- a/app/models/actions/contact_update.rb +++ b/app/models/actions/contact_update.rb @@ -23,7 +23,7 @@ module Actions end def maybe_remove_address - return if Setting.address_processing? + return if Contact.address_processing? new_attributes.delete(:city) new_attributes.delete(:zip) diff --git a/app/models/contact.rb b/app/models/contact.rb index a2057f229..4199e6dc7 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -62,7 +62,7 @@ class Contact < ApplicationRecord mapping: [%w[ident code], %w[ident_type type], %w[ident_country_code country_code]] after_save :update_related_whois_records - before_save :clear_address_modifications, if: -> { !self.class.address_processing? } + before_validation :clear_address_modifications, if: -> { !self.class.address_processing? } self.ignored_columns = %w[legacy_id legacy_history_id] From e40353042e7d509c9b1196db1f7d9a9b75296ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 10 Aug 2020 16:04:52 +0300 Subject: [PATCH 704/757] Include tests for EPP contact create/update actions regarding to addressing --- app/models/epp/response/result/code.rb | 1 + .../epp/contact/create/base_test.rb | 111 ++++++++++++++++++ .../epp/contact/update/base_test.rb | 93 +++++++++++++++ 3 files changed, 205 insertions(+) diff --git a/app/models/epp/response/result/code.rb b/app/models/epp/response/result/code.rb index 2a65f6747..e2af0823d 100644 --- a/app/models/epp/response/result/code.rb +++ b/app/models/epp/response/result/code.rb @@ -7,6 +7,7 @@ module Epp KEY_TO_VALUE = { completed_successfully: 1000, completed_successfully_action_pending: 1001, + completed_without_address: 1100, completed_successfully_no_messages: 1300, completed_successfully_ack_to_dequeue: 1301, completed_successfully_ending_session: 1500, diff --git a/test/integration/epp/contact/create/base_test.rb b/test/integration/epp/contact/create/base_test.rb index e9a59b8d2..262487a1e 100644 --- a/test/integration/epp/contact/create/base_test.rb +++ b/test/integration/epp/contact/create/base_test.rb @@ -140,4 +140,115 @@ class EppContactCreateBaseTest < EppTestCase end assert_epp_response :required_parameter_missing end + + def test_does_not_save_address_when_address_processing_turned_off + name = 'new' + email = 'new@registrar.test' + phone = '+1.2' + + request_xml = <<-XML + + + + + + + #{name} + + 123 Example + Tallinn + FFF + 123456 + EE + + + #{phone} + #{email} + + + + + 123 + + + + + XML + + assert_difference 'Contact.count' do + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + + assert_epp_response :completed_without_address + contact = Contact.find_by(name: name) + assert_equal name, contact.name + assert_equal email, contact.email + assert_equal phone, contact.phone + assert_not_empty contact.code + assert_nil contact.city + assert_nil contact.street + assert_nil contact.zip + assert_nil contact.country_code + assert_nil contact.state + end + + def test_saves_address_when_address_processing_turned_on + Setting.address_processing = true + + name = 'new' + email = 'new@registrar.test' + phone = '+1.2' + street = '123 Example' + city = 'Tallinn' + state = 'Harjumaa' + zip = '123456' + country_code = 'EE' + + request_xml = <<-XML + + + + + + + #{name} + + #{street} + #{city} + #{state} + #{zip} + #{country_code} + + + #{phone} + #{email} + + + + + 123 + + + + + XML + + assert_difference 'Contact.count' do + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + + assert_epp_response :completed_successfully + contact = Contact.find_by(name: name) + assert_equal name, contact.name + assert_equal email, contact.email + assert_equal phone, contact.phone + assert_not_empty contact.code + assert_equal city, contact.city + assert_equal street, contact.street + assert_equal zip, contact.zip + assert_equal country_code, contact.country_code + assert_equal state, contact.state + end end diff --git a/test/integration/epp/contact/update/base_test.rb b/test/integration/epp/contact/update/base_test.rb index 3d332711f..98c0e4462 100644 --- a/test/integration/epp/contact/update/base_test.rb +++ b/test/integration/epp/contact/update/base_test.rb @@ -232,6 +232,99 @@ class EppContactUpdateBaseTest < EppTestCase assert_epp_response :completed_successfully end + def test_updates_address_when_address_processing_turned_on + @contact.update_columns(code: @contact.code.upcase) + Setting.address_processing = true + + street = '123 Example' + city = 'Tallinn' + state = 'Harjumaa' + zip = '123456' + country_code = 'EE' + + request_xml = <<-XML + + + + + + #{@contact.code} + + + + #{street} + #{city} + #{state} + #{zip} + #{country_code} + + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + + assert_epp_response :completed_successfully + @contact.reload + + assert_equal city, @contact.city + assert_equal street, @contact.street + assert_equal zip, @contact.zip + assert_equal country_code, @contact.country_code + assert_equal state, @contact.state + end + + def test_does_not_update_address_when_address_processing_turned_off + @contact.update_columns(code: @contact.code.upcase) + + street = '123 Example' + city = 'Tallinn' + state = 'Harjumaa' + zip = '123456' + country_code = 'EE' + + request_xml = <<-XML + + + + + + #{@contact.code} + + + + #{street} + #{city} + #{state} + #{zip} + #{country_code} + + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + + assert_epp_response :completed_without_address + @contact.reload + + assert_nil @contact.city + assert_nil @contact.street + assert_nil @contact.zip + assert_nil @contact.country_code + assert_nil @contact.state + end + private def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) From 414519d17fa76363b1077cdaaa8dfa65f10056a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 10 Aug 2020 16:13:35 +0300 Subject: [PATCH 705/757] Improve addressing tests --- app/models/epp/response/result/code.rb | 1 + test/models/contact_test.rb | 1 + test/models/epp/response/result/code_test.rb | 2 ++ 3 files changed, 4 insertions(+) diff --git a/app/models/epp/response/result/code.rb b/app/models/epp/response/result/code.rb index e2af0823d..1be4a3f7c 100644 --- a/app/models/epp/response/result/code.rb +++ b/app/models/epp/response/result/code.rb @@ -36,6 +36,7 @@ module Epp DEFAULT_DESCRIPTIONS = { 1000 => 'Command completed successfully', 1001 => 'Command completed successfully; action pending', + 1100 => 'Command completed successfully; Postal address data discarded', 1300 => 'Command completed successfully; no messages', 1301 => 'Command completed successfully; ack to dequeue', 1500 => 'Command completed successfully; ending session', diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 48b98a0d2..000333d57 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -240,6 +240,7 @@ class ContactTest < ActiveSupport::TestCase end def test_normalizes_country_code + Setting.address_processing = true contact = Contact.new(country_code: 'us') contact.validate assert_equal 'US', contact.country_code diff --git a/test/models/epp/response/result/code_test.rb b/test/models/epp/response/result/code_test.rb index 3c75303f1..f16013180 100644 --- a/test/models/epp/response/result/code_test.rb +++ b/test/models/epp/response/result/code_test.rb @@ -28,6 +28,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase codes = { completed_successfully: 1000, completed_successfully_action_pending: 1001, + completed_without_address: 1100, completed_successfully_no_messages: 1300, completed_successfully_ack_to_dequeue: 1301, completed_successfully_ending_session: 1500, @@ -58,6 +59,7 @@ class EppResponseResultCodeTest < ActiveSupport::TestCase descriptions = { 1000 => 'Command completed successfully', 1001 => 'Command completed successfully; action pending', + 1100 => 'Command completed successfully; Postal address data discarded', 1300 => 'Command completed successfully; no messages', 1301 => 'Command completed successfully; ack to dequeue', 1500 => 'Command completed successfully; ending session', From a0c21d005ea1f26c330480bc5ee62bd7b07f42c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 11:57:51 +0300 Subject: [PATCH 706/757] Create SettingEntry model --- app/models/setting_entry.rb | 52 ++++++++++++++ .../20200811074839_create_setting_entries.rb | 16 +++++ db/structure.sql | 69 ++++++++++++++++++- 3 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 app/models/setting_entry.rb create mode 100644 db/migrate/20200811074839_create_setting_entries.rb diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb new file mode 100644 index 000000000..05b92907f --- /dev/null +++ b/app/models/setting_entry.rb @@ -0,0 +1,52 @@ +class SettingEntry < ApplicationRecord + validates :code, presence: true, uniqueness: true + validates :value, presence: true + validates :format, presence: true + validate :valid_value_format + + VALUE_FORMATS = { + string: :string_format, + integer: :integer_format, + boolean: :boolean_format, + hash: :hash_format, + array: :array_format, + }.with_indifferent_access.freeze + + def valid_value_format + formats = VALUE_FORMATS.with_indifferent_access + errors.add(:format, :invalid) unless formats.keys.any? format + end + + def string_format + value + end + + def integer_format + value.to_i + end + + def boolean_format + value == 'true' + end + + def hash_format + JSON.parse(value) + end + + def array_format + JSON.parse(value).to_a + end + + def retrieve + method = VALUE_FORMATS[format] + send(method) + end + + def self.method_missing(method, *args) + super(method, *args) + rescue NoMethodError + raise NoMethodError if method.to_s.include? '=' + + SettingEntry.find_by!(code: method.to_s).retrieve + end +end diff --git a/db/migrate/20200811074839_create_setting_entries.rb b/db/migrate/20200811074839_create_setting_entries.rb new file mode 100644 index 000000000..658d576df --- /dev/null +++ b/db/migrate/20200811074839_create_setting_entries.rb @@ -0,0 +1,16 @@ +class CreateSettingEntries < ActiveRecord::Migration[6.0] + def change + create_table :setting_entries do |t| + t.string :code, null: false, index: { unique: true } + t.string :value, null: false + t.string :group, null: false + t.string :format, null: false + + # Versioning related + t.string :creator_str + t.string :updator_str + + t.timestamps + end + end +end diff --git a/db/structure.sql b/db/structure.sql index 59492ff4a..04ccc0e16 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -31,6 +31,14 @@ COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; CREATE EXTENSION IF NOT EXISTS btree_gist WITH SCHEMA public; + +-- +-- Name: EXTENSION btree_gist; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON EXTENSION btree_gist IS 'support for indexing common datatypes in GiST'; + + -- -- Name: citext; Type: EXTENSION; Schema: -; Owner: - -- @@ -2254,6 +2262,42 @@ CREATE TABLE public.schema_migrations ( ); +-- +-- Name: setting_entries; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.setting_entries ( + id bigint NOT NULL, + code character varying NOT NULL, + value character varying NOT NULL, + "group" character varying NOT NULL, + format character varying NOT NULL, + creator_str character varying, + updator_str character varying, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL +); + + +-- +-- Name: setting_entries_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.setting_entries_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: setting_entries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.setting_entries_id_seq OWNED BY public.setting_entries.id; + + -- -- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -2855,6 +2899,13 @@ ALTER TABLE ONLY public.registrars ALTER COLUMN id SET DEFAULT nextval('public.r ALTER TABLE ONLY public.reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.reserved_domains_id_seq'::regclass); +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.setting_entries ALTER COLUMN id SET DEFAULT nextval('public.setting_entries_id_seq'::regclass); + + -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -3321,6 +3372,14 @@ ALTER TABLE ONLY public.reserved_domains ADD CONSTRAINT reserved_domains_pkey PRIMARY KEY (id); +-- +-- Name: setting_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.setting_entries + ADD CONSTRAINT setting_entries_pkey PRIMARY KEY (id); + + -- -- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3993,6 +4052,13 @@ CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_v CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); +-- +-- Name: index_setting_entries_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE UNIQUE INDEX index_setting_entries_on_code ON public.setting_entries USING btree (code); + + -- -- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -4712,6 +4778,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200610090110'), ('20200630081231'), ('20200714115338'), -('20200807110611'); +('20200807110611'), +('20200811074839'); From 4f599003671d00be80c259d6612168b2ad1e90ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 12:09:01 +0300 Subject: [PATCH 707/757] Add grouping feature to SettingEntries --- app/models/setting_entry.rb | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index 05b92907f..bd3afb170 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -2,6 +2,7 @@ class SettingEntry < ApplicationRecord validates :code, presence: true, uniqueness: true validates :value, presence: true validates :format, presence: true + validates :group, presence: true validate :valid_value_format VALUE_FORMATS = { @@ -12,6 +13,24 @@ class SettingEntry < ApplicationRecord array: :array_format, }.with_indifferent_access.freeze + def retrieve + method = VALUE_FORMATS[format] + send(method) + end + + def self.groups + SettingEntry.all.pluck(:group).uniq + end + + def self.method_missing(method, *args) + super(method, *args) + rescue NoMethodError + raise NoMethodError if method.to_s.include? '=' + + SettingEntry.find_by!(code: method.to_s).retrieve + end + + # Validators def valid_value_format formats = VALUE_FORMATS.with_indifferent_access errors.add(:format, :invalid) unless formats.keys.any? format @@ -36,17 +55,4 @@ class SettingEntry < ApplicationRecord def array_format JSON.parse(value).to_a end - - def retrieve - method = VALUE_FORMATS[format] - send(method) - end - - def self.method_missing(method, *args) - super(method, *args) - rescue NoMethodError - raise NoMethodError if method.to_s.include? '=' - - SettingEntry.find_by!(code: method.to_s).retrieve - end end From 950bdc62562abf94bb87ddd78a201481418eabde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 12:29:13 +0300 Subject: [PATCH 708/757] Modify Settings UI to read values from SettingEntry model --- app/controllers/admin/settings_controller.rb | 7 +- app/models/setting_entry.rb | 4 ++ app/views/admin/settings/_setting_row.haml | 13 ++-- app/views/admin/settings/index.haml | 67 +++----------------- 4 files changed, 26 insertions(+), 65 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 293c994b6..27e12a2a1 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -3,7 +3,12 @@ module Admin load_and_authorize_resource def index - @settings = Setting.unscoped + @settings = SettingEntry.unscoped + @validation_settings = SettingEntry.with_group('domain_validation') + @expiration_settings = SettingEntry.with_group('domain_expiration') + @other_settings = SettingEntry.with_group('other') + @billing_settings = SettingEntry.with_group('billing') + @contacts_settings = SettingEntry.with_group('contacts') end def create diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index bd3afb170..d86e0dd90 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -18,6 +18,10 @@ class SettingEntry < ApplicationRecord send(method) end + def self.with_group(group_name) + SettingEntry.where(group: group_name) + end + def self.groups SettingEntry.all.pluck(:group).uniq end diff --git a/app/views/admin/settings/_setting_row.haml b/app/views/admin/settings/_setting_row.haml index befd5b9d9..bc3e47d6b 100644 --- a/app/views/admin/settings/_setting_row.haml +++ b/app/views/admin/settings/_setting_row.haml @@ -1,9 +1,8 @@ -- value = Setting.send(var) -%tr{class: (@errors && @errors.has_key?(var.to_s) && "danger")} - %td.col-md-6= var.to_s.humanize - - if [TrueClass, FalseClass].include?(value.class) +%tr{class: (@errors && @errors.has_key?(setting.code) && "danger")} + %td.col-md-6= setting.code.humanize + - if [TrueClass, FalseClass].include?(setting.value.class) %td.col-md-6 - = hidden_field_tag("[settings][#{var}]", '', id: nil) - = check_box_tag("[settings][#{var}]", true, value) + = hidden_field_tag("[settings][#{setting.code}]", '', id: nil) + = check_box_tag("[settings][#{setting.code}]", true, value) - else - %td.col-md-6= text_field_tag("[settings][#{var}]", value, class: 'form-control') + %td.col-md-6= text_field_tag("[settings][#{setting.code}]", setting.value, class: 'form-control') diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index 9eb236b65..30a53da33 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -9,20 +9,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :admin_contacts_min_count - = render 'setting_row', var: :admin_contacts_max_count - = render 'setting_row', var: :tech_contacts_min_count - = render 'setting_row', var: :tech_contacts_max_count - = render 'setting_row', var: :orphans_contacts_in_months - = render 'setting_row', var: :ds_data_allowed - = render 'setting_row', var: :key_data_allowed - = render 'setting_row', var: :dnskeys_min_count - = render 'setting_row', var: :dnskeys_max_count - = render 'setting_row', var: :nameserver_required - = render 'setting_row', var: :ns_min_count - = render 'setting_row', var: :ns_max_count - = render 'setting_row', var: :expire_pending_confirmation - = render 'setting_row', var: :legal_document_is_mandatory + - @validation_settings.each do |setting| + = render 'setting_row', setting: setting .panel.panel-default .panel-heading @@ -30,10 +18,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :days_to_renew_domain_before_expire - = render 'setting_row', var: :expire_warning_period - = render 'setting_row', var: :redemption_grace_period - = render 'setting_row', var: :expiration_reminder_mail + - @expiration_settings.each do |setting| + = render 'setting_row', setting: setting .panel.panel-default .panel-heading @@ -41,15 +27,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :transfer_wait_time - = render 'setting_row', var: :ds_digest_type - = render 'setting_row', var: :client_side_status_editing_enabled - = render 'setting_row', var: :api_ip_whitelist_enabled - = render 'setting_row', var: :registrar_ip_whitelist_enabled - = render 'setting_row', var: :request_confrimation_on_registrant_change_enabled - = render 'setting_row', var: :request_confirmation_on_domain_deletion_enabled - = render 'setting_row', var: :address_processing - = render 'setting_row', var: :dispute_period_in_months + - @other_settings.each do |setting| + = render 'setting_row', setting: setting %tr %td.col-md-6= label_tag :default_language %td.col-md-6 @@ -63,25 +42,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :invoice_number_min - = render 'setting_row', var: :invoice_number_max - = render 'setting_row', var: :directo_monthly_number_min - = render 'setting_row', var: :directo_monthly_number_max - = render 'setting_row', var: :directo_monthly_number_last - = render 'setting_row', var: :days_to_keep_invoices_active - = render 'setting_row', var: :days_to_keep_overdue_invoices_active - = render 'setting_row', var: :minimum_deposit - = render 'setting_row', var: :directo_receipt_payment_term - = render 'setting_row', var: :directo_receipt_product_name - = render 'setting_row', var: :directo_sales_agent - = render 'setting_row', var: :registry_billing_email - = render 'setting_row', var: :registry_invoice_contact - = render 'setting_row', var: :registry_vat_no - = render 'setting_row', var: :registry_vat_prc - = render 'setting_row', var: :registry_bank - = render 'setting_row', var: :registry_bank_code - = render 'setting_row', var: :registry_iban - = render 'setting_row', var: :registry_swift + - @billing_settings.each do |setting| + = render 'setting_row', setting: setting .panel.panel-default .panel-heading @@ -89,17 +51,8 @@ .table-responsive %table.table.table-hover.table-bordered.table-condensed %tbody - = render 'setting_row', var: :registry_juridical_name - = render 'setting_row', var: :registry_reg_no - = render 'setting_row', var: :registry_email - = render 'setting_row', var: :registry_phone - = render 'setting_row', var: :registry_url - = render 'setting_row', var: :registry_street - = render 'setting_row', var: :registry_city - = render 'setting_row', var: :registry_state - = render 'setting_row', var: :registry_zip - = render 'setting_row', var: :registry_country_code - = render 'setting_row', var: :registry_whois_disclaimer + - @contacts_settings.each do |setting| + = render 'setting_row', setting: setting .row .col-md-12.text-right From 075b4900a05f75a84660a374361d6764c64ff505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 11 Aug 2020 13:37:30 +0300 Subject: [PATCH 709/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6a9ff66a..3ba471dc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +11.08.2020 +* FIxed postal address saving bug with disabled address processing [#1650](https://github.com/internetee/registry/issues/1650) + 07.08.2020 * Restored creator and updator strings to contacts and related object records [#1636](https://github.com/internetee/registry/issues/1636) * Security gem updates: sdoc to 1.1 and json to 2.3.1 [#1657](https://github.com/internetee/registry/pull/1657) From b3941a373c8c19dc9773a285ed468ec8b8436a9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 14:57:05 +0300 Subject: [PATCH 710/757] Create action to migrate settings to new model --- app/models/concerns/settings/migratable.rb | 92 ++ app/models/legal_document.rb | 2 +- app/models/setting_entry.rb | 12 +- .../20200811074839_create_setting_entries.rb | 2 +- db/structure.sql | 899 ++++++++++-------- 5 files changed, 589 insertions(+), 418 deletions(-) create mode 100644 app/models/concerns/settings/migratable.rb diff --git a/app/models/concerns/settings/migratable.rb b/app/models/concerns/settings/migratable.rb new file mode 100644 index 000000000..ab0af4a53 --- /dev/null +++ b/app/models/concerns/settings/migratable.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +module Concerns + module Settings + module Migratable + extend ActiveSupport::Concern + + VALIDATION_SETTINGS = %w[admin_contacts_min_count admin_contacts_max_count tech_contacts_min_count tech_contacts_max_count orphans_contacts_in_months ds_data_allowed key_data_allowed dnskeys_min_count dnskeys_max_count nameserver_required ns_min_count ns_max_count expire_pending_confirmation legal_document_is_mandatory].freeze + EXPIRATION_SETTINGS = %w[days_to_renew_domain_before_expire expire_warning_period redemption_grace_period expiration_reminder_mail].freeze + BILLING_SETTINGS = %w[invoice_number_min invoice_number_max directo_monthly_number_min directo_monthly_number_max directo_monthly_number_last days_to_keep_invoices_active days_to_keep_overdue_invoices_active minimum_deposit directo_receipt_payment_term directo_receipt_product_name directo_sales_agent registry_billing_email registry_invoice_contact registry_vat_no registry_vat_prc registry_bank registry_bank_code registry_iban registry_swift].freeze + CONTACTS_SETTINGS = %w[registry_juridical_name registry_reg_no registry_email registry_phone registry_url registry_street registry_city registry_state registry_zip registry_country_code registry_whois_disclaimer].freeze + + INTEGER_SETTINGS = + %w[ + admin_contacts_min_count + admin_contacts_max_count + tech_contacts_min_count + tech_contacts_max_count + orphans_contacts_in_months + ds_digest_type + dnskeys_min_count + dnskeys_max_count + ns_min_count + ns_max_count + transfer_wait_time + invoice_number_min + invoice_number_max + days_to_keep_invoices_active + days_to_keep_overdue_invoices_active + days_to_renew_domain_before_expire + expire_warning_period + redemption_grace_period + expire_pending_confirmation + dispute_period_in_months + ].freeze + + FLOAT_SETTINGS = %w[registry_vat_prc minimum_deposit].freeze + + BOOLEAN_SETTINGS = + %w[ + ds_data_allowed + key_data_allowed + client_side_status_editing_enabled + registrar_ip_whitelist_enabled + api_ip_whitelist_enabled + request_confrimation_on_registrant_change_enabled + request_confirmation_on_domain_deletion_enabled + nameserver_required + address_processing + legal_document_is_mandatory + ].freeze + + class_methods do + def copy_from_legacy + sql = 'SELECT var, value, created_at, updated_at, creator_str, updator_str FROM settings ORDER BY settings.id ASC' + old_settings = ActiveRecord::Base.connection.execute(sql) + + old_settings.each do |origin| + entry = SettingEntry.find_or_initialize_by(code: origin['var']) + entry[:format] = 'string' + entry[:format] = 'boolean' if BOOLEAN_SETTINGS.include? entry.code + entry[:format] = 'float' if FLOAT_SETTINGS.include? entry.code + entry[:format] = 'integer' if INTEGER_SETTINGS.include? entry.code + + entry[:group] = 'other' + if VALIDATION_SETTINGS.include? entry.code + entry[:group] = 'domain_validation' + end + if EXPIRATION_SETTINGS.include? entry.code + entry[:group] = 'domain_expiration' + end + entry[:group] = 'billing' if BILLING_SETTINGS.include? entry.code + entry[:group] = 'contacts' if CONTACTS_SETTINGS.include? entry.code + + %w[value created_at updated_at creator_str updator_str].each do |field| + entry[field] = origin[field] + next if field != 'value' + + entry.value = origin[field].gsub('--- ', '').strip.gsub("'", '') + end + + if entry.save + logger.info "Legacy setting '#{entry.code}' successfully migrated to SettingEntry" + else + logger.error "!!! Failed to migrate setting '#{entry.code}': #{entry.errors.full_messages.join(', ')}" + end + end + end + end + end + end +end diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 446087124..7668e4c1b 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -1,7 +1,7 @@ class LegalDocument < ApplicationRecord cattr_accessor :explicitly_write_file include EppErrors - MIN_BODY_SIZE = (1.37 * 3.kilobytes).ceil + MIN_BODY_SIZE = 5 if ENV['legal_document_types'].present? TYPES = ENV['legal_document_types'].split(',').map(&:strip) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index d86e0dd90..10792f594 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -4,10 +4,12 @@ class SettingEntry < ApplicationRecord validates :format, presence: true validates :group, presence: true validate :valid_value_format + include Concerns::Settings::Migratable VALUE_FORMATS = { string: :string_format, integer: :integer_format, + float: :float_format, boolean: :boolean_format, hash: :hash_format, array: :array_format, @@ -19,11 +21,7 @@ class SettingEntry < ApplicationRecord end def self.with_group(group_name) - SettingEntry.where(group: group_name) - end - - def self.groups - SettingEntry.all.pluck(:group).uniq + SettingEntry.order(id: :asc).where(group: group_name) end def self.method_missing(method, *args) @@ -48,6 +46,10 @@ class SettingEntry < ApplicationRecord value.to_i end + def float_format + value.to_f + end + def boolean_format value == 'true' end diff --git a/db/migrate/20200811074839_create_setting_entries.rb b/db/migrate/20200811074839_create_setting_entries.rb index 658d576df..276ec760a 100644 --- a/db/migrate/20200811074839_create_setting_entries.rb +++ b/db/migrate/20200811074839_create_setting_entries.rb @@ -2,7 +2,7 @@ class CreateSettingEntries < ActiveRecord::Migration[6.0] def change create_table :setting_entries do |t| t.string :code, null: false, index: { unique: true } - t.string :value, null: false + t.string :value, null: false, default: '' t.string :group, null: false t.string :format, null: false diff --git a/db/structure.sql b/db/structure.sql index 04ccc0e16..3864d4f7c 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,28 +1,19 @@ ---- ---- PostgreSQL database dump ---- - SET statement_timeout = 0; SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; +SET row_security = off; -- --- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - +-- Name: audit; Type: SCHEMA; Schema: -; Owner: - -- -CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; - - --- --- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - --- - -COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; +CREATE SCHEMA audit; -- @@ -205,12 +196,75 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex $_$; +-- +-- Name: process_contact_audit(); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.process_contact_audit() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + IF (TG_OP = 'INSERT') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'UPDATE') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); + RETURN NEW; + ELSEIF (TG_OP = 'DELETE') THEN + INSERT INTO audit.contacts + (object_id, action, recorded_at, old_value, new_value) + VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); + RETURN OLD; + END IF; + RETURN NULL; + END +$$; + + SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: audit; Owner: - +-- + +CREATE TABLE audit.contacts ( + id integer NOT NULL, + object_id bigint, + action text NOT NULL, + recorded_at timestamp without time zone, + old_value jsonb, + new_value jsonb, + CONSTRAINT contacts_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) +); + + +-- +-- Name: contacts_id_seq; Type: SEQUENCE; Schema: audit; Owner: - +-- + +CREATE SEQUENCE audit.contacts_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contacts_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - +-- + +ALTER SEQUENCE audit.contacts_id_seq OWNED BY audit.contacts.id; + + +-- +-- Name: account_activities; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.account_activities ( @@ -250,7 +304,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.accounts ( @@ -286,7 +340,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.actions ( @@ -318,7 +372,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.ar_internal_metadata ( @@ -330,7 +384,7 @@ CREATE TABLE public.ar_internal_metadata ( -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.auctions ( @@ -364,7 +418,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.bank_statements ( @@ -400,7 +454,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.bank_transactions ( @@ -444,7 +498,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.blocked_domains ( @@ -477,7 +531,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.certificates ( @@ -516,7 +570,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.contacts ( @@ -574,7 +628,42 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: data_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: csync_records; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.csync_records ( + id bigint NOT NULL, + domain_id bigint NOT NULL, + cdnskey character varying NOT NULL, + action character varying NOT NULL, + times_scanned integer DEFAULT 0 NOT NULL, + last_scan timestamp without time zone NOT NULL, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL +); + + +-- +-- Name: csync_records_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.csync_records_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csync_records_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.csync_records_id_seq OWNED BY public.csync_records.id; + + +-- +-- Name: data_migrations; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.data_migrations ( @@ -583,7 +672,7 @@ CREATE TABLE public.data_migrations ( -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.directos ( @@ -618,7 +707,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: disputes; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: disputes; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.disputes ( @@ -655,7 +744,7 @@ ALTER SEQUENCE public.disputes_id_seq OWNED BY public.disputes.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.dnskeys ( @@ -696,7 +785,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.domain_contacts ( @@ -734,7 +823,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.domain_transfers ( @@ -771,7 +860,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.domains ( @@ -831,7 +920,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.email_address_verifications ( @@ -863,67 +952,7 @@ ALTER SEQUENCE public.email_address_verifications_id_seq OWNED BY public.email_a -- --- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.email_addresses_validations ( - id bigint NOT NULL, - email character varying NOT NULL, - validated_at timestamp without time zone -); - - --- --- Name: email_addresses_validations_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.email_addresses_validations_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: email_addresses_validations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.email_addresses_validations_id_seq OWNED BY public.email_addresses_validations.id; - - --- --- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.email_addresses_verifications ( - id bigint NOT NULL, - email character varying NOT NULL, - validated_at timestamp without time zone -); - - --- --- Name: email_addresses_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.email_addresses_verifications_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: email_addresses_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.email_addresses_verifications_id_seq OWNED BY public.email_addresses_verifications.id; - - --- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.epp_sessions ( @@ -955,7 +984,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.invoice_items ( @@ -993,7 +1022,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.invoices ( @@ -1064,7 +1093,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.legal_documents ( @@ -1099,7 +1128,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_account_activities ( @@ -1137,7 +1166,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_accounts ( @@ -1175,7 +1204,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_actions ( @@ -1213,7 +1242,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_bank_statements ( @@ -1251,7 +1280,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_bank_transactions ( @@ -1289,7 +1318,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_blocked_domains ( @@ -1327,7 +1356,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_certificates ( @@ -1365,7 +1394,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_contacts ( @@ -1404,7 +1433,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_dnskeys ( @@ -1442,7 +1471,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_domain_contacts ( @@ -1480,7 +1509,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_domains ( @@ -1518,7 +1547,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_invoice_items ( @@ -1556,7 +1585,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_invoices ( @@ -1594,7 +1623,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_nameservers ( @@ -1632,7 +1661,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_notifications ( @@ -1670,7 +1699,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_payment_orders ( @@ -1708,7 +1737,7 @@ ALTER SEQUENCE public.log_payment_orders_id_seq OWNED BY public.log_payment_orde -- --- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_registrant_verifications ( @@ -1745,7 +1774,7 @@ ALTER SEQUENCE public.log_registrant_verifications_id_seq OWNED BY public.log_re -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_registrars ( @@ -1783,7 +1812,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_reserved_domains ( @@ -1821,7 +1850,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_settings ( @@ -1859,7 +1888,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_users ( @@ -1897,7 +1926,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.log_white_ips ( @@ -1935,7 +1964,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.nameservers ( @@ -1973,7 +2002,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.notifications ( @@ -2011,7 +2040,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: payment_orders; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.payment_orders ( @@ -2048,7 +2077,7 @@ ALTER SEQUENCE public.payment_orders_id_seq OWNED BY public.payment_orders.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: prices; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.prices ( @@ -2086,7 +2115,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.que_jobs ( @@ -2128,7 +2157,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.registrant_verifications ( @@ -2164,7 +2193,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.registrars ( @@ -2219,7 +2248,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.reserved_domains ( @@ -2254,7 +2283,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.schema_migrations ( @@ -2263,13 +2292,13 @@ CREATE TABLE public.schema_migrations ( -- --- Name: setting_entries; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: setting_entries; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.setting_entries ( id bigint NOT NULL, code character varying NOT NULL, - value character varying NOT NULL, + value character varying DEFAULT ''::character varying NOT NULL, "group" character varying NOT NULL, format character varying NOT NULL, creator_str character varying, @@ -2299,7 +2328,7 @@ ALTER SEQUENCE public.setting_entries_id_seq OWNED BY public.setting_entries.id; -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.settings ( @@ -2335,7 +2364,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.users ( @@ -2387,7 +2416,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.versions ( @@ -2422,7 +2451,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.white_ips ( @@ -2458,7 +2487,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.whois_records ( @@ -2493,7 +2522,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.zones ( @@ -2536,420 +2565,428 @@ ALTER SEQUENCE public.zones_id_seq OWNED BY public.zones.id; -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: contacts id; Type: DEFAULT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.contacts ALTER COLUMN id SET DEFAULT nextval('audit.contacts_id_seq'::regclass); + + +-- +-- Name: account_activities id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities ALTER COLUMN id SET DEFAULT nextval('public.account_activities_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: accounts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts ALTER COLUMN id SET DEFAULT nextval('public.accounts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: actions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions ALTER COLUMN id SET DEFAULT nextval('public.actions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: auctions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions ALTER COLUMN id SET DEFAULT nextval('public.auctions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: bank_statements id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_statements ALTER COLUMN id SET DEFAULT nextval('public.bank_statements_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: bank_transactions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.bank_transactions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: blocked_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.blocked_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: certificates id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.certificates ALTER COLUMN id SET DEFAULT nextval('public.certificates_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts ALTER COLUMN id SET DEFAULT nextval('public.contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: csync_records id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.csync_records ALTER COLUMN id SET DEFAULT nextval('public.csync_records_id_seq'::regclass); + + +-- +-- Name: directos id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.directos ALTER COLUMN id SET DEFAULT nextval('public.directos_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: disputes id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.disputes ALTER COLUMN id SET DEFAULT nextval('public.disputes_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: dnskeys id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.dnskeys ALTER COLUMN id SET DEFAULT nextval('public.dnskeys_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domain_contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.domain_contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domain_transfers id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('public.domain_transfers_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: email_address_verifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.email_address_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_address_verifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_addresses_validations ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_validations_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.email_addresses_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_verifications_id_seq'::regclass); - - --- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: invoices id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.invoices_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: legal_documents id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.legal_documents ALTER COLUMN id SET DEFAULT nextval('public.legal_documents_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_account_activities id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_account_activities ALTER COLUMN id SET DEFAULT nextval('public.log_account_activities_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_accounts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_accounts ALTER COLUMN id SET DEFAULT nextval('public.log_accounts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_actions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_actions ALTER COLUMN id SET DEFAULT nextval('public.log_actions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_bank_statements id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_statements ALTER COLUMN id SET DEFAULT nextval('public.log_bank_statements_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_bank_transactions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.log_bank_transactions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_blocked_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.log_blocked_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_certificates id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_certificates ALTER COLUMN id SET DEFAULT nextval('public.log_certificates_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_dnskeys id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_dnskeys ALTER COLUMN id SET DEFAULT nextval('public.log_dnskeys_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_domain_contacts id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_domain_contacts_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domains ALTER COLUMN id SET DEFAULT nextval('public.log_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_invoice_items id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoice_items ALTER COLUMN id SET DEFAULT nextval('public.log_invoice_items_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_invoices id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoices ALTER COLUMN id SET DEFAULT nextval('public.log_invoices_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_nameservers id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('public.log_nameservers_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_notifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_payment_orders id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_payment_orders ALTER COLUMN id SET DEFAULT nextval('public.log_payment_orders_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.log_registrant_verifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_registrars id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrars ALTER COLUMN id SET DEFAULT nextval('public.log_registrars_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_reserved_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.log_reserved_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_settings id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_settings ALTER COLUMN id SET DEFAULT nextval('public.log_settings_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_users id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_users ALTER COLUMN id SET DEFAULT nextval('public.log_users_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: log_white_ips id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_white_ips ALTER COLUMN id SET DEFAULT nextval('public.log_white_ips_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: nameservers id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public.nameservers_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: notifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('public.notifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: payment_orders id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('public.payment_orders_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: prices id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices ALTER COLUMN id SET DEFAULT nextval('public.prices_id_seq'::regclass); -- --- Name: job_id; Type: DEFAULT; Schema: public; Owner: - +-- Name: que_jobs job_id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.que_jobs ALTER COLUMN job_id SET DEFAULT nextval('public.que_jobs_job_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.registrant_verifications_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: registrars id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars ALTER COLUMN id SET DEFAULT nextval('public.registrars_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: reserved_domains id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.reserved_domains_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: setting_entries id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.setting_entries ALTER COLUMN id SET DEFAULT nextval('public.setting_entries_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: settings id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.settings ALTER COLUMN id SET DEFAULT nextval('public.settings_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: users id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: versions id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.versions ALTER COLUMN id SET DEFAULT nextval('public.versions_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: white_ips id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips ALTER COLUMN id SET DEFAULT nextval('public.white_ips_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: whois_records id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.whois_records ALTER COLUMN id SET DEFAULT nextval('public.whois_records_id_seq'::regclass); -- --- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- Name: zones id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_id_seq'::regclass); -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: audit; Owner: - +-- + +ALTER TABLE ONLY audit.contacts + ADD CONSTRAINT contacts_pkey PRIMARY KEY (id); + + +-- +-- Name: account_activities account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -2957,7 +2994,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts @@ -2965,7 +3002,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -2973,7 +3010,7 @@ ALTER TABLE ONLY public.actions -- --- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.ar_internal_metadata @@ -2981,7 +3018,7 @@ ALTER TABLE ONLY public.ar_internal_metadata -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions @@ -2989,7 +3026,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_statements @@ -2997,7 +3034,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_transactions @@ -3005,7 +3042,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains @@ -3013,7 +3050,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.certificates @@ -3021,7 +3058,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3029,7 +3066,23 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: csync_records csync_records_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.csync_records + ADD CONSTRAINT csync_records_pkey PRIMARY KEY (id); + + +-- +-- Name: data_migrations data_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.data_migrations + ADD CONSTRAINT data_migrations_pkey PRIMARY KEY (version); + + +-- +-- Name: directos directos_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.directos @@ -3037,7 +3090,7 @@ ALTER TABLE ONLY public.directos -- --- Name: disputes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: disputes disputes_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.disputes @@ -3045,7 +3098,7 @@ ALTER TABLE ONLY public.disputes -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.dnskeys @@ -3053,7 +3106,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -3061,7 +3114,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -3069,7 +3122,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -3077,7 +3130,7 @@ ALTER TABLE ONLY public.domains -- --- Name: email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: email_address_verifications email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.email_address_verifications @@ -3085,23 +3138,7 @@ ALTER TABLE ONLY public.email_address_verifications -- --- Name: email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: --- - -ALTER TABLE ONLY public.email_addresses_validations - ADD CONSTRAINT email_addresses_validations_pkey PRIMARY KEY (id); - - --- --- Name: email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: --- - -ALTER TABLE ONLY public.email_addresses_verifications - ADD CONSTRAINT email_addresses_verifications_pkey PRIMARY KEY (id); - - --- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -3109,7 +3146,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -3117,7 +3154,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -3125,7 +3162,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.legal_documents @@ -3133,7 +3170,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_account_activities @@ -3141,7 +3178,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_accounts @@ -3149,7 +3186,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_actions @@ -3157,7 +3194,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_statements @@ -3165,7 +3202,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_transactions @@ -3173,7 +3210,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_blocked_domains @@ -3181,7 +3218,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_certificates @@ -3189,7 +3226,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_contacts @@ -3197,7 +3234,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_dnskeys @@ -3205,7 +3242,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domain_contacts @@ -3213,7 +3250,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domains @@ -3221,7 +3258,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoice_items @@ -3229,7 +3266,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoices @@ -3237,7 +3274,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_nameservers @@ -3245,7 +3282,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_notifications @@ -3253,7 +3290,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_payment_orders log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_payment_orders @@ -3261,7 +3298,7 @@ ALTER TABLE ONLY public.log_payment_orders -- --- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrant_verifications @@ -3269,7 +3306,7 @@ ALTER TABLE ONLY public.log_registrant_verifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrars @@ -3277,7 +3314,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_reserved_domains @@ -3285,7 +3322,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_settings @@ -3293,7 +3330,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_users @@ -3301,7 +3338,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_white_ips @@ -3309,7 +3346,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers @@ -3317,7 +3354,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -3325,7 +3362,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: payment_orders payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders @@ -3333,7 +3370,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: prices prices_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices @@ -3341,7 +3378,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.que_jobs @@ -3349,7 +3386,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications @@ -3357,7 +3394,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3365,7 +3402,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains @@ -3373,7 +3410,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: setting_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: setting_entries setting_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.setting_entries @@ -3381,7 +3418,7 @@ ALTER TABLE ONLY public.setting_entries -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.settings @@ -3389,7 +3426,7 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains @@ -3397,7 +3434,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: uniq_contact_of_type_per_domain; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts uniq_contact_of_type_per_domain; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -3405,7 +3442,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3413,7 +3450,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -3421,7 +3458,7 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_hostname_per_domain; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers uniq_hostname_per_domain; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers @@ -3429,7 +3466,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains @@ -3437,7 +3474,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions @@ -3445,7 +3482,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars unique_code; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3453,7 +3490,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -3461,7 +3498,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars unique_name; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3469,7 +3506,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices unique_number; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -3477,7 +3514,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars @@ -3485,7 +3522,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions @@ -3493,7 +3530,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions unique_session_id; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -3501,7 +3538,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones @@ -3509,7 +3546,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users @@ -3517,7 +3554,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions versions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.versions @@ -3525,7 +3562,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips @@ -3533,7 +3570,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.whois_records @@ -3541,7 +3578,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones zones_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones @@ -3549,602 +3586,630 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: contacts_object_id_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX contacts_object_id_idx ON audit.contacts USING btree (object_id); + + +-- +-- Name: contacts_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - +-- + +CREATE INDEX contacts_recorded_at_idx ON audit.contacts USING btree (recorded_at); + + +-- +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_csync_records_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_csync_records_on_domain_id ON public.csync_records USING btree (domain_id); + + +-- +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_email_address_verifications_on_email; Type: INDEX; Schema: public; Owner: - +-- + +CREATE UNIQUE INDEX index_email_address_verifications_on_email ON public.email_address_verifications USING btree (email); + + +-- +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_setting_entries_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_setting_entries_on_code; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX index_setting_entries_on_code ON public.setting_entries USING btree (code); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); - - --- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); -- --- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); + + +-- +-- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -4152,7 +4217,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4160,7 +4225,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4168,7 +4233,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -4176,7 +4241,7 @@ ALTER TABLE ONLY public.domains -- --- Name: domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -4184,7 +4249,7 @@ ALTER TABLE ONLY public.domains -- --- Name: fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: invoices fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -4192,7 +4257,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: white_ips fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips @@ -4200,7 +4265,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4208,7 +4273,15 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: csync_records fk_rails_5df85aeb13; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.csync_records + ADD CONSTRAINT fk_rails_5df85aeb13 FOREIGN KEY (domain_id) REFERENCES public.domains(id); + + +-- +-- Name: prices fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices @@ -4216,7 +4289,7 @@ ALTER TABLE ONLY public.prices -- --- Name: fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4224,7 +4297,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4232,7 +4305,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4240,7 +4313,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: actions fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -4248,7 +4321,7 @@ ALTER TABLE ONLY public.actions -- --- Name: fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: notifications fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -4256,7 +4329,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: actions fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -4264,7 +4337,7 @@ ALTER TABLE ONLY public.actions -- --- Name: fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: epp_sessions fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -4272,7 +4345,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4280,7 +4353,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: accounts fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts @@ -4288,7 +4361,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4296,7 +4369,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4304,7 +4377,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: registrant_verifications fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications @@ -4312,7 +4385,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: payment_orders fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders @@ -4320,7 +4393,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -4328,7 +4401,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: notifications messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -4336,7 +4409,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: nameservers nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers @@ -4344,7 +4417,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: users user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users @@ -4767,6 +4840,9 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200130092113'), ('20200203143458'), ('20200204103125'), +('20200310105731'), +('20200310105736'), +('20200311111515'), ('20200311114649'), ('20200417075720'), ('20200421093637'), @@ -4775,6 +4851,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200518104105'), ('20200529115011'), ('20200605100827'), +('20200605125332'), ('20200610090110'), ('20200630081231'), ('20200714115338'), From d8625dd3ebffe2e52373466444eb4b1c732a34db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 14:57:44 +0300 Subject: [PATCH 711/757] Make new setting model configurable from admin/settings --- app/controllers/admin/settings_controller.rb | 19 ++++++------------- app/views/admin/settings/_setting_row.haml | 6 +++--- app/views/admin/settings/index.haml | 2 +- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 27e12a2a1..fa538ad62 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -12,17 +12,13 @@ module Admin end def create - @errors = Setting.params_errors(casted_settings) - if @errors.empty? - casted_settings.each do |k, v| - Setting[k] = v - end - + update = SettingEntry.update(casted_settings.keys, casted_settings.values) + if update flash[:notice] = t('.saved') - redirect_to [:admin, :settings] + redirect_to %i[admin settings] else - flash[:alert] = @errors.values.uniq.join(", ") - render "admin/settings/index" + flash[:alert] = update.errors.values.uniq.join(', ') + render 'admin/settings/index' end end @@ -32,10 +28,7 @@ module Admin settings = {} params[:settings].each do |k, v| - settings[k] = v - settings[k] = v.to_i if Setting.integer_settings.include?(k.to_sym) - settings[k] = v.to_f if Setting.float_settings.include?(k.to_sym) - settings[k] = (v == 'true' ? true : false) if Setting.boolean_settings.include?(k.to_sym) + settings[k] = { value: v } end settings diff --git a/app/views/admin/settings/_setting_row.haml b/app/views/admin/settings/_setting_row.haml index bc3e47d6b..72e670dcc 100644 --- a/app/views/admin/settings/_setting_row.haml +++ b/app/views/admin/settings/_setting_row.haml @@ -2,7 +2,7 @@ %td.col-md-6= setting.code.humanize - if [TrueClass, FalseClass].include?(setting.value.class) %td.col-md-6 - = hidden_field_tag("[settings][#{setting.code}]", '', id: nil) - = check_box_tag("[settings][#{setting.code}]", true, value) + = hidden_field_tag("[settings][#{setting.id}]", '', id: nil) + = check_box_tag("[settings][#{setting.id}]", true, value) - else - %td.col-md-6= text_field_tag("[settings][#{setting.code}]", setting.value, class: 'form-control') + %td.col-md-6= text_field_tag("[settings][#{setting.id}]", setting.value, class: 'form-control') diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index 30a53da33..c9a272a29 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -32,7 +32,7 @@ %tr %td.col-md-6= label_tag :default_language %td.col-md-6 - = select_tag '[settings][default_language]', + = select_tag "[settings][#{SettingEntry.find_by(code: 'default_language').id || 1}]", options_for_select(available_languages, Setting.default_language), class: 'form-control' From fba17218324143dd6f61dc37246735e2fcde01c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 14:59:22 +0300 Subject: [PATCH 712/757] Regenerate structure.sql --- app/models/legal_document.rb | 2 +- db/structure.sql | 897 ++++++++++++++++------------------- 2 files changed, 411 insertions(+), 488 deletions(-) diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 7668e4c1b..446087124 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -1,7 +1,7 @@ class LegalDocument < ApplicationRecord cattr_accessor :explicitly_write_file include EppErrors - MIN_BODY_SIZE = 5 + MIN_BODY_SIZE = (1.37 * 3.kilobytes).ceil if ENV['legal_document_types'].present? TYPES = ENV['legal_document_types'].split(',').map(&:strip) diff --git a/db/structure.sql b/db/structure.sql index 3864d4f7c..39c891326 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,19 +1,28 @@ +--- +--- PostgreSQL database dump +--- + SET statement_timeout = 0; SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; -SET row_security = off; -- --- Name: audit; Type: SCHEMA; Schema: -; Owner: - +-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - -- -CREATE SCHEMA audit; +CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; + + +-- +-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; -- @@ -196,75 +205,12 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex $_$; --- --- Name: process_contact_audit(); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.process_contact_audit() RETURNS trigger - LANGUAGE plpgsql - AS $$ - BEGIN - IF (TG_OP = 'INSERT') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'INSERT', now(), '{}', to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'UPDATE') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (NEW.id, 'UPDATE', now(), to_json(OLD)::jsonb, to_json(NEW)::jsonb); - RETURN NEW; - ELSEIF (TG_OP = 'DELETE') THEN - INSERT INTO audit.contacts - (object_id, action, recorded_at, old_value, new_value) - VALUES (OLD.id, 'DELETE', now(), to_json(OLD)::jsonb, '{}'); - RETURN OLD; - END IF; - RETURN NULL; - END -$$; - - SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: contacts; Type: TABLE; Schema: audit; Owner: - --- - -CREATE TABLE audit.contacts ( - id integer NOT NULL, - object_id bigint, - action text NOT NULL, - recorded_at timestamp without time zone, - old_value jsonb, - new_value jsonb, - CONSTRAINT contacts_action_check CHECK ((action = ANY (ARRAY['INSERT'::text, 'UPDATE'::text, 'DELETE'::text, 'TRUNCATE'::text]))) -); - - --- --- Name: contacts_id_seq; Type: SEQUENCE; Schema: audit; Owner: - --- - -CREATE SEQUENCE audit.contacts_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: contacts_id_seq; Type: SEQUENCE OWNED BY; Schema: audit; Owner: - --- - -ALTER SEQUENCE audit.contacts_id_seq OWNED BY audit.contacts.id; - - --- --- Name: account_activities; Type: TABLE; Schema: public; Owner: - +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -304,7 +250,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: - +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -340,7 +286,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: - +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -372,7 +318,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: - +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.ar_internal_metadata ( @@ -384,7 +330,7 @@ CREATE TABLE public.ar_internal_metadata ( -- --- Name: auctions; Type: TABLE; Schema: public; Owner: - +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -418,7 +364,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: - +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -454,7 +400,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: - +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -498,7 +444,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: - +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -531,7 +477,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: - +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -570,7 +516,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: - +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -628,42 +574,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: csync_records; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.csync_records ( - id bigint NOT NULL, - domain_id bigint NOT NULL, - cdnskey character varying NOT NULL, - action character varying NOT NULL, - times_scanned integer DEFAULT 0 NOT NULL, - last_scan timestamp without time zone NOT NULL, - created_at timestamp(6) without time zone NOT NULL, - updated_at timestamp(6) without time zone NOT NULL -); - - --- --- Name: csync_records_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.csync_records_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: csync_records_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.csync_records_id_seq OWNED BY public.csync_records.id; - - --- --- Name: data_migrations; Type: TABLE; Schema: public; Owner: - +-- Name: data_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.data_migrations ( @@ -672,7 +583,7 @@ CREATE TABLE public.data_migrations ( -- --- Name: directos; Type: TABLE; Schema: public; Owner: - +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -707,7 +618,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: disputes; Type: TABLE; Schema: public; Owner: - +-- Name: disputes; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.disputes ( @@ -744,7 +655,7 @@ ALTER SEQUENCE public.disputes_id_seq OWNED BY public.disputes.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: - +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -785,7 +696,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: - +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -823,7 +734,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: - +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -860,7 +771,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: - +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( @@ -920,7 +831,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: - +-- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.email_address_verifications ( @@ -952,7 +863,67 @@ ALTER SEQUENCE public.email_address_verifications_id_seq OWNED BY public.email_a -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: - +-- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.email_addresses_validations ( + id bigint NOT NULL, + email character varying NOT NULL, + validated_at timestamp without time zone +); + + +-- +-- Name: email_addresses_validations_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_addresses_validations_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_addresses_validations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_addresses_validations_id_seq OWNED BY public.email_addresses_validations.id; + + +-- +-- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.email_addresses_verifications ( + id bigint NOT NULL, + email character varying NOT NULL, + validated_at timestamp without time zone +); + + +-- +-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.email_addresses_verifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.email_addresses_verifications_id_seq OWNED BY public.email_addresses_verifications.id; + + +-- +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -984,7 +955,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: - +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -1022,7 +993,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: - +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -1093,7 +1064,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: - +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -1128,7 +1099,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: - +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -1166,7 +1137,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: - +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1204,7 +1175,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: - +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1242,7 +1213,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: - +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1280,7 +1251,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: - +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1318,7 +1289,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: - +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1356,7 +1327,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: - +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1394,7 +1365,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: - +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1433,7 +1404,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: - +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1471,7 +1442,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: - +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1509,7 +1480,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: - +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1547,7 +1518,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: - +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1585,7 +1556,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: - +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1623,7 +1594,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: - +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1661,7 +1632,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: - +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1699,7 +1670,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: - +-- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_payment_orders ( @@ -1737,7 +1708,7 @@ ALTER SEQUENCE public.log_payment_orders_id_seq OWNED BY public.log_payment_orde -- --- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: - +-- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrant_verifications ( @@ -1774,7 +1745,7 @@ ALTER SEQUENCE public.log_registrant_verifications_id_seq OWNED BY public.log_re -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: - +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1812,7 +1783,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: - +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1850,7 +1821,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: - +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1888,7 +1859,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: - +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1926,7 +1897,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: - +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1964,7 +1935,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: - +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -2002,7 +1973,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: - +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -2040,7 +2011,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: payment_orders; Type: TABLE; Schema: public; Owner: - +-- Name: payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.payment_orders ( @@ -2077,7 +2048,7 @@ ALTER SEQUENCE public.payment_orders_id_seq OWNED BY public.payment_orders.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: - +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -2115,7 +2086,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: - +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -2157,7 +2128,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: - +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( @@ -2193,7 +2164,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: - +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -2248,7 +2219,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: - +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -2283,7 +2254,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: - +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -2292,7 +2263,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: setting_entries; Type: TABLE; Schema: public; Owner: - +-- Name: setting_entries; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.setting_entries ( @@ -2328,7 +2299,7 @@ ALTER SEQUENCE public.setting_entries_id_seq OWNED BY public.setting_entries.id; -- --- Name: settings; Type: TABLE; Schema: public; Owner: - +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2364,7 +2335,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: - +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2416,7 +2387,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: - +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2451,7 +2422,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: - +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( @@ -2487,7 +2458,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: - +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2522,7 +2493,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: - +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( @@ -2565,428 +2536,420 @@ ALTER SEQUENCE public.zones_id_seq OWNED BY public.zones.id; -- --- Name: contacts id; Type: DEFAULT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.contacts ALTER COLUMN id SET DEFAULT nextval('audit.contacts_id_seq'::regclass); - - --- --- Name: account_activities id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities ALTER COLUMN id SET DEFAULT nextval('public.account_activities_id_seq'::regclass); -- --- Name: accounts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts ALTER COLUMN id SET DEFAULT nextval('public.accounts_id_seq'::regclass); -- --- Name: actions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions ALTER COLUMN id SET DEFAULT nextval('public.actions_id_seq'::regclass); -- --- Name: auctions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.auctions ALTER COLUMN id SET DEFAULT nextval('public.auctions_id_seq'::regclass); -- --- Name: bank_statements id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_statements ALTER COLUMN id SET DEFAULT nextval('public.bank_statements_id_seq'::regclass); -- --- Name: bank_transactions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.bank_transactions_id_seq'::regclass); -- --- Name: blocked_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.blocked_domains_id_seq'::regclass); -- --- Name: certificates id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.certificates ALTER COLUMN id SET DEFAULT nextval('public.certificates_id_seq'::regclass); -- --- Name: contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts ALTER COLUMN id SET DEFAULT nextval('public.contacts_id_seq'::regclass); -- --- Name: csync_records id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.csync_records ALTER COLUMN id SET DEFAULT nextval('public.csync_records_id_seq'::regclass); - - --- --- Name: directos id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.directos ALTER COLUMN id SET DEFAULT nextval('public.directos_id_seq'::regclass); -- --- Name: disputes id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.disputes ALTER COLUMN id SET DEFAULT nextval('public.disputes_id_seq'::regclass); -- --- Name: dnskeys id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.dnskeys ALTER COLUMN id SET DEFAULT nextval('public.dnskeys_id_seq'::regclass); -- --- Name: domain_contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.domain_contacts_id_seq'::regclass); -- --- Name: domain_transfers id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('public.domain_transfers_id_seq'::regclass); -- --- Name: domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass); -- --- Name: email_address_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.email_address_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_address_verifications_id_seq'::regclass); -- --- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_validations ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_validations_id_seq'::regclass); + + +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.email_addresses_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_verifications_id_seq'::regclass); + + +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions ALTER COLUMN id SET DEFAULT nextval('public.epp_sessions_id_seq'::regclass); -- --- Name: invoice_items id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items ALTER COLUMN id SET DEFAULT nextval('public.invoice_items_id_seq'::regclass); -- --- Name: invoices id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.invoices_id_seq'::regclass); -- --- Name: legal_documents id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.legal_documents ALTER COLUMN id SET DEFAULT nextval('public.legal_documents_id_seq'::regclass); -- --- Name: log_account_activities id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_account_activities ALTER COLUMN id SET DEFAULT nextval('public.log_account_activities_id_seq'::regclass); -- --- Name: log_accounts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_accounts ALTER COLUMN id SET DEFAULT nextval('public.log_accounts_id_seq'::regclass); -- --- Name: log_actions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_actions ALTER COLUMN id SET DEFAULT nextval('public.log_actions_id_seq'::regclass); -- --- Name: log_bank_statements id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_statements ALTER COLUMN id SET DEFAULT nextval('public.log_bank_statements_id_seq'::regclass); -- --- Name: log_bank_transactions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_bank_transactions ALTER COLUMN id SET DEFAULT nextval('public.log_bank_transactions_id_seq'::regclass); -- --- Name: log_blocked_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_blocked_domains ALTER COLUMN id SET DEFAULT nextval('public.log_blocked_domains_id_seq'::regclass); -- --- Name: log_certificates id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_certificates ALTER COLUMN id SET DEFAULT nextval('public.log_certificates_id_seq'::regclass); -- --- Name: log_contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_contacts_id_seq'::regclass); -- --- Name: log_dnskeys id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_dnskeys ALTER COLUMN id SET DEFAULT nextval('public.log_dnskeys_id_seq'::regclass); -- --- Name: log_domain_contacts id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domain_contacts ALTER COLUMN id SET DEFAULT nextval('public.log_domain_contacts_id_seq'::regclass); -- --- Name: log_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_domains ALTER COLUMN id SET DEFAULT nextval('public.log_domains_id_seq'::regclass); -- --- Name: log_invoice_items id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoice_items ALTER COLUMN id SET DEFAULT nextval('public.log_invoice_items_id_seq'::regclass); -- --- Name: log_invoices id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_invoices ALTER COLUMN id SET DEFAULT nextval('public.log_invoices_id_seq'::regclass); -- --- Name: log_nameservers id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('public.log_nameservers_id_seq'::regclass); -- --- Name: log_notifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); -- --- Name: log_payment_orders id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_payment_orders ALTER COLUMN id SET DEFAULT nextval('public.log_payment_orders_id_seq'::regclass); -- --- Name: log_registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.log_registrant_verifications_id_seq'::regclass); -- --- Name: log_registrars id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_registrars ALTER COLUMN id SET DEFAULT nextval('public.log_registrars_id_seq'::regclass); -- --- Name: log_reserved_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.log_reserved_domains_id_seq'::regclass); -- --- Name: log_settings id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_settings ALTER COLUMN id SET DEFAULT nextval('public.log_settings_id_seq'::regclass); -- --- Name: log_users id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_users ALTER COLUMN id SET DEFAULT nextval('public.log_users_id_seq'::regclass); -- --- Name: log_white_ips id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.log_white_ips ALTER COLUMN id SET DEFAULT nextval('public.log_white_ips_id_seq'::regclass); -- --- Name: nameservers id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public.nameservers_id_seq'::regclass); -- --- Name: notifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('public.notifications_id_seq'::regclass); -- --- Name: payment_orders id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('public.payment_orders_id_seq'::regclass); -- --- Name: prices id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices ALTER COLUMN id SET DEFAULT nextval('public.prices_id_seq'::regclass); -- --- Name: que_jobs job_id; Type: DEFAULT; Schema: public; Owner: - +-- Name: job_id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.que_jobs ALTER COLUMN job_id SET DEFAULT nextval('public.que_jobs_job_id_seq'::regclass); -- --- Name: registrant_verifications id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.registrant_verifications_id_seq'::regclass); -- --- Name: registrars id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrars ALTER COLUMN id SET DEFAULT nextval('public.registrars_id_seq'::regclass); -- --- Name: reserved_domains id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.reserved_domains_id_seq'::regclass); -- --- Name: setting_entries id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.setting_entries ALTER COLUMN id SET DEFAULT nextval('public.setting_entries_id_seq'::regclass); -- --- Name: settings id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.settings ALTER COLUMN id SET DEFAULT nextval('public.settings_id_seq'::regclass); -- --- Name: users id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass); -- --- Name: versions id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.versions ALTER COLUMN id SET DEFAULT nextval('public.versions_id_seq'::regclass); -- --- Name: white_ips id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips ALTER COLUMN id SET DEFAULT nextval('public.white_ips_id_seq'::regclass); -- --- Name: whois_records id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.whois_records ALTER COLUMN id SET DEFAULT nextval('public.whois_records_id_seq'::regclass); -- --- Name: zones id; Type: DEFAULT; Schema: public; Owner: - +-- Name: id; Type: DEFAULT; Schema: public; Owner: - -- ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_id_seq'::regclass); -- --- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: audit; Owner: - --- - -ALTER TABLE ONLY audit.contacts - ADD CONSTRAINT contacts_pkey PRIMARY KEY (id); - - --- --- Name: account_activities account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2994,7 +2957,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -3002,7 +2965,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -3010,7 +2973,7 @@ ALTER TABLE ONLY public.actions -- --- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.ar_internal_metadata @@ -3018,7 +2981,7 @@ ALTER TABLE ONLY public.ar_internal_metadata -- --- Name: auctions auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3026,7 +2989,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -3034,7 +2997,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -3042,7 +3005,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -3050,7 +3013,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -3058,7 +3021,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3066,23 +3029,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: csync_records csync_records_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.csync_records - ADD CONSTRAINT csync_records_pkey PRIMARY KEY (id); - - --- --- Name: data_migrations data_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.data_migrations - ADD CONSTRAINT data_migrations_pkey PRIMARY KEY (version); - - --- --- Name: directos directos_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -3090,7 +3037,7 @@ ALTER TABLE ONLY public.directos -- --- Name: disputes disputes_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: disputes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.disputes @@ -3098,7 +3045,7 @@ ALTER TABLE ONLY public.disputes -- --- Name: dnskeys dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -3106,7 +3053,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -3114,7 +3061,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -3122,7 +3069,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3130,7 +3077,7 @@ ALTER TABLE ONLY public.domains -- --- Name: email_address_verifications email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.email_address_verifications @@ -3138,7 +3085,23 @@ ALTER TABLE ONLY public.email_address_verifications -- --- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.email_addresses_validations + ADD CONSTRAINT email_addresses_validations_pkey PRIMARY KEY (id); + + +-- +-- Name: email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.email_addresses_verifications + ADD CONSTRAINT email_addresses_verifications_pkey PRIMARY KEY (id); + + +-- +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3146,7 +3109,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -3154,7 +3117,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3162,7 +3125,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: legal_documents legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -3170,7 +3133,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -3178,7 +3141,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -3186,7 +3149,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -3194,7 +3157,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -3202,7 +3165,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -3210,7 +3173,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -3218,7 +3181,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -3226,7 +3189,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -3234,7 +3197,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -3242,7 +3205,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -3250,7 +3213,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -3258,7 +3221,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -3266,7 +3229,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -3274,7 +3237,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_nameservers log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -3282,7 +3245,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -3290,7 +3253,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_payment_orders log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_payment_orders @@ -3298,7 +3261,7 @@ ALTER TABLE ONLY public.log_payment_orders -- --- Name: log_registrant_verifications log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrant_verifications @@ -3306,7 +3269,7 @@ ALTER TABLE ONLY public.log_registrant_verifications -- --- Name: log_registrars log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -3314,7 +3277,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -3322,7 +3285,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -3330,7 +3293,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -3338,7 +3301,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -3346,7 +3309,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3354,7 +3317,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -3362,7 +3325,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: payment_orders payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.payment_orders @@ -3370,7 +3333,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: prices prices_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -3378,7 +3341,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -3386,7 +3349,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -3394,7 +3357,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3402,7 +3365,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3410,7 +3373,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: setting_entries setting_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: setting_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.setting_entries @@ -3418,7 +3381,7 @@ ALTER TABLE ONLY public.setting_entries -- --- Name: settings settings_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -3426,7 +3389,7 @@ ALTER TABLE ONLY public.settings -- --- Name: blocked_domains uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -3434,7 +3397,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: domain_contacts uniq_contact_of_type_per_domain; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_contact_of_type_per_domain; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -3442,7 +3405,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: contacts uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3450,7 +3413,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domains uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3458,7 +3421,7 @@ ALTER TABLE ONLY public.domains -- --- Name: nameservers uniq_hostname_per_domain; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_hostname_per_domain; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -3466,7 +3429,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: reserved_domains uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3474,7 +3437,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: auctions uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3482,7 +3445,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: registrars unique_code; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3490,7 +3453,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: contacts unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3498,7 +3461,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: registrars unique_name; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3506,7 +3469,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: invoices unique_number; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3514,7 +3477,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: registrars unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3522,7 +3485,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: auctions unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3530,7 +3493,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: epp_sessions unique_session_id; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3538,7 +3501,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: zones unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3546,7 +3509,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3554,7 +3517,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions versions_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3562,7 +3525,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3570,7 +3533,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3578,7 +3541,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones zones_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3586,630 +3549,602 @@ ALTER TABLE ONLY public.zones -- --- Name: contacts_object_id_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX contacts_object_id_idx ON audit.contacts USING btree (object_id); - - --- --- Name: contacts_recorded_at_idx; Type: INDEX; Schema: audit; Owner: - --- - -CREATE INDEX contacts_recorded_at_idx ON audit.contacts USING btree (recorded_at); - - --- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: - +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: - +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_csync_records_on_domain_id; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX index_csync_records_on_domain_id ON public.csync_records USING btree (domain_id); - - --- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: - +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: - +-- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain); -- --- Name: index_email_address_verifications_on_email; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX index_email_address_verifications_on_email ON public.email_address_verifications USING btree (email); - - --- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: - +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_setting_entries_on_code; Type: INDEX; Schema: public; Owner: - +-- Name: index_setting_entries_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_setting_entries_on_code ON public.setting_entries USING btree (code); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: - +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: - +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: - +-- Name: unique_data_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE UNIQUE INDEX unique_data_migrations ON public.data_migrations USING btree (version); + + +-- +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); -- --- Name: contacts process_contact_audit; Type: TRIGGER; Schema: public; Owner: - --- - -CREATE TRIGGER process_contact_audit AFTER INSERT OR DELETE OR UPDATE ON public.contacts FOR EACH ROW EXECUTE PROCEDURE public.process_contact_audit(); - - --- --- Name: contacts contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: contacts_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.contacts @@ -4217,7 +4152,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: domain_contacts domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_contact_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4225,7 +4160,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_contacts domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domain_contacts_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_contacts @@ -4233,7 +4168,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domains domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains_registrant_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -4241,7 +4176,7 @@ ALTER TABLE ONLY public.domains -- --- Name: domains domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: domains_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domains @@ -4249,7 +4184,7 @@ ALTER TABLE ONLY public.domains -- --- Name: invoices fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_242b91538b; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoices @@ -4257,7 +4192,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: white_ips fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_36cff3de9c; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.white_ips @@ -4265,7 +4200,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: domain_transfers fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_59c422f73d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4273,15 +4208,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: csync_records fk_rails_5df85aeb13; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.csync_records - ADD CONSTRAINT fk_rails_5df85aeb13 FOREIGN KEY (domain_id) REFERENCES public.domains(id); - - --- --- Name: prices fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_78c376257f; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.prices @@ -4289,7 +4216,7 @@ ALTER TABLE ONLY public.prices -- --- Name: domain_transfers fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_833ed7f3c0; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4297,7 +4224,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: account_activities fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_86cd2b09f5; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4305,7 +4232,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: domain_transfers fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_87b8e40c63; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.domain_transfers @@ -4313,7 +4240,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: actions fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_8c6b5c12eb; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -4321,7 +4248,7 @@ ALTER TABLE ONLY public.actions -- --- Name: notifications fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_8f9734b530; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -4329,7 +4256,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: actions fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_a5ae3c203d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.actions @@ -4337,7 +4264,7 @@ ALTER TABLE ONLY public.actions -- --- Name: epp_sessions fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_adff2dc8e3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.epp_sessions @@ -4345,7 +4272,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: account_activities fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_b80dbb973d; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4353,7 +4280,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_c9f635c0b3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.accounts @@ -4361,7 +4288,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: account_activities fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_ce38d749f6; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4369,7 +4296,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: account_activities fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_d2cc3c2fa9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.account_activities @@ -4377,7 +4304,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: registrant_verifications fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_f41617a0e9; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.registrant_verifications @@ -4385,7 +4312,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: payment_orders fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.payment_orders @@ -4393,7 +4320,7 @@ ALTER TABLE ONLY public.payment_orders -- --- Name: invoice_items invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.invoice_items @@ -4401,7 +4328,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: notifications messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.notifications @@ -4409,7 +4336,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: nameservers nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: nameservers_domain_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.nameservers @@ -4417,7 +4344,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: users user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - +-- Name: user_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- ALTER TABLE ONLY public.users @@ -4840,9 +4767,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200130092113'), ('20200203143458'), ('20200204103125'), -('20200310105731'), -('20200310105736'), -('20200311111515'), ('20200311114649'), ('20200417075720'), ('20200421093637'), @@ -4851,7 +4775,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200518104105'), ('20200529115011'), ('20200605100827'), -('20200605125332'), ('20200610090110'), ('20200630081231'), ('20200714115338'), From 75d661b614b15a951de43b81cab966b718bd7083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 16:33:37 +0300 Subject: [PATCH 713/757] Show checkboxes for settings that have boolean value --- app/views/admin/settings/_setting_row.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admin/settings/_setting_row.haml b/app/views/admin/settings/_setting_row.haml index 72e670dcc..44078f32d 100644 --- a/app/views/admin/settings/_setting_row.haml +++ b/app/views/admin/settings/_setting_row.haml @@ -1,8 +1,8 @@ %tr{class: (@errors && @errors.has_key?(setting.code) && "danger")} %td.col-md-6= setting.code.humanize - - if [TrueClass, FalseClass].include?(setting.value.class) + - if [TrueClass, FalseClass].include?(setting.retrieve.class) %td.col-md-6 = hidden_field_tag("[settings][#{setting.id}]", '', id: nil) - = check_box_tag("[settings][#{setting.id}]", true, value) + = check_box_tag("[settings][#{setting.id}]", true, setting.retrieve) - else %td.col-md-6= text_field_tag("[settings][#{setting.id}]", setting.value, class: 'form-control') From 6361a6ff49cf34910e39b95bc07c068c13512920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 17:09:14 +0300 Subject: [PATCH 714/757] Allow to update SettingEntry via SettingEntry.code= --- app/models/setting_entry.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index 10792f594..35933af25 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -27,9 +27,13 @@ class SettingEntry < ApplicationRecord def self.method_missing(method, *args) super(method, *args) rescue NoMethodError - raise NoMethodError if method.to_s.include? '=' - - SettingEntry.find_by!(code: method.to_s).retrieve + if method.to_s[-1] == "=" + stg_code = method.to_s.sub("=", "") + stg_value = args[0].to_s + SettingEntry.find_by!(code: stg_code).update(value: stg_value) + else + SettingEntry.find_by!(code: method.to_s).retrieve + end end # Validators From 1c8a8bfdbdac3c904758478d29a5d5312d44ebc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 17:10:57 +0300 Subject: [PATCH 715/757] Generate seed for dynamic Setting values These were loaded first from config/app.yml. This file is now considered useless. --- db/seeds.rb | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/db/seeds.rb b/db/seeds.rb index f8a9f4267..0b601c61e 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -2,6 +2,66 @@ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). ActiveRecord::Base.transaction do + # Create dynamic Setting objects + SettingEntry.create(code: 'registry_vat_prc', value: '0.2', format: 'float', group: 'billing') + SettingEntry.create(code: 'directo_sales_agent', value: 'HELEN', format: 'string', group: 'billing') + SettingEntry.create(code: 'admin_contacts_min_count', value: '1', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'admin_contacts_max_count', value: '10', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'tech_contacts_min_count', value: '1', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'tech_contacts_max_count', value: '10', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'orphans_contacts_in_months', value: '6', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'ds_data_allowed', value: 'false', format: 'boolean', group: 'domain_validation') + SettingEntry.create(code: 'key_data_allowed', value: 'true', format: 'boolean', group: 'domain_validation') + SettingEntry.create(code: 'dnskeys_min_count', value: '0', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'dnskeys_max_count', value: '9', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'nameserver_required', value: 'false', format: 'boolean', group: 'domain_validation') + SettingEntry.create(code: 'ns_min_count', value: '2', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'ns_max_count', value: '11', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'expire_pending_confirmation', value: '48', format: 'integer', group: 'domain_validation') + SettingEntry.create(code: 'days_to_renew_domain_before_expire', value: '90', format: 'integer', group: 'domain_expiration') + SettingEntry.create(code: 'expire_warning_period', value: '15', format: 'integer', group: 'domain_expiration') + SettingEntry.create(code: 'redemption_grace_period', value: '30', format: 'integer', group: 'domain_expiration') + SettingEntry.create(code: 'transfer_wait_time', value: '0', format: 'integer', group: 'other') + SettingEntry.create(code: 'ds_digest_type', value: '2', format: 'integer', group: 'other') + SettingEntry.create(code: 'client_side_status_editing_enabled', value: 'false', format: 'boolean', group: 'other') + SettingEntry.create(code: 'api_ip_whitelist_enabled', value: 'false', format: 'boolean', group: 'other') + SettingEntry.create(code: 'registrar_ip_whitelist_enabled', value: 'false', format: 'boolean', group: 'other') + SettingEntry.create(code: 'request_confrimation_on_registrant_change_enabled', value: 'true', format: 'boolean', group: 'other') + SettingEntry.create(code: 'request_confirmation_on_domain_deletion_enabled', value: 'true', format: 'boolean', group: 'other') + SettingEntry.create(code: 'default_language', value: 'en', format: 'string', group: 'other') + SettingEntry.create(code: 'invoice_number_min', value: '131050', format: 'integer', group: 'billing') + SettingEntry.create(code: 'invoice_number_max', value: '149999', format: 'integer', group: 'billing') + SettingEntry.create(code: 'days_to_keep_invoices_active', value: '30', format: 'integer', group: 'billing') + SettingEntry.create(code: 'days_to_keep_overdue_invoices_active', value: '0', format: 'integer', group: 'billing') + SettingEntry.create(code: 'minimum_deposit', value: '0.0', format: 'float', group: 'billing') + SettingEntry.create(code: 'directo_receipt_payment_term', value: 'R', format: 'string', group: 'billing') + SettingEntry.create(code: 'directo_receipt_product_name', value: 'ETTEM06', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_billing_email', value: 'info@internet.ee', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_invoice_contact', value: 'Martti Õigus', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_vat_no', value: 'EE101286464', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_bank', value: 'LHV Pank', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_iban', value: 'EE557700771000598731', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_swift', value: 'LHVBEE22', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_email', value: 'info@internet.ee', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_phone', value: '+372 727 1000', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_url', value: 'www.internet.ee', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_street', value: 'Paldiski mnt 80', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_city', value: 'Tallinn', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_state', value: 'Harjumaa', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_country_code', value: 'EE', format: 'string', group: 'contacts') + SettingEntry.create(code: 'expiration_reminder_mail', value: '2', format: 'integer', group: 'domain_expiration') + SettingEntry.create(code: 'directo_monthly_number_min', value: '309901', format: 'integer', group: 'billing') + SettingEntry.create(code: 'directo_monthly_number_max', value: '309999', format: 'integer', group: 'billing') + SettingEntry.create(code: 'registry_bank_code', value: '689', format: 'string', group: 'billing') + SettingEntry.create(code: 'registry_reg_no', value: '90010019', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_zip', value: '10617', format: 'string', group: 'contacts') + SettingEntry.create(code: 'registry_juridical_name', value: 'Eesti Interneti SA', format: 'string', group: 'contacts') + SettingEntry.create(code: 'address_processing', value: 'true', format: 'boolean', group: 'other') + SettingEntry.create(code: 'directo_monthly_number_last', value: '309909', format: 'integer', group: 'billing') + SettingEntry.create(code: 'dispute_period_in_months', value: '36', format: 'integer', group: 'other') + SettingEntry.create(code: 'registry_whois_disclaimer', value: 'Search results may not be used for commercial, advertising, recompilation, repackaging, redistribution, reuse, obscuring or other similar activities.', format: 'string', group: 'contacts') + SettingEntry.create(code: 'legal_document_is_mandatory', value: 'true', format: 'boolean', group: 'domain_validation') + AdminUser.where(username: 'admin').first_or_create!( username: 'admin', email: 'admin@domain.tld', From c3da205f6806d9b41361b35cfb7412b1aef8f740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 11 Aug 2020 17:52:10 +0300 Subject: [PATCH 716/757] Generate fixtures for setting values --- test/fixtures/setting_entries.yml | 349 ++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) create mode 100644 test/fixtures/setting_entries.yml diff --git a/test/fixtures/setting_entries.yml b/test/fixtures/setting_entries.yml new file mode 100644 index 000000000..691533896 --- /dev/null +++ b/test/fixtures/setting_entries.yml @@ -0,0 +1,349 @@ + +registry_vat_prc: + code: registry_vat_prc + value: '0.2' + group: billing + format: float + +directo_sales_agent: + code: directo_sales_agent + value: HELEN + group: billing + format: string + +admin_contacts_min_count: + code: admin_contacts_min_count + value: '1' + group: domain_validation + format: integer + +admin_contacts_max_count: + code: admin_contacts_max_count + value: '10' + group: domain_validation + format: integer + +tech_contacts_min_count: + code: tech_contacts_min_count + value: '1' + group: domain_validation + format: integer + +tech_contacts_max_count: + code: tech_contacts_max_count + value: '10' + group: domain_validation + format: integer + +orphans_contacts_in_months: + code: orphans_contacts_in_months + value: '6' + group: domain_validation + format: integer + +ds_data_allowed: + code: ds_data_allowed + value: 'false' + group: domain_validation + format: boolean + +key_data_allowed: + code: key_data_allowed + value: 'true' + group: domain_validation + format: boolean + +dnskeys_min_count: + code: dnskeys_min_count + value: '0' + group: domain_validation + format: integer + +dnskeys_max_count: + code: dnskeys_max_count + value: '9' + group: domain_validation + format: integer + +nameserver_required: + code: nameserver_required + value: 'false' + group: domain_validation + format: boolean + +ns_min_count: + code: ns_min_count + value: '2' + group: domain_validation + format: integer + +ns_max_count: + code: ns_max_count + value: '11' + group: domain_validation + format: integer + +expire_pending_confirmation: + code: expire_pending_confirmation + value: '48' + group: domain_validation + format: integer + +days_to_renew_domain_before_expire: + code: days_to_renew_domain_before_expire + value: '90' + group: domain_expiration + format: integer + +expire_warning_period: + code: expire_warning_period + value: '15' + group: domain_expiration + format: integer + +redemption_grace_period: + code: redemption_grace_period + value: '30' + group: domain_expiration + format: integer + +transfer_wait_time: + code: transfer_wait_time + value: '0' + group: other + format: integer + +ds_digest_type: + code: ds_digest_type + value: '2' + group: other + format: integer + +client_side_status_editing_enabled: + code: client_side_status_editing_enabled + value: 'false' + group: other + format: boolean + +api_ip_whitelist_enabled: + code: api_ip_whitelist_enabled + value: 'false' + group: other + format: boolean + +registrar_ip_whitelist_enabled: + code: registrar_ip_whitelist_enabled + value: 'false' + group: other + format: boolean + +request_confrimation_on_registrant_change_enabled: + code: request_confrimation_on_registrant_change_enabled + value: 'true' + group: other + format: boolean + +request_confirmation_on_domain_deletion_enabled: + code: request_confirmation_on_domain_deletion_enabled + value: 'true' + group: other + format: boolean + +default_language: + code: default_language + value: en + group: other + format: string + +invoice_number_min: + code: invoice_number_min + value: '131050' + group: billing + format: integer + +invoice_number_max: + code: invoice_number_max + value: '149999' + group: billing + format: integer + +days_to_keep_invoices_active: + code: days_to_keep_invoices_active + value: '30' + group: billing + format: integer + +days_to_keep_overdue_invoices_active: + code: days_to_keep_overdue_invoices_active + value: '0' + group: billing + format: integer + +minimum_deposit: + code: minimum_deposit + value: '0.0' + group: billing + format: float + +directo_receipt_payment_term: + code: directo_receipt_payment_term + value: R + group: billing + format: string + +directo_receipt_product_name: + code: directo_receipt_product_name + value: ETTEM06 + group: billing + format: string + +registry_billing_email: + code: registry_billing_email + value: info@internet.ee + group: billing + format: string + +registry_invoice_contact: + code: registry_invoice_contact + value: Martti Õigus + group: billing + format: string + +registry_vat_no: + code: registry_vat_no + value: EE101286464 + group: billing + format: string + +registry_bank: + code: registry_bank + value: LHV Pank + group: billing + format: string + +registry_iban: + code: registry_iban + value: EE557700771000598731 + group: billing + format: string + +registry_swift: + code: registry_swift + value: LHVBEE22 + group: billing + format: string + +registry_email: + code: registry_email + value: info@internet.ee + group: contacts + format: string + +registry_phone: + code: registry_phone + value: "+372 727 1000" + group: contacts + format: string + +registry_url: + code: registry_url + value: www.internet.ee + group: contacts + format: string + +registry_street: + code: registry_street + value: Paldiski mnt 80 + group: contacts + format: string + +registry_city: + code: registry_city + value: Tallinn + group: contacts + format: string + +registry_state: + code: registry_state + value: Harjumaa + group: contacts + format: string + +registry_country_code: + code: registry_country_code + value: EE + group: contacts + format: string + +expiration_reminder_mail: + code: expiration_reminder_mail + value: '2' + group: domain_expiration + format: integer + +directo_monthly_number_min: + code: directo_monthly_number_min + value: '309901' + group: billing + format: integer + +directo_monthly_number_max: + code: directo_monthly_number_max + value: '309999' + group: billing + format: integer + +registry_bank_code: + code: registry_bank_code + value: '689' + group: billing + format: string + +registry_reg_no: + code: registry_reg_no + value: '90010019' + group: contacts + format: string + +registry_zip: + code: registry_zip + value: '10617' + group: contacts + format: string + +registry_juridical_name: + code: registry_juridical_name + value: Eesti Interneti SA + group: contacts + format: string + +address_processing: + code: address_processing + value: 'true' + group: other + format: boolean + +directo_monthly_number_last: + code: directo_monthly_number_last + value: '309909' + group: billing + format: integer + +dispute_period_in_months: + code: dispute_period_in_months + value: '36' + group: other + format: integer + +registry_whois_disclaimer: + code: registry_whois_disclaimer + value: Search results may not be used for commercial, advertising, recompilation, + repackaging, redistribution, reuse, obscuring or other similar activities. + group: contacts + format: string + +legal_document_is_mandatory: + code: legal_document_is_mandatory + value: 'true' + group: domain_validation + format: boolean From d360f52434e61aa71da14e2a59a239a24b5df023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 10:38:46 +0300 Subject: [PATCH 717/757] Bridge Setting calls to SettingEntry --- app/models/setting.rb | 76 ++----------------------------------------- 1 file changed, 3 insertions(+), 73 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 86d3dff35..afa570c88 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -1,74 +1,4 @@ -class Setting < RailsSettings::Base - include Versions # version/setting_version.rb - source Rails.root.join('config', 'app.yml') - - # When config/app.yml has changed, you need change this prefix to v2, v3 ... to expires caches - cache_prefix { 'v2' } - - def self.reload_settings! - STDOUT << "#{Time.zone.now.utc} - Clearing settings cache\n" - Rails.cache.delete_matched('settings:.*') - STDOUT << "#{Time.zone.now.utc} - Settings cache cleared\n" - end - - - # cannot do instance validation because CachedSetting use save! - def self.params_errors(params) - errors = {} - # DS data allowed and Allow key data cannot be both true - if !!params["key_data_allowed"] && params["key_data_allowed"] == params["ds_data_allowed"] - msg = "#{I18n.t(:key_data_allowed)} and #{I18n.t(:ds_data_with_key_allowed)} cannot be both true" - errors["key_data_allowed"] = msg - errors["ds_data_allowed"] = msg - end - - return errors - end - - def self.integer_settings - %i[ - admin_contacts_min_count - admin_contacts_max_count - tech_contacts_min_count - tech_contacts_max_count - orphans_contacts_in_months - ds_digest_type - dnskeys_min_count - dnskeys_max_count - ns_min_count - ns_max_count - transfer_wait_time - invoice_number_min - invoice_number_max - days_to_keep_invoices_active - days_to_keep_overdue_invoices_active - days_to_renew_domain_before_expire - expire_warning_period - redemption_grace_period - expire_pending_confirmation - dispute_period_in_months - ] - end - - def self.float_settings - %i[ - registry_vat_prc - minimum_deposit - ] - end - - def self.boolean_settings - %i[ - ds_data_allowed - key_data_allowed - client_side_status_editing_enabled - registrar_ip_whitelist_enabled - api_ip_whitelist_enabled - request_confrimation_on_registrant_change_enabled - request_confirmation_on_domain_deletion_enabled - nameserver_required - address_processing - legal_document_is_mandatory - ] - end +# frozen_string_literal: true +class Setting < SettingEntry + # Bridge Setting calls to SettingEntry, so we don't have to drop legacy settings yet end From 7de2ed4aed014af4eb32aa2c05c87ad65eaabcc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 10:42:03 +0300 Subject: [PATCH 718/757] Get rid of config/app.yml --- config/app.yml | 77 -------------------------------------------------- 1 file changed, 77 deletions(-) delete mode 100644 config/app.yml diff --git a/config/app.yml b/config/app.yml deleted file mode 100644 index 87f99f4ad..000000000 --- a/config/app.yml +++ /dev/null @@ -1,77 +0,0 @@ -# config/app.yml for rails-settings-cached -defaults: &defaults - admin_contacts_min_count: 1 - admin_contacts_max_count: 10 - tech_contacts_min_count: 1 - tech_contacts_max_count: 10 - orphans_contacts_in_months: 6 - expire_pending_confirmation: 48 - legal_document_is_mandatory: true - - ds_digest_type: 2 - ds_data_allowed: false - key_data_allowed: true - - dnskeys_min_count: 0 - dnskeys_max_count: 9 - ns_min_count: 2 - ns_max_count: 11 - - transfer_wait_time: 0 - request_confrimation_on_registrant_change_enabled: true - request_confirmation_on_domain_deletion_enabled: true - address_processing: true - default_language: en - nameserver_required: false - - client_side_status_editing_enabled: false - - invoice_number_min: 131050 - invoice_number_max: 149999 - directo_monthly_number_min: 309901 - directo_monthly_number_max: 309999 - directo_monthly_number_last: 309901 - days_to_keep_invoices_active: 30 - minimum_deposit: 0.0 - directo_receipt_payment_term: R - directo_receipt_product_name: ETTEM06 - directo_sales_agent: JAANA - - days_to_renew_domain_before_expire: 90 - expire_warning_period: 15 - redemption_grace_period: 30 - expiration_reminder_mail: 2 - - registrar_ip_whitelist_enabled: false - api_ip_whitelist_enabled: false - - dispute_period_in_months: 36 - - registry_juridical_name: "Eesti Interneti SA" - registry_reg_no: "90010019" - registry_email: "info@internet.ee" - registry_billing_email: "info@internet.ee" - registry_phone: "+372 727 1000" - registry_country_code: "EE" - registry_state: "Harjumaa" - registry_street: "Paldiski mnt 80" - registry_city: "Tallinn" - registry_zip: "10617" - registry_vat_no: "EE101286464" - registry_url: "www.internet.ee" - registry_vat_prc: 0.2 - registry_iban: "EE557700771000598731" - registry_bank: "LHV Pank" - registry_bank_code: "689" - registry_swift: "LHVBEE22" - registry_invoice_contact: "Martti Õigus" - registry_whois_disclaimer: "Search results may not be used for commercial, advertising, recompilation, repackaging, redistribution, reuse, obscuring or other similar activities." - -development: - <<: *defaults - -test: - <<: *defaults - -production: - <<: *defaults From ee602db93bf7a46c15236b9e4ddd22a2b65f431e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 10:46:12 +0300 Subject: [PATCH 719/757] Remove occurrences of Setting.* seeding --- db/seeds.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/db/seeds.rb b/db/seeds.rb index 0b601c61e..0259cb50c 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -71,10 +71,7 @@ ActiveRecord::Base.transaction do country_code: 'EE', roles: ['admin'] ) - # Required for creating registrar - Setting.where(var: 'registry_vat_prc').first_or_create( - value: '0.2' - ) + # First registrar Registrar.where(name: 'Registrar First').first_or_create!( name: 'Registrar First', From 4c9fc76283b966204c219aa55b7f1d96f234753d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 11:29:33 +0300 Subject: [PATCH 720/757] Fix Setting fixtures, correct seed.rb --- db/seeds.rb | 2 +- test/fixtures/setting_entries.yml | 137 +++++++++++++++++++++++++++--- test/models/setting_entry_test.rb | 10 +++ test/test_helper.rb | 3 - 4 files changed, 137 insertions(+), 15 deletions(-) create mode 100644 test/models/setting_entry_test.rb diff --git a/db/seeds.rb b/db/seeds.rb index 0259cb50c..c74136b9d 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -57,7 +57,7 @@ ActiveRecord::Base.transaction do SettingEntry.create(code: 'registry_zip', value: '10617', format: 'string', group: 'contacts') SettingEntry.create(code: 'registry_juridical_name', value: 'Eesti Interneti SA', format: 'string', group: 'contacts') SettingEntry.create(code: 'address_processing', value: 'true', format: 'boolean', group: 'other') - SettingEntry.create(code: 'directo_monthly_number_last', value: '309909', format: 'integer', group: 'billing') + SettingEntry.create(code: 'directo_monthly_number_last', value: '309901', format: 'integer', group: 'billing') SettingEntry.create(code: 'dispute_period_in_months', value: '36', format: 'integer', group: 'other') SettingEntry.create(code: 'registry_whois_disclaimer', value: 'Search results may not be used for commercial, advertising, recompilation, repackaging, redistribution, reuse, obscuring or other similar activities.', format: 'string', group: 'contacts') SettingEntry.create(code: 'legal_document_is_mandatory', value: 'true', format: 'boolean', group: 'domain_validation') diff --git a/test/fixtures/setting_entries.yml b/test/fixtures/setting_entries.yml index 691533896..693d52966 100644 --- a/test/fixtures/setting_entries.yml +++ b/test/fixtures/setting_entries.yml @@ -1,349 +1,464 @@ - registry_vat_prc: code: registry_vat_prc value: '0.2' group: billing format: float + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> directo_sales_agent: code: directo_sales_agent value: HELEN group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> admin_contacts_min_count: code: admin_contacts_min_count value: '1' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> admin_contacts_max_count: code: admin_contacts_max_count value: '10' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> tech_contacts_min_count: code: tech_contacts_min_count value: '1' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> tech_contacts_max_count: code: tech_contacts_max_count value: '10' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> orphans_contacts_in_months: code: orphans_contacts_in_months value: '6' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> ds_data_allowed: code: ds_data_allowed value: 'false' group: domain_validation format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> key_data_allowed: code: key_data_allowed value: 'true' group: domain_validation format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> dnskeys_min_count: code: dnskeys_min_count value: '0' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> dnskeys_max_count: code: dnskeys_max_count value: '9' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> nameserver_required: code: nameserver_required value: 'false' group: domain_validation format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> ns_min_count: code: ns_min_count value: '2' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> ns_max_count: code: ns_max_count value: '11' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> expire_pending_confirmation: code: expire_pending_confirmation value: '48' group: domain_validation format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> days_to_renew_domain_before_expire: code: days_to_renew_domain_before_expire value: '90' group: domain_expiration format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> expire_warning_period: code: expire_warning_period value: '15' group: domain_expiration format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> redemption_grace_period: code: redemption_grace_period value: '30' group: domain_expiration format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> transfer_wait_time: code: transfer_wait_time value: '0' group: other format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> ds_digest_type: code: ds_digest_type value: '2' group: other format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> client_side_status_editing_enabled: code: client_side_status_editing_enabled value: 'false' group: other format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> api_ip_whitelist_enabled: code: api_ip_whitelist_enabled value: 'false' group: other format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registrar_ip_whitelist_enabled: code: registrar_ip_whitelist_enabled value: 'false' group: other format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> request_confrimation_on_registrant_change_enabled: code: request_confrimation_on_registrant_change_enabled value: 'true' group: other format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> request_confirmation_on_domain_deletion_enabled: code: request_confirmation_on_domain_deletion_enabled value: 'true' group: other format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> default_language: code: default_language value: en group: other format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> invoice_number_min: code: invoice_number_min value: '131050' group: billing format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> invoice_number_max: code: invoice_number_max value: '149999' group: billing format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> days_to_keep_invoices_active: code: days_to_keep_invoices_active value: '30' group: billing format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> days_to_keep_overdue_invoices_active: code: days_to_keep_overdue_invoices_active value: '0' group: billing format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> minimum_deposit: code: minimum_deposit value: '0.0' group: billing format: float + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> directo_receipt_payment_term: code: directo_receipt_payment_term value: R group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> directo_receipt_product_name: code: directo_receipt_product_name value: ETTEM06 group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_billing_email: code: registry_billing_email value: info@internet.ee group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_invoice_contact: code: registry_invoice_contact - value: Martti Õigus + value: 'Martti Õigus' group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_vat_no: code: registry_vat_no value: EE101286464 group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_bank: code: registry_bank - value: LHV Pank + value: 'LHV Pank' group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_iban: code: registry_iban value: EE557700771000598731 group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_swift: code: registry_swift value: LHVBEE22 group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_email: code: registry_email value: info@internet.ee group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_phone: code: registry_phone - value: "+372 727 1000" + value: '+372 727 1000' group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_url: code: registry_url value: www.internet.ee group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_street: code: registry_street - value: Paldiski mnt 80 + value: 'Paldiski mnt 80' group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_city: code: registry_city value: Tallinn group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_state: code: registry_state value: Harjumaa group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_country_code: code: registry_country_code - value: EE + value: US group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> expiration_reminder_mail: code: expiration_reminder_mail value: '2' group: domain_expiration format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> directo_monthly_number_min: code: directo_monthly_number_min value: '309901' group: billing format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> directo_monthly_number_max: code: directo_monthly_number_max value: '309999' group: billing format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_bank_code: code: registry_bank_code value: '689' group: billing format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_reg_no: code: registry_reg_no value: '90010019' group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_zip: code: registry_zip value: '10617' group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_juridical_name: code: registry_juridical_name - value: Eesti Interneti SA + value: 'Eesti Interneti SA' group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> address_processing: code: address_processing - value: 'true' + value: 'false' group: other format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> directo_monthly_number_last: code: directo_monthly_number_last - value: '309909' + value: '309901' group: billing format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> dispute_period_in_months: code: dispute_period_in_months value: '36' group: other format: integer + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> registry_whois_disclaimer: code: registry_whois_disclaimer - value: Search results may not be used for commercial, advertising, recompilation, - repackaging, redistribution, reuse, obscuring or other similar activities. + value: 'Search results may not be used for commercial, advertising, recompilation, + repackaging, redistribution, reuse, obscuring or other similar activities.' group: contacts format: string + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> legal_document_is_mandatory: code: legal_document_is_mandatory value: 'true' group: domain_validation format: boolean + created_at: <%= Time.zone.parse('2010-07-05') %> + updated_at: <%= Time.zone.parse('2010-07-05') %> diff --git a/test/models/setting_entry_test.rb b/test/models/setting_entry_test.rb new file mode 100644 index 000000000..92246ed0b --- /dev/null +++ b/test/models/setting_entry_test.rb @@ -0,0 +1,10 @@ +require 'test_helper' + +class SettingEntryTest < ActiveSupport::TestCase + def setup + end + + def test_fixture_is_valid + assert setting_entries(:legal_document_is_mandatory).valid? + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index bee6fdcf9..7cd805684 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -26,9 +26,6 @@ require 'rake' Rake::Task.clear Rails.application.load_tasks -Setting.address_processing = false -Setting.registry_country_code = 'US' - class CompanyRegisterClientStub Company = Struct.new(:registration_number) From 49f11cce0b5a82f458fcddd46e405164a379d812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 11:45:51 +0300 Subject: [PATCH 721/757] Remove occurrencies of Setting.x --- app/models/concerns/registrar/legal_doc.rb | 2 +- .../20200702104334_add_legal_document_mandatory_setting.rb | 6 ++++-- test/integration/epp/domain/create/base_test.rb | 7 ------- test/jobs/directo_invoice_forward_job_test.rb | 1 - 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/app/models/concerns/registrar/legal_doc.rb b/app/models/concerns/registrar/legal_doc.rb index e2ed9f83e..2f21f6637 100644 --- a/app/models/concerns/registrar/legal_doc.rb +++ b/app/models/concerns/registrar/legal_doc.rb @@ -8,7 +8,7 @@ module Concerns end def legaldoc_not_mandatory? - setting = Setting.find_by(var: 'legal_document_is_mandatory')&.value + setting = Setting.legal_document_is_mandatory legaldoc_optout || !setting end end diff --git a/db/data/20200702104334_add_legal_document_mandatory_setting.rb b/db/data/20200702104334_add_legal_document_mandatory_setting.rb index 2e0a298f7..9e3bf40fc 100644 --- a/db/data/20200702104334_add_legal_document_mandatory_setting.rb +++ b/db/data/20200702104334_add_legal_document_mandatory_setting.rb @@ -1,9 +1,11 @@ class AddLegalDocumentMandatorySetting < ActiveRecord::Migration[6.0] def up - Setting.legal_document_is_mandatory = true + Setting.create(code: 'legal_document_is_mandatory', + value: 'true', format: 'boolean', + group: 'domain_validation') end def down - Setting.find_by(var: 'legal_document_is_mandatory').delete + Setting.find_by(code: 'legal_document_is_mandatory').destroy end end diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index b75ef8909..9d817524d 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -3,8 +3,6 @@ require 'test_helper' class EppDomainCreateBaseTest < EppTestCase def test_not_registers_domain_without_legaldoc - old_value = Setting.legal_document_is_mandatory - Setting.legal_document_is_mandatory = true now = Time.zone.parse('2010-07-05') travel_to now name = "new.#{dns_zones(:one).origin}" @@ -31,7 +29,6 @@ class EppDomainCreateBaseTest < EppTestCase end assert_epp_response :required_parameter_missing - Setting.legal_document_is_mandatory = old_value end def test_registers_new_domain_with_required_attributes @@ -121,8 +118,6 @@ class EppDomainCreateBaseTest < EppTestCase name = "new.#{dns_zones(:one).origin}" contact = contacts(:john) registrant = contact.becomes(Registrant) - old_value = Setting.legal_document_is_mandatory - Setting.legal_document_is_mandatory = true registrar = registrant.registrar assert registrar.legaldoc_mandatory? @@ -155,8 +150,6 @@ class EppDomainCreateBaseTest < EppTestCase post epp_create_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end - - Setting.legal_document_is_mandatory = old_value end def test_registers_reserved_domain_with_registration_code diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb index 57b1759ff..32ae39e7a 100644 --- a/test/jobs/directo_invoice_forward_job_test.rb +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -8,7 +8,6 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase end def teardown - Setting.clear_cache Setting.directo_monthly_number_min = 309901 Setting.directo_monthly_number_max = 309999 Setting.directo_monthly_number_last = 309901 From e7eaba79633a9df094f5ca816934777e98c39b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 12:08:21 +0300 Subject: [PATCH 722/757] Allow nil values for settings --- app/models/setting_entry.rb | 6 +++--- ...0200812090409_change_setting_entry_value_to_allow_nil.rb | 5 +++++ db/structure.sql | 5 +++-- 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 db/migrate/20200812090409_change_setting_entry_value_to_allow_nil.rb diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index 35933af25..b439187d5 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -1,6 +1,5 @@ class SettingEntry < ApplicationRecord validates :code, presence: true, uniqueness: true - validates :value, presence: true validates :format, presence: true validates :group, presence: true validate :valid_value_format @@ -17,7 +16,7 @@ class SettingEntry < ApplicationRecord def retrieve method = VALUE_FORMATS[format] - send(method) + value.blank? ? nil : send(method) end def self.with_group(group_name) @@ -32,7 +31,8 @@ class SettingEntry < ApplicationRecord stg_value = args[0].to_s SettingEntry.find_by!(code: stg_code).update(value: stg_value) else - SettingEntry.find_by!(code: method.to_s).retrieve + stg = SettingEntry.find_by(code: method.to_s) + stg ? stg.retrieve : nil end end diff --git a/db/migrate/20200812090409_change_setting_entry_value_to_allow_nil.rb b/db/migrate/20200812090409_change_setting_entry_value_to_allow_nil.rb new file mode 100644 index 000000000..227e0bf85 --- /dev/null +++ b/db/migrate/20200812090409_change_setting_entry_value_to_allow_nil.rb @@ -0,0 +1,5 @@ +class ChangeSettingEntryValueToAllowNil < ActiveRecord::Migration[6.0] + def change + change_column :setting_entries, :value, :string, null: true + end +end diff --git a/db/structure.sql b/db/structure.sql index 39c891326..45b48733f 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2269,7 +2269,7 @@ CREATE TABLE public.schema_migrations ( CREATE TABLE public.setting_entries ( id bigint NOT NULL, code character varying NOT NULL, - value character varying DEFAULT ''::character varying NOT NULL, + value character varying DEFAULT ''::character varying, "group" character varying NOT NULL, format character varying NOT NULL, creator_str character varying, @@ -4779,6 +4779,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200630081231'), ('20200714115338'), ('20200807110611'), -('20200811074839'); +('20200811074839'), +('20200812090409'); From 9c3d8634eeece30ca55a197963ca379129b629df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 12:11:34 +0300 Subject: [PATCH 723/757] Fix whitespace in fixture --- test/fixtures/setting_entries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/setting_entries.yml b/test/fixtures/setting_entries.yml index 693d52966..067f77c12 100644 --- a/test/fixtures/setting_entries.yml +++ b/test/fixtures/setting_entries.yml @@ -449,7 +449,7 @@ dispute_period_in_months: registry_whois_disclaimer: code: registry_whois_disclaimer value: 'Search results may not be used for commercial, advertising, recompilation, - repackaging, redistribution, reuse, obscuring or other similar activities.' + repackaging, redistribution, reuse, obscuring or other similar activities.' group: contacts format: string created_at: <%= Time.zone.parse('2010-07-05') %> From a703c312a0575d6739b1e3b7bce17837dad84abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 12:17:49 +0300 Subject: [PATCH 724/757] Drop rails-settings-cached gem --- Gemfile | 1 - Gemfile.lock | 3 --- 2 files changed, 4 deletions(-) diff --git a/Gemfile b/Gemfile index f1d03f8a8..1376d3638 100644 --- a/Gemfile +++ b/Gemfile @@ -21,7 +21,6 @@ gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server # https://github.com/huacnlee/rails-settings-cached/issues/165 -gem 'rails-settings-cached', '0.7.2' gem 'nokogiri' # style diff --git a/Gemfile.lock b/Gemfile.lock index dcf62a343..a2744cc49 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -359,8 +359,6 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) - rails-settings-cached (0.7.2) - rails (>= 4.2.0) railties (6.0.3.2) actionpack (= 6.0.3.2) activesupport (= 6.0.3.2) @@ -540,7 +538,6 @@ DEPENDENCIES que-web railroady (= 1.3.0) rails (~> 6.0) - rails-settings-cached (= 0.7.2) ransack (~> 2.3) rest-client sass-rails From b7f03dfa69fe3088b886976daedc32c8374f20ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 12:31:11 +0300 Subject: [PATCH 725/757] Fix some CC issues --- app/models/concerns/settings/migratable.rb | 37 +++++++++++++++------- app/models/setting.rb | 1 + app/models/setting_entry.rb | 6 ++-- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/app/models/concerns/settings/migratable.rb b/app/models/concerns/settings/migratable.rb index ab0af4a53..b6321ad35 100644 --- a/app/models/concerns/settings/migratable.rb +++ b/app/models/concerns/settings/migratable.rb @@ -5,10 +5,28 @@ module Concerns module Migratable extend ActiveSupport::Concern - VALIDATION_SETTINGS = %w[admin_contacts_min_count admin_contacts_max_count tech_contacts_min_count tech_contacts_max_count orphans_contacts_in_months ds_data_allowed key_data_allowed dnskeys_min_count dnskeys_max_count nameserver_required ns_min_count ns_max_count expire_pending_confirmation legal_document_is_mandatory].freeze - EXPIRATION_SETTINGS = %w[days_to_renew_domain_before_expire expire_warning_period redemption_grace_period expiration_reminder_mail].freeze - BILLING_SETTINGS = %w[invoice_number_min invoice_number_max directo_monthly_number_min directo_monthly_number_max directo_monthly_number_last days_to_keep_invoices_active days_to_keep_overdue_invoices_active minimum_deposit directo_receipt_payment_term directo_receipt_product_name directo_sales_agent registry_billing_email registry_invoice_contact registry_vat_no registry_vat_prc registry_bank registry_bank_code registry_iban registry_swift].freeze - CONTACTS_SETTINGS = %w[registry_juridical_name registry_reg_no registry_email registry_phone registry_url registry_street registry_city registry_state registry_zip registry_country_code registry_whois_disclaimer].freeze + VALIDATION_SETTINGS = + %w[admin_contacts_min_count admin_contacts_max_count tech_contacts_min_count ns_min_count + tech_contacts_max_count orphans_contacts_in_months key_data_allowed dnskeys_min_count + dnskeys_max_count nameserver_required expire_pending_confirmation ds_data_allowed + legal_document_is_mandatory ns_max_count].freeze + + EXPIRATION_SETTINGS = + %w[days_to_renew_domain_before_expire expire_warning_period redemption_grace_period + expiration_reminder_mail].freeze + + BILLING_SETTINGS = + %w[invoice_number_min invoice_number_max directo_monthly_number_min + directo_monthly_number_last days_to_keep_invoices_active directo_monthly_number_max + days_to_keep_overdue_invoices_active minimum_deposit directo_receipt_payment_term + directo_receipt_product_name directo_sales_agent registry_billing_email + registry_invoice_contact registry_vat_no registry_vat_prc registry_bank + registry_iban registry_swift directo_monthly_number_max registry_bank_code].freeze + + CONTACTS_SETTINGS = + %w[registry_juridical_name registry_reg_no registry_email registry_phone registry_url + registry_street registry_city registry_state registry_zip registry_country_code + registry_whois_disclaimer].freeze INTEGER_SETTINGS = %w[ @@ -52,7 +70,8 @@ module Concerns class_methods do def copy_from_legacy - sql = 'SELECT var, value, created_at, updated_at, creator_str, updator_str FROM settings ORDER BY settings.id ASC' + sql = 'SELECT var, value, created_at, updated_at, creator_str, updator_str FROM' \ + ' settings ORDER BY settings.id ASC' old_settings = ActiveRecord::Base.connection.execute(sql) old_settings.each do |origin| @@ -63,12 +82,8 @@ module Concerns entry[:format] = 'integer' if INTEGER_SETTINGS.include? entry.code entry[:group] = 'other' - if VALIDATION_SETTINGS.include? entry.code - entry[:group] = 'domain_validation' - end - if EXPIRATION_SETTINGS.include? entry.code - entry[:group] = 'domain_expiration' - end + entry[:group] = 'domain_validation' if VALIDATION_SETTINGS.include? entry.code + entry[:group] = 'domain_expiration' if EXPIRATION_SETTINGS.include? entry.code entry[:group] = 'billing' if BILLING_SETTINGS.include? entry.code entry[:group] = 'contacts' if CONTACTS_SETTINGS.include? entry.code diff --git a/app/models/setting.rb b/app/models/setting.rb index afa570c88..b39767089 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + class Setting < SettingEntry # Bridge Setting calls to SettingEntry, so we don't have to drop legacy settings yet end diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index b439187d5..bffbc3feb 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -23,11 +23,12 @@ class SettingEntry < ApplicationRecord SettingEntry.order(id: :asc).where(group: group_name) end + # rubocop:disable Style/MethodMissingSuper def self.method_missing(method, *args) super(method, *args) rescue NoMethodError - if method.to_s[-1] == "=" - stg_code = method.to_s.sub("=", "") + if method.to_s[-1] == '=' + stg_code = method.to_s.sub('=', '') stg_value = args[0].to_s SettingEntry.find_by!(code: stg_code).update(value: stg_value) else @@ -35,6 +36,7 @@ class SettingEntry < ApplicationRecord stg ? stg.retrieve : nil end end + # rubocop:enable Style/MethodMissingSuper # Validators def valid_value_format From 5d429aaec32f797d27d9f0bce19925edfb4c8988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 15:26:58 +0300 Subject: [PATCH 726/757] Exclude data migrate from Travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index bb74deecc..23d4ab6b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,6 @@ before_script: - "echo \"ca_key_password: 'password'\" >> config/application.yml" - "cp config/database_travis.yml config/database.yml" - "bundle exec rake db:setup:all" - - "bundle exec rake data:migrate" - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter" - "chmod +x ./cc-test-reporter" - "./cc-test-reporter before-build" From 558faf493436d9e4a26392c01613eec4afc7af3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 15:27:58 +0300 Subject: [PATCH 727/757] Move Setting::Migratable concern to data_migration instead --- app/models/concerns/settings/migratable.rb | 107 ------------------ app/models/setting_entry.rb | 3 +- ...93540_copy_legacy_settings_to_new_model.rb | 86 ++++++++++++++ 3 files changed, 88 insertions(+), 108 deletions(-) delete mode 100644 app/models/concerns/settings/migratable.rb create mode 100644 db/data/20200812093540_copy_legacy_settings_to_new_model.rb diff --git a/app/models/concerns/settings/migratable.rb b/app/models/concerns/settings/migratable.rb deleted file mode 100644 index b6321ad35..000000000 --- a/app/models/concerns/settings/migratable.rb +++ /dev/null @@ -1,107 +0,0 @@ -# frozen_string_literal: true - -module Concerns - module Settings - module Migratable - extend ActiveSupport::Concern - - VALIDATION_SETTINGS = - %w[admin_contacts_min_count admin_contacts_max_count tech_contacts_min_count ns_min_count - tech_contacts_max_count orphans_contacts_in_months key_data_allowed dnskeys_min_count - dnskeys_max_count nameserver_required expire_pending_confirmation ds_data_allowed - legal_document_is_mandatory ns_max_count].freeze - - EXPIRATION_SETTINGS = - %w[days_to_renew_domain_before_expire expire_warning_period redemption_grace_period - expiration_reminder_mail].freeze - - BILLING_SETTINGS = - %w[invoice_number_min invoice_number_max directo_monthly_number_min - directo_monthly_number_last days_to_keep_invoices_active directo_monthly_number_max - days_to_keep_overdue_invoices_active minimum_deposit directo_receipt_payment_term - directo_receipt_product_name directo_sales_agent registry_billing_email - registry_invoice_contact registry_vat_no registry_vat_prc registry_bank - registry_iban registry_swift directo_monthly_number_max registry_bank_code].freeze - - CONTACTS_SETTINGS = - %w[registry_juridical_name registry_reg_no registry_email registry_phone registry_url - registry_street registry_city registry_state registry_zip registry_country_code - registry_whois_disclaimer].freeze - - INTEGER_SETTINGS = - %w[ - admin_contacts_min_count - admin_contacts_max_count - tech_contacts_min_count - tech_contacts_max_count - orphans_contacts_in_months - ds_digest_type - dnskeys_min_count - dnskeys_max_count - ns_min_count - ns_max_count - transfer_wait_time - invoice_number_min - invoice_number_max - days_to_keep_invoices_active - days_to_keep_overdue_invoices_active - days_to_renew_domain_before_expire - expire_warning_period - redemption_grace_period - expire_pending_confirmation - dispute_period_in_months - ].freeze - - FLOAT_SETTINGS = %w[registry_vat_prc minimum_deposit].freeze - - BOOLEAN_SETTINGS = - %w[ - ds_data_allowed - key_data_allowed - client_side_status_editing_enabled - registrar_ip_whitelist_enabled - api_ip_whitelist_enabled - request_confrimation_on_registrant_change_enabled - request_confirmation_on_domain_deletion_enabled - nameserver_required - address_processing - legal_document_is_mandatory - ].freeze - - class_methods do - def copy_from_legacy - sql = 'SELECT var, value, created_at, updated_at, creator_str, updator_str FROM' \ - ' settings ORDER BY settings.id ASC' - old_settings = ActiveRecord::Base.connection.execute(sql) - - old_settings.each do |origin| - entry = SettingEntry.find_or_initialize_by(code: origin['var']) - entry[:format] = 'string' - entry[:format] = 'boolean' if BOOLEAN_SETTINGS.include? entry.code - entry[:format] = 'float' if FLOAT_SETTINGS.include? entry.code - entry[:format] = 'integer' if INTEGER_SETTINGS.include? entry.code - - entry[:group] = 'other' - entry[:group] = 'domain_validation' if VALIDATION_SETTINGS.include? entry.code - entry[:group] = 'domain_expiration' if EXPIRATION_SETTINGS.include? entry.code - entry[:group] = 'billing' if BILLING_SETTINGS.include? entry.code - entry[:group] = 'contacts' if CONTACTS_SETTINGS.include? entry.code - - %w[value created_at updated_at creator_str updator_str].each do |field| - entry[field] = origin[field] - next if field != 'value' - - entry.value = origin[field].gsub('--- ', '').strip.gsub("'", '') - end - - if entry.save - logger.info "Legacy setting '#{entry.code}' successfully migrated to SettingEntry" - else - logger.error "!!! Failed to migrate setting '#{entry.code}': #{entry.errors.full_messages.join(', ')}" - end - end - end - end - end - end -end diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index bffbc3feb..0b0e2d385 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -3,7 +3,6 @@ class SettingEntry < ApplicationRecord validates :format, presence: true validates :group, presence: true validate :valid_value_format - include Concerns::Settings::Migratable VALUE_FORMATS = { string: :string_format, @@ -24,6 +23,7 @@ class SettingEntry < ApplicationRecord end # rubocop:disable Style/MethodMissingSuper + # rubocop:disable Style/MissingRespondToMissing def self.method_missing(method, *args) super(method, *args) rescue NoMethodError @@ -36,6 +36,7 @@ class SettingEntry < ApplicationRecord stg ? stg.retrieve : nil end end + # rubocop:enable Style/MissingRespondToMissing # rubocop:enable Style/MethodMissingSuper # Validators diff --git a/db/data/20200812093540_copy_legacy_settings_to_new_model.rb b/db/data/20200812093540_copy_legacy_settings_to_new_model.rb new file mode 100644 index 000000000..7d45867ec --- /dev/null +++ b/db/data/20200812093540_copy_legacy_settings_to_new_model.rb @@ -0,0 +1,86 @@ +class CopyLegacySettingsToNewModel < ActiveRecord::Migration[6.0] + def up + validation_group = + %w[admin_contacts_min_count admin_contacts_max_count tech_contacts_min_count ns_min_count + tech_contacts_max_count orphans_contacts_in_months key_data_allowed dnskeys_min_count + dnskeys_max_count nameserver_required expire_pending_confirmation ds_data_allowed + legal_document_is_mandatory ns_max_count].freeze + + expiration_group = + %w[days_to_renew_domain_before_expire expire_warning_period redemption_grace_period + expiration_reminder_mail].freeze + + billing_group = + %w[invoice_number_min invoice_number_max directo_monthly_number_min + directo_monthly_number_last days_to_keep_invoices_active directo_monthly_number_max + days_to_keep_overdue_invoices_active minimum_deposit directo_receipt_payment_term + directo_receipt_product_name directo_sales_agent registry_billing_email + registry_invoice_contact registry_vat_no registry_vat_prc registry_bank + registry_iban registry_swift directo_monthly_number_max registry_bank_code].freeze + + contacts_group = + %w[registry_juridical_name registry_reg_no registry_email registry_phone registry_url + registry_street registry_city registry_state registry_zip registry_country_code + registry_whois_disclaimer].freeze + + integer_vars = + %w[admin_contacts_min_count admin_contacts_max_count tech_contacts_min_count + tech_contacts_max_count orphans_contacts_in_months ds_digest_type dnskeys_min_count + dnskeys_max_count ns_min_count ns_max_count transfer_wait_time invoice_number_min + invoice_number_max days_to_keep_invoices_active days_to_keep_overdue_invoices_active + days_to_renew_domain_before_expire expire_warning_period redemption_grace_period + expire_pending_confirmation dispute_period_in_months].freeze + + float_vars = %w[registry_vat_prc minimum_deposit].freeze + + boolean_vars = + %w[ + ds_data_allowed + key_data_allowed + client_side_status_editing_enabled + registrar_ip_whitelist_enabled + api_ip_whitelist_enabled + request_confrimation_on_registrant_change_enabled + request_confirmation_on_domain_deletion_enabled + nameserver_required + address_processing + legal_document_is_mandatory + ].freeze + + sql = 'SELECT var, value, created_at, updated_at, creator_str, updator_str FROM' \ + ' settings ORDER BY settings.id ASC' + old_settings = ActiveRecord::Base.connection.execute(sql) + + old_settings.each do |origin| + entry = SettingEntry.find_or_initialize_by(code: origin['var']) + entry[:format] = 'string' + entry[:format] = 'boolean' if boolean_vars.include? entry.code + entry[:format] = 'float' if float_vars.include? entry.code + entry[:format] = 'integer' if integer_vars.include? entry.code + + entry[:group] = 'other' + entry[:group] = 'domain_validation' if validation_group.include? entry.code + entry[:group] = 'domain_expiration' if expiration_group.include? entry.code + entry[:group] = 'billing' if billing_group.include? entry.code + entry[:group] = 'contacts' if contacts_group.include? entry.code + + %w[value created_at updated_at creator_str updator_str].each do |field| + entry[field] = origin[field] + next if field != 'value' + + entry.value = origin[field].gsub('--- ', '').strip.gsub("'", '') + end + + if entry.save + logger.info "Legacy setting '#{entry.code}' successfully migrated to SettingEntry" + else + logger.error "!!! Failed to migrate setting '#{entry.code}': " \ + "#{entry.errors.full_messages.join(', ')}" + end + end + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end From 37ae30b63730351f3c35cbaa70f2bb87edc10423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 15:42:32 +0300 Subject: [PATCH 728/757] Refactor get/set method for EntrySetting.var --- app/models/setting_entry.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index 0b0e2d385..b953ca732 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -27,18 +27,20 @@ class SettingEntry < ApplicationRecord def self.method_missing(method, *args) super(method, *args) rescue NoMethodError - if method.to_s[-1] == '=' - stg_code = method.to_s.sub('=', '') - stg_value = args[0].to_s - SettingEntry.find_by!(code: stg_code).update(value: stg_value) - else - stg = SettingEntry.find_by(code: method.to_s) - stg ? stg.retrieve : nil - end + get_or_set(method.to_s, args[0]) end # rubocop:enable Style/MissingRespondToMissing # rubocop:enable Style/MethodMissingSuper + def self.get_or_set(method_name, arg) + if method_name[-1] == '=' + SettingEntry.find_by!(code: method_name.sub('=', '')).update(value: arg.to_s) + else + stg = SettingEntry.find_by(code: method_name) + stg ? stg.retrieve : nil + end + end + # Validators def valid_value_format formats = VALUE_FORMATS.with_indifferent_access From c977872c44dab48075dcd405b771e11e5da09bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 16:10:12 +0300 Subject: [PATCH 729/757] Add audit for Settings --- app/models/setting_entry.rb | 1 + app/models/version/setting_entry_version.rb | 4 ++ ...810_create_versions_for_setting_entries.rb | 26 +++++++ db/structure.sql | 70 ++++++++++++++++++- 4 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 app/models/version/setting_entry_version.rb create mode 100644 db/migrate/20200812125810_create_versions_for_setting_entries.rb diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index b953ca732..83cf102d2 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -1,4 +1,5 @@ class SettingEntry < ApplicationRecord + include Versions validates :code, presence: true, uniqueness: true validates :format, presence: true validates :group, presence: true diff --git a/app/models/version/setting_entry_version.rb b/app/models/version/setting_entry_version.rb new file mode 100644 index 000000000..de1e4d1ca --- /dev/null +++ b/app/models/version/setting_entry_version.rb @@ -0,0 +1,4 @@ +class SettingEntryVersion < PaperTrail::Version + self.table_name = :log_setting_entries + self.sequence_name = :log_setting_entries +end diff --git a/db/migrate/20200812125810_create_versions_for_setting_entries.rb b/db/migrate/20200812125810_create_versions_for_setting_entries.rb new file mode 100644 index 000000000..624717658 --- /dev/null +++ b/db/migrate/20200812125810_create_versions_for_setting_entries.rb @@ -0,0 +1,26 @@ +class CreateVersionsForSettingEntries < ActiveRecord::Migration[6.0] + def up + create_table :log_setting_entries, force: :cascade do |t| + t.string :item_type, null: false + t.integer :item_id, null: false + t.string :event, null: false + t.string :whodunnit + t.json :object + t.json :object_changes + t.datetime :created_at + t.string :session + t.json :children + t.string :uuid + end + + add_index 'log_setting_entries', ['item_type', 'item_id'], name: 'index_log_setting_entries_on_item_type_and_item_id', using: :btree + add_index 'log_setting_entries', ['whodunnit'], name: 'index_log_setting_entries_on_whodunnit', using: :btree + end + + def down + remove_index :log_setting_entries, name: 'index_log_setting_entries_on_item_type_and_item_id' + remove_index :log_setting_entries, name: 'index_log_setting_entries_on_whodunnit' + + drop_table :log_setting_entries + end +end diff --git a/db/structure.sql b/db/structure.sql index 45b48733f..6b46d7400 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1820,6 +1820,44 @@ CREATE SEQUENCE public.log_reserved_domains_id_seq ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_domains.id; +-- +-- Name: log_setting_entries; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.log_setting_entries ( + id bigint NOT NULL, + item_type character varying NOT NULL, + item_id integer NOT NULL, + event character varying NOT NULL, + whodunnit character varying, + object json, + object_changes json, + created_at timestamp without time zone, + session character varying, + children json, + uuid character varying +); + + +-- +-- Name: log_setting_entries_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.log_setting_entries_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: log_setting_entries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.log_setting_entries_id_seq OWNED BY public.log_setting_entries.id; + + -- -- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -2822,6 +2860,13 @@ ALTER TABLE ONLY public.log_registrars ALTER COLUMN id SET DEFAULT nextval('publ ALTER TABLE ONLY public.log_reserved_domains ALTER COLUMN id SET DEFAULT nextval('public.log_reserved_domains_id_seq'::regclass); +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.log_setting_entries ALTER COLUMN id SET DEFAULT nextval('public.log_setting_entries_id_seq'::regclass); + + -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -3284,6 +3329,14 @@ ALTER TABLE ONLY public.log_reserved_domains ADD CONSTRAINT log_reserved_domains_pkey PRIMARY KEY (id); +-- +-- Name: log_setting_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.log_setting_entries + ADD CONSTRAINT log_setting_entries_pkey PRIMARY KEY (id); + + -- -- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3982,6 +4035,20 @@ CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_r CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); +-- +-- Name: index_log_setting_entries_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_log_setting_entries_on_item_type_and_item_id ON public.log_setting_entries USING btree (item_type, item_id); + + +-- +-- Name: index_log_setting_entries_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_log_setting_entries_on_whodunnit ON public.log_setting_entries USING btree (whodunnit); + + -- -- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -4780,6 +4847,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200714115338'), ('20200807110611'), ('20200811074839'), -('20200812090409'); +('20200812090409'), +('20200812125810'); From abea8abe846dfb1464f8985cadea7d6611710b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 17:25:55 +0300 Subject: [PATCH 730/757] Allow only letters and underscores in Setting code --- app/models/setting_entry.rb | 1 + .../20200811074839_create_setting_entries.rb | 2 +- db/structure.sql | 2 +- test/models/setting_entry_test.rb | 98 +++++++++++++++++++ 4 files changed, 101 insertions(+), 2 deletions(-) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index 83cf102d2..3079573f6 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -4,6 +4,7 @@ class SettingEntry < ApplicationRecord validates :format, presence: true validates :group, presence: true validate :valid_value_format + validates_format_of :code, with: /([a-z])[a-z|_]+[a-z]/ VALUE_FORMATS = { string: :string_format, diff --git a/db/migrate/20200811074839_create_setting_entries.rb b/db/migrate/20200811074839_create_setting_entries.rb index 276ec760a..e53a4e015 100644 --- a/db/migrate/20200811074839_create_setting_entries.rb +++ b/db/migrate/20200811074839_create_setting_entries.rb @@ -2,7 +2,7 @@ class CreateSettingEntries < ActiveRecord::Migration[6.0] def change create_table :setting_entries do |t| t.string :code, null: false, index: { unique: true } - t.string :value, null: false, default: '' + t.string :value t.string :group, null: false t.string :format, null: false diff --git a/db/structure.sql b/db/structure.sql index 6b46d7400..0ce89f0d2 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2307,7 +2307,7 @@ CREATE TABLE public.schema_migrations ( CREATE TABLE public.setting_entries ( id bigint NOT NULL, code character varying NOT NULL, - value character varying DEFAULT ''::character varying, + value character varying, "group" character varying NOT NULL, format character varying NOT NULL, creator_str character varying, diff --git a/test/models/setting_entry_test.rb b/test/models/setting_entry_test.rb index 92246ed0b..b75b3fa8c 100644 --- a/test/models/setting_entry_test.rb +++ b/test/models/setting_entry_test.rb @@ -2,9 +2,107 @@ require 'test_helper' class SettingEntryTest < ActiveSupport::TestCase def setup + @new_setting = SettingEntry.new(code: 'new_setting', value: 'looks great', format: 'string', group: 'other') end def test_fixture_is_valid assert setting_entries(:legal_document_is_mandatory).valid? end + + def test_can_be_retrieved_via_class_method + setting = setting_entries(:legal_document_is_mandatory) + assert setting.retrieve, Setting.legal_document_is_mandatory + end + + def test_can_be_updated_via_class_method + setting = setting_entries(:legal_document_is_mandatory) + setting.update(value: 'false') + setting.reload + + Setting.legal_document_is_mandatory = true + setting.reload + assert true, setting.retrieve + end + + def test_setting_code_is_required + assert @new_setting.valid? + @new_setting.code = nil + assert_not @new_setting.valid? + end + + def test_setting_code_can_only_include_underscore_and_characters + assert @new_setting.valid? + @new_setting.code = 'a b' + assert_not @new_setting.valid? + + @new_setting.code = 'a_b' + assert @new_setting.valid? + end + + def test_setting_value_can_be_nil + assert @new_setting.valid? + @new_setting.value = nil + assert @new_setting.valid? + end + + def test_setting_format_is_required + assert @new_setting.valid? + @new_setting.format = nil + assert_not @new_setting.valid? + + @new_setting.format = 'nonexistant' + assert_not @new_setting.valid? + end + + def test_setting_group_is_required + assert @new_setting.valid? + @new_setting.group = nil + assert_not @new_setting.valid? + + @new_setting.group = 'random' + assert @new_setting.valid? + end + + def test_returns_nil_for_unknown_setting + assert_nil Setting.unknown_and_definitely_not_saved_setting + end + + def test_throws_error_if_updating_unknown_setting + assert_raises ActiveRecord::RecordNotFound do + Setting.unknown_and_definitely_not_saved_setting = 'hope it fails' + end + end + + def test_parses_string_format + Setting.create(code: 'string_format', value: '1', format: 'string', group: 'random') + assert Setting.string_format.is_a? String + end + + def test_parses_integer_format + Setting.create(code: 'integer_format', value: '1', format: 'integer', group: 'random') + assert Setting.integer_format.is_a? Integer + end + + def test_parses_float_format + Setting.create(code: 'float_format', value: '0.5', format: 'float', group: 'random') + assert Setting.float_format.is_a? Float + end + + def test_parses_boolean_format + Setting.create(code: 'boolean_format', value: 'true', format: 'boolean', group: 'random') + assert_equal true, Setting.boolean_format + + Setting.boolean_format = 'false' + assert_equal false, Setting.boolean_format + end + + def test_parses_hash_format + Setting.create(code: 'hash_format', value: '{"hello": "there"}', format: 'hash', group: 'random') + assert Setting.hash_format.is_a? Hash + end + + def test_parses_array_format + Setting.create(code: 'array_format', value: '[1, 2, 3]', format: 'array', group: 'random') + assert Setting.array_format.is_a? Array + end end From 8683964d22d8a22b753d4ce816c47e6e617d0830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Aug 2020 17:35:49 +0300 Subject: [PATCH 731/757] Disallow instance method names as Setting code --- app/models/setting_entry.rb | 14 ++++++++++---- test/models/setting_entry_test.rb | 9 +++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index 3079573f6..ce67ae441 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -1,10 +1,10 @@ class SettingEntry < ApplicationRecord include Versions - validates :code, presence: true, uniqueness: true + validates :code, presence: true, uniqueness: true, format: { with: /\A([a-z])[a-z|_]+[a-z]\z/ } validates :format, presence: true validates :group, presence: true - validate :valid_value_format - validates_format_of :code, with: /([a-z])[a-z|_]+[a-z]/ + validate :validate_value_format + validate :validate_code_is_not_using_reserved_name VALUE_FORMATS = { string: :string_format, @@ -44,7 +44,13 @@ class SettingEntry < ApplicationRecord end # Validators - def valid_value_format + def validate_code_is_not_using_reserved_name + disallowed = [] + ActiveRecord::Base.instance_methods.sort.each { |m| disallowed << m.to_s } + errors.add(:code, :invalid) if disallowed.include? code + end + + def validate_value_format formats = VALUE_FORMATS.with_indifferent_access errors.add(:format, :invalid) unless formats.keys.any? format end diff --git a/test/models/setting_entry_test.rb b/test/models/setting_entry_test.rb index b75b3fa8c..c7f6d500d 100644 --- a/test/models/setting_entry_test.rb +++ b/test/models/setting_entry_test.rb @@ -35,6 +35,15 @@ class SettingEntryTest < ActiveSupport::TestCase @new_setting.code = 'a b' assert_not @new_setting.valid? + @new_setting.code = 'ab_' + assert_not @new_setting.valid? + + @new_setting.code = '_ab' + assert_not @new_setting.valid? + + @new_setting.code = '1_2' + assert_not @new_setting.valid? + @new_setting.code = 'a_b' assert @new_setting.valid? end From 7953b3f8dfcae5a3f5ef8e24d9fd82350c1005a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 13 Aug 2020 12:36:42 +0300 Subject: [PATCH 732/757] Create Whois Records for subzones --- app/jobs/update_whois_record_job.rb | 11 ++++- app/models/dns/zone.rb | 63 +++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/app/jobs/update_whois_record_job.rb b/app/jobs/update_whois_record_job.rb index 16f4e0e79..0cf07026d 100644 --- a/app/jobs/update_whois_record_job.rb +++ b/app/jobs/update_whois_record_job.rb @@ -8,10 +8,11 @@ class UpdateWhoisRecordJob < Que::Job when 'blocked' then BlockedDomain when 'domain' then Domain when 'disputed' then Dispute.active + when 'zone' then DNS::Zone end Array(names).each do |name| - record = klass.find_by(name: name) + record = klass == DNS::Zone ? klass.find_by(origin: name) : klass.find_by(name: name) if record send "update_#{type}", record else @@ -36,6 +37,10 @@ class UpdateWhoisRecordJob < Que::Job update_reserved(record) end + def update_zone(record) + update_reserved(record) + end + # 1. deleting own # 2. trying to regenerate reserved in order domain is still in the list def delete_domain(name) @@ -60,6 +65,10 @@ class UpdateWhoisRecordJob < Que::Job remove_status_from_whois(domain_name: name, domain_status: 'disputed') end + def delete_zone(name) + WhoisRecord.where(name: name).destroy_all + end + def remove_status_from_whois(domain_name:, domain_status:) Whois::Record.where(name: domain_name).each do |r| r.json['status'] = r.json['status'].delete_if { |status| status == domain_status } diff --git a/app/models/dns/zone.rb b/app/models/dns/zone.rb index a641c4e49..a7cbb924b 100644 --- a/app/models/dns/zone.rb +++ b/app/models/dns/zone.rb @@ -3,6 +3,8 @@ module DNS validates :origin, :ttl, :refresh, :retry, :expire, :minimum_ttl, :email, :master_nameserver, presence: true validates :ttl, :refresh, :retry, :expire, :minimum_ttl, numericality: { only_integer: true } validates :origin, uniqueness: true + after_save :update_whois_record, if: :subzone? + after_destroy :update_whois_record, if: :subzone? before_destroy do throw(:abort) if used? @@ -43,5 +45,66 @@ module DNS def to_partial_path 'zone' end + + def subzone? + origin.include? '.' + end + + def update_whois_record + UpdateWhoisRecordJob.enqueue origin, 'zone' + end + + def generate_data + wr = Whois::Record.find_or_initialize_by(name: origin) + wr.json = generate_json + wr.save + end + + def generate_json + h = HashWithIndifferentAccess.new + + h[:disclaimer] = Setting.registry_whois_disclaimer if Setting.registry_whois_disclaimer + h[:name] = origin + h[:status] = ['ok (paid and in zone)'] + h[:registered] = created_at.try(:to_s, :iso8601) + h[:changed] = updated_at.try(:to_s, :iso8601) + h[:expire] = nil + h[:outzone] = nil + h[:delete] = nil + + h[:registrant] = Setting.registry_juridical_name + h[:registrant_kind] = 'org' + h[:registrant_reg_no] = Setting.registry_reg_no + h[:registrant_ident_country_code] = Setting.registry_country_code + + h[:email] = Setting.registry_email + h[:registrant_changed] = nil + h[:registrant_disclosed_attributes] = %w[name email], + + contact = { + name: Setting.registry_invoice_contact, + email: Setting.registry_email, + changed: nil, + disclosed_attributes: %w[name email], + } + + h[:admin_contacts] = [contact] + + h[:tech_contacts] = [contact] + + # update registar triggers when adding new attributes + h[:registrar] = Setting.registry_juridical_name + h[:registrar_website] = Setting.registry_url + h[:registrar_phone] = Setting.registry_phone + h[:registrar_changed] = nil + + h[:nameservers] = [master_nameserver] + h[:nameservers_changed] = nil + + h[:dnssec_keys] = [] + h[:dnssec_changed] = nil + + h + end end end From ca1f3a9a48dbf928bc7f83a5c8e7242f2e4f8448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 13 Aug 2020 13:14:03 +0300 Subject: [PATCH 733/757] Reference newer version of LHV gem --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index c20e18f26..7ad72f5fa 100644 --- a/Gemfile +++ b/Gemfile @@ -66,7 +66,7 @@ gem 'airbrake' gem 'company_register', github: 'internetee/company_register', branch: :master gem 'e_invoice', github: 'internetee/e_invoice', branch: :master -gem 'lhv', github: 'internetee/lhv', branch: 'remove-keystores-gem' +gem 'lhv', github: 'internetee/lhv', branch: 'master' gem 'domain_name' gem 'haml', '~> 5.0' gem 'wkhtmltopdf-binary', '~> 0.12.5.1' diff --git a/Gemfile.lock b/Gemfile.lock index 698d8ca1d..7b18612e0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -45,8 +45,8 @@ GIT GIT remote: https://github.com/internetee/lhv.git - revision: af0d3127bed6606ac50c44696bd56b09c096ac39 - branch: remove-keystores-gem + revision: 1825240b3bf8b262418cc6c8ef7ed1aba386dd7d + branch: master specs: lhv (0.1.0) logger From fec622f9748ba60d14440f75fcf244ff133d83f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 13 Aug 2020 14:40:40 +0300 Subject: [PATCH 734/757] Update CHANGELOG.md --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ba471dc7..9bf7358d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ +13.08.2020 +* Removed keystore gem and replaced LHV JKS with PKCS12 [#1645](https://github.com/internetee/registry/issues/1645) + 11.08.2020 -* FIxed postal address saving bug with disabled address processing [#1650](https://github.com/internetee/registry/issues/1650) +* Fixed postal address saving bug with disabled address processing [#1650](https://github.com/internetee/registry/issues/1650) 07.08.2020 * Restored creator and updator strings to contacts and related object records [#1636](https://github.com/internetee/registry/issues/1636) From c9c90888bd473d37f8e69e24e326d633ac810baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 13 Aug 2020 13:10:25 +0300 Subject: [PATCH 735/757] Make code more readable --- app/jobs/update_whois_record_job.rb | 24 +++++++---- app/models/dns/zone.rb | 66 ++++++++++++----------------- 2 files changed, 43 insertions(+), 47 deletions(-) diff --git a/app/jobs/update_whois_record_job.rb b/app/jobs/update_whois_record_job.rb index 0cf07026d..4d81a58cf 100644 --- a/app/jobs/update_whois_record_job.rb +++ b/app/jobs/update_whois_record_job.rb @@ -3,16 +3,10 @@ class UpdateWhoisRecordJob < Que::Job def run(names, type) ::PaperTrail.request.whodunnit = "job - #{self.class.name} - #{type}" - klass = case type - when 'reserved' then ReservedDomain - when 'blocked' then BlockedDomain - when 'domain' then Domain - when 'disputed' then Dispute.active - when 'zone' then DNS::Zone - end + klass = determine_class(type) Array(names).each do |name| - record = klass == DNS::Zone ? klass.find_by(origin: name) : klass.find_by(name: name) + record = find_record(klass, name) if record send "update_#{type}", record else @@ -21,6 +15,20 @@ class UpdateWhoisRecordJob < Que::Job end end + def find_record(klass, name) + klass == DNS::Zone ? klass.find_by(origin: name) : klass.find_by(name: name) + end + + def determine_class(type) + case type + when 'reserved' then ReservedDomain + when 'blocked' then BlockedDomain + when 'domain' then Domain + when 'disputed' then Dispute.active + when 'zone' then DNS::Zone + end + end + def update_domain(domain) domain.whois_record ? domain.whois_record.save : domain.create_whois_record end diff --git a/app/models/dns/zone.rb b/app/models/dns/zone.rb index a7cbb924b..dcaf32ab1 100644 --- a/app/models/dns/zone.rb +++ b/app/models/dns/zone.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module DNS class Zone < ApplicationRecord validates :origin, :ttl, :refresh, :retry, :expire, :minimum_ttl, :email, :master_nameserver, presence: true @@ -61,50 +63,36 @@ module DNS end def generate_json - h = HashWithIndifferentAccess.new + data = {}.with_indifferent_access + [domain_vars, registrar_vars, registrant_vars].each do |h| + data.merge!(h) + end - h[:disclaimer] = Setting.registry_whois_disclaimer if Setting.registry_whois_disclaimer - h[:name] = origin - h[:status] = ['ok (paid and in zone)'] - h[:registered] = created_at.try(:to_s, :iso8601) - h[:changed] = updated_at.try(:to_s, :iso8601) - h[:expire] = nil - h[:outzone] = nil - h[:delete] = nil + data + end - h[:registrant] = Setting.registry_juridical_name - h[:registrant_kind] = 'org' - h[:registrant_reg_no] = Setting.registry_reg_no - h[:registrant_ident_country_code] = Setting.registry_country_code + def domain_vars + { disclaimer: Setting.registry_whois_disclaimer, name: origin, + registered: created_at.try(:to_s, :iso8601), status: ['ok (paid and in zone)'], + changed: updated_at.try(:to_s, :iso8601), email: Setting.registry_email, + admin_contacts: [contact_vars], tech_contacts: [contact_vars], + nameservers: [master_nameserver] } + end - h[:email] = Setting.registry_email - h[:registrant_changed] = nil - h[:registrant_disclosed_attributes] = %w[name email], + def registrar_vars + { registrar: Setting.registry_juridical_name, registrar_website: Setting.registry_url, + registrar_phone: Setting.registry_phone } + end - contact = { - name: Setting.registry_invoice_contact, - email: Setting.registry_email, - changed: nil, - disclosed_attributes: %w[name email], - } + def registrant_vars + { registrant: Setting.registry_juridical_name, registrant_reg_no: Setting.registry_reg_no, + registrant_ident_country_code: Setting.registry_country_code, registrant_kind: 'org', + registrant_disclosed_attributes: %w[name email] } + end - h[:admin_contacts] = [contact] - - h[:tech_contacts] = [contact] - - # update registar triggers when adding new attributes - h[:registrar] = Setting.registry_juridical_name - h[:registrar_website] = Setting.registry_url - h[:registrar_phone] = Setting.registry_phone - h[:registrar_changed] = nil - - h[:nameservers] = [master_nameserver] - h[:nameservers_changed] = nil - - h[:dnssec_keys] = [] - h[:dnssec_changed] = nil - - h + def contact_vars + { name: Setting.registry_invoice_contact, email: Setting.registry_email, + disclosed_attributes: %w[name email] } end end end From 7e640a376e250dfa0177de80e1428266f74d0c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 13 Aug 2020 16:04:23 +0300 Subject: [PATCH 736/757] Move DNS::Zone WHOIS info logic to concern --- app/models/concerns/zone/whois_queryable.rb | 59 +++++++++++++++++++++ app/models/dns/zone.rb | 50 +---------------- 2 files changed, 60 insertions(+), 49 deletions(-) create mode 100644 app/models/concerns/zone/whois_queryable.rb diff --git a/app/models/concerns/zone/whois_queryable.rb b/app/models/concerns/zone/whois_queryable.rb new file mode 100644 index 000000000..1a24dea54 --- /dev/null +++ b/app/models/concerns/zone/whois_queryable.rb @@ -0,0 +1,59 @@ +module Concerns + module Zone + module WhoisQueryable + extend ActiveSupport::Concern + + included do + after_save :update_whois_record, if: :subzone? + after_destroy :update_whois_record, if: :subzone? + end + + def subzone? + origin.include? '.' + end + + def update_whois_record + UpdateWhoisRecordJob.enqueue origin, 'zone' + end + + def generate_data + wr = Whois::Record.find_or_initialize_by(name: origin) + wr.json = generate_json + wr.save + end + + def generate_json + data = {}.with_indifferent_access + [domain_vars, registrar_vars, registrant_vars].each do |h| + data.merge!(h) + end + + data + end + + def domain_vars + { disclaimer: Setting.registry_whois_disclaimer, name: origin, + registered: created_at.try(:to_s, :iso8601), status: ['ok (paid and in zone)'], + changed: updated_at.try(:to_s, :iso8601), email: Setting.registry_email, + admin_contacts: [contact_vars], tech_contacts: [contact_vars], + nameservers: [master_nameserver] } + end + + def registrar_vars + { registrar: Setting.registry_juridical_name, registrar_website: Setting.registry_url, + registrar_phone: Setting.registry_phone } + end + + def registrant_vars + { registrant: Setting.registry_juridical_name, registrant_reg_no: Setting.registry_reg_no, + registrant_ident_country_code: Setting.registry_country_code, registrant_kind: 'org', + registrant_disclosed_attributes: %w[name email] } + end + + def contact_vars + { name: Setting.registry_invoice_contact, email: Setting.registry_email, + disclosed_attributes: %w[name email] } + end + end + end +end diff --git a/app/models/dns/zone.rb b/app/models/dns/zone.rb index dcaf32ab1..31749d952 100644 --- a/app/models/dns/zone.rb +++ b/app/models/dns/zone.rb @@ -5,8 +5,7 @@ module DNS validates :origin, :ttl, :refresh, :retry, :expire, :minimum_ttl, :email, :master_nameserver, presence: true validates :ttl, :refresh, :retry, :expire, :minimum_ttl, numericality: { only_integer: true } validates :origin, uniqueness: true - after_save :update_whois_record, if: :subzone? - after_destroy :update_whois_record, if: :subzone? + include Concerns::Zone::WhoisQueryable before_destroy do throw(:abort) if used? @@ -47,52 +46,5 @@ module DNS def to_partial_path 'zone' end - - def subzone? - origin.include? '.' - end - - def update_whois_record - UpdateWhoisRecordJob.enqueue origin, 'zone' - end - - def generate_data - wr = Whois::Record.find_or_initialize_by(name: origin) - wr.json = generate_json - wr.save - end - - def generate_json - data = {}.with_indifferent_access - [domain_vars, registrar_vars, registrant_vars].each do |h| - data.merge!(h) - end - - data - end - - def domain_vars - { disclaimer: Setting.registry_whois_disclaimer, name: origin, - registered: created_at.try(:to_s, :iso8601), status: ['ok (paid and in zone)'], - changed: updated_at.try(:to_s, :iso8601), email: Setting.registry_email, - admin_contacts: [contact_vars], tech_contacts: [contact_vars], - nameservers: [master_nameserver] } - end - - def registrar_vars - { registrar: Setting.registry_juridical_name, registrar_website: Setting.registry_url, - registrar_phone: Setting.registry_phone } - end - - def registrant_vars - { registrant: Setting.registry_juridical_name, registrant_reg_no: Setting.registry_reg_no, - registrant_ident_country_code: Setting.registry_country_code, registrant_kind: 'org', - registrant_disclosed_attributes: %w[name email] } - end - - def contact_vars - { name: Setting.registry_invoice_contact, email: Setting.registry_email, - disclosed_attributes: %w[name email] } - end end end From 55de10a53de6fd8d73cf92d12c74531bbb99c6b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 13 Aug 2020 16:59:35 +0300 Subject: [PATCH 737/757] Ensure that Whois record is updated/destroyed when actions performed on Zone objects --- app/jobs/update_whois_record_job.rb | 1 + app/models/concerns/zone/whois_queryable.rb | 2 +- test/fixtures/dns/zones.yml | 9 ++++++++ test/models/dns/zone_test.rb | 25 +++++++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/app/jobs/update_whois_record_job.rb b/app/jobs/update_whois_record_job.rb index 4d81a58cf..2973d5a6b 100644 --- a/app/jobs/update_whois_record_job.rb +++ b/app/jobs/update_whois_record_job.rb @@ -75,6 +75,7 @@ class UpdateWhoisRecordJob < Que::Job def delete_zone(name) WhoisRecord.where(name: name).destroy_all + Whois::Record.where(name: name).destroy_all end def remove_status_from_whois(domain_name:, domain_status:) diff --git a/app/models/concerns/zone/whois_queryable.rb b/app/models/concerns/zone/whois_queryable.rb index 1a24dea54..970ce87d6 100644 --- a/app/models/concerns/zone/whois_queryable.rb +++ b/app/models/concerns/zone/whois_queryable.rb @@ -5,7 +5,7 @@ module Concerns included do after_save :update_whois_record, if: :subzone? - after_destroy :update_whois_record, if: :subzone? + after_destroy :update_whois_record end def subzone? diff --git a/test/fixtures/dns/zones.yml b/test/fixtures/dns/zones.yml index 4f493a149..a1be9a74b 100644 --- a/test/fixtures/dns/zones.yml +++ b/test/fixtures/dns/zones.yml @@ -9,3 +9,12 @@ one: minimum_ttl: 1 email: admin@registry.test master_nameserver: ns.test +subzone: + origin: 'sub.zone' + ttl: 1 + refresh: 1 + retry: 1 + expire: 1 + minimum_ttl: 1 + email: admin@registry.test + master_nameserver: ns.test diff --git a/test/models/dns/zone_test.rb b/test/models/dns/zone_test.rb index c18f9592a..a6d14d3e9 100644 --- a/test/models/dns/zone_test.rb +++ b/test/models/dns/zone_test.rb @@ -124,6 +124,31 @@ class DNS::ZoneTest < ActiveSupport::TestCase assert zone.invalid? end + def test_determines_if_subzone + zone = valid_zone + zone.update(origin: 'pri.ee') + assert zone.subzone? + end + + def test_updates_whois_after_update + subzone = dns_zones(:subzone) + assert_nil Whois::Record.find_by(name: subzone.origin) + + subzone.update(expire: 42) + + whois_record = Whois::Record.find_by(name: subzone.origin) + assert whois_record.present? + end + + def test_deletes_whois_record_after_destroy + subzone = dns_zones(:subzone) + subzone.update(expire: 42) + assert Whois::Record.find_by(name: subzone.origin).present? + + subzone.destroy + assert_nil Whois::Record.find_by(name: subzone.origin) + end + private def valid_zone From 30be37f848913cc29fcfc2863a4214ec66bea898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 14 Aug 2020 11:02:33 +0300 Subject: [PATCH 738/757] Ensure correct fields are added to whois regarding to subzones --- test/models/dns/zone_test.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/models/dns/zone_test.rb b/test/models/dns/zone_test.rb index e991631b0..fab4c6355 100644 --- a/test/models/dns/zone_test.rb +++ b/test/models/dns/zone_test.rb @@ -140,6 +140,32 @@ class DNS::ZoneTest < ActiveSupport::TestCase assert whois_record.present? end + def test_has_setting_info_as_contacts_for_subzones + subzone = dns_zones(:one).dup + + subzone.origin = 'sub.zone' + subzone.save + + whois_record = Whois::Record.find_by(name: subzone.origin) + assert whois_record.present? + + assert_equal Setting.registry_whois_disclaimer, whois_record.json['disclaimer'] + assert_equal Setting.registry_email, whois_record.json['email'] + assert_equal Setting.registry_juridical_name, whois_record.json['registrar'] + assert_equal Setting.registry_url, whois_record.json['registrar_website'] + assert_equal Setting.registry_phone, whois_record.json['registrar_phone'] + + assert_equal Setting.registry_juridical_name, whois_record.json['registrant'] + assert_equal Setting.registry_reg_no, whois_record.json['registrant_reg_no'] + assert_equal Setting.registry_country_code, whois_record.json['registrant_ident_country_code'] + + contact = { name: Setting.registry_invoice_contact, email: Setting.registry_email, + disclosed_attributes: %w[name email] }.with_indifferent_access + + assert_equal contact, whois_record.json['admin_contacts'][0] + assert_equal contact, whois_record.json['tech_contacts'][0] + end + def test_deletes_whois_record_after_destroy subzone = dns_zones(:one).dup From 7a50d6ae9fe2f0e44fb4166403d4ae00816fa10e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 14 Aug 2020 11:48:22 +0300 Subject: [PATCH 739/757] Add master and additional nameservers to WHOIS for subzones --- app/models/concerns/zone/whois_queryable.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/zone/whois_queryable.rb b/app/models/concerns/zone/whois_queryable.rb index 970ce87d6..22b2836ec 100644 --- a/app/models/concerns/zone/whois_queryable.rb +++ b/app/models/concerns/zone/whois_queryable.rb @@ -36,7 +36,7 @@ module Concerns registered: created_at.try(:to_s, :iso8601), status: ['ok (paid and in zone)'], changed: updated_at.try(:to_s, :iso8601), email: Setting.registry_email, admin_contacts: [contact_vars], tech_contacts: [contact_vars], - nameservers: [master_nameserver] } + nameservers: nameserver_vars } end def registrar_vars @@ -54,6 +54,16 @@ module Concerns { name: Setting.registry_invoice_contact, email: Setting.registry_email, disclosed_attributes: %w[name email] } end + + def nameserver_vars + vars = [] + vars.push(master_nameserver) + return vars unless ns_records + + ns_records.split("\r\n").each { |ns| (vars << ns) if ns.match? Nameserver::HOSTNAME_REGEXP } + + vars + end end end end From 2ed7f467aa801c861cc24c5e590f09c874842f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 14 Aug 2020 12:29:43 +0300 Subject: [PATCH 740/757] Create job for regenerating Subzone WHOIS entries --- app/jobs/regenerate_subzone_whoises_job.rb | 11 +++++++++++ .../jobs/regeneate_subzone_whoises_job_test.rb | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 app/jobs/regenerate_subzone_whoises_job.rb create mode 100644 test/jobs/regeneate_subzone_whoises_job_test.rb diff --git a/app/jobs/regenerate_subzone_whoises_job.rb b/app/jobs/regenerate_subzone_whoises_job.rb new file mode 100644 index 000000000..280fa4088 --- /dev/null +++ b/app/jobs/regenerate_subzone_whoises_job.rb @@ -0,0 +1,11 @@ +class RegenerateSubzoneWhoisesJob < Que::Job + def run + subzones = DNS::Zone.all + + subzones.each do |zone| + next unless zone.subzone? + + UpdateWhoisRecordJob.enqueue zone.origin, 'zone' + end + end +end diff --git a/test/jobs/regeneate_subzone_whoises_job_test.rb b/test/jobs/regeneate_subzone_whoises_job_test.rb new file mode 100644 index 000000000..745c2392c --- /dev/null +++ b/test/jobs/regeneate_subzone_whoises_job_test.rb @@ -0,0 +1,18 @@ +require 'test_helper' + +class RegenerateSubzoneWhoisesJobTest < ActiveSupport::TestCase + def test_regenerates_whois_data_only_for_subzones + subzone = dns_zones(:one).dup + subzone.origin = 'subzone.test' + subzone.save + + Whois::Record.where(name: subzone.origin).destroy_all + Whois::Record.where(name: dns_zones(:one)).destroy_all + assert_nil Whois::Record.find_by(name: subzone.origin) + assert_nil Whois::Record.find_by(name: dns_zones(:one).origin) + + RegenerateSubzoneWhoisesJob.run + assert Whois::Record.find_by(name: subzone.origin) + assert_nil Whois::Record.find_by(name: dns_zones(:one).origin) + end +end From 4ed7edc47df43828455e54b72099d582baead821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 14 Aug 2020 16:34:42 +0300 Subject: [PATCH 741/757] Remove master nameserver from subzone WHOIS, fix whitespace anomaly while parsing nameservers --- app/models/concerns/zone/whois_queryable.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/zone/whois_queryable.rb b/app/models/concerns/zone/whois_queryable.rb index 22b2836ec..2c453dbef 100644 --- a/app/models/concerns/zone/whois_queryable.rb +++ b/app/models/concerns/zone/whois_queryable.rb @@ -57,10 +57,13 @@ module Concerns def nameserver_vars vars = [] - vars.push(master_nameserver) return vars unless ns_records - ns_records.split("\r\n").each { |ns| (vars << ns) if ns.match? Nameserver::HOSTNAME_REGEXP } + parsed_ns = ns_records.gsub("\r", '').gsub("\n", '') + parsed_ns.split("#{origin}. IN NS ").each do |ns| + ns.delete_suffix! '.' + vars << ns if ns.match? Nameserver::HOSTNAME_REGEXP + end vars end From 1c8f04c099c70d674c2cac6193f63af41b00daf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 14 Aug 2020 18:25:56 +0300 Subject: [PATCH 742/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bf7358d7..e8045349b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +14.08.2020 +* Added handling of second lvl zoness managed by the registry in whois records [#1661](https://github.com/internetee/registry/issues/1661) + 13.08.2020 * Removed keystore gem and replaced LHV JKS with PKCS12 [#1645](https://github.com/internetee/registry/issues/1645) From 1732d6551a9bd45df8bd2f6853c802c2f8e78d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 18 Aug 2020 11:28:52 +0300 Subject: [PATCH 743/757] Always return true/false for boolean Setting entries --- app/models/setting_entry.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index ce67ae441..a8d865c3a 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -5,6 +5,7 @@ class SettingEntry < ApplicationRecord validates :group, presence: true validate :validate_value_format validate :validate_code_is_not_using_reserved_name + before_update :replace_boolean_nil_with_false VALUE_FORMATS = { string: :string_format, @@ -17,7 +18,10 @@ class SettingEntry < ApplicationRecord def retrieve method = VALUE_FORMATS[format] - value.blank? ? nil : send(method) + return false if format == 'boolean' && value.blank? + return if value.blank? + + send(method) end def self.with_group(group_name) @@ -43,7 +47,13 @@ class SettingEntry < ApplicationRecord end end - # Validators + # Hooks + def replace_boolean_nil_with_false + return unless format == 'boolean' + + self.value = value == 'true' ? 'true' : 'false' + end + def validate_code_is_not_using_reserved_name disallowed = [] ActiveRecord::Base.instance_methods.sort.each { |m| disallowed << m.to_s } From 75181f5beab8326a2836b0ed4929c97fde905142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 18 Aug 2020 11:41:42 +0300 Subject: [PATCH 744/757] Test boolean setting returns false for nil value --- app/models/setting_entry.rb | 7 ++++--- test/models/setting_entry_test.rb | 3 +++ test/test_helper.rb | 6 ------ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/app/models/setting_entry.rb b/app/models/setting_entry.rb index a8d865c3a..966831881 100644 --- a/app/models/setting_entry.rb +++ b/app/models/setting_entry.rb @@ -18,7 +18,7 @@ class SettingEntry < ApplicationRecord def retrieve method = VALUE_FORMATS[format] - return false if format == 'boolean' && value.blank? + return false if self.format == 'boolean' && value.blank? return if value.blank? send(method) @@ -49,9 +49,10 @@ class SettingEntry < ApplicationRecord # Hooks def replace_boolean_nil_with_false - return unless format == 'boolean' + return unless self.format == 'boolean' + return if value == 'true' - self.value = value == 'true' ? 'true' : 'false' + self.value = 'false' end def validate_code_is_not_using_reserved_name diff --git a/test/models/setting_entry_test.rb b/test/models/setting_entry_test.rb index c7f6d500d..ff9791fc6 100644 --- a/test/models/setting_entry_test.rb +++ b/test/models/setting_entry_test.rb @@ -103,6 +103,9 @@ class SettingEntryTest < ActiveSupport::TestCase Setting.boolean_format = 'false' assert_equal false, Setting.boolean_format + + Setting.boolean_format = nil + assert_equal false, Setting.boolean_format end def test_parses_hash_format diff --git a/test/test_helper.rb b/test/test_helper.rb index aaa4452f3..7cd805684 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -44,7 +44,6 @@ class ActiveSupport::TestCase teardown do travel_back - Setting.address_processing = false end end @@ -58,14 +57,9 @@ class ApplicationIntegrationTest < ActionDispatch::IntegrationTest WebMock.reset! Capybara.reset_sessions! Capybara.use_default_driver - Setting.address_processing = false end end class EppTestCase < ActionDispatch::IntegrationTest include Assertions::EppAssertions - - teardown do - Setting.address_processing = false - end end From 8f06685605b77a64f860daef9bc219740162364c Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 18 Aug 2020 16:53:57 +0300 Subject: [PATCH 745/757] resolve https://github.com/internetee/registry/pull/1346#discussion_r341532341 --- app/views/invoice/pdf.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/invoice/pdf.haml b/app/views/invoice/pdf.haml index 3fae850dc..ffcf12106 100644 --- a/app/views/invoice/pdf.haml +++ b/app/views/invoice/pdf.haml @@ -195,7 +195,7 @@ %dt= t(:reg_no) %dd= @invoice.buyer_reg_no - %dt= t(:address) + %dt= Invoice.human_attribute_name :address %dd= @invoice.buyer_address %dt= t(:country) From 2bcabcbff2534a371c2504a565d07eaaeadba60d Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Tue, 18 Aug 2020 21:34:21 +0300 Subject: [PATCH 746/757] revert removing of conditional displayof variables on invoice --- app/views/invoice/pdf.haml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/views/invoice/pdf.haml b/app/views/invoice/pdf.haml index ffcf12106..9f10acdad 100644 --- a/app/views/invoice/pdf.haml +++ b/app/views/invoice/pdf.haml @@ -194,19 +194,24 @@ %dt= t(:reg_no) %dd= @invoice.buyer_reg_no - + + - if @invoice.buyer_address.present? %dt= Invoice.human_attribute_name :address %dd= @invoice.buyer_address - + + - if @invoice.buyer_country.present? %dt= t(:country) %dd= @invoice.buyer_country - + + - if @invoice.buyer_phone.present? %dt= t(:phone) %dd= @invoice.buyer_phone - + + - if @invoice.buyer_url.present? %dt= t(:url) %dd= @invoice.buyer_url + - if @invoice.buyer_email.present? %dt= t(:email) %dd= @invoice.buyer_email From 56c7eb5f261db0f6257eeb1c5d4c1d2e7f2082c6 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 26 Aug 2020 13:31:21 +0500 Subject: [PATCH 747/757] Remove some keys from legacy copy/show Setting with key 'days_to_keep_business_registry_cache' is not copied/shown now. Setting with key 'default_language' is copied, but shown only once now. --- app/controllers/admin/settings_controller.rb | 1 + db/data/20200812093540_copy_legacy_settings_to_new_model.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index fa538ad62..8a5c275c5 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -7,6 +7,7 @@ module Admin @validation_settings = SettingEntry.with_group('domain_validation') @expiration_settings = SettingEntry.with_group('domain_expiration') @other_settings = SettingEntry.with_group('other') + .where.not(code: 'default_language') @billing_settings = SettingEntry.with_group('billing') @contacts_settings = SettingEntry.with_group('contacts') end diff --git a/db/data/20200812093540_copy_legacy_settings_to_new_model.rb b/db/data/20200812093540_copy_legacy_settings_to_new_model.rb index 7d45867ec..bb762aa21 100644 --- a/db/data/20200812093540_copy_legacy_settings_to_new_model.rb +++ b/db/data/20200812093540_copy_legacy_settings_to_new_model.rb @@ -52,6 +52,7 @@ class CopyLegacySettingsToNewModel < ActiveRecord::Migration[6.0] old_settings = ActiveRecord::Base.connection.execute(sql) old_settings.each do |origin| + next if origin['var'] == 'days_to_keep_business_registry_cache' entry = SettingEntry.find_or_initialize_by(code: origin['var']) entry[:format] = 'string' entry[:format] = 'boolean' if boolean_vars.include? entry.code From 3e191ae1bd4a010e83a86fd5a6b3c1cd9363244d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 26 Aug 2020 11:39:56 +0300 Subject: [PATCH 748/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8045349b..642189b78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +26.08.2020 +* Fixed website url display issue in PDF invoices [#1188](https://github.com/internetee/registry/issues/1188) + 14.08.2020 * Added handling of second lvl zoness managed by the registry in whois records [#1661](https://github.com/internetee/registry/issues/1661) From dc35d9fab3c14d09850b2196f0d95d6d87e36117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 26 Aug 2020 12:40:24 +0300 Subject: [PATCH 749/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 642189b78..bf4c695d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 26.08.2020 * Fixed website url display issue in PDF invoices [#1188](https://github.com/internetee/registry/issues/1188) +* Added error logging for missing cert_path [#1420](https://github.com/internetee/registry/pull/1420) 14.08.2020 * Added handling of second lvl zoness managed by the registry in whois records [#1661](https://github.com/internetee/registry/issues/1661) From 2e15bdd647c778f101a23b77a5ba2c2a3aafee33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 26 Aug 2020 12:57:53 +0300 Subject: [PATCH 750/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf4c695d3..0e6ee7a25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ 26.08.2020 * Fixed website url display issue in PDF invoices [#1188](https://github.com/internetee/registry/issues/1188) * Added error logging for missing cert_path [#1420](https://github.com/internetee/registry/pull/1420) +* Refactored settings store mechanism [#1629](https://github.com/internetee/registry/issues/1629) 14.08.2020 * Added handling of second lvl zoness managed by the registry in whois records [#1661](https://github.com/internetee/registry/issues/1661) From a20c4020efc0145a6bcd0a87f28440c6e5ff89b2 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 26 Aug 2020 15:00:09 +0500 Subject: [PATCH 751/757] Set dnssec keys to empty array when generating zone whois --- app/models/concerns/zone/whois_queryable.rb | 4 +++- ...es_job_test.rb => regenerate_subzone_whoises_job_test.rb} | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) rename test/jobs/{regeneate_subzone_whoises_job_test.rb => regenerate_subzone_whoises_job_test.rb} (82%) diff --git a/app/models/concerns/zone/whois_queryable.rb b/app/models/concerns/zone/whois_queryable.rb index 2c453dbef..c79700582 100644 --- a/app/models/concerns/zone/whois_queryable.rb +++ b/app/models/concerns/zone/whois_queryable.rb @@ -31,12 +31,14 @@ module Concerns data end + # Take note - since this concern only used to zone whois queries, dnssec keys are set to + # empty array def domain_vars { disclaimer: Setting.registry_whois_disclaimer, name: origin, registered: created_at.try(:to_s, :iso8601), status: ['ok (paid and in zone)'], changed: updated_at.try(:to_s, :iso8601), email: Setting.registry_email, admin_contacts: [contact_vars], tech_contacts: [contact_vars], - nameservers: nameserver_vars } + nameservers: nameserver_vars, dnssec_keys: [], dnssec_changed: nil } end def registrar_vars diff --git a/test/jobs/regeneate_subzone_whoises_job_test.rb b/test/jobs/regenerate_subzone_whoises_job_test.rb similarity index 82% rename from test/jobs/regeneate_subzone_whoises_job_test.rb rename to test/jobs/regenerate_subzone_whoises_job_test.rb index 745c2392c..6c29e4be7 100644 --- a/test/jobs/regeneate_subzone_whoises_job_test.rb +++ b/test/jobs/regenerate_subzone_whoises_job_test.rb @@ -12,7 +12,10 @@ class RegenerateSubzoneWhoisesJobTest < ActiveSupport::TestCase assert_nil Whois::Record.find_by(name: dns_zones(:one).origin) RegenerateSubzoneWhoisesJob.run - assert Whois::Record.find_by(name: subzone.origin) + record = Whois::Record.find_by(name: subzone.origin) + assert record + assert record.json['dnssec_keys'].is_a?(Array) + assert_nil Whois::Record.find_by(name: dns_zones(:one).origin) end end From 76e4e32dc9040040c31e602c089ce9c49fbfc855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 26 Aug 2020 15:01:22 +0300 Subject: [PATCH 752/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e6ee7a25..bdd335514 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * Fixed website url display issue in PDF invoices [#1188](https://github.com/internetee/registry/issues/1188) * Added error logging for missing cert_path [#1420](https://github.com/internetee/registry/pull/1420) * Refactored settings store mechanism [#1629](https://github.com/internetee/registry/issues/1629) +* Registrant API now returns users' business contacts [#1642](https://github.com/internetee/registry/issues/1642) 14.08.2020 * Added handling of second lvl zoness managed by the registry in whois records [#1661](https://github.com/internetee/registry/issues/1661) From a0029d0a8058d1802074c31cba5fbe1cb86fc1e7 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 27 Aug 2020 13:04:43 +0500 Subject: [PATCH 753/757] Fix error if domain name was nil. Used for some old history entries Closes #1663 --- app/models/domain.rb | 4 ++-- test/models/domain_test.rb | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index a97a2bc8a..c60d11f3f 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -260,8 +260,8 @@ class Domain < ApplicationRecord end def name=(value) - value.strip! - value.downcase! + value&.strip! + value&.downcase! self[:name] = SimpleIDN.to_unicode(value) self[:name_puny] = SimpleIDN.to_ascii(value) self[:name_dirty] = value diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 28083f9cc..ec6f60c52 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -270,6 +270,13 @@ class DomainTest < ActiveSupport::TestCase assert_equal 'shop.test', domain.domain_name.to_s end + def test_nil_name_doesnt_throw_error + domain = Domain.new(name: 'shop.test') + assert_nothing_raised do + domain.name = nil + end + end + def test_returns_registrant_user_domains_by_registrant registrant = contacts(:john).becomes(Registrant) assert_equal registrant, @domain.registrant From 88e6ccf3182b030b05c1ff1f168814c5d9e41fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 27 Aug 2020 15:32:47 +0300 Subject: [PATCH 754/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bdd335514..99c8cba28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +27.08.2020 +* Fixed internal error in domain history [#1663](https://github.com/internetee/registry/issues/1663) + 26.08.2020 * Fixed website url display issue in PDF invoices [#1188](https://github.com/internetee/registry/issues/1188) * Added error logging for missing cert_path [#1420](https://github.com/internetee/registry/pull/1420) From 915ebbff089664c1d9ffbd9c5481c2a8ae64c8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 27 Aug 2020 15:42:12 +0300 Subject: [PATCH 755/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99c8cba28..7e4349ef4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 27.08.2020 * Fixed internal error in domain history [#1663](https://github.com/internetee/registry/issues/1663) +* Second lvl zone records return now empty string for dnskey values [#1665](https://github.com/internetee/registry/issues/1665) 26.08.2020 * Fixed website url display issue in PDF invoices [#1188](https://github.com/internetee/registry/issues/1188) From b2f73bb5ab1db5a45bbe6aa5a5975842620559c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 1 Sep 2020 16:21:27 +0300 Subject: [PATCH 756/757] Remove unused setting entries --- ...0200901131427_remove_unused_setting_entries.rb | 15 +++++++++++++++ db/data_schema.rb | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 db/data/20200901131427_remove_unused_setting_entries.rb diff --git a/db/data/20200901131427_remove_unused_setting_entries.rb b/db/data/20200901131427_remove_unused_setting_entries.rb new file mode 100644 index 000000000..d2bb11317 --- /dev/null +++ b/db/data/20200901131427_remove_unused_setting_entries.rb @@ -0,0 +1,15 @@ +class RemoveUnusedSettingEntries < ActiveRecord::Migration[6.0] + def up + unused_fields = %w[eis_iban eis_bank eis_swift eis_invoice_contact ds_data_with_key_allowed] + unused_fields.each do |stg| + setting = SettingEntry.find_by(code: stg) + next unless setting + + setting.destroy + end + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end diff --git a/db/data_schema.rb b/db/data_schema.rb index 7b35d4e7b..2968b1184 100644 --- a/db/data_schema.rb +++ b/db/data_schema.rb @@ -1,2 +1,2 @@ # encoding: UTF-8 -DataMigrate::Data.define(version: 20200702104334) +DataMigrate::Data.define(version: 20200901131427) From fde323dd0e6bca3b496f1717c8e22116cad9061e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 1 Sep 2020 17:21:02 +0300 Subject: [PATCH 757/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e4349ef4..b2e5749c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +01.09.2020 +* Removed some unused settings from admin [#1668](https://github.com/internetee/registry/issues/1668) + 27.08.2020 * Fixed internal error in domain history [#1663](https://github.com/internetee/registry/issues/1663) * Second lvl zone records return now empty string for dnskey values [#1665](https://github.com/internetee/registry/issues/1665)

<%= f.label :valid_to_from, for: nil %> - <%= f.search_field :valid_to_gteq, value: params[:q][:valid_to_gteq], + <%= f.search_field :valid_to_gteq, value: search_params[:valid_to_gteq], class: 'form-control js-datepicker', placeholder: t(:valid_to_from) %>
@@ -53,7 +53,7 @@
<%= f.label :valid_to_until, for: nil %> - <%= f.search_field :valid_to_lteq, value: params[:q][:valid_to_lteq], + <%= f.search_field :valid_to_lteq, value: search_params[:valid_to_lteq], class: 'form-control js-datepicker', placeholder: t(:valid_to_until) %>
diff --git a/bin/rails b/bin/rails index 5191e6927..073966023 100755 --- a/bin/rails +++ b/bin/rails @@ -1,4 +1,4 @@ #!/usr/bin/env ruby -APP_PATH = File.expand_path('../../config/application', __FILE__) +APP_PATH = File.expand_path('../config/application', __dir__) require_relative '../config/boot' require 'rails/commands' diff --git a/bin/setup b/bin/setup index fdf4596e7..b3067cf22 100755 --- a/bin/setup +++ b/bin/setup @@ -3,7 +3,7 @@ require 'pathname' require 'fileutils' # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) def system!(*args) @@ -22,7 +22,7 @@ Dir.chdir APP_ROOT do end puts "\n== Preparing database ==" - system! 'bin/rake db:setup' + system! 'bin/rails db:setup' puts "\n== Removing old logs and tempfiles ==" system! 'bin/rake log:clear tmp:clear' diff --git a/bin/update b/bin/update new file mode 100644 index 000000000..a8e4462f2 --- /dev/null +++ b/bin/update @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +require 'pathname' +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a way to update your development environment automatically. + # Add necessary update steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + puts "\n== Updating database ==" + system! 'bin/rails db:migrate' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/config/application.rb b/config/application.rb index 3e36f47c8..c70ab2111 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,16 +1,8 @@ -require File.expand_path('../boot', __FILE__) +require_relative 'boot' -# Pick the frameworks you want: -require 'active_model/railtie' -require 'active_record/railtie' -require 'action_controller/railtie' -require 'action_mailer/railtie' -require 'action_view/railtie' -require 'sprockets/railtie' -require 'csv' -require 'English' require 'rails/all' -# require "rails/test_unit/railtie" +require 'English' +require 'csv' # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. @@ -44,21 +36,6 @@ module DomainNameRegistry config.eager_load_paths << config.root.join('lib', 'validators') config.watchable_dirs['lib'] = %i[rb] - # Add the fonts path - config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') - - # Precompile additional assets - config.assets.precompile += %w(*.svg *.eot *.woff *.ttf) - config.assets.precompile += %w(admin-manifest.css admin-manifest.js) - config.assets.precompile += %w(registrar-manifest.css registrar-manifest.js) - config.assets.precompile += %w(registrant-manifest.css registrant-manifest.js) - - # Active Record used to suppresses errors raised within - # `after_rollback`/`after_commit` callbacks and only printed them to the logs. - # In the next version, these errors will no longer be suppressed. - # Instead, the errors will propagate normally just like in other Active Record callbacks. - config.active_record.raise_in_transactional_callbacks = true - config.active_record.schema_format = :sql config.generators do |g| @@ -94,5 +71,13 @@ module DomainNameRegistry config.action_view.default_form_builder = 'DefaultFormBuilder' config.secret_key_base = Figaro.env.secret_key_base + + # Using `Rails.application.config.active_record.belongs_to_required_by_default` in + # `new_framework_defaults.rb` has no effect in Rails 5.0.x. + # https://github.com/rails/rails/issues/23589 + # https://stackoverflow.com/questions/38850712/rails-5-belongs-to-required-by-default-doesnt-work + # Not supported by `paper_trail` gem < 5.0 + # https://github.com/paper-trail-gem/paper_trail/issues/682 + config.active_record.belongs_to_required_by_default = false end -end \ No newline at end of file +end diff --git a/config/boot.rb b/config/boot.rb index 5e5f0c1fa..30f5120df 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,4 +1,3 @@ -# Set up gems listed in the Gemfile. -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) -require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) +require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/config/cable.yml b/config/cable.yml new file mode 100644 index 000000000..0bbde6f74 --- /dev/null +++ b/config/cable.yml @@ -0,0 +1,9 @@ +development: + adapter: async + +test: + adapter: async + +production: + adapter: redis + url: redis://localhost:6379/1 diff --git a/config/environment.rb b/config/environment.rb index ee8d90dc6..426333bb4 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require File.expand_path('../application', __FILE__) +require_relative 'application' # Initialize the Rails application. Rails.application.initialize! diff --git a/config/environments/production.rb b/config/environments/production.rb index 11a620e35..c2262235d 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -19,8 +19,7 @@ Rails.application.configure do # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid. # config.action_dispatch.rack_cache = true - # Disable Rails's static asset server (Apache or nginx will already do this). - config.serve_static_files = false + config.public_file_server.enabled = false # Compress JavaScripts and CSS. config.assets.js_compressor = Uglifier.new(harmony: true) @@ -29,38 +28,37 @@ Rails.application.configure do # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false - # Generate digests for assets URLs. - config.assets.digest = true + # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb - # Version of your assets, change this if you want to expire all your assets. - config.assets.version = '1.0' + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache - # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Mount Action Cable outside main process or domain + # config.action_cable.mount_path = nil + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true - # Set to :debug to see everything in the log. - config.log_level = :info + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. + config.log_level = :debug # Prepend all log lines with the following tags. - config.log_tags = [:subdomain, :uuid, :remote_ip] - - # Use a different logger for distributed setups. - require 'syslog/logger' - config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new(ENV['app_name'] || 'registry')) + config.log_tags = [:request_id, :subdomain, :remote_ip] # Use a different cache store in production. # config.cache_store = :mem_cache_store - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = "http://assets.example.com" - - # Precompile additional assets. - # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. - # config.assets.precompile += %w( search.js ) + # Use a real queuing backend for Active Job (and separate queues per environment) + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "domain_name_registry_#{Rails.env}" + config.action_mailer.perform_caching = false # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. @@ -68,22 +66,29 @@ Rails.application.configure do # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = true + config.i18n.fallbacks = [I18n.default_locale] # Send deprecation notices to registered listeners. - config.active_support.deprecation = :log - - # Disable automatic flushing of the log to improve performance. - # config.autoflush_log = false + config.active_support.deprecation = :notify # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new + # Use a different logger for distributed setups. + require 'syslog/logger' + config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new(ENV['app_name'] || 'registry')) + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new(STDOUT) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false end -# In off mode, queueing a job will simply insert it into the database - -# the current process will make no effort to run it. +# In off mode, queueing a job will simply insert it into the database - +# the current process will make no effort to run it. # You should use this if you want to use a dedicated process to work tasks -Que.mode = :off +Que.mode = :off diff --git a/config/environments/test.rb b/config/environments/test.rb index 119f6d815..73ae40f08 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,24 +1,36 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! config.cache_classes = true - config.eager_load = false - config.serve_static_files = true - config.static_cache_control = 'public, max-age=3600' + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false config.consider_all_requests_local = true config.action_controller.perform_caching = false + # Raise exceptions instead of rendering exception templates. config.action_dispatch.show_exceptions = false + # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false + config.action_mailer.perform_caching = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test - config.active_support.test_order = :random + # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr - config.logger = ActiveSupport::Logger.new(nil) + # Raises error for missing translations config.action_view.raise_on_missing_translations = true # If set to :null_store, Setting.x returns nil after first spec runs (database is emptied) diff --git a/config/initializers/application_controller_renderer.rb b/config/initializers/application_controller_renderer.rb new file mode 100644 index 000000000..89d2efab2 --- /dev/null +++ b/config/initializers/application_controller_renderer.rb @@ -0,0 +1,8 @@ +# Be sure to restart your server when you modify this file. + +# ActiveSupport::Reloader.to_prepare do +# ApplicationController.renderer.defaults.merge!( +# http_host: 'example.org', +# https: false +# ) +# end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index d1a94d7c6..d3b8408d5 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -1 +1,17 @@ -Rails.application.config.assets.precompile += %w( login.css registrar-manifest.css shared/pdf.css ) +# Be sure to restart your server when you modify this file. + +Rails.application.configure do + # Version of your assets, change this if you want to expire all your assets. + config.assets.version = '1.0' + + # Add additional assets to the asset load path + config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') + + # Precompile additional assets. + # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. + config.assets.precompile += %w[login.css registrar-manifest.css shared/pdf.css] + config.assets.precompile += %w(*.svg *.eot *.woff *.ttf) + config.assets.precompile += %w(admin-manifest.css admin-manifest.js) + config.assets.precompile += %w(registrar-manifest.css registrar-manifest.js) + config.assets.precompile += %w(registrant-manifest.css registrant-manifest.js) +end diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb index 7f70458de..5a6a32d37 100644 --- a/config/initializers/cookies_serializer.rb +++ b/config/initializers/cookies_serializer.rb @@ -1,3 +1,5 @@ # Be sure to restart your server when you modify this file. +# Specify a serializer for the signed and encrypted cookie jars. +# Valid options are :json, :marshal, and :hybrid. Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/config/initializers/new_framework_defaults.rb b/config/initializers/new_framework_defaults.rb new file mode 100644 index 000000000..99b2db3b0 --- /dev/null +++ b/config/initializers/new_framework_defaults.rb @@ -0,0 +1,25 @@ +# Be sure to restart your server when you modify this file. +# +# This file contains migration options to ease your Rails 5.0 upgrade. +# +# Once upgraded flip defaults one by one to migrate to the new default. +# +# Read the Guide for Upgrading Ruby on Rails for more info on each option. + +Rails.application.config.action_controller.raise_on_unfiltered_parameters = true + +# Enable per-form CSRF tokens. Previous versions had false. +Rails.application.config.action_controller.per_form_csrf_tokens = true + +# Enable origin-checking CSRF mitigation. Previous versions had false. +Rails.application.config.action_controller.forgery_protection_origin_check = true + +# Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`. +# Previous versions had false. +ActiveSupport.to_time_preserves_timezone = true + +# Do not halt callback chains when a callback returns false. Previous versions had true. +ActiveSupport.halt_callback_chains_on_return_false = false + +# Configure SSL options to enable HSTS with subdomains. Previous versions had false. +Rails.application.config.ssl_options = { hsts: { subdomains: true } } diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb index 33725e95f..bbfc3961b 100644 --- a/config/initializers/wrap_parameters.rb +++ b/config/initializers/wrap_parameters.rb @@ -5,10 +5,10 @@ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. ActiveSupport.on_load(:action_controller) do - wrap_parameters format: [:json] if respond_to?(:wrap_parameters) + wrap_parameters format: [:json] end # To enable root element in JSON for ActiveRecord objects. # ActiveSupport.on_load(:active_record) do -# self.include_root_in_json = true +# self.include_root_in_json = true # end diff --git a/config/puma.rb b/config/puma.rb index 1e19380dc..c7f311f81 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,13 +1,13 @@ # Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers: a minimum and maximum. +# The `threads` method setting takes two numbers a minimum and maximum. # Any libraries that use thread pools should be configured to match # the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum; this matches the default thread size of Active Record. +# and maximum, this matches the default thread size of Active Record. # -threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } +threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i threads threads_count, threads_count -# Specifies the `port` that Puma will listen on to receive requests; default is 3000. +# Specifies the `port` that Puma will listen on to receive requests, default is 3000. # port ENV.fetch("PORT") { 3000 } @@ -32,25 +32,16 @@ environment ENV.fetch("RAILS_ENV") { "development" } # # preload_app! -# If you are preloading your application and using Active Record, it's -# recommended that you close any connections to the database before workers -# are forked to prevent connection leakage. -# -# before_fork do -# ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord) -# end - # The code in the `on_worker_boot` will be called if you are using # clustered mode by specifying a number of `workers`. After each worker -# process is booted, this block will be run. If you are using the `preload_app!` -# option, you will want to use this block to reconnect to any threads -# or connections that may have been created at application boot, as Ruby +# process is booted this block will be run, if you are using `preload_app!` +# option you will want to use this block to reconnect to any threads +# or connections that may have been created at application boot, Ruby # cannot share connections between processes. # # on_worker_boot do # ActiveRecord::Base.establish_connection if defined?(ActiveRecord) # end -# # Allow puma to be restarted by `rails restart` command. plugin :tmp_restart diff --git a/config/secrets.yml b/config/secrets.yml new file mode 100644 index 000000000..5a3114b22 --- /dev/null +++ b/config/secrets.yml @@ -0,0 +1,22 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key is used for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! + +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +# You can use `rails secret` to generate a secure secret key. + +# Make sure the secrets in this file are kept private +# if you're sharing your code publicly. + +development: + secret_key_base: d876b4cf172fe17628b4486b302e1d805109f4dfbf25aa8f2d89e6cf821dfdc94f4c753e4fdbaa0b6647ba687058266661632b2cd3975c41fb21dbc588b38c92 + +test: + secret_key_base: 69ecc590b3de231130e3fb390df48a4eb9259722754ef5df6a9e9ab78d69149d8c16ec2d79791c5ba7a89ad7c5afaa8cec1aa794e9a6f986d3c7319a08d6bce2 + +# Do not keep production secrets in the repository, +# instead read values from the environment. +production: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> diff --git a/db/structure.sql b/db/structure.sql index de94f1eae..32ec2eb15 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -402,6 +402,18 @@ CREATE SEQUENCE public.actions_id_seq ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; +-- +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.ar_internal_metadata ( + key character varying NOT NULL, + value character varying, + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone NOT NULL +); + + -- -- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -2695,6 +2707,14 @@ ALTER TABLE ONLY public.actions ADD CONSTRAINT actions_pkey PRIMARY KEY (id); +-- +-- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.ar_internal_metadata + ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key); + + -- -- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3942,801 +3962,405 @@ ALTER TABLE ONLY public.users SET search_path TO "$user",public; -INSERT INTO schema_migrations (version) VALUES ('20140616073945'); +INSERT INTO "schema_migrations" (version) VALUES +('20140616073945'), +('20140620130107'), +('20140627082711'), +('20140701130945'), +('20140702144833'), +('20140702145448'), +('20140724084927'), +('20140730082358'), +('20140730082532'), +('20140730104916'), +('20140730141443'), +('20140731073300'), +('20140731081816'), +('20140801140249'), +('20140804095654'), +('20140808132327'), +('20140813102245'), +('20140813135408'), +('20140815082619'), +('20140815110028'), +('20140815114000'), +('20140819095802'), +('20140819103517'), +('20140822122938'), +('20140826082057'), +('20140826103454'), +('20140827140759'), +('20140828072329'), +('20140828074404'), +('20140828080320'), +('20140828133057'), +('20140902121843'), +('20140911101310'), +('20140911101604'), +('20140925073340'), +('20140925073734'), +('20140925073831'), +('20140925084916'), +('20140925085340'), +('20140925101927'), +('20140926081324'), +('20140926082627'), +('20140926121409'), +('20140929095329'), +('20140930093039'), +('20141001085322'), +('20141006124904'), +('20141006130306'), +('20141008134959'), +('20141009100818'), +('20141009101337'), +('20141010085152'), +('20141010130412'), +('20141014073435'), +('20141015135255'), +('20141015135742'), +('20141105150721'), +('20141111105931'), +('20141114130737'), +('20141120110330'), +('20141120140837'), +('20141121093125'), +('20141124105221'), +('20141125111414'), +('20141126140434'), +('20141127091027'), +('20141202114457'), +('20141203090115'), +('20141210085432'), +('20141211095604'), +('20141215085117'), +('20141216075056'), +('20141216133831'), +('20141218154829'), +('20141229115619'), +('20150105134026'), +('20150109081914'), +('20150110000000'), +('20150110113257'), +('20150122091556'), +('20150122091557'), +('20150128134352'), +('20150129093938'), +('20150129144652'), +('20150130085458'), +('20150130155904'), +('20150130180452'), +('20150130191056'), +('20150200000000'), +('20150202084444'), +('20150202140346'), +('20150203135303'), +('20150212125339'), +('20150213104014'), +('20150217133755'), +('20150217133937'), +('20150223104842'), +('20150226121252'), +('20150226144723'), +('20150227092508'), +('20150227113121'), +('20150302161712'), +('20150303130729'), +('20150303151224'), +('20150305092921'), +('20150318084300'), +('20150318085110'), +('20150318114921'), +('20150319125655'), +('20150320132023'), +('20150330083700'), +('20150402114712'), +('20150407145943'), +('20150408081917'), +('20150410124724'), +('20150410132037'), +('20150413080832'), +('20150413102310'), +('20150413115829'), +('20150413140933'), +('20150414092249'), +('20150414124630'), +('20150414151357'), +('20150415075408'), +('20150416080828'), +('20150416091357'), +('20150416092026'), +('20150416094704'), +('20150417082723'), +('20150421134820'), +('20150422092514'), +('20150422132631'), +('20150422134243'), +('20150423083308'), +('20150427073517'), +('20150428075052'), +('20150429135339'), +('20150430121807'), +('20150504104922'), +('20150504110926'), +('20150505111437'), +('20150511120755'), +('20150512160938'), +('20150513080013'), +('20150514132606'), +('20150515103222'), +('20150518084324'), +('20150519094929'), +('20150519095416'), +('20150519102521'), +('20150519115050'), +('20150519140853'), +('20150519144118'), +('20150520163237'), +('20150520164507'), +('20150521120145'), +('20150522164020'), +('20150525075550'), +('20150601083516'), +('20150601083800'), +('20150603141549'), +('20150603211318'), +('20150603212659'), +('20150609093515'), +('20150609103333'), +('20150610111019'), +('20150610112238'), +('20150610144547'), +('20150611124920'), +('20150612123111'), +('20150612125720'), +('20150701074344'), +('20150703084206'), +('20150703084632'), +('20150706091724'), +('20150707103241'), +('20150707103801'), +('20150707104937'), +('20150707154543'), +('20150709092549'), +('20150713113436'), +('20150722071128'), +('20150803080914'), +('20150810114746'), +('20150810114747'), +('20150825125118'), +('20150827151906'), +('20150903105659'), +('20150910113839'), +('20150915094707'), +('20150921110152'), +('20150921111842'), +('20151028183132'), +('20151029152638'), +('20151112160452'), +('20151117081204'), +('20151120090455'), +('20151124200353'), +('20151125155601'), +('20151127091716'), +('20151130175654'), +('20151202123506'), +('20151209122816'), +('20160106101725'), +('20160108135436'), +('20160113143447'), +('20160118092453'), +('20160118092454'), +('20160218102355'), +('20160225113801'), +('20160225113812'), +('20160226132045'), +('20160226132056'), +('20160304125933'), +('20160311085956'), +('20160311085957'), +('20160405131315'), +('20160411140719'), +('20160414110443'), +('20160421074023'), +('20160429114732'), +('20160527110738'), +('20160629114503'), +('20161004101419'), +('20161227193500'), +('20170221115548'), +('20170419120048'), +('20170420125200'), +('20170422130054'), +('20170422142116'), +('20170422162824'), +('20170423151046'), +('20170423210622'), +('20170423214500'), +('20170423222302'), +('20170423225333'), +('20170424115801'), +('20170506144743'), +('20170506155009'), +('20170506162952'), +('20170506205356'), +('20170506205946'), +('20170506212014'), +('20170509215614'), +('20170604182521'), +('20170606133501'), +('20170606150352'), +('20170606202859'), +('20171009080822'), +('20171009082321'), +('20171025113808'), +('20171025153841'), +('20171121233843'), +('20171123035941'), +('20180112080312'), +('20180112084221'), +('20180112084442'), +('20180120172042'), +('20180120172649'), +('20180120172657'), +('20180120182712'), +('20180120183441'), +('20180121165304'), +('20180122105335'), +('20180123154407'), +('20180123165604'), +('20180123170112'), +('20180125092422'), +('20180126104536'), +('20180126104903'), +('20180129143538'), +('20180129232054'), +('20180129233223'), +('20180206213435'), +('20180206234620'), +('20180207071528'), +('20180207072139'), +('20180211011450'), +('20180211011948'), +('20180212123810'), +('20180212152810'), +('20180212154731'), +('20180213183818'), +('20180214200224'), +('20180214213743'), +('20180218004148'), +('20180228055259'), +('20180228064342'), +('20180228070102'), +('20180228070431'), +('20180228074442'), +('20180306180401'), +('20180306181538'), +('20180306181554'), +('20180306181911'), +('20180306182456'), +('20180306182758'), +('20180306182941'), +('20180306183540'), +('20180306183549'), +('20180308123240'), +('20180309053424'), +('20180309053921'), +('20180309054510'), +('20180310142630'), +('20180313090437'), +('20180313124751'), +('20180314122722'), +('20180327151906'), +('20180331200125'), +('20180422154642'), +('20180612042234'), +('20180612042625'), +('20180612042953'), +('20180613030330'), +('20180613045614'), +('20180713154915'), +('20180808064402'), +('20180816123540'), +('20180823161237'), +('20180823163548'), +('20180823174331'), +('20180823212823'), +('20180824092855'), +('20180824102834'), +('20180824215326'), +('20180825193437'), +('20180825232819'), +('20180826162821'), +('20181001090536'), +('20181002090319'), +('20181017092829'), +('20181017153658'), +('20181017153812'), +('20181017153935'), +('20181017154038'), +('20181017154143'), +('20181017205123'), +('20181022100114'), +('20181108154921'), +('20181129150515'), +('20181212105100'), +('20181212145456'), +('20181212145914'), +('20181213113115'), +('20181217144701'), +('20181217144845'), +('20181220094738'), +('20181220095053'), +('20181223153407'), +('20181226211337'), +('20181227155537'), +('20181227172042'), +('20181230231015'), +('20190102114702'), +('20190102115333'), +('20190102144032'), +('20190209150026'), +('20190302091059'), +('20190302111152'), +('20190311111718'), +('20190312211614'), +('20190315172802'), +('20190319133036'), +('20190322152123'), +('20190322152529'), +('20190328151516'), +('20190328151838'), +('20190415120246'), +('20190426174225'), +('20190506100655'), +('20190510090240'), +('20190510102549'), +('20190515113153'), +('20190516161439'), +('20190520093231'), +('20190617120112'), +('20190617121716'), +('20190617121949'), +('20190617122505'), +('20190620084334'), +('20190811184334'), +('20190811195814'), +('20190811202042'), +('20190811202347'), +('20190811202711'), +('20190811205406'), +('20190917114907'), +('20191004095229'), +('20191004103144'), +('20191004105643'), +('20191004105732'), +('20191004110234'), +('20191004154844'), +('20191005162437'), +('20191007123000'), +('20191008024334'), +('20191024153351'), +('20191024160038'); -INSERT INTO schema_migrations (version) VALUES ('20140620130107'); - -INSERT INTO schema_migrations (version) VALUES ('20140627082711'); - -INSERT INTO schema_migrations (version) VALUES ('20140701130945'); - -INSERT INTO schema_migrations (version) VALUES ('20140702144833'); - -INSERT INTO schema_migrations (version) VALUES ('20140702145448'); - -INSERT INTO schema_migrations (version) VALUES ('20140724084927'); - -INSERT INTO schema_migrations (version) VALUES ('20140730082358'); - -INSERT INTO schema_migrations (version) VALUES ('20140730082532'); - -INSERT INTO schema_migrations (version) VALUES ('20140730104916'); - -INSERT INTO schema_migrations (version) VALUES ('20140730141443'); - -INSERT INTO schema_migrations (version) VALUES ('20140731073300'); - -INSERT INTO schema_migrations (version) VALUES ('20140731081816'); - -INSERT INTO schema_migrations (version) VALUES ('20140801140249'); - -INSERT INTO schema_migrations (version) VALUES ('20140804095654'); - -INSERT INTO schema_migrations (version) VALUES ('20140808132327'); - -INSERT INTO schema_migrations (version) VALUES ('20140813102245'); - -INSERT INTO schema_migrations (version) VALUES ('20140813135408'); - -INSERT INTO schema_migrations (version) VALUES ('20140815082619'); - -INSERT INTO schema_migrations (version) VALUES ('20140815110028'); - -INSERT INTO schema_migrations (version) VALUES ('20140815114000'); - -INSERT INTO schema_migrations (version) VALUES ('20140819095802'); - -INSERT INTO schema_migrations (version) VALUES ('20140819103517'); - -INSERT INTO schema_migrations (version) VALUES ('20140822122938'); - -INSERT INTO schema_migrations (version) VALUES ('20140826082057'); - -INSERT INTO schema_migrations (version) VALUES ('20140826103454'); - -INSERT INTO schema_migrations (version) VALUES ('20140827140759'); - -INSERT INTO schema_migrations (version) VALUES ('20140828072329'); - -INSERT INTO schema_migrations (version) VALUES ('20140828074404'); - -INSERT INTO schema_migrations (version) VALUES ('20140828080320'); - -INSERT INTO schema_migrations (version) VALUES ('20140828133057'); - -INSERT INTO schema_migrations (version) VALUES ('20140902121843'); - -INSERT INTO schema_migrations (version) VALUES ('20140911101310'); - -INSERT INTO schema_migrations (version) VALUES ('20140911101604'); - -INSERT INTO schema_migrations (version) VALUES ('20140925073340'); - -INSERT INTO schema_migrations (version) VALUES ('20140925073734'); - -INSERT INTO schema_migrations (version) VALUES ('20140925073831'); - -INSERT INTO schema_migrations (version) VALUES ('20140925084916'); - -INSERT INTO schema_migrations (version) VALUES ('20140925085340'); - -INSERT INTO schema_migrations (version) VALUES ('20140925101927'); - -INSERT INTO schema_migrations (version) VALUES ('20140926081324'); - -INSERT INTO schema_migrations (version) VALUES ('20140926082627'); - -INSERT INTO schema_migrations (version) VALUES ('20140926121409'); - -INSERT INTO schema_migrations (version) VALUES ('20140929095329'); - -INSERT INTO schema_migrations (version) VALUES ('20140930093039'); - -INSERT INTO schema_migrations (version) VALUES ('20141001085322'); - -INSERT INTO schema_migrations (version) VALUES ('20141006124904'); - -INSERT INTO schema_migrations (version) VALUES ('20141006130306'); - -INSERT INTO schema_migrations (version) VALUES ('20141008134959'); - -INSERT INTO schema_migrations (version) VALUES ('20141009100818'); - -INSERT INTO schema_migrations (version) VALUES ('20141009101337'); - -INSERT INTO schema_migrations (version) VALUES ('20141010085152'); - -INSERT INTO schema_migrations (version) VALUES ('20141010130412'); - -INSERT INTO schema_migrations (version) VALUES ('20141014073435'); - -INSERT INTO schema_migrations (version) VALUES ('20141015135255'); - -INSERT INTO schema_migrations (version) VALUES ('20141015135742'); - -INSERT INTO schema_migrations (version) VALUES ('20141105150721'); - -INSERT INTO schema_migrations (version) VALUES ('20141111105931'); - -INSERT INTO schema_migrations (version) VALUES ('20141114130737'); - -INSERT INTO schema_migrations (version) VALUES ('20141120110330'); - -INSERT INTO schema_migrations (version) VALUES ('20141120140837'); - -INSERT INTO schema_migrations (version) VALUES ('20141121093125'); - -INSERT INTO schema_migrations (version) VALUES ('20141124105221'); - -INSERT INTO schema_migrations (version) VALUES ('20141125111414'); - -INSERT INTO schema_migrations (version) VALUES ('20141126140434'); - -INSERT INTO schema_migrations (version) VALUES ('20141127091027'); - -INSERT INTO schema_migrations (version) VALUES ('20141202114457'); - -INSERT INTO schema_migrations (version) VALUES ('20141203090115'); - -INSERT INTO schema_migrations (version) VALUES ('20141210085432'); - -INSERT INTO schema_migrations (version) VALUES ('20141211095604'); - -INSERT INTO schema_migrations (version) VALUES ('20141215085117'); - -INSERT INTO schema_migrations (version) VALUES ('20141216075056'); - -INSERT INTO schema_migrations (version) VALUES ('20141216133831'); - -INSERT INTO schema_migrations (version) VALUES ('20141218154829'); - -INSERT INTO schema_migrations (version) VALUES ('20141229115619'); - -INSERT INTO schema_migrations (version) VALUES ('20150105134026'); - -INSERT INTO schema_migrations (version) VALUES ('20150109081914'); - -INSERT INTO schema_migrations (version) VALUES ('20150110000000'); - -INSERT INTO schema_migrations (version) VALUES ('20150110113257'); - -INSERT INTO schema_migrations (version) VALUES ('20150122091556'); - -INSERT INTO schema_migrations (version) VALUES ('20150122091557'); - -INSERT INTO schema_migrations (version) VALUES ('20150128134352'); - -INSERT INTO schema_migrations (version) VALUES ('20150129093938'); - -INSERT INTO schema_migrations (version) VALUES ('20150129144652'); - -INSERT INTO schema_migrations (version) VALUES ('20150130085458'); - -INSERT INTO schema_migrations (version) VALUES ('20150130155904'); - -INSERT INTO schema_migrations (version) VALUES ('20150130180452'); - -INSERT INTO schema_migrations (version) VALUES ('20150130191056'); - -INSERT INTO schema_migrations (version) VALUES ('20150200000000'); - -INSERT INTO schema_migrations (version) VALUES ('20150202084444'); - -INSERT INTO schema_migrations (version) VALUES ('20150202140346'); - -INSERT INTO schema_migrations (version) VALUES ('20150203135303'); - -INSERT INTO schema_migrations (version) VALUES ('20150212125339'); - -INSERT INTO schema_migrations (version) VALUES ('20150213104014'); - -INSERT INTO schema_migrations (version) VALUES ('20150217133755'); - -INSERT INTO schema_migrations (version) VALUES ('20150217133937'); - -INSERT INTO schema_migrations (version) VALUES ('20150223104842'); - -INSERT INTO schema_migrations (version) VALUES ('20150226121252'); - -INSERT INTO schema_migrations (version) VALUES ('20150226144723'); - -INSERT INTO schema_migrations (version) VALUES ('20150227092508'); - -INSERT INTO schema_migrations (version) VALUES ('20150227113121'); - -INSERT INTO schema_migrations (version) VALUES ('20150302161712'); - -INSERT INTO schema_migrations (version) VALUES ('20150303130729'); - -INSERT INTO schema_migrations (version) VALUES ('20150303151224'); - -INSERT INTO schema_migrations (version) VALUES ('20150305092921'); - -INSERT INTO schema_migrations (version) VALUES ('20150318084300'); - -INSERT INTO schema_migrations (version) VALUES ('20150318085110'); - -INSERT INTO schema_migrations (version) VALUES ('20150318114921'); - -INSERT INTO schema_migrations (version) VALUES ('20150319125655'); - -INSERT INTO schema_migrations (version) VALUES ('20150320132023'); - -INSERT INTO schema_migrations (version) VALUES ('20150330083700'); - -INSERT INTO schema_migrations (version) VALUES ('20150402114712'); - -INSERT INTO schema_migrations (version) VALUES ('20150407145943'); - -INSERT INTO schema_migrations (version) VALUES ('20150408081917'); - -INSERT INTO schema_migrations (version) VALUES ('20150410124724'); - -INSERT INTO schema_migrations (version) VALUES ('20150410132037'); - -INSERT INTO schema_migrations (version) VALUES ('20150413080832'); - -INSERT INTO schema_migrations (version) VALUES ('20150413102310'); - -INSERT INTO schema_migrations (version) VALUES ('20150413115829'); - -INSERT INTO schema_migrations (version) VALUES ('20150413140933'); - -INSERT INTO schema_migrations (version) VALUES ('20150414092249'); - -INSERT INTO schema_migrations (version) VALUES ('20150414124630'); - -INSERT INTO schema_migrations (version) VALUES ('20150414151357'); - -INSERT INTO schema_migrations (version) VALUES ('20150415075408'); - -INSERT INTO schema_migrations (version) VALUES ('20150416080828'); - -INSERT INTO schema_migrations (version) VALUES ('20150416091357'); - -INSERT INTO schema_migrations (version) VALUES ('20150416092026'); - -INSERT INTO schema_migrations (version) VALUES ('20150416094704'); - -INSERT INTO schema_migrations (version) VALUES ('20150417082723'); - -INSERT INTO schema_migrations (version) VALUES ('20150421134820'); - -INSERT INTO schema_migrations (version) VALUES ('20150422092514'); - -INSERT INTO schema_migrations (version) VALUES ('20150422132631'); - -INSERT INTO schema_migrations (version) VALUES ('20150422134243'); - -INSERT INTO schema_migrations (version) VALUES ('20150423083308'); - -INSERT INTO schema_migrations (version) VALUES ('20150427073517'); - -INSERT INTO schema_migrations (version) VALUES ('20150428075052'); - -INSERT INTO schema_migrations (version) VALUES ('20150429135339'); - -INSERT INTO schema_migrations (version) VALUES ('20150430121807'); - -INSERT INTO schema_migrations (version) VALUES ('20150504104922'); - -INSERT INTO schema_migrations (version) VALUES ('20150504110926'); - -INSERT INTO schema_migrations (version) VALUES ('20150505111437'); - -INSERT INTO schema_migrations (version) VALUES ('20150511120755'); - -INSERT INTO schema_migrations (version) VALUES ('20150512160938'); - -INSERT INTO schema_migrations (version) VALUES ('20150513080013'); - -INSERT INTO schema_migrations (version) VALUES ('20150514132606'); - -INSERT INTO schema_migrations (version) VALUES ('20150515103222'); - -INSERT INTO schema_migrations (version) VALUES ('20150518084324'); - -INSERT INTO schema_migrations (version) VALUES ('20150519094929'); - -INSERT INTO schema_migrations (version) VALUES ('20150519095416'); - -INSERT INTO schema_migrations (version) VALUES ('20150519102521'); - -INSERT INTO schema_migrations (version) VALUES ('20150519115050'); - -INSERT INTO schema_migrations (version) VALUES ('20150519140853'); - -INSERT INTO schema_migrations (version) VALUES ('20150519144118'); - -INSERT INTO schema_migrations (version) VALUES ('20150520163237'); - -INSERT INTO schema_migrations (version) VALUES ('20150520164507'); - -INSERT INTO schema_migrations (version) VALUES ('20150521120145'); - -INSERT INTO schema_migrations (version) VALUES ('20150522164020'); - -INSERT INTO schema_migrations (version) VALUES ('20150525075550'); - -INSERT INTO schema_migrations (version) VALUES ('20150601083516'); - -INSERT INTO schema_migrations (version) VALUES ('20150601083800'); - -INSERT INTO schema_migrations (version) VALUES ('20150603141549'); - -INSERT INTO schema_migrations (version) VALUES ('20150603211318'); - -INSERT INTO schema_migrations (version) VALUES ('20150603212659'); - -INSERT INTO schema_migrations (version) VALUES ('20150609093515'); - -INSERT INTO schema_migrations (version) VALUES ('20150609103333'); - -INSERT INTO schema_migrations (version) VALUES ('20150610111019'); - -INSERT INTO schema_migrations (version) VALUES ('20150610112238'); - -INSERT INTO schema_migrations (version) VALUES ('20150610144547'); - -INSERT INTO schema_migrations (version) VALUES ('20150611124920'); - -INSERT INTO schema_migrations (version) VALUES ('20150612123111'); - -INSERT INTO schema_migrations (version) VALUES ('20150612125720'); - -INSERT INTO schema_migrations (version) VALUES ('20150701074344'); - -INSERT INTO schema_migrations (version) VALUES ('20150703084206'); - -INSERT INTO schema_migrations (version) VALUES ('20150703084632'); - -INSERT INTO schema_migrations (version) VALUES ('20150706091724'); - -INSERT INTO schema_migrations (version) VALUES ('20150707103241'); - -INSERT INTO schema_migrations (version) VALUES ('20150707103801'); - -INSERT INTO schema_migrations (version) VALUES ('20150707104937'); - -INSERT INTO schema_migrations (version) VALUES ('20150707154543'); - -INSERT INTO schema_migrations (version) VALUES ('20150709092549'); - -INSERT INTO schema_migrations (version) VALUES ('20150713113436'); - -INSERT INTO schema_migrations (version) VALUES ('20150722071128'); - -INSERT INTO schema_migrations (version) VALUES ('20150803080914'); - -INSERT INTO schema_migrations (version) VALUES ('20150810114746'); - -INSERT INTO schema_migrations (version) VALUES ('20150810114747'); - -INSERT INTO schema_migrations (version) VALUES ('20150825125118'); - -INSERT INTO schema_migrations (version) VALUES ('20150827151906'); - -INSERT INTO schema_migrations (version) VALUES ('20150903105659'); - -INSERT INTO schema_migrations (version) VALUES ('20150910113839'); - -INSERT INTO schema_migrations (version) VALUES ('20150915094707'); - -INSERT INTO schema_migrations (version) VALUES ('20150921110152'); - -INSERT INTO schema_migrations (version) VALUES ('20150921111842'); - -INSERT INTO schema_migrations (version) VALUES ('20151028183132'); - -INSERT INTO schema_migrations (version) VALUES ('20151029152638'); - -INSERT INTO schema_migrations (version) VALUES ('20151112160452'); - -INSERT INTO schema_migrations (version) VALUES ('20151117081204'); - -INSERT INTO schema_migrations (version) VALUES ('20151120090455'); - -INSERT INTO schema_migrations (version) VALUES ('20151124200353'); - -INSERT INTO schema_migrations (version) VALUES ('20151125155601'); - -INSERT INTO schema_migrations (version) VALUES ('20151127091716'); - -INSERT INTO schema_migrations (version) VALUES ('20151130175654'); - -INSERT INTO schema_migrations (version) VALUES ('20151202123506'); - -INSERT INTO schema_migrations (version) VALUES ('20151209122816'); - -INSERT INTO schema_migrations (version) VALUES ('20160106101725'); - -INSERT INTO schema_migrations (version) VALUES ('20160108135436'); - -INSERT INTO schema_migrations (version) VALUES ('20160113143447'); - -INSERT INTO schema_migrations (version) VALUES ('20160118092453'); - -INSERT INTO schema_migrations (version) VALUES ('20160118092454'); - -INSERT INTO schema_migrations (version) VALUES ('20160218102355'); - -INSERT INTO schema_migrations (version) VALUES ('20160225113801'); - -INSERT INTO schema_migrations (version) VALUES ('20160225113812'); - -INSERT INTO schema_migrations (version) VALUES ('20160226132045'); - -INSERT INTO schema_migrations (version) VALUES ('20160226132056'); - -INSERT INTO schema_migrations (version) VALUES ('20160304125933'); - -INSERT INTO schema_migrations (version) VALUES ('20160311085956'); - -INSERT INTO schema_migrations (version) VALUES ('20160311085957'); - -INSERT INTO schema_migrations (version) VALUES ('20160405131315'); - -INSERT INTO schema_migrations (version) VALUES ('20160411140719'); - -INSERT INTO schema_migrations (version) VALUES ('20160414110443'); - -INSERT INTO schema_migrations (version) VALUES ('20160421074023'); - -INSERT INTO schema_migrations (version) VALUES ('20160429114732'); - -INSERT INTO schema_migrations (version) VALUES ('20160527110738'); - -INSERT INTO schema_migrations (version) VALUES ('20160629114503'); - -INSERT INTO schema_migrations (version) VALUES ('20161004101419'); - -INSERT INTO schema_migrations (version) VALUES ('20161227193500'); - -INSERT INTO schema_migrations (version) VALUES ('20170221115548'); - -INSERT INTO schema_migrations (version) VALUES ('20170419120048'); - -INSERT INTO schema_migrations (version) VALUES ('20170420125200'); - -INSERT INTO schema_migrations (version) VALUES ('20170422130054'); - -INSERT INTO schema_migrations (version) VALUES ('20170422142116'); - -INSERT INTO schema_migrations (version) VALUES ('20170422162824'); - -INSERT INTO schema_migrations (version) VALUES ('20170423151046'); - -INSERT INTO schema_migrations (version) VALUES ('20170423210622'); - -INSERT INTO schema_migrations (version) VALUES ('20170423214500'); - -INSERT INTO schema_migrations (version) VALUES ('20170423222302'); - -INSERT INTO schema_migrations (version) VALUES ('20170423225333'); - -INSERT INTO schema_migrations (version) VALUES ('20170424115801'); - -INSERT INTO schema_migrations (version) VALUES ('20170506144743'); - -INSERT INTO schema_migrations (version) VALUES ('20170506155009'); - -INSERT INTO schema_migrations (version) VALUES ('20170506162952'); - -INSERT INTO schema_migrations (version) VALUES ('20170506205356'); - -INSERT INTO schema_migrations (version) VALUES ('20170506205946'); - -INSERT INTO schema_migrations (version) VALUES ('20170506212014'); - -INSERT INTO schema_migrations (version) VALUES ('20170509215614'); - -INSERT INTO schema_migrations (version) VALUES ('20170604182521'); - -INSERT INTO schema_migrations (version) VALUES ('20170606133501'); - -INSERT INTO schema_migrations (version) VALUES ('20170606150352'); - -INSERT INTO schema_migrations (version) VALUES ('20170606202859'); - -INSERT INTO schema_migrations (version) VALUES ('20171009080822'); - -INSERT INTO schema_migrations (version) VALUES ('20171009082321'); - -INSERT INTO schema_migrations (version) VALUES ('20171025113808'); - -INSERT INTO schema_migrations (version) VALUES ('20171025153841'); - -INSERT INTO schema_migrations (version) VALUES ('20171121233843'); - -INSERT INTO schema_migrations (version) VALUES ('20171123035941'); - -INSERT INTO schema_migrations (version) VALUES ('20180112080312'); - -INSERT INTO schema_migrations (version) VALUES ('20180112084221'); - -INSERT INTO schema_migrations (version) VALUES ('20180112084442'); - -INSERT INTO schema_migrations (version) VALUES ('20180120172042'); - -INSERT INTO schema_migrations (version) VALUES ('20180120172649'); - -INSERT INTO schema_migrations (version) VALUES ('20180120172657'); - -INSERT INTO schema_migrations (version) VALUES ('20180120182712'); - -INSERT INTO schema_migrations (version) VALUES ('20180120183441'); - -INSERT INTO schema_migrations (version) VALUES ('20180121165304'); - -INSERT INTO schema_migrations (version) VALUES ('20180122105335'); - -INSERT INTO schema_migrations (version) VALUES ('20180123154407'); - -INSERT INTO schema_migrations (version) VALUES ('20180123165604'); - -INSERT INTO schema_migrations (version) VALUES ('20180123170112'); - -INSERT INTO schema_migrations (version) VALUES ('20180125092422'); - -INSERT INTO schema_migrations (version) VALUES ('20180126104536'); - -INSERT INTO schema_migrations (version) VALUES ('20180126104903'); - -INSERT INTO schema_migrations (version) VALUES ('20180129143538'); - -INSERT INTO schema_migrations (version) VALUES ('20180129232054'); - -INSERT INTO schema_migrations (version) VALUES ('20180129233223'); - -INSERT INTO schema_migrations (version) VALUES ('20180206213435'); - -INSERT INTO schema_migrations (version) VALUES ('20180206234620'); - -INSERT INTO schema_migrations (version) VALUES ('20180207071528'); - -INSERT INTO schema_migrations (version) VALUES ('20180207072139'); - -INSERT INTO schema_migrations (version) VALUES ('20180211011450'); - -INSERT INTO schema_migrations (version) VALUES ('20180211011948'); - -INSERT INTO schema_migrations (version) VALUES ('20180212123810'); - -INSERT INTO schema_migrations (version) VALUES ('20180212152810'); - -INSERT INTO schema_migrations (version) VALUES ('20180212154731'); - -INSERT INTO schema_migrations (version) VALUES ('20180213183818'); - -INSERT INTO schema_migrations (version) VALUES ('20180214200224'); - -INSERT INTO schema_migrations (version) VALUES ('20180214213743'); - -INSERT INTO schema_migrations (version) VALUES ('20180218004148'); - -INSERT INTO schema_migrations (version) VALUES ('20180228055259'); - -INSERT INTO schema_migrations (version) VALUES ('20180228064342'); - -INSERT INTO schema_migrations (version) VALUES ('20180228070102'); - -INSERT INTO schema_migrations (version) VALUES ('20180228070431'); - -INSERT INTO schema_migrations (version) VALUES ('20180228074442'); - -INSERT INTO schema_migrations (version) VALUES ('20180306180401'); - -INSERT INTO schema_migrations (version) VALUES ('20180306181538'); - -INSERT INTO schema_migrations (version) VALUES ('20180306181554'); - -INSERT INTO schema_migrations (version) VALUES ('20180306181911'); - -INSERT INTO schema_migrations (version) VALUES ('20180306182456'); - -INSERT INTO schema_migrations (version) VALUES ('20180306182758'); - -INSERT INTO schema_migrations (version) VALUES ('20180306182941'); - -INSERT INTO schema_migrations (version) VALUES ('20180306183540'); - -INSERT INTO schema_migrations (version) VALUES ('20180306183549'); - -INSERT INTO schema_migrations (version) VALUES ('20180308123240'); - -INSERT INTO schema_migrations (version) VALUES ('20180309053424'); - -INSERT INTO schema_migrations (version) VALUES ('20180309053921'); - -INSERT INTO schema_migrations (version) VALUES ('20180309054510'); - -INSERT INTO schema_migrations (version) VALUES ('20180310142630'); - -INSERT INTO schema_migrations (version) VALUES ('20180313090437'); - -INSERT INTO schema_migrations (version) VALUES ('20180313124751'); - -INSERT INTO schema_migrations (version) VALUES ('20180314122722'); - -INSERT INTO schema_migrations (version) VALUES ('20180327151906'); - -INSERT INTO schema_migrations (version) VALUES ('20180331200125'); - -INSERT INTO schema_migrations (version) VALUES ('20180422154642'); - -INSERT INTO schema_migrations (version) VALUES ('20180612042234'); - -INSERT INTO schema_migrations (version) VALUES ('20180612042625'); - -INSERT INTO schema_migrations (version) VALUES ('20180612042953'); - -INSERT INTO schema_migrations (version) VALUES ('20180613030330'); - -INSERT INTO schema_migrations (version) VALUES ('20180613045614'); - -INSERT INTO schema_migrations (version) VALUES ('20180713154915'); - -INSERT INTO schema_migrations (version) VALUES ('20180808064402'); - -INSERT INTO schema_migrations (version) VALUES ('20180816123540'); - -INSERT INTO schema_migrations (version) VALUES ('20180823161237'); - -INSERT INTO schema_migrations (version) VALUES ('20180823163548'); - -INSERT INTO schema_migrations (version) VALUES ('20180823174331'); - -INSERT INTO schema_migrations (version) VALUES ('20180823212823'); - -INSERT INTO schema_migrations (version) VALUES ('20180824092855'); - -INSERT INTO schema_migrations (version) VALUES ('20180824102834'); - -INSERT INTO schema_migrations (version) VALUES ('20180824215326'); - -INSERT INTO schema_migrations (version) VALUES ('20180825193437'); - -INSERT INTO schema_migrations (version) VALUES ('20180825232819'); - -INSERT INTO schema_migrations (version) VALUES ('20180826162821'); - -INSERT INTO schema_migrations (version) VALUES ('20181001090536'); - -INSERT INTO schema_migrations (version) VALUES ('20181002090319'); - -INSERT INTO schema_migrations (version) VALUES ('20181017092829'); - -INSERT INTO schema_migrations (version) VALUES ('20181017153658'); - -INSERT INTO schema_migrations (version) VALUES ('20181017153812'); - -INSERT INTO schema_migrations (version) VALUES ('20181017153935'); - -INSERT INTO schema_migrations (version) VALUES ('20181017154038'); - -INSERT INTO schema_migrations (version) VALUES ('20181017154143'); - -INSERT INTO schema_migrations (version) VALUES ('20181017205123'); - -INSERT INTO schema_migrations (version) VALUES ('20181022100114'); - -INSERT INTO schema_migrations (version) VALUES ('20181108154921'); - -INSERT INTO schema_migrations (version) VALUES ('20181129150515'); - -INSERT INTO schema_migrations (version) VALUES ('20181212105100'); - -INSERT INTO schema_migrations (version) VALUES ('20181212145456'); - -INSERT INTO schema_migrations (version) VALUES ('20181212145914'); - -INSERT INTO schema_migrations (version) VALUES ('20181213113115'); - -INSERT INTO schema_migrations (version) VALUES ('20181217144701'); - -INSERT INTO schema_migrations (version) VALUES ('20181217144845'); - -INSERT INTO schema_migrations (version) VALUES ('20181220094738'); - -INSERT INTO schema_migrations (version) VALUES ('20181220095053'); - -INSERT INTO schema_migrations (version) VALUES ('20181223153407'); - -INSERT INTO schema_migrations (version) VALUES ('20181226211337'); - -INSERT INTO schema_migrations (version) VALUES ('20181227155537'); - -INSERT INTO schema_migrations (version) VALUES ('20181227172042'); - -INSERT INTO schema_migrations (version) VALUES ('20181230231015'); - -INSERT INTO schema_migrations (version) VALUES ('20190102114702'); - -INSERT INTO schema_migrations (version) VALUES ('20190102115333'); - -INSERT INTO schema_migrations (version) VALUES ('20190102144032'); - -INSERT INTO schema_migrations (version) VALUES ('20190209150026'); - -INSERT INTO schema_migrations (version) VALUES ('20190302091059'); - -INSERT INTO schema_migrations (version) VALUES ('20190302111152'); - -INSERT INTO schema_migrations (version) VALUES ('20190311111718'); - -INSERT INTO schema_migrations (version) VALUES ('20190312211614'); - -INSERT INTO schema_migrations (version) VALUES ('20190315172802'); - -INSERT INTO schema_migrations (version) VALUES ('20190319133036'); - -INSERT INTO schema_migrations (version) VALUES ('20190322152123'); - -INSERT INTO schema_migrations (version) VALUES ('20190322152529'); - -INSERT INTO schema_migrations (version) VALUES ('20190328151516'); - -INSERT INTO schema_migrations (version) VALUES ('20190328151838'); - -INSERT INTO schema_migrations (version) VALUES ('20190415120246'); - -INSERT INTO schema_migrations (version) VALUES ('20190426174225'); - -INSERT INTO schema_migrations (version) VALUES ('20190506100655'); - -INSERT INTO schema_migrations (version) VALUES ('20190510090240'); - -INSERT INTO schema_migrations (version) VALUES ('20190510102549'); - -INSERT INTO schema_migrations (version) VALUES ('20190515113153'); - -INSERT INTO schema_migrations (version) VALUES ('20190516161439'); - -INSERT INTO schema_migrations (version) VALUES ('20190520093231'); - -INSERT INTO schema_migrations (version) VALUES ('20190617120112'); - -INSERT INTO schema_migrations (version) VALUES ('20190617121716'); - -INSERT INTO schema_migrations (version) VALUES ('20190617121949'); - -INSERT INTO schema_migrations (version) VALUES ('20190617122505'); - -INSERT INTO schema_migrations (version) VALUES ('20190620084334'); - -INSERT INTO schema_migrations (version) VALUES ('20190811184334'); - -INSERT INTO schema_migrations (version) VALUES ('20190811195814'); - -INSERT INTO schema_migrations (version) VALUES ('20190811202042'); - -INSERT INTO schema_migrations (version) VALUES ('20190811202347'); - -INSERT INTO schema_migrations (version) VALUES ('20190811202711'); - -INSERT INTO schema_migrations (version) VALUES ('20190811205406'); - -INSERT INTO schema_migrations (version) VALUES ('20190917114907'); - -INSERT INTO schema_migrations (version) VALUES ('20191004095229'); - -INSERT INTO schema_migrations (version) VALUES ('20191004103144'); - -INSERT INTO schema_migrations (version) VALUES ('20191004105643'); - -INSERT INTO schema_migrations (version) VALUES ('20191004105732'); - -INSERT INTO schema_migrations (version) VALUES ('20191004110234'); - -INSERT INTO schema_migrations (version) VALUES ('20191004154844'); - -INSERT INTO schema_migrations (version) VALUES ('20191005162437'); - -INSERT INTO schema_migrations (version) VALUES ('20191007123000'); - -INSERT INTO schema_migrations (version) VALUES ('20191008024334'); - -INSERT INTO schema_migrations (version) VALUES ('20191024153351'); - -INSERT INTO schema_migrations (version) VALUES ('20191024160038'); diff --git a/lib/action_controller/api.rb b/lib/action_controller/api.rb deleted file mode 100644 index 5a9fd4512..000000000 --- a/lib/action_controller/api.rb +++ /dev/null @@ -1,149 +0,0 @@ -# frozen_string_literal: true - -require "action_view" -require "action_controller" -require "action_controller/log_subscriber" - -module ActionController - # API Controller is a lightweight version of ActionController::Base, - # created for applications that don't require all functionalities that a complete - # \Rails controller provides, allowing you to create controllers with just the - # features that you need for API only applications. - # - # An API Controller is different from a normal controller in the sense that - # by default it doesn't include a number of features that are usually required - # by browser access only: layouts and templates rendering, cookies, sessions, - # flash, assets, and so on. This makes the entire controller stack thinner, - # suitable for API applications. It doesn't mean you won't have such - # features if you need them: they're all available for you to include in - # your application, they're just not part of the default API controller stack. - # - # Normally, +ApplicationController+ is the only controller that inherits from - # ActionController::API. All other controllers in turn inherit from - # +ApplicationController+. - # - # A sample controller could look like this: - # - # class PostsController < ApplicationController - # def index - # posts = Post.all - # render json: posts - # end - # end - # - # Request, response, and parameters objects all work the exact same way as - # ActionController::Base. - # - # == Renders - # - # The default API Controller stack includes all renderers, which means you - # can use render :json and brothers freely in your controllers. Keep - # in mind that templates are not going to be rendered, so you need to ensure - # your controller is calling either render or redirect_to in - # all actions, otherwise it will return 204 No Content. - # - # def show - # post = Post.find(params[:id]) - # render json: post - # end - # - # == Redirects - # - # Redirects are used to move from one action to another. You can use the - # redirect_to method in your controllers in the same way as in - # ActionController::Base. For example: - # - # def create - # redirect_to root_url and return if not_authorized? - # # do stuff here - # end - # - # == Adding New Behavior - # - # In some scenarios you may want to add back some functionality provided by - # ActionController::Base that is not present by default in - # ActionController::API, for instance MimeResponds. This - # module gives you the respond_to method. Adding it is quite simple, - # you just need to include the module in a specific controller or in - # +ApplicationController+ in case you want it available in your entire - # application: - # - # class ApplicationController < ActionController::API - # include ActionController::MimeResponds - # end - # - # class PostsController < ApplicationController - # def index - # posts = Post.all - # - # respond_to do |format| - # format.json { render json: posts } - # format.xml { render xml: posts } - # end - # end - # end - # - # Make sure to check the modules included in ActionController::Base - # if you want to use any other functionality that is not provided - # by ActionController::API out of the box. - class API < Metal - abstract! - - # Shortcut helper that returns all the ActionController::API modules except - # the ones passed as arguments: - # - # class MyAPIBaseController < ActionController::Metal - # ActionController::API.without_modules(:ForceSSL, :UrlFor).each do |left| - # include left - # end - # end - # - # This gives better control over what you want to exclude and makes it easier - # to create an API controller class, instead of listing the modules required - # manually. - def self.without_modules(*modules) - modules = modules.map do |m| - m.is_a?(Symbol) ? ActionController.const_get(m) : m - end - - MODULES - modules - end - - MODULES = [ - AbstractController::Rendering, - - UrlFor, - Redirecting, - ApiRendering, - Renderers::All, - ConditionalGet, - BasicImplicitRender, - StrongParameters, - - ForceSSL, - DataStreaming, - - # Before callbacks should also be executed as early as possible, so - # also include them at the bottom. - AbstractController::Callbacks, - - # Append rescue at the bottom to wrap as much as possible. - Rescue, - - # Add instrumentations hooks at the bottom, to ensure they instrument - # all the methods properly. - Instrumentation, - - # Params wrapper should come before instrumentation so they are - # properly showed in logs - ParamsWrapper - ] - - MODULES.each do |mod| - include mod - end - - ActiveSupport.run_load_hooks(:action_controller_api, self) - ActiveSupport.run_load_hooks(:action_controller, self) - end -end diff --git a/lib/action_controller/api/api_rendering.rb b/lib/action_controller/api/api_rendering.rb deleted file mode 100644 index 52e9f60fc..000000000 --- a/lib/action_controller/api/api_rendering.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module ActionController - module ApiRendering - extend ActiveSupport::Concern - - included do - include Rendering - end - - def render_to_body(options = {}) - _process_options(options) - super - end - end -end \ No newline at end of file diff --git a/lib/action_controller/metal/basic_implicit_render.rb b/lib/action_controller/metal/basic_implicit_render.rb deleted file mode 100644 index 9030ea585..000000000 --- a/lib/action_controller/metal/basic_implicit_render.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -module ActionController - module BasicImplicitRender # :nodoc: - def send_action(method, *args) - super.tap { default_render unless performed? } - end - - def default_render(*args) - head :no_content - end - end -end \ No newline at end of file diff --git a/lib/rails5_api_controller_backport.rb b/lib/rails5_api_controller_backport.rb deleted file mode 100644 index 252332488..000000000 --- a/lib/rails5_api_controller_backport.rb +++ /dev/null @@ -1,3 +0,0 @@ -require_relative 'action_controller/metal/basic_implicit_render' -require_relative 'action_controller/api/api_rendering' -require_relative 'action_controller/api' \ No newline at end of file diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index 036ecd382..b31489691 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -17,7 +17,7 @@ class ApplicationSystemTestCase < ActionDispatch::IntegrationTest end class JavaScriptApplicationSystemTestCase < ApplicationSystemTestCase - self.use_transactional_fixtures = false + self.use_transactional_tests = false DatabaseCleaner.strategy = :truncation Capybara.register_driver(:chrome) do |app| diff --git a/test/integration/admin_area/registrars_test.rb b/test/integration/admin_area/registrars_test.rb index 009e7c6d6..d73496899 100644 --- a/test/integration/admin_area/registrars_test.rb +++ b/test/integration/admin_area/registrars_test.rb @@ -12,7 +12,7 @@ class AdminAreaRegistrarsIntegrationTest < ActionDispatch::IntegrationTest new_iban = 'GB94BARC10201530093459' assert_not_equal new_iban, @registrar.iban - patch admin_registrar_path(@registrar), registrar: { iban: new_iban } + patch admin_registrar_path(@registrar), params: { registrar: { iban: new_iban } } @registrar.reload assert_equal new_iban, @registrar.iban diff --git a/test/integration/admin_area/zones_test.rb b/test/integration/admin_area/zones_test.rb index cf95aedc5..468bbd8b6 100644 --- a/test/integration/admin_area/zones_test.rb +++ b/test/integration/admin_area/zones_test.rb @@ -10,7 +10,7 @@ class AdminAreaZonesIntegrationTest < ApplicationIntegrationTest new_master_nameserver = 'new.test' assert_not_equal new_master_nameserver, @zone.master_nameserver - patch admin_zone_path(@zone), zone: { master_nameserver: new_master_nameserver } + patch admin_zone_path(@zone), params: { zone: { master_nameserver: new_master_nameserver } } @zone.reload assert_equal new_master_nameserver, @zone.master_nameserver diff --git a/test/integration/api/domain_contacts_test.rb b/test/integration/api/domain_contacts_test.rb index e99a45825..5336cc10a 100644 --- a/test/integration/api/domain_contacts_test.rb +++ b/test/integration/api/domain_contacts_test.rb @@ -2,9 +2,9 @@ require 'test_helper' class APIDomainContactsTest < ApplicationIntegrationTest def test_replace_all_tech_contacts_of_the_current_registrar - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'john-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'john-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_nil domains(:shop).tech_contacts.find_by(code: 'william-001') assert domains(:shop).tech_contacts.find_by(code: 'john-001') @@ -14,17 +14,17 @@ class APIDomainContactsTest < ApplicationIntegrationTest def test_skip_discarded_domains domains(:airport).update!(statuses: [DomainStatus::DELETE_CANDIDATE]) - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'john-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'john-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert domains(:airport).tech_contacts.find_by(code: 'william-001') end def test_return_affected_domains_in_alphabetical_order - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'john-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'john-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response :ok assert_equal ({ affected_domains: %w[airport.test shop.test], @@ -36,9 +36,9 @@ class APIDomainContactsTest < ApplicationIntegrationTest domains(:shop).update!(statuses: [DomainStatus::DELETE_CANDIDATE]) domains(:airport).update!(statuses: [DomainStatus::DELETE_CANDIDATE]) - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'john-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'john-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response :ok assert_equal %w[airport.test shop.test], JSON.parse(response.body, @@ -46,25 +46,25 @@ class APIDomainContactsTest < ApplicationIntegrationTest end def test_keep_other_tech_contacts_intact - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'john-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'john-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert domains(:shop).tech_contacts.find_by(code: 'acme-ltd-001') end def test_keep_admin_contacts_intact - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'john-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'john-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert domains(:airport).admin_contacts.find_by(code: 'william-001') end def test_restrict_contacts_to_the_current_registrar - patch '/repp/v1/domains/contacts', { current_contact_id: 'jack-001', - new_contact_id: 'william-002' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'jack-001', + new_contact_id: 'william-002' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response :bad_request assert_equal ({ error: { type: 'invalid_request_error', @@ -74,9 +74,9 @@ class APIDomainContactsTest < ApplicationIntegrationTest end def test_non_existent_current_contact - patch '/repp/v1/domains/contacts', { current_contact_id: 'non-existent', - new_contact_id: 'john-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'non-existent', + new_contact_id: 'john-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response :bad_request assert_equal ({ error: { type: 'invalid_request_error', param: 'current_contact_id', @@ -85,9 +85,9 @@ class APIDomainContactsTest < ApplicationIntegrationTest end def test_non_existent_new_contact - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'non-existent' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'non-existent' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response :bad_request assert_equal ({ error: { type: 'invalid_request_error', param: 'new_contact_id', @@ -96,9 +96,9 @@ class APIDomainContactsTest < ApplicationIntegrationTest end def test_disallow_invalid_new_contact - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'invalid' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'invalid' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response :bad_request assert_equal ({ error: { type: 'invalid_request_error', param: 'new_contact_id', @@ -107,9 +107,9 @@ class APIDomainContactsTest < ApplicationIntegrationTest end def test_disallow_self_replacement - patch '/repp/v1/domains/contacts', { current_contact_id: 'william-001', - new_contact_id: 'william-001' }, - { 'HTTP_AUTHORIZATION' => http_auth_key } + patch '/repp/v1/domains/contacts', params: { current_contact_id: 'william-001', + new_contact_id: 'william-001' }, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response :bad_request assert_equal ({ error: { type: 'invalid_request_error', message: 'New contact ID must be different from current contact ID' } }), diff --git a/test/integration/api/domain_transfers_test.rb b/test/integration/api/domain_transfers_test.rb index 7cd0874c1..aabaeb728 100644 --- a/test/integration/api/domain_transfers_test.rb +++ b/test/integration/api/domain_transfers_test.rb @@ -13,7 +13,8 @@ class APIDomainTransfersTest < ApplicationIntegrationTest end def test_returns_domain_transfers - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response 200 assert_equal ({ data: [{ type: 'domain_transfer', @@ -26,17 +27,20 @@ class APIDomainTransfersTest < ApplicationIntegrationTest def test_creates_new_domain_transfer assert_difference -> { @domain.transfers.size } do - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } end end def test_approves_automatically_if_auto_approval_is_enabled - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert @domain.transfers.last.approved? end def test_assigns_new_registrar - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } @domain.reload assert_equal @new_registrar, @domain.registrar end @@ -44,7 +48,8 @@ class APIDomainTransfersTest < ApplicationIntegrationTest def test_regenerates_transfer_code @old_transfer_code = @domain.transfer_code - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } @domain.reload refute_equal @domain.transfer_code, @old_transfer_code end @@ -53,34 +58,41 @@ class APIDomainTransfersTest < ApplicationIntegrationTest @old_registrar = @domain.registrar assert_difference -> { @old_registrar.notifications.count } do - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } end end def test_duplicates_registrant_admin_and_tech_contacts assert_difference -> { @new_registrar.contacts.size }, 3 do - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } end end def test_reuses_identical_contact - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', params: request_params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_equal 1, @new_registrar.contacts.where(name: 'William').size end def test_fails_if_domain_does_not_exist - request_params = { format: :json, - data: { domainTransfers: [{ domainName: 'non-existent.test', transferCode: 'any' }] } } - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', + params: { data: { domainTransfers: [{ domainName: 'non-existent.test', + transferCode: 'any' }] } }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response 400 assert_equal ({ errors: [{ title: 'non-existent.test does not exist' }] }), JSON.parse(response.body, symbolize_names: true) end def test_fails_if_transfer_code_is_wrong - request_params = { format: :json, - data: { domainTransfers: [{ domainName: 'shop.test', transferCode: 'wrong' }] } } - post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + post '/repp/v1/domain_transfers', + params: { data: { domainTransfers: [{ domainName: 'shop.test', + transferCode: 'wrong' }] } }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response 400 refute_equal @new_registrar, @domain.registrar assert_equal ({ errors: [{ title: 'shop.test transfer code is wrong' }] }), @@ -90,8 +102,7 @@ class APIDomainTransfersTest < ApplicationIntegrationTest private def request_params - { format: :json, - data: { domainTransfers: [{ domainName: 'shop.test', transferCode: '65078d5' }] } } + { data: { domainTransfers: [{ domainName: 'shop.test', transferCode: '65078d5' }] } } end def http_auth_key diff --git a/test/integration/api/nameservers/put_test.rb b/test/integration/api/nameservers/put_test.rb index 4c35d3e77..853a20549 100644 --- a/test/integration/api/nameservers/put_test.rb +++ b/test/integration/api/nameservers/put_test.rb @@ -5,18 +5,23 @@ class APINameserversPutTest < ApplicationIntegrationTest old_nameserver_ids = [nameservers(:shop_ns1).id, nameservers(:airport_ns1).id, nameservers(:metro_ns1).id] - request_params = { format: :json, data: { type: 'nameserver', id: 'ns1.bestnames.test', - attributes: { hostname: 'ns55.bestnames.test' } } } - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } - assert_empty (old_nameserver_ids & registrars(:bestnames).nameservers(true).ids) + params = { data: { type: 'nameserver', + id: 'ns1.bestnames.test', + attributes: { hostname: 'ns55.bestnames.test' } } } + + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } + + assert_empty (old_nameserver_ids & registrars(:bestnames).nameservers.reload.ids) end def test_saves_all_attributes - request_params = { format: :json, data: { type: 'nameserver', id: 'ns1.bestnames.test', - attributes: { hostname: 'ns55.bestnames.test', - ipv4: ['192.0.2.55'], - ipv6: ['2001:db8::55'] } } } - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + params = { data: { type: 'nameserver', id: 'ns1.bestnames.test', + attributes: { hostname: 'ns55.bestnames.test', + ipv4: ['192.0.2.55'], + ipv6: ['2001:db8::55'] } } } + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } new_nameserver = domains(:shop).nameservers.find_by(hostname: 'ns55.bestnames.test') assert_equal ['192.0.2.55'], new_nameserver.ipv4 @@ -24,52 +29,60 @@ class APINameserversPutTest < ApplicationIntegrationTest end def test_keeps_other_nameserver_intact - request_params = { format: :json, data: { type: 'nameserver', id: 'ns1.bestnames.test', - attributes: { hostname: 'ns55.bestnames.test' } } } + params = { data: { type: 'nameserver', id: 'ns1.bestnames.test', + attributes: { hostname: 'ns55.bestnames.test' } } } other_nameserver_hash = nameservers(:shop_ns2).attributes - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } + assert_equal other_nameserver_hash, nameservers(:shop_ns2).reload.attributes end def test_keeps_other_registrar_nameservers_intact - request_params = { format: :json, data: { type: 'nameserver', id: 'ns1.bestnames.test', - attributes: { hostname: 'ns55.bestnames.test' } } } + params = { data: { type: 'nameserver', id: 'ns1.bestnames.test', + attributes: { hostname: 'ns55.bestnames.test' } } } nameserver_hash = nameservers(:metro_ns1).attributes - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } + assert_equal nameserver_hash, nameservers(:metro_ns1).reload.attributes end def test_returns_new_nameserver_record_and_affected_domain - request_params = { format: :json, data: { type: 'nameserver', id: 'ns1.bestnames.test', - attributes: { hostname: 'ns55.bestnames.test', - ipv4: ['192.0.2.55'], - ipv6: ['2001:db8::55'] } } } + params = { data: { type: 'nameserver', id: 'ns1.bestnames.test', + attributes: { hostname: 'ns55.bestnames.test', + ipv4: ['192.0.2.55'], + ipv6: ['2001:db8::55'] } } } - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response 200 assert_equal ({ data: { type: 'nameserver', id: 'ns55.bestnames.test', attributes: { hostname: 'ns55.bestnames.test', ipv4: ['192.0.2.55'], - ipv6: ['2001:db8::55'] }}, + ipv6: ['2001:db8::55'] } }, affected_domains: ["airport.test", "shop.test"] }), JSON.parse(response.body, symbolize_names: true) end def test_optional_params - request_params = { format: :json, data: { type: 'nameserver', id: 'ns1.bestnames.test', - attributes: { hostname: 'ns55.bestnames.test' } } } - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + params = { data: { type: 'nameserver', id: 'ns1.bestnames.test', + attributes: { hostname: 'ns55.bestnames.test' } } } + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } + assert_response 200 end def test_non_existent_nameserver_hostname - request_params = { format: :json, data: { type: 'nameserver', id: 'non-existent.test', - attributes: { hostname: 'any.bestnames.test' } } } - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + params = { data: { type: 'nameserver', id: 'non-existent.test', + attributes: { hostname: 'any.bestnames.test' } } } + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response 404 assert_equal ({ errors: [{ title: 'Hostname non-existent.test does not exist' }] }), @@ -77,9 +90,10 @@ class APINameserversPutTest < ApplicationIntegrationTest end def test_invalid_request_params - request_params = { format: :json, data: { type: 'nameserver', id: 'ns1.bestnames.test', - attributes: { hostname: '' } } } - put '/repp/v1/registrar/nameservers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } + params = { data: { type: 'nameserver', id: 'ns1.bestnames.test', + attributes: { hostname: '' } } } + put '/repp/v1/registrar/nameservers', params: params, as: :json, + headers: { 'HTTP_AUTHORIZATION' => http_auth_key } assert_response 400 assert_equal ({ errors: [{ title: 'Hostname is missing' }] }), diff --git a/test/integration/api/registrant/registrant_api_authentication_test.rb b/test/integration/api/registrant/registrant_api_authentication_test.rb index 10858d005..9daeabfca 100644 --- a/test/integration/api/registrant/registrant_api_authentication_test.rb +++ b/test/integration/api/registrant/registrant_api_authentication_test.rb @@ -20,7 +20,7 @@ class RegistrantApiAuthenticationTest < ApplicationIntegrationTest last_name: 'Smith', } - post '/api/v1/registrant/auth/eid', params + post '/api/v1/registrant/auth/eid', params: params assert(User.find_by(registrant_ident: 'EE-30110100103')) json = JSON.parse(response.body, symbolize_names: true) @@ -29,7 +29,7 @@ class RegistrantApiAuthenticationTest < ApplicationIntegrationTest def test_request_returns_existing_user assert_no_changes User.count do - post '/api/v1/registrant/auth/eid', @user_hash + post '/api/v1/registrant/auth/eid', params: @user_hash end end @@ -38,7 +38,7 @@ class RegistrantApiAuthenticationTest < ApplicationIntegrationTest @original_whitelist_ip = ENV['registrant_api_auth_allowed_ips'] ENV['registrant_api_auth_allowed_ips'] = '1.2.3.4' - post '/api/v1/registrant/auth/eid', params + post '/api/v1/registrant/auth/eid', params: params assert_equal(401, response.status) json_body = JSON.parse(response.body, symbolize_names: true) @@ -50,7 +50,7 @@ class RegistrantApiAuthenticationTest < ApplicationIntegrationTest def test_request_documented_parameters_are_required params = { foo: :bar, test: :test } - post '/api/v1/registrant/auth/eid', params + post '/api/v1/registrant/auth/eid', params: params json = JSON.parse(response.body, symbolize_names: true) assert_equal({ errors: [{ ident: ['parameter is required'] }] }, json) assert_equal(422, response.status) diff --git a/test/integration/api/registrant/registrant_api_contacts_test.rb b/test/integration/api/registrant/registrant_api_contacts_test.rb index 0658ecac1..c2950a5f8 100644 --- a/test/integration/api/registrant/registrant_api_contacts_test.rb +++ b/test/integration/api/registrant/registrant_api_contacts_test.rb @@ -14,18 +14,19 @@ class RegistrantApiContactsTest < ApplicationIntegrationTest contacts(:william).update!(ident: '1234', ident_type: 'priv', ident_country_code: 'US') assert_equal 3, @user.contacts.size - get '/api/v1/registrant/contacts', { 'limit' => 1, 'offset' => 0 }, @auth_headers + get '/api/v1/registrant/contacts', params: { 'limit' => 1, 'offset' => 0 }, + headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(200, response.status) assert_equal(1, response_json.count) - get '/api/v1/registrant/contacts', {}, @auth_headers + get '/api/v1/registrant/contacts', headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(3, response_json.count) end def test_get_contact_details_by_uuid - get api_v1_registrant_contact_path(@contact.uuid), nil, @auth_headers + get api_v1_registrant_contact_path(@contact.uuid), headers: @auth_headers assert_response :ok response_json = JSON.parse(response.body, symbolize_names: true) @@ -33,21 +34,23 @@ class RegistrantApiContactsTest < ApplicationIntegrationTest end def test_root_does_not_accept_limit_higher_than_200 - get '/api/v1/registrant/contacts', { 'limit' => 400, 'offset' => 0 }, @auth_headers + get '/api/v1/registrant/contacts', params: { 'limit' => 400, 'offset' => 0 }, + headers: @auth_headers assert_equal(400, response.status) response_json = JSON.parse(response.body, symbolize_names: true) assert_equal({ errors: [{ limit: ['parameter is out of range'] }] }, response_json) end def test_root_does_not_accept_offset_lower_than_0 - get '/api/v1/registrant/contacts', { 'limit' => 200, 'offset' => "-10" }, @auth_headers + get '/api/v1/registrant/contacts', params: { 'limit' => 200, 'offset' => "-10" }, + headers: @auth_headers assert_equal(400, response.status) response_json = JSON.parse(response.body, symbolize_names: true) assert_equal({ errors: [{ offset: ['parameter is out of range'] }] }, response_json) end def test_root_returns_401_without_authorization - get '/api/v1/registrant/contacts', {}, {} + get '/api/v1/registrant/contacts' assert_equal(401, response.status) json_body = JSON.parse(response.body, symbolize_names: true) diff --git a/test/integration/api/registrant/registrant_api_cors_headers_test.rb b/test/integration/api/registrant/registrant_api_cors_headers_test.rb index 6bb768bc3..3b9fa46dc 100644 --- a/test/integration/api/registrant/registrant_api_cors_headers_test.rb +++ b/test/integration/api/registrant/registrant_api_cors_headers_test.rb @@ -2,13 +2,13 @@ require 'test_helper' class RegistrantApiCorsHeadersTest < ApplicationIntegrationTest def test_returns_200_response_code_for_options_request - options '/api/v1/registrant/auth/eid', {}, { 'Origin' => 'https://example.com' } - + process :options, api_v1_registrant_auth_eid_path, + headers: { 'Origin' => 'https://example.com' } assert_equal('200', response.code) end def test_returns_expected_headers_for_options_requests - options '/api/v1/registrant/auth/eid', {}, { 'Origin' => 'https://example.com' } + process :options, api_v1_registrant_auth_eid_path, headers: { 'Origin' => 'https://example.com' } assert_equal('https://example.com', response.headers['Access-Control-Allow-Origin']) assert_equal('POST, GET, PUT, PATCH, DELETE, OPTIONS', @@ -20,16 +20,15 @@ class RegistrantApiCorsHeadersTest < ApplicationIntegrationTest end def test_returns_empty_body - options '/api/v1/registrant/auth/eid', { 'Origin' => 'https://example.com' } - + process :options, api_v1_registrant_auth_eid_path, headers: { 'Origin' => 'https://example.com' } assert_equal('', response.body) end def test_it_returns_cors_headers_for_other_requests - post '/api/v1/registrant/auth/eid', {}, { 'Origin' => 'https://example.com' } + post '/api/v1/registrant/auth/eid', headers: { 'Origin' => 'https://example.com' } assert_equal('https://example.com', response.headers['Access-Control-Allow-Origin']) - get '/api/v1/registrant/contacts', {}, { 'Origin' => 'https://example.com' } + get '/api/v1/registrant/contacts', headers: { 'Origin' => 'https://example.com' } assert_equal('https://example.com', response.headers['Access-Control-Allow-Origin']) end end diff --git a/test/integration/api/registrant/registrant_api_domains_test.rb b/test/integration/api/registrant/registrant_api_domains_test.rb index 9095323f2..354ceb567 100644 --- a/test/integration/api/registrant/registrant_api_domains_test.rb +++ b/test/integration/api/registrant/registrant_api_domains_test.rb @@ -12,7 +12,7 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest end def test_get_domain_details_by_uuid - get '/api/v1/registrant/domains/5edda1a5-3548-41ee-8b65-6d60daf85a37', {}, @auth_headers + get '/api/v1/registrant/domains/5edda1a5-3548-41ee-8b65-6d60daf85a37', headers: @auth_headers assert_equal(200, response.status) domain = JSON.parse(response.body, symbolize_names: true) @@ -30,7 +30,7 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest end def test_get_non_existent_domain_details_by_uuid - get '/api/v1/registrant/domains/random-uuid', {}, @auth_headers + get '/api/v1/registrant/domains/random-uuid', headers: @auth_headers assert_equal(404, response.status) response_json = JSON.parse(response.body, symbolize_names: true) @@ -38,7 +38,7 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest end def test_root_returns_domain_list - get '/api/v1/registrant/domains', {}, @auth_headers + get '/api/v1/registrant/domains', headers: @auth_headers assert_equal(200, response.status) response_json = JSON.parse(response.body, symbolize_names: true) @@ -50,20 +50,22 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest end def test_root_accepts_limit_and_offset_parameters - get '/api/v1/registrant/domains', { 'limit' => 2, 'offset' => 0 }, @auth_headers + get '/api/v1/registrant/domains', params: { 'limit' => 2, 'offset' => 0 }, + headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(200, response.status) assert_equal(2, response_json.count) - get '/api/v1/registrant/domains', {}, @auth_headers + get '/api/v1/registrant/domains', headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(4, response_json.count) end def test_root_does_not_accept_limit_higher_than_200 - get '/api/v1/registrant/domains', { 'limit' => 400, 'offset' => 0 }, @auth_headers + get '/api/v1/registrant/domains', params: { 'limit' => 400, 'offset' => 0 }, + headers: @auth_headers assert_equal(400, response.status) response_json = JSON.parse(response.body, symbolize_names: true) @@ -71,7 +73,8 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest end def test_root_does_not_accept_offset_lower_than_0 - get '/api/v1/registrant/domains', { 'limit' => 200, 'offset' => "-10" }, @auth_headers + get '/api/v1/registrant/domains', params: { 'limit' => 200, 'offset' => "-10" }, + headers: @auth_headers assert_equal(400, response.status) response_json = JSON.parse(response.body, symbolize_names: true) @@ -79,7 +82,7 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest end def test_root_returns_401_without_authorization - get '/api/v1/registrant/domains', {}, {} + get '/api/v1/registrant/domains' assert_equal(401, response.status) json_body = JSON.parse(response.body, symbolize_names: true) @@ -87,7 +90,7 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest end def test_details_returns_401_without_authorization - get '/api/v1/registrant/domains/5edda1a5-3548-41ee-8b65-6d60daf85a37', {}, {} + get '/api/v1/registrant/domains/5edda1a5-3548-41ee-8b65-6d60daf85a37' assert_equal(401, response.status) json_body = JSON.parse(response.body, symbolize_names: true) diff --git a/test/integration/api/registrant/registrant_api_registry_locks_test.rb b/test/integration/api/registrant/registrant_api_registry_locks_test.rb index 049345fb5..4babdf428 100644 --- a/test/integration/api/registrant/registrant_api_registry_locks_test.rb +++ b/test/integration/api/registrant/registrant_api_registry_locks_test.rb @@ -12,7 +12,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest def test_can_lock_a_not_locked_domain post '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', - {}, @auth_headers + headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) @@ -27,7 +27,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest def test_locking_a_domain_creates_a_version_record assert_difference '@domain.versions.count', 1 do post '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', - {}, @auth_headers + headers: @auth_headers end @domain.reload @@ -39,7 +39,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest @domain.save post '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', - {}, @auth_headers + headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(422, response.status) @@ -51,7 +51,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest assert(@domain.locked_by_registrant?) post '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', - {}, @auth_headers + headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(422, response.status) @@ -62,7 +62,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest @domain.apply_registry_lock delete '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', - {}, @auth_headers + headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert(response_json[:statuses].include?(DomainStatus::OK)) @@ -73,7 +73,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest def test_cannot_unlock_a_not_locked_domain delete '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', - {}, @auth_headers + headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(422, response.status) @@ -81,8 +81,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest end def test_returns_404_when_domain_is_not_found - post '/api/v1/registrant/domains/random-uuid/registry_lock', - {}, @auth_headers + post '/api/v1/registrant/domains/random-uuid/registry_lock', headers: @auth_headers response_json = JSON.parse(response.body, symbolize_names: true) assert_equal(404, response.status) @@ -99,7 +98,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest assert_equal '1234', contact.ident assert_equal 'US', contact.ident_country_code - post api_v1_registrant_domain_registry_lock_path(domain.uuid), nil, @auth_headers + post api_v1_registrant_domain_registry_lock_path(domain.uuid), headers: @auth_headers assert_response :unauthorized response_json = JSON.parse(response.body, symbolize_names: true) @@ -109,7 +108,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest def test_registrant_can_lock_a_domain post '/api/v1/registrant/domains/1b3ee442-e8fe-4922-9492-8fcb9dccc69c/registry_lock', - {}, @auth_headers + headers: @auth_headers assert_equal(200, response.status) response_json = JSON.parse(response.body, symbolize_names: true) @@ -125,7 +124,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest assert_equal 'https://bestnames.test', @domain.registrar.website post '/api/v1/registrant/domains/1b3ee442-e8fe-4922-9492-8fcb9dccc69c/registry_lock', - {}, @auth_headers + headers: @auth_headers assert_equal(200, response.status) response_json = JSON.parse(response.body, symbolize_names: true) diff --git a/test/integration/api/v1/auctions/details_test.rb b/test/integration/api/v1/auctions/details_test.rb index 996151cee..f1cab52af 100644 --- a/test/integration/api/v1/auctions/details_test.rb +++ b/test/integration/api/v1/auctions/details_test.rb @@ -15,18 +15,18 @@ class ApiV1AuctionDetailsTest < ActionDispatch::IntegrationTest assert_equal 'auction.test', @auction.domain assert_equal Auction.statuses[:no_bids], @auction.status - get api_v1_auction_path(@auction.uuid), nil, 'Content-Type' => Mime::JSON.to_s + get api_v1_auction_path(@auction.uuid), as: :json assert_response :ok assert_equal ({ 'id' => '1b3ee442-e8fe-4922-9492-8fcb9dccc69c', 'domain' => 'auction.test', 'status' => Auction.statuses[:no_bids] }), ActiveSupport::JSON - .decode(response.body) + .decode(response.body) end def test_auction_not_found assert_raises ActiveRecord::RecordNotFound do - get api_v1_auction_path('non-existing-uuid'), nil, 'Content-Type' => Mime::JSON.to_s + get api_v1_auction_path('non-existing-uuid'), as: :json end end end \ No newline at end of file diff --git a/test/integration/api/v1/auctions/list_test.rb b/test/integration/api/v1/auctions/list_test.rb index 3dfaff39e..ae3f4338f 100644 --- a/test/integration/api/v1/auctions/list_test.rb +++ b/test/integration/api/v1/auctions/list_test.rb @@ -10,19 +10,19 @@ class ApiV1AuctionListTest < ActionDispatch::IntegrationTest domain: 'auction.test', status: Auction.statuses[:started]) - get api_v1_auctions_path, nil, 'Content-Type' => Mime::JSON.to_s + get api_v1_auctions_path, as: :json assert_response :ok assert_equal ([{ 'id' => '1b3ee442-e8fe-4922-9492-8fcb9dccc69c', 'domain' => 'auction.test', 'status' => Auction.statuses[:started] }]), ActiveSupport::JSON - .decode(response.body) + .decode(response.body) end def test_does_not_return_finished_auctions @auction.update!(domain: 'auction.test', status: Auction.statuses[:awaiting_payment]) - get api_v1_auctions_path, nil, 'Content-Type' => Mime::JSON.to_s + get api_v1_auctions_path, as: :json assert_response :ok assert_empty ActiveSupport::JSON.decode(response.body) diff --git a/test/integration/api/v1/auctions/update_test.rb b/test/integration/api/v1/auctions/update_test.rb index 64b3a92f5..fe4d075b0 100644 --- a/test/integration/api/v1/auctions/update_test.rb +++ b/test/integration/api/v1/auctions/update_test.rb @@ -20,47 +20,53 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest assert_equal '1b3ee442-e8fe-4922-9492-8fcb9dccc69c', @auction.uuid assert_equal 'auction.test', @auction.domain - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:awaiting_payment] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:awaiting_payment] }, + as: :json assert_response :ok assert_equal ({ 'id' => '1b3ee442-e8fe-4922-9492-8fcb9dccc69c', 'domain' => 'auction.test', 'status' => Auction.statuses[:awaiting_payment] }), ActiveSupport::JSON - .decode(response.body) + .decode(response.body) end def test_marks_as_awaiting_payment - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:awaiting_payment] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:awaiting_payment] }, + as: :json @auction.reload assert @auction.awaiting_payment? end def test_marks_as_no_bids - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:no_bids] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:no_bids] }, + as: :json @auction.reload assert @auction.no_bids? end def test_marks_as_payment_received - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:payment_received] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:payment_received] }, + as: :json @auction.reload assert @auction.payment_received? end def test_marks_as_payment_not_received - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:payment_not_received] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:payment_not_received] }, + as: :json @auction.reload assert @auction.payment_not_received? end def test_marks_as_domain_not_registered - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:domain_not_registered] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:domain_not_registered] }, + as: :json @auction.reload assert @auction.domain_not_registered? end @@ -69,8 +75,9 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest @auction.update!(registration_code: 'auction-001', status: Auction.statuses[:awaiting_payment]) - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:payment_received] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:payment_received] }, + as: :json response_json = ActiveSupport::JSON.decode(response.body) assert_not_nil response_json['registration_code'] @@ -79,8 +86,9 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest def test_conceals_registration_code_when_payment_is_not_received @auction.update!(status: Auction.statuses[:awaiting_payment]) - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:payment_not_received] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:payment_not_received] }, + as: :json response_json = ActiveSupport::JSON.decode(response.body) assert_nil response_json['registration_code'] @@ -91,8 +99,9 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest assert_equal 'auction.test', @auction.domain @whois_record.update!(updated_at: '2010-07-04') - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:payment_received] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:payment_received] }, + as: :json @whois_record.reload assert_equal Time.zone.parse('2010-07-05 10:00'), @whois_record.updated_at @@ -103,8 +112,9 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest assert_equal 'auction.test', @auction.domain @whois_record.delete - patch api_v1_auction_path(@auction.uuid), { status: Auction.statuses[:payment_received] } - .to_json, 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), + params: { status: Auction.statuses[:payment_received] }, + as: :json new_whois_record = Whois::Record.find_by(name: @auction.domain) assert_equal Time.zone.parse('2010-07-05 10:00'), new_whois_record.updated_at @@ -114,16 +124,16 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest def test_inaccessible_when_ip_address_is_not_allowed ENV['auction_api_allowed_ips'] = '' - patch api_v1_auction_path(@auction.uuid), { status: 'any' }.to_json, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path(@auction.uuid), params: { status: 'any' }, as: :json assert_response :unauthorized end def test_auction_not_found assert_raises ActiveRecord::RecordNotFound do - patch api_v1_auction_path('non-existing-uuid'), { status: Auction.statuses[:no_bids] }.to_json, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_auction_path('non-existing-uuid'), + params: { status: Auction.statuses[:no_bids] }, + as: :json end end end diff --git a/test/integration/api/v1/registrant/contacts/details_test.rb b/test/integration/api/v1/registrant/contacts/details_test.rb index 073c8e2b8..901d5be92 100644 --- a/test/integration/api/v1/registrant/contacts/details_test.rb +++ b/test/integration/api/v1/registrant/contacts/details_test.rb @@ -14,8 +14,8 @@ class RegistrantApiV1ContactDetailsTest < ActionDispatch::IntegrationTest end def test_returns_contact_details - get api_v1_registrant_contact_path(@contact.uuid), nil, 'HTTP_AUTHORIZATION' => auth_token, - 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contact_path(@contact.uuid), as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :ok assert_equal ({ id: @contact.uuid, @@ -43,8 +43,8 @@ class RegistrantApiV1ContactDetailsTest < ActionDispatch::IntegrationTest end def test_non_existent_contact - get api_v1_registrant_contact_path('non-existent'), nil, 'HTTP_AUTHORIZATION' => auth_token, - 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contact_path('non-existent'), as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :not_found assert_equal({ errors: [base: ['Contact not found']] }, JSON.parse(response.body, @@ -52,7 +52,7 @@ class RegistrantApiV1ContactDetailsTest < ActionDispatch::IntegrationTest end def test_anonymous_user - get api_v1_registrant_contact_path(@contact.uuid), nil, 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contact_path(@contact.uuid) assert_response :unauthorized assert_equal({ errors: [base: ['Not authorized']] }, JSON.parse(response.body, @@ -66,8 +66,8 @@ class RegistrantApiV1ContactDetailsTest < ActionDispatch::IntegrationTest assert_equal 'US-1234', @user.registrant_ident CompanyRegister::Client.stub(:new, CompanyRegisterClientStub.new) do - get api_v1_registrant_contact_path(@contact.uuid), nil, 'HTTP_AUTHORIZATION' => auth_token, - 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contact_path(@contact.uuid), as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } end response_json = JSON.parse(response.body, symbolize_names: true) @@ -78,8 +78,8 @@ class RegistrantApiV1ContactDetailsTest < ActionDispatch::IntegrationTest assert_equal 'US-1234', @user.registrant_ident @contact.update!(ident: '12345') - get api_v1_registrant_contact_path(@contact.uuid), nil, 'HTTP_AUTHORIZATION' => auth_token, - 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contact_path(@contact.uuid), as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :not_found response_json = JSON.parse(response.body, symbolize_names: true) diff --git a/test/integration/api/v1/registrant/contacts/list_test.rb b/test/integration/api/v1/registrant/contacts/list_test.rb index 36b5cf6e3..864d56c0d 100644 --- a/test/integration/api/v1/registrant/contacts/list_test.rb +++ b/test/integration/api/v1/registrant/contacts/list_test.rb @@ -20,8 +20,7 @@ class RegistrantApiV1ContactListTest < ActionDispatch::IntegrationTest assert_equal 'US', @contact.ident_country_code assert_equal 'US-1234', @user.registrant_ident - get api_v1_registrant_contacts_path, nil, 'HTTP_AUTHORIZATION' => auth_token, - 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contacts_path, as: :json, headers: { 'HTTP_AUTHORIZATION' => auth_token } response_json = JSON.parse(response.body, symbolize_names: true) assert_equal 1, response_json.size @@ -33,8 +32,7 @@ class RegistrantApiV1ContactListTest < ActionDispatch::IntegrationTest @contact = contacts(:acme_ltd) assert_equal 'acme-ltd-001', @contact.code - get api_v1_registrant_contacts_path, nil, 'HTTP_AUTHORIZATION' => auth_token, - 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contacts_path, as: :json, headers: { 'HTTP_AUTHORIZATION' => auth_token } response_json = JSON.parse(response.body, symbolize_names: true) assert_equal 1, response_json.size @@ -48,8 +46,8 @@ class RegistrantApiV1ContactListTest < ActionDispatch::IntegrationTest assert_equal 'US-1234', @user.registrant_ident CompanyRegister::Client.stub(:new, CompanyRegisterClientStub.new) do - get api_v1_registrant_contacts_path, nil, 'HTTP_AUTHORIZATION' => auth_token, - 'Content-Type' => Mime::JSON.to_s + get api_v1_registrant_contacts_path, as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } end response_json = JSON.parse(response.body, symbolize_names: true) diff --git a/test/integration/api/v1/registrant/contacts/update_test.rb b/test/integration/api/v1/registrant/contacts/update_test.rb index 679ef36e1..6e0c0eea3 100644 --- a/test/integration/api/v1/registrant/contacts/update_test.rb +++ b/test/integration/api/v1/registrant/contacts/update_test.rb @@ -21,12 +21,11 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest email: 'john@shop.test', phone: '+111.1') - patch api_v1_registrant_contact_path(@contact.uuid), { name: 'William', - email: 'william@shop.test', - phone: '+222.2' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { name: 'William', + email: 'william@shop.test', + phone: '+222.2' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :ok @contact.reload @@ -37,10 +36,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest def test_notify_registrar assert_difference -> { @contact.registrar.notifications.count } do - patch api_v1_registrant_contact_path(@contact.uuid), { name: 'new name' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { name: 'new name' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } end notification = @contact.registrar.notifications.last assert_equal 'Contact john-001 has been updated by registrant', notification.text @@ -50,10 +48,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest @contact.update!(fax: '+666.6') ENV['fax_enabled'] = 'true' - patch api_v1_registrant_contact_path(@contact.uuid), { fax: '+777.7' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { fax: '+777.7' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :ok @contact.reload @@ -63,10 +60,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest def test_fax_cannot_be_updated_when_disabled ENV['fax_enabled'] = 'false' - patch api_v1_registrant_contact_path(@contact.uuid), { fax: '+823.7' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { fax: '+823.7' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :bad_request @contact.reload @@ -80,14 +76,13 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest def test_update_address_when_enabled Setting.address_processing = true - patch api_v1_registrant_contact_path(@contact.uuid), { address: { city: 'new city', - street: 'new street', - zip: '92837', - country_code: 'RU', - state: 'new state' } }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { address: { city: 'new city', + street: 'new street', + zip: '92837', + country_code: 'RU', + state: 'new state' } }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :ok @contact.reload @@ -99,10 +94,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest @contact.update!(street: 'any', zip: 'any', city: 'any', state: 'any', country_code: 'US') Setting.address_processing = true - patch api_v1_registrant_contact_path(@contact.uuid), { name: 'any' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { name: 'any' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :ok end @@ -111,11 +105,10 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest @contact.update!(street: 'old street') Setting.address_processing = false - patch api_v1_registrant_contact_path(@contact.uuid), { address: { street: 'new street' } } - .to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), + params: { address: { street: 'new street' } }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } @contact.reload assert_response :bad_request @@ -130,10 +123,10 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest @contact.update!(ident_type: Contact::PRIV, disclosed_attributes: %w[]) - patch api_v1_registrant_contact_path(@contact.uuid), { disclosed_attributes: %w[name] }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), + params: { disclosed_attributes: %w[name] }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } @contact.reload assert_response :ok @@ -143,10 +136,10 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest def test_conceal_private_persons_data @contact.update!(ident_type: Contact::PRIV, disclosed_attributes: %w[name]) - patch api_v1_registrant_contact_path(@contact.uuid), { disclosed_attributes: [] }.to_json, - { 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s } + patch api_v1_registrant_contact_path(@contact.uuid), + params: { disclosed_attributes: [] }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } @contact.reload @@ -166,11 +159,10 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest assert_equal 'US-1234', @user.registrant_ident assert_no_changes -> { @contact.disclosed_attributes } do - patch api_v1_registrant_contact_path(@contact.uuid), { disclosed_attributes: %w[name] } - .to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), + params: { disclosed_attributes: %w[name] }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } @contact.reload end assert_response :bad_request @@ -182,10 +174,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest end def test_return_contact_details - patch api_v1_registrant_contact_path(@contact.uuid), { name: 'new name' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { name: 'new name' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_equal ({ id: @contact.uuid, name: 'new name', code: @contact.code, @@ -211,10 +202,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest end def test_errors - patch api_v1_registrant_contact_path(@contact.uuid), { phone: 'invalid' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { phone: 'invalid' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :bad_request assert_equal ({ errors: { phone: ['Phone nr is invalid'] } }), JSON.parse(response.body, @@ -225,10 +215,9 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest assert_equal 'US-1234', @user.registrant_ident @contact.update!(ident: '12345') - patch api_v1_registrant_contact_path(@contact.uuid), { name: 'new name' }.to_json, - 'HTTP_AUTHORIZATION' => auth_token, - 'Accept' => Mime::JSON, - 'Content-Type' => Mime::JSON.to_s + patch api_v1_registrant_contact_path(@contact.uuid), params: { name: 'new name' }, + as: :json, + headers: { 'HTTP_AUTHORIZATION' => auth_token } @contact.reload assert_response :not_found @@ -236,7 +225,8 @@ class RegistrantApiV1ContactUpdateTest < ActionDispatch::IntegrationTest end def test_non_existent_contact - patch api_v1_registrant_contact_path('non-existent'), nil, 'HTTP_AUTHORIZATION' => auth_token + patch api_v1_registrant_contact_path('non-existent'), + headers: { 'HTTP_AUTHORIZATION' => auth_token } assert_response :not_found assert_equal ({ errors: [{ base: ['Not found'] }] }), JSON.parse(response.body, symbolize_names: true) diff --git a/test/integration/epp/base_test.rb b/test/integration/epp/base_test.rb index 6d8531870..456e7b41e 100644 --- a/test/integration/epp/base_test.rb +++ b/test/integration/epp/base_test.rb @@ -15,8 +15,8 @@ class EppBaseTest < EppTestCase begin assert_difference 'ApiLog::EppLog.count' do - post '/epp/command/internal_error', { frame: valid_request_xml }, - 'HTTP_COOKIE' => 'session=api_bestnames' + post '/epp/command/internal_error', params: { frame: valid_request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :command_failed rescue @@ -32,7 +32,8 @@ class EppBaseTest < EppTestCase XML - post valid_command_path, { frame: invalid_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post valid_command_path, params: { frame: invalid_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :syntax_error end @@ -50,8 +51,8 @@ class EppBaseTest < EppTestCase XML - post epp_info_path, { frame: xml_of_epp_command_that_requires_authentication }, - 'HTTP_COOKIE' => 'session=non-existent' + post epp_info_path, params: { frame: xml_of_epp_command_that_requires_authentication }, + headers: { 'HTTP_COOKIE' => 'session=non-existent' } assert_epp_response :authorization_error end @@ -74,8 +75,8 @@ class EppBaseTest < EppTestCase XML - post epp_info_path, { frame: xml_of_epp_command_that_requires_authorization }, - 'HTTP_COOKIE' => "session=#{session.session_id}" + post epp_info_path, params: { frame: xml_of_epp_command_that_requires_authorization }, + headers: { 'HTTP_COOKIE' => "session=#{session.session_id}" } assert_epp_response :authorization_error end diff --git a/test/integration/epp/contact/base_test.rb b/test/integration/epp/contact/base_test.rb index ef10fdb35..79bb8579c 100644 --- a/test/integration/epp/contact/base_test.rb +++ b/test/integration/epp/contact/base_test.rb @@ -14,7 +14,8 @@ class EppContactBaseTest < EppTestCase XML - post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_does_not_exist end diff --git a/test/integration/epp/contact/check/base_test.rb b/test/integration/epp/contact/check/base_test.rb index 4e630c94c..528d69d86 100644 --- a/test/integration/epp/contact/check/base_test.rb +++ b/test/integration/epp/contact/check/base_test.rb @@ -21,7 +21,8 @@ class EppContactCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -42,7 +43,8 @@ class EppContactCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '1', response_xml.at_xpath('//contact:id', contact: xml_schema)['avail'] @@ -65,7 +67,8 @@ class EppContactCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//contact:id', contact: xml_schema)['avail'] @@ -88,7 +91,8 @@ class EppContactCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal 3, response_xml.xpath('//contact:cd', contact: xml_schema).size diff --git a/test/integration/epp/contact/create/base_test.rb b/test/integration/epp/contact/create/base_test.rb index 1f749123c..0a14f1f4f 100644 --- a/test/integration/epp/contact/create/base_test.rb +++ b/test/integration/epp/contact/create/base_test.rb @@ -29,7 +29,8 @@ class EppContactCreateBaseTest < EppTestCase XML assert_difference 'Contact.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :completed_successfully @@ -68,7 +69,8 @@ class EppContactCreateBaseTest < EppTestCase XML - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => "session=#{session.session_id}" } contact = Contact.find_by(name: name) assert_equal "#{session.user.registrar.code}:#{code}".upcase, contact.code @@ -98,7 +100,8 @@ class EppContactCreateBaseTest < EppTestCase XML assert_no_difference 'Contact.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :required_parameter_missing end diff --git a/test/integration/epp/contact/delete/base_test.rb b/test/integration/epp/contact/delete/base_test.rb index d8ce06c95..26ba63897 100644 --- a/test/integration/epp/contact/delete/base_test.rb +++ b/test/integration/epp/contact/delete/base_test.rb @@ -21,7 +21,8 @@ class EppContactDeleteBaseTest < EppTestCase XML assert_difference 'Contact.count', -1 do - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :completed_successfully end @@ -47,7 +48,8 @@ class EppContactDeleteBaseTest < EppTestCase XML assert_no_difference 'Contact.count' do - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :object_association_prohibits_operation end @@ -55,7 +57,7 @@ class EppContactDeleteBaseTest < EppTestCase private def deletable_contact - Domain.update_all(registrant_id: contacts(:william)) + Domain.update_all(registrant_id: contacts(:william).id) DomainContact.delete_all contacts(:john) end diff --git a/test/integration/epp/contact/info/base_test.rb b/test/integration/epp/contact/info/base_test.rb index 6bfcc896d..23a839801 100644 --- a/test/integration/epp/contact/info/base_test.rb +++ b/test/integration/epp/contact/info/base_test.rb @@ -29,7 +29,8 @@ class EppContactInfoBaseTest < EppTestCase XML - post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully diff --git a/test/integration/epp/contact/transfer/base_test.rb b/test/integration/epp/contact/transfer/base_test.rb index e76fce5e4..2d4ebb62c 100644 --- a/test/integration/epp/contact/transfer/base_test.rb +++ b/test/integration/epp/contact/transfer/base_test.rb @@ -16,7 +16,8 @@ class EppContactTransferBaseTest < EppTestCase XML - post epp_transfer_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :unimplemented end diff --git a/test/integration/epp/contact/update/base_test.rb b/test/integration/epp/contact/update/base_test.rb index ad5e58862..3d332711f 100644 --- a/test/integration/epp/contact/update/base_test.rb +++ b/test/integration/epp/contact/update/base_test.rb @@ -37,7 +37,8 @@ class EppContactUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @contact.reload assert_epp_response :completed_successfully @@ -69,7 +70,8 @@ class EppContactUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_emails 1 end @@ -97,7 +99,8 @@ class EppContactUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_no_emails end @@ -128,7 +131,8 @@ class EppContactUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_no_emails end @@ -154,7 +158,8 @@ class EppContactUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_does_not_exist end @@ -188,7 +193,8 @@ class EppContactUpdateBaseTest < EppTestCase XML assert_no_changes -> { @contact.updated_at } do - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :data_management_policy_violation end @@ -220,7 +226,8 @@ class EppContactUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :completed_successfully end @@ -230,6 +237,6 @@ class EppContactUpdateBaseTest < EppTestCase def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) other_contact = contacts(:william) assert_not_equal other_contact, contact - Domain.update_all(registrant_id: other_contact) + Domain.update_all(registrant_id: other_contact.id) end end diff --git a/test/integration/epp/domain/base_test.rb b/test/integration/epp/domain/base_test.rb index 125e173a7..34d9fb2bd 100644 --- a/test/integration/epp/domain/base_test.rb +++ b/test/integration/epp/domain/base_test.rb @@ -14,7 +14,8 @@ class EppDomainBaseTest < EppTestCase XML - post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_does_not_exist end diff --git a/test/integration/epp/domain/check/auction_test.rb b/test/integration/epp/domain/check/auction_test.rb index 7b4dcb595..9fee851b6 100644 --- a/test/integration/epp/domain/check/auction_test.rb +++ b/test/integration/epp/domain/check/auction_test.rb @@ -28,7 +28,8 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -52,7 +53,8 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -76,7 +78,8 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -100,7 +103,8 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -124,7 +128,8 @@ class EppDomainCheckAuctionTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully diff --git a/test/integration/epp/domain/check/base_test.rb b/test/integration/epp/domain/check/base_test.rb index bed7a5b2f..5966f6239 100644 --- a/test/integration/epp/domain/check/base_test.rb +++ b/test/integration/epp/domain/check/base_test.rb @@ -15,7 +15,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -36,7 +37,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -59,7 +61,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -80,7 +83,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -103,7 +107,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -126,7 +131,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -149,7 +155,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd')['avail'] @@ -172,7 +179,8 @@ class EppDomainCheckBaseTest < EppTestCase XML - post epp_check_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_check_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal 3, response_xml.xpath('//domain:cd', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').size diff --git a/test/integration/epp/domain/create/auction_idn_test.rb b/test/integration/epp/domain/create/auction_idn_test.rb index c5e9f840c..822253ee5 100644 --- a/test/integration/epp/domain/create/auction_idn_test.rb +++ b/test/integration/epp/domain/create/auction_idn_test.rb @@ -39,7 +39,8 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end refute Domain.where(name: @idn_auction.domain).exists? @@ -73,7 +74,8 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames'} end refute Domain.where(name: @idn_auction.domain).exists? @@ -106,7 +108,8 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames'} end refute Domain.where(name: @idn_auction.domain).exists? @@ -139,7 +142,8 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames'} end refute Domain.where(name: @idn_auction.domain).exists? @@ -176,7 +180,8 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames'} end @idn_auction.reload @@ -212,7 +217,8 @@ class EppDomainCreateAuctionIdnTest < EppTestCase XML assert_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames'} end @idn_auction.reload diff --git a/test/integration/epp/domain/create/auction_test.rb b/test/integration/epp/domain/create/auction_test.rb index 863f473a7..7e4c2ecb7 100644 --- a/test/integration/epp/domain/create/auction_test.rb +++ b/test/integration/epp/domain/create/auction_test.rb @@ -31,7 +31,8 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :completed_successfully end @@ -68,7 +69,8 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :completed_successfully end @@ -100,7 +102,8 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end @auction.reload @@ -132,7 +135,8 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :required_parameter_missing end @@ -164,7 +168,8 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :invalid_authorization_information end @@ -195,7 +200,8 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :required_parameter_missing end @@ -222,7 +228,8 @@ class EppDomainCreateAuctionTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :parameter_value_policy_error end diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index 8e4d28d7a..ff8da3696 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -28,7 +28,8 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :completed_successfully @@ -71,7 +72,8 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :completed_successfully @@ -105,7 +107,8 @@ class EppDomainCreateBaseTest < EppTestCase XML - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :completed_successfully assert_equal transfer_code, Domain.find_by(name: name).transfer_code @@ -135,7 +138,8 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :data_management_policy_violation end @@ -164,7 +168,8 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :invalid_authorization_information end @@ -192,7 +197,8 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :required_parameter_missing end @@ -220,7 +226,8 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => "session=#{session.session_id}" + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => "session=#{session.session_id}" } end assert_epp_response :billing_failure end @@ -248,7 +255,8 @@ class EppDomainCreateBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_create_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :billing_failure end diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index 0a70afe2e..59dfa4edb 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -34,7 +34,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_includes Domain.find_by(name: 'invalid.test').statuses, DomainStatus::PENDING_DELETE_CONFIRMATION assert_epp_response :completed_successfully_action_pending end @@ -62,7 +62,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML assert_no_difference 'Domain.count' do - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :object_status_prohibits_operation end @@ -89,7 +89,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert @domain.registrant_verification_asked? @@ -120,7 +120,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_not @domain.registrant_verification_asked? @@ -151,7 +151,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_not @domain.registrant_verification_asked? @@ -176,7 +176,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :required_parameter_missing end @@ -203,7 +203,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML - post epp_delete_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_status_prohibits_operation end diff --git a/test/integration/epp/domain/info/base_test.rb b/test/integration/epp/domain/info/base_test.rb index 041c39cf3..26f0ecce1 100644 --- a/test/integration/epp/domain/info/base_test.rb +++ b/test/integration/epp/domain/info/base_test.rb @@ -21,7 +21,8 @@ class EppDomainInfoBaseTest < EppTestCase XML - post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully @@ -49,7 +50,8 @@ class EppDomainInfoBaseTest < EppTestCase XML - post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_info_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } response_xml = Nokogiri::XML(response.body) assert_equal '65078d5', response_xml.at_xpath('//domain:authInfo/domain:pw', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -76,7 +78,8 @@ class EppDomainInfoBaseTest < EppTestCase XML - post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_goodnames' + post epp_info_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } response_xml = Nokogiri::XML(response.body) assert_equal '65078d5', response_xml.at_xpath('//domain:authInfo/domain:pw', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -99,7 +102,8 @@ class EppDomainInfoBaseTest < EppTestCase XML - post epp_info_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_goodnames' + post epp_info_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } response_xml = Nokogiri::XML(response.body) assert_nil response_xml.at_xpath('//domain:authInfo/domain:pw', diff --git a/test/integration/epp/domain/renew/base_test.rb b/test/integration/epp/domain/renew/base_test.rb index 6c11f826e..541aab2a8 100644 --- a/test/integration/epp/domain/renew/base_test.rb +++ b/test/integration/epp/domain/renew/base_test.rb @@ -1,7 +1,7 @@ require 'test_helper' class EppDomainRenewBaseTest < EppTestCase - self.use_transactional_fixtures = false + self.use_transactional_tests = false def test_renews_domain travel_to Time.zone.parse('2010-07-05') @@ -24,7 +24,8 @@ class EppDomainRenewBaseTest < EppTestCase XML - post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } domain.reload assert_epp_response :completed_successfully @@ -50,7 +51,8 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } domain.reload end assert_epp_response :object_status_prohibits_operation @@ -77,8 +79,8 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post epp_renew_path, { frame: request_xml }, - 'HTTP_COOKIE' => "session=#{session.session_id}" + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => "session=#{session.session_id}" } domain.reload end assert_epp_response :authorization_error @@ -105,8 +107,8 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_difference -> { domain.valid_to } do - post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => - "session=#{session.session_id}" + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => "session=#{session.session_id}" } domain.reload end assert_epp_response :billing_failure @@ -132,7 +134,8 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } domain.reload end assert_epp_response :billing_failure @@ -158,7 +161,8 @@ class EppDomainRenewBaseTest < EppTestCase XML assert_no_changes -> { domain.valid_to } do - post epp_renew_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } domain.reload end assert_epp_response :parameter_value_policy_error diff --git a/test/integration/epp/domain/transfer/query_test.rb b/test/integration/epp/domain/transfer/query_test.rb index 11e59d5ba..d6f62e223 100644 --- a/test/integration/epp/domain/transfer/query_test.rb +++ b/test/integration/epp/domain/transfer/query_test.rb @@ -2,7 +2,8 @@ require 'test_helper' class EppDomainTransferQueryTest < EppTestCase def test_returns_domain_transfer_details - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } xml_doc = Nokogiri::XML(response.body) assert_epp_response :completed_successfully assert_equal 'shop.test', xml_doc.xpath('//domain:name', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text @@ -28,14 +29,16 @@ class EppDomainTransferQueryTest < EppTestCase XML - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :invalid_authorization_information end def test_no_domain_transfer domains(:shop).transfers.delete_all - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_does_not_exist end diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index caa068999..c7a838ca6 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -13,24 +13,28 @@ class EppDomainTransferRequestTest < EppTestCase end def test_transfers_domain_at_once - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } assert_epp_response :completed_successfully end def test_creates_new_domain_transfer assert_difference -> { @domain.transfers.size } do - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_approves_automatically_if_auto_approval_is_enabled - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } assert_equal 'serverApproved', Nokogiri::XML(response.body).xpath('//domain:trStatus', 'domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd').text end def test_assigns_new_registrar - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload assert_equal @new_registrar, @domain.registrar end @@ -38,7 +42,8 @@ class EppDomainTransferRequestTest < EppTestCase def test_regenerates_transfer_code @old_transfer_code = @domain.transfer_code - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload refute_equal @domain.transfer_code, @old_transfer_code @@ -48,31 +53,36 @@ class EppDomainTransferRequestTest < EppTestCase @old_registrar = @domain.registrar assert_difference -> { @old_registrar.notifications.count } do - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_duplicates_registrant_admin_and_tech_contacts assert_difference -> { @new_registrar.contacts.size }, 3 do - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_reuses_identical_contact - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } assert_equal 1, @new_registrar.contacts.where(name: 'William').size end def test_saves_legal_document - assert_difference -> { @domain.legal_documents(true).size } do - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + assert_difference -> { @domain.legal_documents.reload.size } do + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } end end def test_non_transferable_domain @domain.update!(statuses: [DomainStatus::SERVER_TRANSFER_PROHIBITED]) - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } domains(:shop).reload assert_equal registrars(:bestnames), domains(:shop).registrar @@ -82,7 +92,8 @@ class EppDomainTransferRequestTest < EppTestCase def test_discarded_domain_cannot_be_transferred @domain.update!(statuses: [DomainStatus::DELETE_CANDIDATE]) - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload assert_equal registrars(:bestnames), @domain.registrar @@ -91,7 +102,8 @@ class EppDomainTransferRequestTest < EppTestCase def test_same_registrar assert_no_difference -> { @domain.transfers.size } do - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end assert_epp_response :use_error end @@ -113,7 +125,8 @@ class EppDomainTransferRequestTest < EppTestCase XML - post epp_transfer_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } + post epp_transfer_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_goodnames' } @domain.reload assert_epp_response :invalid_authorization_information diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 29fc1b875..41c451373 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -34,7 +34,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_equal 'f0ff7d17b0', @domain.transfer_code assert_epp_response :completed_successfully @@ -56,7 +57,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_status_prohibits_operation end @@ -76,7 +78,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_status_prohibits_operation response_xml = Nokogiri::XML(response.body) @@ -109,7 +112,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_epp_response :completed_successfully_action_pending @@ -145,7 +149,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_epp_response :completed_successfully_action_pending @@ -179,7 +184,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_epp_response :completed_successfully @@ -214,7 +220,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_epp_response :completed_successfully @@ -250,7 +257,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_epp_response :completed_successfully @@ -287,7 +295,8 @@ class EppDomainUpdateBaseTest < EppTestCase XML - post epp_update_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } @domain.reload assert_epp_response :completed_successfully diff --git a/test/integration/epp/hello_test.rb b/test/integration/epp/hello_test.rb index c7d5356c2..b2e03c20b 100644 --- a/test/integration/epp/hello_test.rb +++ b/test/integration/epp/hello_test.rb @@ -9,7 +9,8 @@ class EppHelloTest < EppTestCase XML - get epp_hello_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=non-existent' + get epp_hello_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=non-existent' } response_xml = Nokogiri::XML(response.body) assert_equal 'EPP server (EIS)', response_xml.at_css('greeting > svID').text diff --git a/test/integration/epp/login/credentials_test.rb b/test/integration/epp/login/credentials_test.rb index e6cc7742b..a62579766 100644 --- a/test/integration/epp/login/credentials_test.rb +++ b/test/integration/epp/login/credentials_test.rb @@ -23,7 +23,8 @@ class EppLoginCredentialsTest < EppTestCase XML - post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=new_session_id' } assert EppSession.find_by(session_id: 'new_session_id') assert_equal users(:api_bestnames), EppSession.find_by(session_id: 'new_session_id').user assert_epp_response :completed_successfully @@ -55,7 +56,8 @@ class EppLoginCredentialsTest < EppTestCase XML - post epp_login_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=any_random_string' + post epp_login_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=any_random_string' } assert_epp_response :authentication_error_server_closing_connection end diff --git a/test/integration/epp/login/password_change_test.rb b/test/integration/epp/login/password_change_test.rb index 4466248a8..3b1834406 100644 --- a/test/integration/epp/login/password_change_test.rb +++ b/test/integration/epp/login/password_change_test.rb @@ -24,7 +24,8 @@ class EppLoginPasswordChangeTest < EppTestCase XML - post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=new_session_id' } assert_equal 'new-password', users(:api_bestnames).plain_text_password assert_epp_response :completed_successfully end diff --git a/test/integration/epp/login/session_limit_test.rb b/test/integration/epp/login/session_limit_test.rb index f68aac4e4..f1d83fe7b 100644 --- a/test/integration/epp/login/session_limit_test.rb +++ b/test/integration/epp/login/session_limit_test.rb @@ -14,7 +14,8 @@ class EppLoginSessionLimitTest < EppTestCase end assert_difference 'EppSession.count' do - post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=new_session_id' } end assert_epp_response :completed_successfully end @@ -27,7 +28,8 @@ class EppLoginSessionLimitTest < EppTestCase end assert_no_difference 'EppSession.count' do - post epp_login_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + post epp_login_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=new_session_id' } end assert_epp_response :authentication_error_server_closing_connection end diff --git a/test/integration/epp/logout_test.rb b/test/integration/epp/logout_test.rb index a578246ae..62fa06ca9 100644 --- a/test/integration/epp/logout_test.rb +++ b/test/integration/epp/logout_test.rb @@ -2,22 +2,26 @@ require 'test_helper' class EppLogoutTest < EppTestCase def test_success_response - post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_logout_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :completed_successfully_ending_session end def test_ends_current_session - post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_logout_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_nil EppSession.find_by(session_id: 'api_bestnames') end def test_keeps_other_sessions_intact - post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + post epp_logout_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert EppSession.find_by(session_id: 'api_goodnames') end def test_anonymous_user - post epp_logout_path, { frame: request_xml }, { 'HTTP_COOKIE' => 'session=non-existent' } + post epp_logout_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=non-existent' } assert_epp_response :authorization_error end diff --git a/test/integration/epp/poll_test.rb b/test/integration/epp/poll_test.rb index 5ccd4258a..c08b0fd9a 100644 --- a/test/integration/epp/poll_test.rb +++ b/test/integration/epp/poll_test.rb @@ -15,7 +15,8 @@ class EppPollTest < EppTestCase XML - post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } xml_doc = Nokogiri::XML(response.body) assert_epp_response :completed_successfully_ack_to_dequeue @@ -36,7 +37,8 @@ class EppPollTest < EppTestCase XML - post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } xml_doc = Nokogiri::XML(response.body) namespace = 'https://epp.tld.ee/schema/changePoll-1.0.xsd' @@ -60,7 +62,8 @@ class EppPollTest < EppTestCase XML - post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :completed_successfully_no_messages end @@ -77,7 +80,8 @@ class EppPollTest < EppTestCase XML - post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } notification.reload xml_doc = Nokogiri::XML(response.body) @@ -98,7 +102,8 @@ class EppPollTest < EppTestCase XML - post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } notification.reload assert notification.unread? @@ -114,7 +119,8 @@ class EppPollTest < EppTestCase XML - post epp_poll_path, { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + post epp_poll_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } assert_epp_response :object_does_not_exist end diff --git a/test/integration/registrant_area/sign_in/id_card_test.rb b/test/integration/registrant_area/sign_in/id_card_test.rb index 68f0d408e..fe6c8a7ef 100644 --- a/test/integration/registrant_area/sign_in/id_card_test.rb +++ b/test/integration/registrant_area/sign_in/id_card_test.rb @@ -6,9 +6,9 @@ class RegistrantAreaIdCardSignInTest < ApplicationIntegrationTest end def test_succeeds - post_via_redirect registrant_id_card_sign_in_path, nil, - 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,1234', - 'SSL_CLIENT_I_DN_C' => 'US' + post registrant_id_card_sign_in_path, headers: { 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,1234', + 'SSL_CLIENT_I_DN_C' => 'US' } + follow_redirect! assert_response :ok assert_equal registrant_root_path, path @@ -16,7 +16,7 @@ class RegistrantAreaIdCardSignInTest < ApplicationIntegrationTest end def test_fails_when_certificate_is_absent - post_via_redirect registrant_id_card_sign_in_path, nil, 'SSL_CLIENT_S_DN_CN' => '' + post registrant_id_card_sign_in_path, headers: { 'SSL_CLIENT_S_DN_CN' => '' } assert_response :ok assert_equal registrant_id_card_sign_in_path, path diff --git a/test/integration/registrar_area/invoices/payment_callback_test.rb b/test/integration/registrar_area/invoices/payment_callback_test.rb index 985b93914..2303158a7 100644 --- a/test/integration/registrar_area/invoices/payment_callback_test.rb +++ b/test/integration/registrar_area/invoices/payment_callback_test.rb @@ -13,7 +13,7 @@ class PaymentCallbackTest < ApplicationIntegrationTest assert_matching_bank_transaction_exists(invoice) request_params = every_pay_request_params.merge(invoice_id: invoice.id) - post "/registrar/pay/callback/every_pay", request_params + post "/registrar/pay/callback/every_pay", params: request_params assert_response :ok end diff --git a/test/integration/registrar_area/invoices/payment_return_test.rb b/test/integration/registrar_area/invoices/payment_return_test.rb index b6317a0d0..de65cccb0 100644 --- a/test/integration/registrar_area/invoices/payment_return_test.rb +++ b/test/integration/registrar_area/invoices/payment_return_test.rb @@ -60,7 +60,7 @@ class PaymentReturnTest < ApplicationIntegrationTest def test_every_pay_return_creates_activity_redirects_to_invoice_path request_params = every_pay_request_params.merge(invoice_id: @invoice.id) - post "/registrar/pay/return/every_pay", request_params + post "/registrar/pay/return/every_pay", params: request_params assert_equal(302, response.status) assert_redirected_to(registrar_invoice_path(@invoice)) end @@ -68,14 +68,14 @@ class PaymentReturnTest < ApplicationIntegrationTest def test_Every_Pay_return_raises_RecordNotFound request_params = every_pay_request_params.merge(invoice_id: "178907") assert_raises(ActiveRecord::RecordNotFound) do - post "/registrar/pay/return/every_pay", request_params + post "/registrar/pay/return/every_pay", params: request_params end end def test_bank_link_return_redirects_to_invoice_paths request_params = bank_link_request_params.merge(invoice_id: @invoice.id) - post "/registrar/pay/return/seb", request_params + post "/registrar/pay/return/seb", params: request_params assert_equal(302, response.status) assert_redirected_to(registrar_invoice_path(@invoice)) end @@ -83,7 +83,7 @@ class PaymentReturnTest < ApplicationIntegrationTest def test_bank_link_return request_params = bank_link_request_params.merge(invoice_id: "178907") assert_raises(ActiveRecord::RecordNotFound) do - post "/registrar/pay/return/seb", request_params + post "/registrar/pay/return/seb", params: request_params end end end diff --git a/test/integration/registrar_area/settings/balance_auto_reload_test.rb b/test/integration/registrar_area/settings/balance_auto_reload_test.rb index 2c89630ea..1a2c3f835 100644 --- a/test/integration/registrar_area/settings/balance_auto_reload_test.rb +++ b/test/integration/registrar_area/settings/balance_auto_reload_test.rb @@ -13,8 +13,8 @@ class RegistrarAreaSettingsBalanceAutoReloadIntegrationTest < ActionDispatch::In threshold = 10 assert_nil @registrar.settings['balance_auto_reload'] - patch registrar_settings_balance_auto_reload_path, { type: { amount: amount, - threshold: threshold } } + patch registrar_settings_balance_auto_reload_path, params: { type: { amount: amount, + threshold: threshold } } @registrar.reload assert_equal amount, @registrar.settings['balance_auto_reload']['type']['amount'] diff --git a/test/integration/registrar_area/sign_in/id_card_test.rb b/test/integration/registrar_area/sign_in/id_card_test.rb index 0a38e4105..1441c90ca 100644 --- a/test/integration/registrar_area/sign_in/id_card_test.rb +++ b/test/integration/registrar_area/sign_in/id_card_test.rb @@ -13,7 +13,8 @@ class RegistrarAreaIdCardSignInTest < ApplicationIntegrationTest def test_signs_in_a_user_when_id_card_owner_is_found assert_equal '1234', @user.identity_code - post_via_redirect registrar_id_card_sign_in_path, nil, 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,1234' + post registrar_id_card_sign_in_path, headers: { 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,1234' } + follow_redirect! assert_response :ok assert_equal registrar_root_path, path @@ -21,8 +22,8 @@ class RegistrarAreaIdCardSignInTest < ApplicationIntegrationTest end def test_does_not_sign_in_a_user_when_id_card_owner_is_not_found - post_via_redirect registrar_id_card_sign_in_path, nil, - 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,unacceptable-personal-code' + post registrar_id_card_sign_in_path, + headers: { 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,unacceptable-personal-code' } assert_nil controller.current_registrar_user assert_equal registrar_id_card_sign_in_path, path @@ -36,8 +37,8 @@ class RegistrarAreaIdCardSignInTest < ApplicationIntegrationTest Setting.registrar_ip_whitelist_enabled = true - post registrar_id_card_sign_in_path, nil, 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,1234', - 'REMOTE_ADDR' => '127.0.0.2' + post registrar_id_card_sign_in_path, headers: { 'SSL_CLIENT_S_DN_CN' => 'DOE,JOHN,1234', + 'REMOTE_ADDR' => '127.0.0.2' } assert_equal registrar_id_card_sign_in_path, path assert_equal 'Access denied from IP 127.0.0.2', response.body @@ -47,7 +48,7 @@ class RegistrarAreaIdCardSignInTest < ApplicationIntegrationTest end def test_does_not_sign_in_a_user_when_certificate_is_absent - post_via_redirect registrar_id_card_sign_in_path, nil, 'SSL_CLIENT_S_DN_CN' => '' + post registrar_id_card_sign_in_path, headers: { 'SSL_CLIENT_S_DN_CN' => '' } assert_nil controller.current_registrar_user assert_equal registrar_id_card_sign_in_path, path diff --git a/test/learning/paper_trail_test.rb b/test/learning/paper_trail_test.rb index d4c76b026..9396496b7 100644 --- a/test/learning/paper_trail_test.rb +++ b/test/learning/paper_trail_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class Post < ActiveRecord::Base +class Post < ApplicationRecord has_paper_trail end @@ -38,7 +38,7 @@ class PaperTrailLearningTest < ActiveSupport::TestCase def test_touch_with_version @record = Post.create!(title: 'any') - + assert_difference -> { @record.versions.size } do @record.touch_with_version end diff --git a/test/models/contact/disclosable_test.rb b/test/models/contact/disclosable_test.rb index 4b944513d..02adfbb08 100644 --- a/test/models/contact/disclosable_test.rb +++ b/test/models/contact/disclosable_test.rb @@ -28,7 +28,7 @@ class ContactDisclosableTest < ActiveSupport::TestCase @contact.disclosed_attributes = %w[some undisclosable] assert @contact.invalid? - assert_includes @contact.errors.get(:disclosed_attributes), 'contain unsupported attribute(s)' + assert_includes @contact.errors[:disclosed_attributes], 'contain unsupported attribute(s)' end def test_valid_when_attribute_is_disclosable diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb index 8a2301395..923a8d44e 100644 --- a/test/models/contact_test.rb +++ b/test/models/contact_test.rb @@ -169,15 +169,15 @@ class ContactTest < ActiveSupport::TestCase end def test_linked_when_in_use_as_registrant - Domain.update_all(registrant_id: @contact) + Domain.update_all(registrant_id: @contact.id) DomainContact.delete_all assert @contact.linked? end def test_linked_when_in_use_as_domain_contact - Domain.update_all(registrant_id: contacts(:william)) - DomainContact.update_all(contact_id: @contact) + Domain.update_all(registrant_id: contacts(:william).id) + DomainContact.update_all(contact_id: @contact.id) assert @contact.linked? end @@ -253,11 +253,11 @@ class ContactTest < ActiveSupport::TestCase def make_contact_free_of_domains_where_it_acts_as_a_registrant(contact) other_contact = contacts(:william) assert_not_equal other_contact, contact - Domain.update_all(registrant_id: other_contact) + Domain.update_all(registrant_id: other_contact.id) end def unlinked_contact - Domain.update_all(registrant_id: contacts(:william)) + Domain.update_all(registrant_id: contacts(:william).id) DomainContact.delete_all contacts(:john) end diff --git a/test/models/domain/releasable/auctionable_test.rb b/test/models/domain/releasable/auctionable_test.rb index c78a148bc..de3ac0ff6 100644 --- a/test/models/domain/releasable/auctionable_test.rb +++ b/test/models/domain/releasable/auctionable_test.rb @@ -2,7 +2,7 @@ require 'test_helper' class DomainReleasableAuctionableTest < ActiveSupport::TestCase # Needed for `test_updates_whois` test because of `after_commit :update_whois_record` in Domain - self.use_transactional_fixtures = false + self.use_transactional_tests = false setup do @domain = domains(:shop) diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 194a10d72..7e681e560 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -247,7 +247,7 @@ class DomainTest < ActiveSupport::TestCase domain3 = domains(:library) domain3.update!(outzone_at: Time.zone.parse('2010-07-05 08:00:01')) Domain.connection.disable_referential_integrity do - Domain.delete_all("id NOT IN (#{[domain1.id, domain2.id, domain3.id].join(',')})") + Domain.where("id NOT IN (#{[domain1.id, domain2.id, domain3.id].join(',')})").delete_all end assert_equal [domain1.id], Domain.outzone_candidates.ids @@ -262,7 +262,7 @@ class DomainTest < ActiveSupport::TestCase domain3 = domains(:library) domain3.update!(valid_to: Time.zone.parse('2010-07-05 08:00:01')) Domain.connection.disable_referential_integrity do - Domain.delete_all("id NOT IN (#{[domain1.id, domain2.id, domain3.id].join(',')})") + Domain.where("id NOT IN (#{[domain1.id, domain2.id, domain3.id].join(',')})").delete_all end assert_equal [domain1.id, domain2.id].sort, Domain.expired.ids.sort diff --git a/test/support/rails5_assertions.rb b/test/support/rails5_assertions.rb index 55a2e8dc6..a11bb3ef1 100644 --- a/test/support/rails5_assertions.rb +++ b/test/support/rails5_assertions.rb @@ -1,3 +1,5 @@ +# Built-in since Rails 5.1 + module ActiveSupport module Testing module Assertions diff --git a/test/system/registrant_area/contacts/update_test.rb b/test/system/registrant_area/contacts/update_test.rb index a7cee049e..95c4ad5c9 100644 --- a/test/system/registrant_area/contacts/update_test.rb +++ b/test/system/registrant_area/contacts/update_test.rb @@ -31,7 +31,7 @@ class RegistrantAreaContactUpdateTest < ApplicationIntegrationTest stub_auth_request request_body = { name: 'new name', email: 'new@inbox.test', phone: '+666.6' }.to_json - headers = { 'Content-Type' => Mime::JSON, + headers = { 'Content-Type' => Mime[:json], 'Authorization' => 'Bearer test-access-token' } url = "https://api.test/api/v1/registrant/contacts/#{@contact.uuid}" update_request_stub = stub_request(:patch, url).with(body: request_body, headers: headers) @@ -115,7 +115,7 @@ class RegistrantAreaContactUpdateTest < ApplicationIntegrationTest country_code: 'AT', state: 'new state', } }.to_json - headers = { 'Content-type' => 'application/json', + headers = { 'Content-type' => Mime[:json], 'Authorization' => 'Bearer test-access-token' } url = "https://api.test/api/v1/registrant/contacts/#{@contact.uuid}" update_request_stub = stub_request(:patch, url).with(body: request_body, headers: headers) @@ -174,7 +174,7 @@ class RegistrantAreaContactUpdateTest < ApplicationIntegrationTest body = { ident: '1234', first_name: 'Registrant', last_name: 'User' } stub_request(:post, 'https://api.test/api/v1/registrant/auth/eid').with(body: body) .to_return(body: { access_token: 'test-access-token' }.to_json, - headers: { 'Content-type' => 'application/json' }, + headers: { 'Content-type' => Mime[:json] }, status: 200) end end diff --git a/test/system/registrar_area/bulk_change/bulk_transfer_test.rb b/test/system/registrar_area/bulk_change/bulk_transfer_test.rb index 944a1f91f..69b755499 100644 --- a/test/system/registrar_area/bulk_change/bulk_transfer_test.rb +++ b/test/system/registrar_area/bulk_change/bulk_transfer_test.rb @@ -7,7 +7,7 @@ class RegistrarAreaBulkTransferTest < ApplicationSystemTestCase def test_transfer_multiple_domains_in_bulk request_body = { data: { domainTransfers: [{ domainName: 'shop.test', transferCode: '65078d5' }] } } - headers = { 'Content-type' => 'application/json' } + headers = { 'Content-type' => Mime[:json] } request_stub = stub_request(:post, /domain_transfers/).with(body: request_body, headers: headers, basic_auth: ['test_goodnames', 'testtest']) @@ -28,7 +28,7 @@ class RegistrarAreaBulkTransferTest < ApplicationSystemTestCase def test_fail_gracefully body = { errors: [{ title: 'epic fail' }] }.to_json - headers = { 'Content-type' => 'application/json' } + headers = { 'Content-type' => Mime[:json] } stub_request(:post, /domain_transfers/).to_return(status: 400, body: body, headers: headers) visit registrar_domains_url diff --git a/test/system/registrar_area/bulk_change/nameserver_test.rb b/test/system/registrar_area/bulk_change/nameserver_test.rb index b3f4e70c1..d6b3170d5 100644 --- a/test/system/registrar_area/bulk_change/nameserver_test.rb +++ b/test/system/registrar_area/bulk_change/nameserver_test.rb @@ -12,7 +12,7 @@ class RegistrarAreaNameserverBulkChangeTest < ApplicationSystemTestCase ipv4: %w[192.0.2.55 192.0.2.56], ipv6: %w[2001:db8::55 2001:db8::56] } } } request_stub = stub_request(:put, /registrar\/nameservers/).with(body: request_body, - headers: { 'Content-type' => 'application/json' }, + headers: { 'Content-type' => Mime[:json] }, basic_auth: ['test_goodnames', 'testtest']) .to_return(body: { data: [{ type: 'nameserver', @@ -38,7 +38,7 @@ class RegistrarAreaNameserverBulkChangeTest < ApplicationSystemTestCase def test_fails_gracefully stub_request(:put, /registrar\/nameservers/).to_return(status: 400, body: { errors: [{ title: 'epic fail' }] }.to_json, - headers: { 'Content-type' => 'application/json' }) + headers: { 'Content-type' => Mime[:json] }) visit registrar_domains_url click_link 'Bulk change' diff --git a/test/system/registrar_area/bulk_change/tech_contact_test.rb b/test/system/registrar_area/bulk_change/tech_contact_test.rb index f14fc2208..c678e8f34 100644 --- a/test/system/registrar_area/bulk_change/tech_contact_test.rb +++ b/test/system/registrar_area/bulk_change/tech_contact_test.rb @@ -31,7 +31,7 @@ class RegistrarAreaTechContactBulkChangeTest < ApplicationSystemTestCase stub_request(:patch, /domains\/contacts/) .to_return(status: 400, body: { error: { message: 'epic fail' } }.to_json, - headers: { 'Content-type' => 'application/json' }) + headers: { 'Content-type' => Mime[:json] }) visit registrar_domains_url click_link 'Bulk change' diff --git a/test/tasks/data_migrations/convert_domain_delete_date_test.rb b/test/tasks/data_migrations/convert_domain_delete_date_test.rb index a17e1109b..709334b52 100644 --- a/test/tasks/data_migrations/convert_domain_delete_date_test.rb +++ b/test/tasks/data_migrations/convert_domain_delete_date_test.rb @@ -51,7 +51,7 @@ class ConvertDomainDeleteDateTaskTest < ActiveSupport::TestCase def eliminate_effect_of_all_domains_except(domain) Domain.connection.disable_referential_integrity do - Domain.delete_all("id != #{domain.id}") + Domain.where("id != #{domain.id}").delete_all end end diff --git a/test/tasks/invoices/cancel_overdue_test.rb b/test/tasks/invoices/cancel_overdue_test.rb index 19ef8e0bf..044997ae9 100644 --- a/test/tasks/invoices/cancel_overdue_test.rb +++ b/test/tasks/invoices/cancel_overdue_test.rb @@ -31,7 +31,7 @@ class CancelOverdueInvoicesTaskTest < ActiveSupport::TestCase def eliminate_effect_of_other_invoices Invoice.connection.disable_referential_integrity do - Invoice.delete_all("id != #{@invoice.id}") + Invoice.where("id != #{@invoice.id}").delete_all end end diff --git a/test/test_helper.rb b/test/test_helper.rb index 1310fcaaf..4cd632ea2 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -16,9 +16,17 @@ require 'minitest/mock' require 'capybara/rails' require 'capybara/minitest' require 'webmock/minitest' -require 'support/rails5_assertions' # Remove once upgraded to Rails 5 +require 'support/rails5_assertions' # Remove once upgraded to Rails 5.1 require 'support/assertions/epp_assertions' + +# `bin/rails test` is not the same as `bin/rake test`. +# All tasks will be loaded (and executed) twice when using the former without `Rake::Task.clear`. +# https://github.com/rails/rails/issues/28786 +require 'rake' +Rake::Task.clear +Rails.application.load_tasks + Setting.address_processing = false Setting.registry_country_code = 'US' @@ -43,13 +51,6 @@ class ActiveSupport::TestCase end end -# Allows testing OPTIONS request just like GET or POST -module ActionDispatch::Integration::RequestHelpers - def options(path, parameters = nil, headers_or_env = nil) - process :options, path, parameters, headers_or_env - end -end - class ApplicationIntegrationTest < ActionDispatch::IntegrationTest include Capybara::DSL include Capybara::Minitest::Assertions From 22c6fd61e3d450ba563369ddb93f8723221a914a Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 1 Aug 2018 16:04:32 +0300 Subject: [PATCH 206/757] Change `contacts.name` database column to NOT NULL --- app/models/contact.rb | 2 +- .../20180801114403_change_contacts_name_to_not_null.rb | 5 +++++ db/structure.sql | 3 ++- test/system/admin_area/contact_versions_test.rb | 6 +++--- test/system/admin_area/domain_versions_test.rb | 6 +++--- 5 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 db/migrate/20180801114403_change_contacts_name_to_not_null.rb diff --git a/app/models/contact.rb b/app/models/contact.rb index d45597d3c..1373ff97d 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -288,7 +288,7 @@ class Contact < ApplicationRecord end def to_s - name || '[no name]' + name end def validate_html diff --git a/db/migrate/20180801114403_change_contacts_name_to_not_null.rb b/db/migrate/20180801114403_change_contacts_name_to_not_null.rb new file mode 100644 index 000000000..cfa4064ba --- /dev/null +++ b/db/migrate/20180801114403_change_contacts_name_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeContactsNameToNotNull < ActiveRecord::Migration + def change + change_column_null :contacts, :name, false + end +end \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 32ec2eb15..16d6d1d21 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -613,7 +613,7 @@ CREATE TABLE public.contacts ( ident character varying, ident_type character varying, auth_info character varying NOT NULL, - name character varying, + name character varying NOT NULL, org_name character varying, registrar_id integer NOT NULL, creator_str character varying, @@ -4280,6 +4280,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20180613030330'), ('20180613045614'), ('20180713154915'), +('20180801114403'), ('20180808064402'), ('20180816123540'), ('20180823161237'), diff --git a/test/system/admin_area/contact_versions_test.rb b/test/system/admin_area/contact_versions_test.rb index 88d625c41..2559a203f 100644 --- a/test/system/admin_area/contact_versions_test.rb +++ b/test/system/admin_area/contact_versions_test.rb @@ -18,8 +18,8 @@ class ContactVersionsTest < ApplicationSystemTestCase def create_contact_with_history sql = <<-SQL.squish - INSERT INTO contacts (id, code, email, auth_info, registrar_id) - VALUES (75, 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', #{@registrar.id}); + INSERT INTO contacts (id, name, code, email, auth_info, registrar_id) + VALUES (75, 'test_name', 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', #{@registrar.id}); INSERT INTO log_contacts (item_type, item_id, event, whodunnit, object, object_changes, created_at, session, children, ident_updated_at, uuid) @@ -55,4 +55,4 @@ class ContactVersionsTest < ApplicationSystemTestCase assert_text 'Best Names' assert_text '23.04.18, 18:50 update 1-AdminUser' end -end \ No newline at end of file +end diff --git a/test/system/admin_area/domain_versions_test.rb b/test/system/admin_area/domain_versions_test.rb index 73db8d707..8ff90a562 100644 --- a/test/system/admin_area/domain_versions_test.rb +++ b/test/system/admin_area/domain_versions_test.rb @@ -18,8 +18,8 @@ class DomainVersionsTest < ApplicationSystemTestCase def create_domain_with_history sql = <<-SQL.squish - INSERT INTO contacts (id, code, email, auth_info, registrar_id) - VALUES (54, 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', #{@registrar.id}); + INSERT INTO contacts (id, name, code, email, auth_info, registrar_id) + VALUES (54, 'test_code', 'test_name', 'test@inbox.test', '8b4d462aa04194ca78840a', #{@registrar.id}); INSERT INTO domains (id, name, name_puny, name_dirty, registrar_id, valid_to, registrant_id, transfer_code) @@ -59,4 +59,4 @@ class DomainVersionsTest < ApplicationSystemTestCase assert_text 'Best Names' assert_text '23.04.18, 18:50 update 1-AdminUser' end -end \ No newline at end of file +end From 1b2a1c1a7e3b34d27fd68b1f2cae1e84a58cc96d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 2 Dec 2019 16:44:35 +0200 Subject: [PATCH 207/757] Update `e_invoice` gem Completes https://github.com/internetee/e_invoice/issues/3 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9027ccd5d..2d7582f6e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/e_invoice.git - revision: 917318bd546322408b83567745375c998619c926 + revision: ab13681dff52c927cd4ce0703369e052987e3aa8 branch: master specs: e_invoice (0.1.0) From 6fd172adbbf1033a5d154b64ac61a2d59e6a5cb7 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 6 Dec 2019 20:47:57 +0200 Subject: [PATCH 208/757] Remove `registrant_verifications.domain_name` database column It is not used nor needed. --- app/controllers/admin/pending_deletes_controller.rb | 1 - app/controllers/admin/pending_updates_controller.rb | 1 - .../registrant/domain_delete_confirms_controller.rb | 1 - .../registrant/domain_update_confirms_controller.rb | 1 - app/models/registrant_verification.rb | 2 +- ...1206183853_remove_registrant_verifications_domain_name.rb | 5 +++++ db/structure.sql | 4 ++-- 7 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20191206183853_remove_registrant_verifications_domain_name.rb diff --git a/app/controllers/admin/pending_deletes_controller.rb b/app/controllers/admin/pending_deletes_controller.rb index 9cc8702c5..8e39b306b 100644 --- a/app/controllers/admin/pending_deletes_controller.rb +++ b/app/controllers/admin/pending_deletes_controller.rb @@ -29,7 +29,6 @@ module Admin # steal token token = @domain.registrant_verification_token @registrant_verification = RegistrantVerification.new(domain_id: @domain.id, - domain_name: @domain.name, verification_token: token) end diff --git a/app/controllers/admin/pending_updates_controller.rb b/app/controllers/admin/pending_updates_controller.rb index 4a2e5ec7c..72b1ace6e 100644 --- a/app/controllers/admin/pending_updates_controller.rb +++ b/app/controllers/admin/pending_updates_controller.rb @@ -26,7 +26,6 @@ module Admin # steal token token = @domain.registrant_verification_token @registrant_verification = RegistrantVerification.new(domain_id: @domain.id, - domain_name: @domain.name, verification_token: token) end diff --git a/app/controllers/registrant/domain_delete_confirms_controller.rb b/app/controllers/registrant/domain_delete_confirms_controller.rb index 59492fefb..95eefc368 100644 --- a/app/controllers/registrant/domain_delete_confirms_controller.rb +++ b/app/controllers/registrant/domain_delete_confirms_controller.rb @@ -16,7 +16,6 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController end @registrant_verification = RegistrantVerification.new(domain_id: @domain.id, - domain_name: @domain.name, verification_token: params[:token]) initiator = current_registrant_user ? current_registrant_user.username : diff --git a/app/controllers/registrant/domain_update_confirms_controller.rb b/app/controllers/registrant/domain_update_confirms_controller.rb index d0bc1e7a1..61e623ddf 100644 --- a/app/controllers/registrant/domain_update_confirms_controller.rb +++ b/app/controllers/registrant/domain_update_confirms_controller.rb @@ -16,7 +16,6 @@ class Registrant::DomainUpdateConfirmsController < RegistrantController end @registrant_verification = RegistrantVerification.new(domain_id: @domain.id, - domain_name: @domain.name, verification_token: params[:token]) initiator = current_registrant_user ? current_registrant_user.username : diff --git a/app/models/registrant_verification.rb b/app/models/registrant_verification.rb index 952197cf5..e6b68d955 100644 --- a/app/models/registrant_verification.rb +++ b/app/models/registrant_verification.rb @@ -11,7 +11,7 @@ class RegistrantVerification < ApplicationRecord belongs_to :domain - validates :verification_token, :domain_name, :domain, :action, :action_type, presence: true + validates :verification_token, :domain, :action, :action_type, presence: true def domain_registrant_change_confirm!(initiator) self.action_type = DOMAIN_REGISTRANT_CHANGE diff --git a/db/migrate/20191206183853_remove_registrant_verifications_domain_name.rb b/db/migrate/20191206183853_remove_registrant_verifications_domain_name.rb new file mode 100644 index 000000000..0212c60ea --- /dev/null +++ b/db/migrate/20191206183853_remove_registrant_verifications_domain_name.rb @@ -0,0 +1,5 @@ +class RemoveRegistrantVerificationsDomainName < ActiveRecord::Migration[5.0] + def change + remove_column :registrant_verifications, :domain_name + end +end diff --git a/db/structure.sql b/db/structure.sql index 32ec2eb15..8cbf17850 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1963,7 +1963,6 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; CREATE TABLE public.registrant_verifications ( id integer NOT NULL, - domain_name character varying NOT NULL, verification_token character varying NOT NULL, created_at timestamp without time zone, updated_at timestamp without time zone, @@ -4361,6 +4360,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191007123000'), ('20191008024334'), ('20191024153351'), -('20191024160038'); +('20191024160038'), +('20191206183853'); From 7880d6fb0a40608ea667d0093d34af4c34dad7c4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 8 Dec 2019 18:54:44 +0200 Subject: [PATCH 209/757] Upgrade to Bundler 2 Closes #1078 --- .travis.yml | 2 -- Gemfile | 7 ------- Gemfile.lock | 2 +- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index dcb988d67..24918ddbc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,8 +13,6 @@ before_install: - "sudo mv -f ~/chromedriver /usr/local/share/" - "sudo chmod +x /usr/local/share/chromedriver" - "sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver" - - "gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true" - - "gem install bundler -v '< 2'" before_script: - "cp config/application.yml.sample config/application.yml" - "cp config/database_travis.yml config/database.yml" diff --git a/Gemfile b/Gemfile index 5497cb79f..26294b04e 100644 --- a/Gemfile +++ b/Gemfile @@ -1,10 +1,3 @@ -# Use https only for accessing github -# https://github.com/bundler/bundler/pull/3447 -git_source(:github) do |repo_name| - repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") - "https://github.com/#{repo_name}.git" -end if Bundler::VERSION < '2' - source 'https://rubygems.org' # core diff --git a/Gemfile.lock b/Gemfile.lock index 9027ccd5d..e9f389538 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -500,4 +500,4 @@ DEPENDENCIES wkhtmltopdf-binary BUNDLED WITH - 1.17.3 + 2.0.2 From 19e45f0a70e694df62c07e1c09a3a6e3530d1592 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 20:03:27 +0200 Subject: [PATCH 210/757] Simplify test --- test/system/admin_area/api_users/new_test.rb | 25 ----------------- .../admin_area/registrars/api_users_test.rb | 28 +++++++++++++++++++ 2 files changed, 28 insertions(+), 25 deletions(-) delete mode 100644 test/system/admin_area/api_users/new_test.rb create mode 100644 test/system/admin_area/registrars/api_users_test.rb diff --git a/test/system/admin_area/api_users/new_test.rb b/test/system/admin_area/api_users/new_test.rb deleted file mode 100644 index d34b990c2..000000000 --- a/test/system/admin_area/api_users/new_test.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'application_system_test_case' - -class AdminAreaNewApiUserTest < ApplicationSystemTestCase - setup do - sign_in users(:admin) - end - - def test_new_api_user_creation_with_required_params - visit admin_api_users_url - click_link_or_button 'New API user' - - fill_in 'Username', with: 'newtest' - fill_in 'Password', with: 'testtest' - find('#api_user_registrar_id', visible: false).set(registrars(:bestnames).id) - - assert_difference 'ApiUser.count' do - click_link_or_button 'Save' - end - - assert_current_path admin_api_user_path(ApiUser.last) - assert_text 'Record created' - assert_text 'Username newtest' - assert_text 'Password testtest' - end -end \ No newline at end of file diff --git a/test/system/admin_area/registrars/api_users_test.rb b/test/system/admin_area/registrars/api_users_test.rb new file mode 100644 index 000000000..3be5586b8 --- /dev/null +++ b/test/system/admin_area/registrars/api_users_test.rb @@ -0,0 +1,28 @@ +require 'application_system_test_case' + +class AdminRegistrarsApiUsersSystemTest < ApplicationSystemTestCase + setup do + sign_in users(:admin) + end + + def test_creates_new_api_user_with_required_attributes + username = 'john' + registrar = registrars(:bestnames) + + visit admin_registrar_path(registrar) + click_on 'New API user' + + fill_in 'Username', with: username + fill_in 'Password', with: valid_password + click_on 'Save' + + assert_text 'Record created' + assert_text "Username #{username}" + end + + private + + def valid_password + 'testtest' + end +end From 90f4480f377dffd00ab814ab77a869124b504aac Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 20:03:40 +0200 Subject: [PATCH 211/757] Add tests --- test/system/admin_area/api_users_test.rb | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 test/system/admin_area/api_users_test.rb diff --git a/test/system/admin_area/api_users_test.rb b/test/system/admin_area/api_users_test.rb new file mode 100644 index 000000000..c05975e4f --- /dev/null +++ b/test/system/admin_area/api_users_test.rb @@ -0,0 +1,58 @@ +require 'application_system_test_case' + +class AdminApiUsersSystemTest < ApplicationSystemTestCase + setup do + sign_in users(:admin) + end + + def test_shows_api_user_list + visit admin_api_users_path + + api_user = users(:api_bestnames) + assert_link api_user.username, href: admin_api_user_path(api_user) + end + + def test_shows_api_user_details + api_user = users(:api_bestnames) + + visit admin_api_user_path(api_user) + + assert_text "Username #{api_user.username}" + assert_text "Password #{api_user.plain_text_password}" + assert_link api_user.registrar.name, href: admin_registrar_path(api_user.registrar) + assert_text "Role #{api_user.roles.first}" + assert_text "Active #{api_user.active}" + end + + def test_updates_api_user + api_user = users(:api_bestnames) + new_username = 'new username' + assert_not_equal new_username, api_user.name + + visit admin_api_user_path(api_user) + click_link_or_button 'Edit' + fill_in 'Username', with: new_username + click_link_or_button 'Save' + + assert_text 'Record updated' + assert_text "Username #{new_username}" + end + + def test_deletes_api_user + api_user = unassociated_api_user + + visit admin_api_user_path(api_user) + click_on 'Delete' + + assert_text 'Record deleted' + end + + private + + def unassociated_api_user + new_api_user = users(:api_bestnames).dup + new_api_user.username = "unique-#{rand(100)}" + new_api_user.save! + new_api_user + end +end From eb342cdbd42af5f028b3111b5fe1c8a5d3ab8990 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 20:10:05 +0200 Subject: [PATCH 212/757] Do not allow adding new API users outside of registrar details view This feature is not needed. --- app/views/admin/api_users/index.haml | 2 -- config/locales/admin/api_users.en.yml | 1 - config/routes.rb | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/app/views/admin/api_users/index.haml b/app/views/admin/api_users/index.haml index 4815607a7..2a20d4c59 100644 --- a/app/views/admin/api_users/index.haml +++ b/app/views/admin/api_users/index.haml @@ -1,5 +1,3 @@ -- content_for :actions do - = link_to(t('.new_btn'), new_admin_api_user_path, class: 'btn btn-primary') = render 'shared/title', name: t('.title') .row diff --git a/config/locales/admin/api_users.en.yml b/config/locales/admin/api_users.en.yml index 89a31f081..de4fddb08 100644 --- a/config/locales/admin/api_users.en.yml +++ b/config/locales/admin/api_users.en.yml @@ -2,7 +2,6 @@ en: admin: api_users: index: - new_btn: New API user title: API users active: Active diff --git a/config/routes.rb b/config/routes.rb index 1e9a6bfc4..29aca2855 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -270,7 +270,7 @@ Rails.application.routes.draw do end resources :admin_users - resources :api_users do + resources :api_users, except: %i[new] do resources :certificates do member do post 'sign' From f1992c03a944096b3c9f3e344ec22c41520fd023 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 20:10:49 +0200 Subject: [PATCH 213/757] Remove unused routes --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 29aca2855..5b10d03b2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -259,7 +259,7 @@ Rails.application.routes.draw do end resources :registrars do - resources :api_users + resources :api_users, except: %i[create show edit update destroy] resources :white_ips end From 044bf9caadb9b491ecf82f19a264ee65b72880cf Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 20:37:07 +0200 Subject: [PATCH 214/757] Remove unneeded content type --- app/views/admin/api_users/_form.haml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/views/admin/api_users/_form.haml b/app/views/admin/api_users/_form.haml index 12ea322aa..8cae897e0 100644 --- a/app/views/admin/api_users/_form.haml +++ b/app/views/admin/api_users/_form.haml @@ -1,5 +1,4 @@ -= form_for([:admin, @api_user], multipart: true, - html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| += form_for([:admin, @api_user], html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| = render 'shared/full_errors', object: @api_user .row From 3c5c0c4310d663d4512f935f2ff54513e54d5f38 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 20:53:58 +0200 Subject: [PATCH 215/757] Pass registrar in URL instead of POST params --- .../javascripts/admin/autocomplete.js.coffee | 6 ------ app/controllers/admin/api_users_controller.rb | 11 +++++++---- app/models/api_user.rb | 5 ----- app/views/admin/api_users/_form.haml | 19 +------------------ config/routes.rb | 4 ++-- 5 files changed, 10 insertions(+), 35 deletions(-) diff --git a/app/assets/javascripts/admin/autocomplete.js.coffee b/app/assets/javascripts/admin/autocomplete.js.coffee index 84708055c..2308c1d28 100644 --- a/app/assets/javascripts/admin/autocomplete.js.coffee +++ b/app/assets/javascripts/admin/autocomplete.js.coffee @@ -47,12 +47,6 @@ class @Autocomplete selector: '.js-contact-typeahead' hiddenSelector: '.js-contact-id' - @bindAdminRegistrarSearch: -> - Autocomplete.bindTypeahead - remote: '/admin/registrars/search' - selector: '.js-registrar-typeahead' - hiddenSelector: '.js-registrar-id' - @bindClientContactSearch: -> Autocomplete.bindTypeahead remote: '/client/contacts/search' diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index bbf0a8a4e..0f2b9e914 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -2,6 +2,7 @@ module Admin class ApiUsersController < BaseController load_and_authorize_resource before_action :set_api_user, only: [:show, :edit, :update, :destroy] + before_action :find_registrar, only: %i[new create] def index @q = ApiUser.includes(:registrar).search(params[:q]) @@ -9,12 +10,11 @@ module Admin end def new - @registrar = Registrar.find_by(id: params[:registrar_id]) - @api_user = ApiUser.new(registrar: @registrar) + @api_user = ApiUser.new end def create - @api_user = ApiUser.new(api_user_params) + @api_user = @registrar.api_users.build(api_user_params) if @api_user.save flash[:notice] = I18n.t('record_created') @@ -63,8 +63,11 @@ module Admin def api_user_params params.require(:api_user).permit(:username, :plain_text_password, :active, - :registrar_id, :registrar_typeahead, :identity_code, { roles: [] }) end + + def find_registrar + @registrar = Registrar.find(params[:registrar_id]) + end end end diff --git a/app/models/api_user.rb b/app/models/api_user.rb index d08f17380..e11dbf90f 100644 --- a/app/models/api_user.rb +++ b/app/models/api_user.rb @@ -28,7 +28,6 @@ class ApiUser < User delegate :code, :name, to: :registrar, prefix: true alias_attribute :login, :username - attr_accessor :registrar_typeahead SUPER = 'super' EPP = 'epp' @@ -53,10 +52,6 @@ class ApiUser < User end end - def registrar_typeahead - @registrar_typeahead || registrar || nil - end - def to_s username end diff --git a/app/views/admin/api_users/_form.haml b/app/views/admin/api_users/_form.haml index 8cae897e0..851956e54 100644 --- a/app/views/admin/api_users/_form.haml +++ b/app/views/admin/api_users/_form.haml @@ -1,4 +1,4 @@ -= form_for([:admin, @api_user], html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| += form_for([:admin, @registrar, @api_user], html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| = render 'shared/full_errors', object: @api_user .row @@ -20,18 +20,6 @@ .col-md-7 = f.text_field(:identity_code, class: 'form-control') - .form-group - .form-group.has-feedback.js-typeahead-container - .col-md-4.control-label - = f.label :registrar_typeahead, t(:registrar_name), class: 'required' - .col-md-7 - = f.text_field(:registrar_typeahead, - class: 'form-control js-registrar-typeahead typeahead required', - placeholder: t(:registrar_name), autocomplete: 'off') - %span.glyphicon.glyphicon-ok.form-control-feedback.js-typeahead-ok.hidden - %span.glyphicon.glyphicon-remove.form-control-feedback.js-typeahead-remove - = f.hidden_field(:registrar_id, class: 'js-registrar-id') - .form-group .col-md-4.control-label = f.label :role, nil, class: 'required' @@ -49,8 +37,3 @@ .row .col-md-8.text-right = button_tag(t(:save), class: 'btn btn-primary') - -:javascript - window.addEventListener('load', function() { - Autocomplete.bindAdminRegistrarSearch(); - }); diff --git a/config/routes.rb b/config/routes.rb index 5b10d03b2..fb39f4307 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -259,7 +259,7 @@ Rails.application.routes.draw do end resources :registrars do - resources :api_users, except: %i[create show edit update destroy] + resources :api_users, except: %i[show edit update destroy] resources :white_ips end @@ -270,7 +270,7 @@ Rails.application.routes.draw do end resources :admin_users - resources :api_users, except: %i[new] do + resources :api_users, except: %i[new create] do resources :certificates do member do post 'sign' From c680b688e4bccf825a8e5b84bda7f9486adaf5f4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 21:01:36 +0200 Subject: [PATCH 216/757] Improve readability --- app/views/admin/api_users/index.haml | 8 ++++---- app/views/admin/registrars/show.html.erb | 2 +- .../show/{_users.html.erb => _api_users.html.erb} | 6 +++--- config/locales/admin/registrars.en.yml | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) rename app/views/admin/registrars/show/{_users.html.erb => _api_users.html.erb} (76%) diff --git a/app/views/admin/api_users/index.haml b/app/views/admin/api_users/index.haml index 2a20d4c59..22e1fee79 100644 --- a/app/views/admin/api_users/index.haml +++ b/app/views/admin/api_users/index.haml @@ -13,11 +13,11 @@ %th{class: 'col-xs-2'} = sort_link(@q, 'active', t('.active')) %tbody - - @api_users.each do |x| + - @api_users.each do |api_user| %tr - %td= link_to(x, [:admin, x]) - %td= link_to(x.registrar, [:admin, x.registrar]) - %td= x.active + %td= link_to api_user, [:admin, api_user] + %td= link_to api_user.registrar, [:admin, api_user.registrar] + %td= api_user.active .row .col-md-12 = paginate @api_users diff --git a/app/views/admin/registrars/show.html.erb b/app/views/admin/registrars/show.html.erb index 62e7a5df1..2da2c84ce 100644 --- a/app/views/admin/registrars/show.html.erb +++ b/app/views/admin/registrars/show.html.erb @@ -39,7 +39,7 @@
- <%= render 'admin/registrars/show/users', registrar: @registrar %> + <%= render 'admin/registrars/show/api_users', registrar: @registrar %>
diff --git a/app/views/admin/registrars/show/_users.html.erb b/app/views/admin/registrars/show/_api_users.html.erb similarity index 76% rename from app/views/admin/registrars/show/_users.html.erb rename to app/views/admin/registrars/show/_api_users.html.erb index f182e4615..2d10b1c56 100644 --- a/app/views/admin/registrars/show/_users.html.erb +++ b/app/views/admin/registrars/show/_api_users.html.erb @@ -12,10 +12,10 @@ - <% registrar.api_users.each do |user| %> + <% registrar.api_users.each do |api_user| %> - <%= link_to(user, [:admin, user]) %> - <%= user.active %> + <%= link_to api_user, admin_registrar_api_user_path(api_user.registrar, api_user) %> + <%= api_user.active %> <% end %> diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index b6ba75fc9..98aabbd95 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -25,7 +25,7 @@ en: preferences: header: Preferences - users: + api_users: header: API Users new_btn: New API user @@ -67,4 +67,4 @@ en: iban_hint: Used for e-invoices preferences: - header: Preferences \ No newline at end of file + header: Preferences From de6934625c17d1581ffe5f185ff9a42f76de962c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 21:34:36 +0200 Subject: [PATCH 217/757] Nest API users under registrar in admin area --- app/controllers/admin/api_users_controller.rb | 15 +++--- .../admin/certificates_controller.rb | 2 +- app/views/admin/api_users/_form.haml | 2 +- app/views/admin/api_users/edit.haml | 2 +- app/views/admin/api_users/index.haml | 2 +- app/views/admin/api_users/show.haml | 4 +- app/views/admin/certificates/show.haml | 2 +- config/routes.rb | 5 +- test/system/admin_area/api_users_test.rb | 46 +----------------- .../admin_area/registrars/api_users_test.rb | 47 +++++++++++++++++++ 10 files changed, 65 insertions(+), 62 deletions(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index 0f2b9e914..3afc9ddf8 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -2,7 +2,6 @@ module Admin class ApiUsersController < BaseController load_and_authorize_resource before_action :set_api_user, only: [:show, :edit, :update, :destroy] - before_action :find_registrar, only: %i[new create] def index @q = ApiUser.includes(:registrar).search(params[:q]) @@ -10,15 +9,15 @@ module Admin end def new - @api_user = ApiUser.new + @api_user = registrar.api_users.build end def create - @api_user = @registrar.api_users.build(api_user_params) + @api_user = registrar.api_users.build(api_user_params) if @api_user.save flash[:notice] = I18n.t('record_created') - redirect_to [:admin, @api_user] + redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user) else flash.now[:alert] = I18n.t('failed_to_create_record') render 'new' @@ -38,7 +37,7 @@ module Admin if @api_user.update(api_user_params) flash[:notice] = I18n.t('record_updated') - redirect_to [:admin, @api_user] + redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user) else flash.now[:alert] = I18n.t('failed_to_update_record') render 'edit' @@ -48,7 +47,7 @@ module Admin def destroy if @api_user.destroy flash[:notice] = I18n.t('record_deleted') - redirect_to admin_api_users_path + redirect_to admin_registrar_path(@api_user.registrar) else flash.now[:alert] = I18n.t('failed_to_delete_record') render 'show' @@ -66,8 +65,8 @@ module Admin :identity_code, { roles: [] }) end - def find_registrar - @registrar = Registrar.find(params[:registrar_id]) + def registrar + Registrar.find(params[:registrar_id]) end end end diff --git a/app/controllers/admin/certificates_controller.rb b/app/controllers/admin/certificates_controller.rb index 636a69367..d338b2e9f 100644 --- a/app/controllers/admin/certificates_controller.rb +++ b/app/controllers/admin/certificates_controller.rb @@ -34,7 +34,7 @@ module Admin if @certificate.destroy flash[:notice] = I18n.t('record_deleted') - redirect_to admin_api_user_path(@api_user) + redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user) else flash.now[:alert] = I18n.t('failed_to_delete_record') render 'show' diff --git a/app/views/admin/api_users/_form.haml b/app/views/admin/api_users/_form.haml index 851956e54..23b245aea 100644 --- a/app/views/admin/api_users/_form.haml +++ b/app/views/admin/api_users/_form.haml @@ -1,4 +1,4 @@ -= form_for([:admin, @registrar, @api_user], html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| += form_for([:admin, @api_user.registrar, @api_user], html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| = render 'shared/full_errors', object: @api_user .row diff --git a/app/views/admin/api_users/edit.haml b/app/views/admin/api_users/edit.haml index 867d084d5..cd32618fa 100644 --- a/app/views/admin/api_users/edit.haml +++ b/app/views/admin/api_users/edit.haml @@ -1,5 +1,5 @@ - content_for :actions do - = link_to(t(:back_to_api_user), [:admin, @api_user], class: 'btn btn-default') + = link_to(t(:back_to_api_user), admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') = render 'shared/title', name: "#{t(:edit)}: #{@api_user.username}" = render 'form' diff --git a/app/views/admin/api_users/index.haml b/app/views/admin/api_users/index.haml index 22e1fee79..3d5e6a320 100644 --- a/app/views/admin/api_users/index.haml +++ b/app/views/admin/api_users/index.haml @@ -15,7 +15,7 @@ %tbody - @api_users.each do |api_user| %tr - %td= link_to api_user, [:admin, api_user] + %td= link_to api_user, admin_registrar_api_user_path(api_user.registrar, api_user) %td= link_to api_user.registrar, [:admin, api_user.registrar] %td= api_user.active .row diff --git a/app/views/admin/api_users/show.haml b/app/views/admin/api_users/show.haml index 2e13445d1..998a6c078 100644 --- a/app/views/admin/api_users/show.haml +++ b/app/views/admin/api_users/show.haml @@ -1,6 +1,6 @@ - content_for :actions do - = link_to(t(:edit), edit_admin_api_user_path(@api_user), class: 'btn btn-default') - = link_to(t(:delete), admin_api_user_path(@api_user), + = link_to(t(:edit), edit_admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') + = link_to(t(:delete), admin_registrar_api_user_path(@api_user.registrar, @api_user), method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger') = render 'shared/title', name: @api_user.username diff --git a/app/views/admin/certificates/show.haml b/app/views/admin/certificates/show.haml index 821d7ec9a..30d095f65 100644 --- a/app/views/admin/certificates/show.haml +++ b/app/views/admin/certificates/show.haml @@ -20,7 +20,7 @@ .panel-body %dl.dl-horizontal %dt= t(:api_user) - %dd= link_to(@certificate.api_user, [:admin, @api_user]) + %dd= link_to(@certificate.api_user, [:admin, @api_user.registrar, @api_user]) %dt= t(:common_name) %dd= @certificate.common_name diff --git a/config/routes.rb b/config/routes.rb index fb39f4307..8cc5a5721 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -259,7 +259,7 @@ Rails.application.routes.draw do end resources :registrars do - resources :api_users, except: %i[show edit update destroy] + resources :api_users, except: %i[index] resources :white_ips end @@ -270,7 +270,8 @@ Rails.application.routes.draw do end resources :admin_users - resources :api_users, except: %i[new create] do + # /admin/api_users is mainly for manual testing + resources :api_users, only: :index do resources :certificates do member do post 'sign' diff --git a/test/system/admin_area/api_users_test.rb b/test/system/admin_area/api_users_test.rb index c05975e4f..d79434ef6 100644 --- a/test/system/admin_area/api_users_test.rb +++ b/test/system/admin_area/api_users_test.rb @@ -9,50 +9,6 @@ class AdminApiUsersSystemTest < ApplicationSystemTestCase visit admin_api_users_path api_user = users(:api_bestnames) - assert_link api_user.username, href: admin_api_user_path(api_user) - end - - def test_shows_api_user_details - api_user = users(:api_bestnames) - - visit admin_api_user_path(api_user) - - assert_text "Username #{api_user.username}" - assert_text "Password #{api_user.plain_text_password}" - assert_link api_user.registrar.name, href: admin_registrar_path(api_user.registrar) - assert_text "Role #{api_user.roles.first}" - assert_text "Active #{api_user.active}" - end - - def test_updates_api_user - api_user = users(:api_bestnames) - new_username = 'new username' - assert_not_equal new_username, api_user.name - - visit admin_api_user_path(api_user) - click_link_or_button 'Edit' - fill_in 'Username', with: new_username - click_link_or_button 'Save' - - assert_text 'Record updated' - assert_text "Username #{new_username}" - end - - def test_deletes_api_user - api_user = unassociated_api_user - - visit admin_api_user_path(api_user) - click_on 'Delete' - - assert_text 'Record deleted' - end - - private - - def unassociated_api_user - new_api_user = users(:api_bestnames).dup - new_api_user.username = "unique-#{rand(100)}" - new_api_user.save! - new_api_user + assert_link api_user.username, href: admin_registrar_api_user_path(api_user.registrar, api_user) end end diff --git a/test/system/admin_area/registrars/api_users_test.rb b/test/system/admin_area/registrars/api_users_test.rb index 3be5586b8..69288265f 100644 --- a/test/system/admin_area/registrars/api_users_test.rb +++ b/test/system/admin_area/registrars/api_users_test.rb @@ -18,10 +18,57 @@ class AdminRegistrarsApiUsersSystemTest < ApplicationSystemTestCase assert_text 'Record created' assert_text "Username #{username}" + new_api_user = ApiUser.last + assert_current_path admin_registrar_api_user_path(registrar, new_api_user) + end + + def test_shows_api_user_details + api_user = users(:api_bestnames) + + visit admin_registrar_path(api_user.registrar) + click_on api_user.username + + assert_text "Username #{api_user.username}" + assert_text "Password #{api_user.plain_text_password}" + assert_link api_user.registrar.name, href: admin_registrar_path(api_user.registrar) + assert_text "Role #{api_user.roles.first}" + assert_text "Active #{api_user.active}" + end + + def test_updates_api_user + api_user = users(:api_bestnames) + new_username = 'new username' + assert_not_equal new_username, api_user.username + + visit admin_registrar_api_user_path(api_user.registrar, api_user) + click_link_or_button 'Edit' + fill_in 'Username', with: new_username + click_link_or_button 'Save' + + assert_text 'Record updated' + assert_text "Username #{new_username}" + assert_current_path admin_registrar_api_user_path(api_user.registrar, api_user) + end + + def test_deletes_api_user + api_user = unassociated_api_user + + visit admin_registrar_api_user_path(api_user.registrar, api_user) + click_on 'Delete' + + assert_text 'Record deleted' + assert_current_path admin_registrar_path(api_user.registrar) end private + def unassociated_api_user + new_api_user = users(:api_bestnames).dup + new_api_user.username = "unique-#{rand(100)}" + new_api_user.save! + new_api_user + end + def valid_password 'testtest' end From 4d6098513865312295ae35d29ed1f7057ed7bca8 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 21:39:08 +0200 Subject: [PATCH 218/757] Convert HAML to ERB --- app/views/admin/api_users/_form.haml | 39 -------- app/views/admin/api_users/_form.html.erb | 51 +++++++++++ app/views/admin/api_users/edit.haml | 5 - app/views/admin/api_users/edit.html.erb | 5 + app/views/admin/api_users/index.haml | 23 ----- app/views/admin/api_users/index.html.erb | 42 +++++++++ app/views/admin/api_users/new.haml | 3 - app/views/admin/api_users/new.html.erb | 2 + app/views/admin/api_users/show.haml | 61 ------------- app/views/admin/api_users/show.html.erb | 111 +++++++++++++++++++++++ 10 files changed, 211 insertions(+), 131 deletions(-) delete mode 100644 app/views/admin/api_users/_form.haml create mode 100644 app/views/admin/api_users/_form.html.erb delete mode 100644 app/views/admin/api_users/edit.haml create mode 100644 app/views/admin/api_users/edit.html.erb delete mode 100644 app/views/admin/api_users/index.haml create mode 100644 app/views/admin/api_users/index.html.erb delete mode 100644 app/views/admin/api_users/new.haml create mode 100644 app/views/admin/api_users/new.html.erb delete mode 100644 app/views/admin/api_users/show.haml create mode 100644 app/views/admin/api_users/show.html.erb diff --git a/app/views/admin/api_users/_form.haml b/app/views/admin/api_users/_form.haml deleted file mode 100644 index 23b245aea..000000000 --- a/app/views/admin/api_users/_form.haml +++ /dev/null @@ -1,39 +0,0 @@ -= form_for([:admin, @api_user.registrar, @api_user], html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| - = render 'shared/full_errors', object: @api_user - - .row - .col-md-8 - .form-group - .col-md-4.control-label - = f.label :username, nil, class: 'required' - .col-md-7 - = f.text_field :username, required: true, autofocus: true, class: 'form-control' - .form-group - .col-md-4.control-label - = f.label :plain_text_password, nil, class: 'required' - .col-md-7 - = f.text_field :plain_text_password, required: true, class: 'form-control' - - .form-group - .col-md-4.control-label - = f.label :identity_code - .col-md-7 - = f.text_field(:identity_code, class: 'form-control') - - .form-group - .col-md-4.control-label - = f.label :role, nil, class: 'required' - .col-md-7 - = select_tag 'api_user[roles][]', - options_for_select(ApiUser::ROLES.map {|x| [x, x] }, @api_user.roles.try(:first)), - class: 'form-control selectize' - .checkbox - %label{for: 'api_user_active'} - = f.check_box(:active) - = t('.active') - - %hr - - .row - .col-md-8.text-right - = button_tag(t(:save), class: 'btn btn-primary') diff --git a/app/views/admin/api_users/_form.html.erb b/app/views/admin/api_users/_form.html.erb new file mode 100644 index 000000000..b97d45539 --- /dev/null +++ b/app/views/admin/api_users/_form.html.erb @@ -0,0 +1,51 @@ +<%= form_for([:admin, @api_user.registrar, @api_user], html: { class: 'form-horizontal', autocomplete: 'off' }) do |f| %> + <%= render 'shared/full_errors', object: @api_user %> +
+
+
+
+ <%= f.label :username, nil, class: 'required' %> +
+
+ <%= f.text_field :username, required: true, autofocus: true, class: 'form-control' %> +
+
+
+
+ <%= f.label :plain_text_password, nil, class: 'required' %> +
+
+ <%= f.text_field :plain_text_password, required: true, class: 'form-control' %> +
+
+
+
+ <%= f.label :identity_code %> +
+
+ <%= f.text_field(:identity_code, class: 'form-control') %> +
+
+
+
+ <%= f.label :role, nil, class: 'required' %> +
+
+ <%= select_tag 'api_user[roles][]', options_for_select(ApiUser::ROLES.map { |x| [x, x] }, @api_user.roles.try(:first)), class: 'form-control selectize' %> +
+ +
+
+
+
+
+
+
+
+ <%= button_tag(t(:save), class: 'btn btn-primary') %> +
+
+<% end %> diff --git a/app/views/admin/api_users/edit.haml b/app/views/admin/api_users/edit.haml deleted file mode 100644 index cd32618fa..000000000 --- a/app/views/admin/api_users/edit.haml +++ /dev/null @@ -1,5 +0,0 @@ -- content_for :actions do - = link_to(t(:back_to_api_user), admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') -= render 'shared/title', name: "#{t(:edit)}: #{@api_user.username}" - -= render 'form' diff --git a/app/views/admin/api_users/edit.html.erb b/app/views/admin/api_users/edit.html.erb new file mode 100644 index 000000000..5fee5b941 --- /dev/null +++ b/app/views/admin/api_users/edit.html.erb @@ -0,0 +1,5 @@ +<% content_for :actions do %> + <%= link_to(t(:back_to_api_user), admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') %> +<% end %> +<%= render 'shared/title', name: "#{t(:edit)}: #{@api_user.username}" %> +<%= render 'form' %> diff --git a/app/views/admin/api_users/index.haml b/app/views/admin/api_users/index.haml deleted file mode 100644 index 3d5e6a320..000000000 --- a/app/views/admin/api_users/index.haml +++ /dev/null @@ -1,23 +0,0 @@ -= render 'shared/title', name: t('.title') - -.row - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-2'} - = sort_link(@q, 'username') - %th{class: 'col-xs-2'} - = sort_link(@q, 'registrar_name', t(:registrar_name)) - %th{class: 'col-xs-2'} - = sort_link(@q, 'active', t('.active')) - %tbody - - @api_users.each do |api_user| - %tr - %td= link_to api_user, admin_registrar_api_user_path(api_user.registrar, api_user) - %td= link_to api_user.registrar, [:admin, api_user.registrar] - %td= api_user.active -.row - .col-md-12 - = paginate @api_users diff --git a/app/views/admin/api_users/index.html.erb b/app/views/admin/api_users/index.html.erb new file mode 100644 index 000000000..dacd6398a --- /dev/null +++ b/app/views/admin/api_users/index.html.erb @@ -0,0 +1,42 @@ +<%= render 'shared/title', name: t('.title') %> +
+
+
+ + + + + + + + + + <% @api_users.each do |api_user| %> + + + + + + <% end %> + +
+ <%= sort_link(@q, 'username') %> + + <%= sort_link(@q, 'registrar_name', t(:registrar_name)) %> + + <%= sort_link(@q, 'active', t('.active')) %> +
+ <%= link_to api_user, admin_registrar_api_user_path(api_user.registrar, api_user) %> + + <%= link_to api_user.registrar, [:admin, api_user.registrar] %> + + <%= api_user.active %> +
+
+
+
+
+
+ <%= paginate @api_users %> +
+
diff --git a/app/views/admin/api_users/new.haml b/app/views/admin/api_users/new.haml deleted file mode 100644 index f8282f44f..000000000 --- a/app/views/admin/api_users/new.haml +++ /dev/null @@ -1,3 +0,0 @@ -= render 'shared/title', name: t('.title') - -= render 'form' diff --git a/app/views/admin/api_users/new.html.erb b/app/views/admin/api_users/new.html.erb new file mode 100644 index 000000000..f9a096937 --- /dev/null +++ b/app/views/admin/api_users/new.html.erb @@ -0,0 +1,2 @@ +<%= render 'shared/title', name: t('.title') %> +<%= render 'form' %> diff --git a/app/views/admin/api_users/show.haml b/app/views/admin/api_users/show.haml deleted file mode 100644 index 998a6c078..000000000 --- a/app/views/admin/api_users/show.haml +++ /dev/null @@ -1,61 +0,0 @@ -- content_for :actions do - = link_to(t(:edit), edit_admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') - = link_to(t(:delete), admin_registrar_api_user_path(@api_user.registrar, @api_user), - method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger') -= render 'shared/title', name: @api_user.username - -- if @api_user.errors.any? - - @api_user.errors.each do |attr, err| - = err - %br -- if @api_user.errors.any? - %hr -.row - .col-md-12 - .panel.panel-default - .panel-heading - %h3.panel-title= t(:general) - .panel-body - %dl.dl-horizontal - %dt= t(:username) - %dd= @api_user.username - - %dt= t(:password) - %dd= @api_user.plain_text_password - - %dt= t(:registrar_name) - %dd= link_to(@api_user.registrar, admin_registrar_path(@api_user.registrar)) - - %dt= t(:role) - %dd= @api_user.roles.join(', ') - - %dt= t('.active') - %dd= @api_user.active -.row - .col-md-12 - .panel.panel-default - .panel-heading.clearfix - .pull-left - = t(:certificates) - .pull-right - = link_to(t(:upload_crt), - new_admin_api_user_certificate_path(@api_user, crt: true), class: 'btn btn-primary btn-xs') - = link_to(t(:upload_csr), - new_admin_api_user_certificate_path(@api_user), class: 'btn btn-primary btn-xs') - - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-10'}= t('.subject') - %th{class: 'col-xs-2'}= t(:status) - %tbody - - @api_user.certificates.each do |x| - - if x.csr - %tr - %td= link_to(x.parsed_csr.try(:subject), admin_api_user_certificate_path(@api_user, x)) - %td= x.status - - elsif x.crt - %tr - %td= link_to(x.parsed_crt.try(:subject), admin_api_user_certificate_path(@api_user, x)) - %td= x.status diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb new file mode 100644 index 000000000..ace211f52 --- /dev/null +++ b/app/views/admin/api_users/show.html.erb @@ -0,0 +1,111 @@ +<% content_for :actions do %> + <%= link_to(t(:edit), edit_admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') %> + <%= link_to(t(:delete), admin_registrar_api_user_path(@api_user.registrar, @api_user), method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger') %> +<% end %> +<%= render 'shared/title', name: @api_user.username %> +<% if @api_user.errors.any? %> + <% @api_user.errors.each do |attr, err| %> + <%= err %> +
+ <% end %> +<% end %> +<% if @api_user.errors.any? %> +
+<% end %> +
+
+
+
+

+ <%= t(:general) %> +

+
+
+
+
+ <%= t(:username) %> +
+
+ <%= @api_user.username %> +
+
+ <%= t(:password) %> +
+
+ <%= @api_user.plain_text_password %> +
+
+ <%= t(:registrar_name) %> +
+
+ <%= link_to(@api_user.registrar, admin_registrar_path(@api_user.registrar)) %> +
+
+ <%= t(:role) %> +
+
+ <%= @api_user.roles.join(', ') %> +
+
+ <%= t('.active') %> +
+
+ <%= @api_user.active %> +
+
+
+
+
+
+
+
+
+
+
+ <%= t(:certificates) %> +
+
+ <%= link_to(t(:upload_crt), new_admin_api_user_certificate_path(@api_user, crt: true), class: 'btn btn-primary btn-xs') %> + <%= link_to(t(:upload_csr), new_admin_api_user_certificate_path(@api_user), class: 'btn btn-primary btn-xs') %> +
+
+
+ + + + + + + + + <% @api_user.certificates.each do |x| %> + <% if x.csr %> + + + + + <% elsif x.crt %> + + + + + <% end %> + <% end %> + +
+ <%= t('.subject') %> + + <%= t(:status) %> +
+ <%= link_to(x.parsed_csr.try(:subject), admin_api_user_certificate_path(@api_user, x)) %> + + <%= x.status %> +
+ <%= link_to(x.parsed_crt.try(:subject), admin_api_user_certificate_path(@api_user, x)) %> + + <%= x.status %> +
+
+
+
+
From a28a4ebb349ce5169decec6c46e611b92d0138d8 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 21:56:44 +0200 Subject: [PATCH 219/757] Use standard header for registrar API users in admin area --- app/views/admin/api_users/edit.html.erb | 17 ++++++++++--- app/views/admin/api_users/index.html.erb | 4 ++- app/views/admin/api_users/new.html.erb | 11 ++++++++- app/views/admin/api_users/show.html.erb | 31 ++++++++++++++++++++---- config/locales/admin/api_users.en.yml | 9 +++++-- config/locales/en.yml | 1 - 6 files changed, 59 insertions(+), 14 deletions(-) diff --git a/app/views/admin/api_users/edit.html.erb b/app/views/admin/api_users/edit.html.erb index 5fee5b941..d065c885c 100644 --- a/app/views/admin/api_users/edit.html.erb +++ b/app/views/admin/api_users/edit.html.erb @@ -1,5 +1,14 @@ -<% content_for :actions do %> - <%= link_to(t(:back_to_api_user), admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') %> -<% end %> -<%= render 'shared/title', name: "#{t(:edit)}: #{@api_user.username}" %> + + + + <%= render 'form' %> diff --git a/app/views/admin/api_users/index.html.erb b/app/views/admin/api_users/index.html.erb index dacd6398a..20c76e54f 100644 --- a/app/views/admin/api_users/index.html.erb +++ b/app/views/admin/api_users/index.html.erb @@ -1,4 +1,6 @@ -<%= render 'shared/title', name: t('.title') %> +
diff --git a/app/views/admin/api_users/new.html.erb b/app/views/admin/api_users/new.html.erb index f9a096937..b3f4580e1 100644 --- a/app/views/admin/api_users/new.html.erb +++ b/app/views/admin/api_users/new.html.erb @@ -1,2 +1,11 @@ -<%= render 'shared/title', name: t('.title') %> + + + + <%= render 'form' %> diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb index ace211f52..7090d777b 100644 --- a/app/views/admin/api_users/show.html.erb +++ b/app/views/admin/api_users/show.html.erb @@ -1,8 +1,29 @@ -<% content_for :actions do %> - <%= link_to(t(:edit), edit_admin_registrar_api_user_path(@api_user.registrar, @api_user), class: 'btn btn-default') %> - <%= link_to(t(:delete), admin_registrar_api_user_path(@api_user.registrar, @api_user), method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger') %> -<% end %> -<%= render 'shared/title', name: @api_user.username %> + + + + <% if @api_user.errors.any? %> <% @api_user.errors.each do |attr, err| %> <%= err %> diff --git a/config/locales/admin/api_users.en.yml b/config/locales/admin/api_users.en.yml index de4fddb08..245b0e4d7 100644 --- a/config/locales/admin/api_users.en.yml +++ b/config/locales/admin/api_users.en.yml @@ -2,15 +2,20 @@ en: admin: api_users: index: - title: API users + header: API users active: Active show: active: Active subject: Subject + edit_btn: Edit + delete_btn: Delete new: - title: New API user + header: New API user + + edit: + header: Edit API user form: active: Active diff --git a/config/locales/en.yml b/config/locales/en.yml index 5742398f7..a12385169 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -277,7 +277,6 @@ en: certificate_signing_req: 'Certificate signing request' csr: 'CSR' crt: 'CRT' - back_to_api_user: 'Back to API user' dnskey: 'DNS key' dnskeys: 'DNS Keys' From e010fdbc0037b3f868c708bcaacbc39390cf51b1 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 21:58:20 +0200 Subject: [PATCH 220/757] Remove unneeded code --- app/views/admin/api_users/show.html.erb | 9 --------- 1 file changed, 9 deletions(-) diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb index 7090d777b..0061263f8 100644 --- a/app/views/admin/api_users/show.html.erb +++ b/app/views/admin/api_users/show.html.erb @@ -24,15 +24,6 @@
-<% if @api_user.errors.any? %> - <% @api_user.errors.each do |attr, err| %> - <%= err %> -
- <% end %> -<% end %> -<% if @api_user.errors.any? %> -
-<% end %>
From c91c12ab304e779cec0479890884a2dccb290f4f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:01:56 +0200 Subject: [PATCH 221/757] Reformat --- app/views/admin/api_users/_form.html.erb | 8 ++ app/views/admin/api_users/index.html.erb | 47 +++++----- app/views/admin/api_users/show.html.erb | 108 +++++++++++------------ 3 files changed, 81 insertions(+), 82 deletions(-) diff --git a/app/views/admin/api_users/_form.html.erb b/app/views/admin/api_users/_form.html.erb index b97d45539..0b4eadb0f 100644 --- a/app/views/admin/api_users/_form.html.erb +++ b/app/views/admin/api_users/_form.html.erb @@ -1,5 +1,6 @@ <%= form_for([:admin, @api_user.registrar, @api_user], html: { class: 'form-horizontal', autocomplete: 'off' }) do |f| %> <%= render 'shared/full_errors', object: @api_user %> +
@@ -10,6 +11,7 @@ <%= f.text_field :username, required: true, autofocus: true, class: 'form-control' %>
+
<%= f.label :plain_text_password, nil, class: 'required' %> @@ -18,6 +20,7 @@ <%= f.text_field :plain_text_password, required: true, class: 'form-control' %>
+
<%= f.label :identity_code %> @@ -26,10 +29,12 @@ <%= f.text_field(:identity_code, class: 'form-control') %>
+
<%= f.label :role, nil, class: 'required' %>
+
<%= select_tag 'api_user[roles][]', options_for_select(ApiUser::ROLES.map { |x| [x, x] }, @api_user.roles.try(:first)), class: 'form-control selectize' %>
@@ -42,10 +47,13 @@
+
+
<%= button_tag(t(:save), class: 'btn btn-primary') %>
+ <% end %> diff --git a/app/views/admin/api_users/index.html.erb b/app/views/admin/api_users/index.html.erb index 20c76e54f..8faff2cff 100644 --- a/app/views/admin/api_users/index.html.erb +++ b/app/views/admin/api_users/index.html.erb @@ -1,42 +1,41 @@ +
- - - - - - - - <% @api_users.each do |api_user| %> - - - + + + - <% end %> + + + + <% @api_users.each do |api_user| %> + + + + + + <% end %>
- <%= sort_link(@q, 'username') %> - - <%= sort_link(@q, 'registrar_name', t(:registrar_name)) %> - - <%= sort_link(@q, 'active', t('.active')) %> -
- <%= link_to api_user, admin_registrar_api_user_path(api_user.registrar, api_user) %> - - <%= link_to api_user.registrar, [:admin, api_user.registrar] %> - - <%= api_user.active %> - + <%= sort_link(@q, 'username') %> + + <%= sort_link(@q, 'registrar_name', t(:registrar_name)) %> + + <%= sort_link(@q, 'active', t('.active')) %> +
<%= link_to api_user, + admin_registrar_api_user_path(api_user.registrar, + api_user) %><%= link_to api_user.registrar, [:admin, api_user.registrar] %><%= api_user.active %>
+
<%= paginate @api_users %> diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb index 0061263f8..1c7c9941b 100644 --- a/app/views/admin/api_users/show.html.erb +++ b/app/views/admin/api_users/show.html.erb @@ -32,43 +32,29 @@ <%= t(:general) %>
+
-
- <%= t(:username) %> -
-
- <%= @api_user.username %> -
-
- <%= t(:password) %> -
-
- <%= @api_user.plain_text_password %> -
-
- <%= t(:registrar_name) %> -
-
- <%= link_to(@api_user.registrar, admin_registrar_path(@api_user.registrar)) %> -
-
- <%= t(:role) %> -
-
- <%= @api_user.roles.join(', ') %> -
-
- <%= t('.active') %> -
-
- <%= @api_user.active %> -
+
<%= t(:username) %>
+
<%= @api_user.username %>
+ +
<%= t(:password) %>
+
<%= @api_user.plain_text_password %>
+ +
<%= t(:registrar_name) %>
+
<%= link_to(@api_user.registrar, admin_registrar_path(@api_user.registrar)) %>
+ +
<%= t(:role) %>
+
<%= @api_user.roles.join(', ') %>
+ +
<%= t('.active') %>
+
<%= @api_user.active %>
+
@@ -81,40 +67,46 @@ <%= link_to(t(:upload_csr), new_admin_api_user_certificate_path(@api_user), class: 'btn btn-primary btn-xs') %>
+
- - - - + + + + + - <% @api_user.certificates.each do |x| %> - <% if x.csr %> - - - - - <% elsif x.crt %> - - - - + <% @api_user.certificates.each do |x| %> + <% if x.csr %> + + + + + <% elsif x.crt %> + + + + + <% end %> <% end %> - <% end %>
- <%= t('.subject') %> - - <%= t(:status) %> -
+ <%= t('.subject') %> + + <%= t(:status) %> +
- <%= link_to(x.parsed_csr.try(:subject), admin_api_user_certificate_path(@api_user, x)) %> - - <%= x.status %> -
- <%= link_to(x.parsed_crt.try(:subject), admin_api_user_certificate_path(@api_user, x)) %> - - <%= x.status %> -
+ <%= link_to(x.parsed_csr.try(:subject), + admin_api_user_certificate_path(@api_user, + x)) %> + + <%= x.status %> +
+ <%= link_to(x.parsed_crt.try(:subject), + admin_api_user_certificate_path(@api_user, + x)) %> + + <%= x.status %> +
From 837f3ed541dcdf1584fe458bc6b97f70ad158e36 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:06:15 +0200 Subject: [PATCH 222/757] Fix invalid HTML --- app/views/admin/api_users/_form.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/api_users/_form.html.erb b/app/views/admin/api_users/_form.html.erb index 0b4eadb0f..5fe0dae75 100644 --- a/app/views/admin/api_users/_form.html.erb +++ b/app/views/admin/api_users/_form.html.erb @@ -32,7 +32,7 @@
- <%= f.label :role, nil, class: 'required' %> + <%= f.label :role, nil, for: nil, class: 'required' %>
From b850efb939050909b584ed6c6fa22471855e755e Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:13:53 +0200 Subject: [PATCH 223/757] Use standard UI --- app/views/admin/api_users/_form.html.erb | 7 +++---- app/views/admin/api_users/show.html.erb | 4 ++-- config/locales/admin/api_users.en.yml | 2 ++ test/system/admin_area/registrars/api_users_test.rb | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/views/admin/api_users/_form.html.erb b/app/views/admin/api_users/_form.html.erb index 5fe0dae75..6119bc727 100644 --- a/app/views/admin/api_users/_form.html.erb +++ b/app/views/admin/api_users/_form.html.erb @@ -1,5 +1,5 @@ <%= form_for([:admin, @api_user.registrar, @api_user], html: { class: 'form-horizontal', autocomplete: 'off' }) do |f| %> - <%= render 'shared/full_errors', object: @api_user %> + <%= render 'form_errors', target: @api_user %>
@@ -48,12 +48,11 @@
-
+
- <%= button_tag(t(:save), class: 'btn btn-primary') %> + <%= button_tag t(".#{f.object.new_record? ? 'create' : 'update'}_btn"), class: 'btn btn-success' %>
- <% end %> diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb index 1c7c9941b..5022bc58b 100644 --- a/app/views/admin/api_users/show.html.erb +++ b/app/views/admin/api_users/show.html.erb @@ -14,12 +14,12 @@
<%= link_to t('.edit_btn'), edit_admin_registrar_api_user_path(@api_user.registrar, @api_user), - class: 'btn btn-default' %> + class: 'btn btn-primary' %> <%= link_to t('.delete_btn'), admin_registrar_api_user_path(@api_user.registrar, @api_user), method: :delete, data: { confirm: t(:are_you_sure) }, - class: 'btn btn-danger' %> + class: 'btn btn-default' %>
diff --git a/config/locales/admin/api_users.en.yml b/config/locales/admin/api_users.en.yml index 245b0e4d7..0c8e6273c 100644 --- a/config/locales/admin/api_users.en.yml +++ b/config/locales/admin/api_users.en.yml @@ -19,3 +19,5 @@ en: form: active: Active + create_btn: Create API user + update_btn: Update API user diff --git a/test/system/admin_area/registrars/api_users_test.rb b/test/system/admin_area/registrars/api_users_test.rb index 69288265f..054261c71 100644 --- a/test/system/admin_area/registrars/api_users_test.rb +++ b/test/system/admin_area/registrars/api_users_test.rb @@ -14,7 +14,7 @@ class AdminRegistrarsApiUsersSystemTest < ApplicationSystemTestCase fill_in 'Username', with: username fill_in 'Password', with: valid_password - click_on 'Save' + click_on 'Create API user' assert_text 'Record created' assert_text "Username #{username}" @@ -43,7 +43,7 @@ class AdminRegistrarsApiUsersSystemTest < ApplicationSystemTestCase visit admin_registrar_api_user_path(api_user.registrar, api_user) click_link_or_button 'Edit' fill_in 'Username', with: new_username - click_link_or_button 'Save' + click_link_or_button 'Update API user' assert_text 'Record updated' assert_text "Username #{new_username}" From 01c877fe70c3c48cd60797fe881dc5da7ea0acfa Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:16:36 +0200 Subject: [PATCH 224/757] Remove unneded code --- app/controllers/admin/api_users_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index 3afc9ddf8..1343e2f91 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -1,7 +1,6 @@ module Admin class ApiUsersController < BaseController load_and_authorize_resource - before_action :set_api_user, only: [:show, :edit, :update, :destroy] def index @q = ApiUser.includes(:registrar).search(params[:q]) From e5eaac291ee7d9a713baaec182028214600056f0 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:23:12 +0200 Subject: [PATCH 225/757] Show validation errors in UI, otherwise fail loudly --- app/controllers/admin/api_users_controller.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index 1343e2f91..4b79ffdaa 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -14,11 +14,11 @@ module Admin def create @api_user = registrar.api_users.build(api_user_params) - if @api_user.save + if @api_user.valid? + @api_user.save! flash[:notice] = I18n.t('record_created') redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user) else - flash.now[:alert] = I18n.t('failed_to_create_record') render 'new' end end @@ -34,11 +34,13 @@ module Admin params[:api_user].delete(:plain_text_password) end - if @api_user.update(api_user_params) + @api_user.attributes = api_user_params + + if @api_user.valid? + @api_user.save! flash[:notice] = I18n.t('record_updated') redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user) else - flash.now[:alert] = I18n.t('failed_to_update_record') render 'edit' end end From 61f6a3705f52f5afd858724e757c1a74f848c282 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:25:03 +0200 Subject: [PATCH 226/757] Fail Loudly --- app/controllers/admin/api_users_controller.rb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index 4b79ffdaa..cb2c6ff52 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -46,13 +46,8 @@ module Admin end def destroy - if @api_user.destroy - flash[:notice] = I18n.t('record_deleted') - redirect_to admin_registrar_path(@api_user.registrar) - else - flash.now[:alert] = I18n.t('failed_to_delete_record') - render 'show' - end + @api_user.destroy! + redirect_to admin_registrar_path(@api_user.registrar), notice: t('record_deleted') end private From aa8be7d1482a9ab515990add33fc3968476f6992 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:30:02 +0200 Subject: [PATCH 227/757] Improve error messages --- app/controllers/admin/api_users_controller.rb | 10 +++++----- config/locales/admin/api_users.en.yml | 15 ++++++++++++--- .../admin_area/registrars/api_users_test.rb | 6 +++--- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index cb2c6ff52..0eba34739 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -16,8 +16,8 @@ module Admin if @api_user.valid? @api_user.save! - flash[:notice] = I18n.t('record_created') - redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user) + redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), + notice: t('.created') else render 'new' end @@ -38,8 +38,8 @@ module Admin if @api_user.valid? @api_user.save! - flash[:notice] = I18n.t('record_updated') - redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user) + redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), + notice: t('.updated') else render 'edit' end @@ -47,7 +47,7 @@ module Admin def destroy @api_user.destroy! - redirect_to admin_registrar_path(@api_user.registrar), notice: t('record_deleted') + redirect_to admin_registrar_path(@api_user.registrar), notice: t('.deleted') end private diff --git a/config/locales/admin/api_users.en.yml b/config/locales/admin/api_users.en.yml index 0c8e6273c..49b72a2bd 100644 --- a/config/locales/admin/api_users.en.yml +++ b/config/locales/admin/api_users.en.yml @@ -5,18 +5,27 @@ en: header: API users active: Active + new: + header: New API user + + create: + created: API user has been successfully created + show: active: Active subject: Subject edit_btn: Edit delete_btn: Delete - new: - header: New API user - edit: header: Edit API user + update: + updated: API user has been successfully updated + + destroy: + deleted: API user has been successfully deleted + form: active: Active create_btn: Create API user diff --git a/test/system/admin_area/registrars/api_users_test.rb b/test/system/admin_area/registrars/api_users_test.rb index 054261c71..5d833dde2 100644 --- a/test/system/admin_area/registrars/api_users_test.rb +++ b/test/system/admin_area/registrars/api_users_test.rb @@ -16,7 +16,7 @@ class AdminRegistrarsApiUsersSystemTest < ApplicationSystemTestCase fill_in 'Password', with: valid_password click_on 'Create API user' - assert_text 'Record created' + assert_text 'API user has been successfully created' assert_text "Username #{username}" new_api_user = ApiUser.last assert_current_path admin_registrar_api_user_path(registrar, new_api_user) @@ -45,7 +45,7 @@ class AdminRegistrarsApiUsersSystemTest < ApplicationSystemTestCase fill_in 'Username', with: new_username click_link_or_button 'Update API user' - assert_text 'Record updated' + assert_text 'API user has been successfully updated' assert_text "Username #{new_username}" assert_current_path admin_registrar_api_user_path(api_user.registrar, api_user) end @@ -56,7 +56,7 @@ class AdminRegistrarsApiUsersSystemTest < ApplicationSystemTestCase visit admin_registrar_api_user_path(api_user.registrar, api_user) click_on 'Delete' - assert_text 'Record deleted' + assert_text 'API user has been successfully deleted' assert_current_path admin_registrar_path(api_user.registrar) end From d82c44600a81b8854bfb226c74a59c9011d64533 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:30:14 +0200 Subject: [PATCH 228/757] Remove unneded code --- app/controllers/admin/api_users_controller.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index 0eba34739..f47a4b652 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -52,10 +52,6 @@ module Admin private - def set_api_user - @api_user = ApiUser.find(params[:id]) - end - def api_user_params params.require(:api_user).permit(:username, :plain_text_password, :active, :identity_code, { roles: [] }) From 3cea41e1193609aeab5558267fa9228f189776d2 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:33:30 +0200 Subject: [PATCH 229/757] Extract partial --- app/views/admin/api_users/_api_user.html.erb | 5 +++++ app/views/admin/api_users/index.html.erb | 10 +--------- 2 files changed, 6 insertions(+), 9 deletions(-) create mode 100644 app/views/admin/api_users/_api_user.html.erb diff --git a/app/views/admin/api_users/_api_user.html.erb b/app/views/admin/api_users/_api_user.html.erb new file mode 100644 index 000000000..196cb2ebb --- /dev/null +++ b/app/views/admin/api_users/_api_user.html.erb @@ -0,0 +1,5 @@ + + <%= link_to api_user, admin_registrar_api_user_path(api_user.registrar, api_user) %> + <%= link_to api_user.registrar, [:admin, api_user.registrar] %> + <%= api_user.active %> + diff --git a/app/views/admin/api_users/index.html.erb b/app/views/admin/api_users/index.html.erb index 8faff2cff..1ca018bb1 100644 --- a/app/views/admin/api_users/index.html.erb +++ b/app/views/admin/api_users/index.html.erb @@ -21,15 +21,7 @@ - <% @api_users.each do |api_user| %> - - <%= link_to api_user, - admin_registrar_api_user_path(api_user.registrar, - api_user) %> - <%= link_to api_user.registrar, [:admin, api_user.registrar] %> - <%= api_user.active %> - - <% end %> + <%= render @api_users %>
From e780005517ef99f37ac3b46cf78b1cac40c7fa88 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 9 Dec 2019 22:35:27 +0200 Subject: [PATCH 230/757] Use named route explicitly --- app/views/admin/api_users/_api_user.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/api_users/_api_user.html.erb b/app/views/admin/api_users/_api_user.html.erb index 196cb2ebb..d8412a519 100644 --- a/app/views/admin/api_users/_api_user.html.erb +++ b/app/views/admin/api_users/_api_user.html.erb @@ -1,5 +1,5 @@ <%= link_to api_user, admin_registrar_api_user_path(api_user.registrar, api_user) %> - <%= link_to api_user.registrar, [:admin, api_user.registrar] %> + <%= link_to api_user.registrar, admin_registrar_path(api_user.registrar) %> <%= api_user.active %> From 54be3995e6686a771b260a68f17d690022780056 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Dec 2019 15:21:35 +0200 Subject: [PATCH 231/757] Remove unneeded translations --- config/locales/api_users.en.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/config/locales/api_users.en.yml b/config/locales/api_users.en.yml index 757ded049..2d8538023 100644 --- a/config/locales/api_users.en.yml +++ b/config/locales/api_users.en.yml @@ -3,14 +3,3 @@ en: attributes: api_user: plain_text_password: Password - errors: - models: - api_user: - attributes: - username: - blank: 'Username is missing' - taken: 'Username already exists' - plain_text_password: - blank: 'Password is missing' - registrar: - blank: 'Registrar is missing' \ No newline at end of file From e6981e7e280ed61b62dd54813b132db8099e9aa4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Dec 2019 15:21:57 +0200 Subject: [PATCH 232/757] Remove unneeded code --- app/controllers/admin/api_users_controller.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index f47a4b652..8876c726f 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -30,10 +30,6 @@ module Admin end def update - if params[:api_user][:plain_text_password].blank? - params[:api_user].delete(:plain_text_password) - end - @api_user.attributes = api_user_params if @api_user.valid? From ce8f7993c2bd50e31c37ec007a8d21cdd284a794 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Dec 2019 15:54:30 +0200 Subject: [PATCH 233/757] Use default translations --- app/views/admin/api_users/_form.html.erb | 2 +- app/views/admin/api_users/index.html.erb | 4 ++-- app/views/admin/api_users/show.html.erb | 10 +++++----- config/locales/admin/api_users.en.yml | 3 --- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/views/admin/api_users/_form.html.erb b/app/views/admin/api_users/_form.html.erb index 6119bc727..23dd27b26 100644 --- a/app/views/admin/api_users/_form.html.erb +++ b/app/views/admin/api_users/_form.html.erb @@ -40,7 +40,7 @@
diff --git a/app/views/admin/api_users/index.html.erb b/app/views/admin/api_users/index.html.erb index 1ca018bb1..9c00f32d6 100644 --- a/app/views/admin/api_users/index.html.erb +++ b/app/views/admin/api_users/index.html.erb @@ -12,10 +12,10 @@ <%= sort_link(@q, 'username') %> - <%= sort_link(@q, 'registrar_name', t(:registrar_name)) %> + <%= sort_link(@q, 'registrar_name', Registrar.model_name.human) %> - <%= sort_link(@q, 'active', t('.active')) %> + <%= sort_link(@q, 'active', ApiUser.human_attribute_name(:active)) %> diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb index 5022bc58b..3e7c5347d 100644 --- a/app/views/admin/api_users/show.html.erb +++ b/app/views/admin/api_users/show.html.erb @@ -35,19 +35,19 @@
-
<%= t(:username) %>
+
<%= ApiUser.human_attribute_name :username %>
<%= @api_user.username %>
-
<%= t(:password) %>
+
<%= ApiUser.human_attribute_name :plain_text_password %>
<%= @api_user.plain_text_password %>
-
<%= t(:registrar_name) %>
+
<%= Registrar.model_name.human %>
<%= link_to(@api_user.registrar, admin_registrar_path(@api_user.registrar)) %>
-
<%= t(:role) %>
+
<%= ApiUser.human_attribute_name :roles %>
<%= @api_user.roles.join(', ') %>
-
<%= t('.active') %>
+
<%= ApiUser.human_attribute_name :active %>
<%= @api_user.active %>
diff --git a/config/locales/admin/api_users.en.yml b/config/locales/admin/api_users.en.yml index 49b72a2bd..39c1006f6 100644 --- a/config/locales/admin/api_users.en.yml +++ b/config/locales/admin/api_users.en.yml @@ -3,7 +3,6 @@ en: api_users: index: header: API users - active: Active new: header: New API user @@ -12,7 +11,6 @@ en: created: API user has been successfully created show: - active: Active subject: Subject edit_btn: Edit delete_btn: Delete @@ -27,6 +25,5 @@ en: deleted: API user has been successfully deleted form: - active: Active create_btn: Create API user update_btn: Update API user From fe690c52f502344e7cb2ed24023fde90c8cf4bc2 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Dec 2019 15:57:23 +0200 Subject: [PATCH 234/757] Extract translations --- app/views/admin/api_users/show.html.erb | 4 ++-- config/locales/admin/api_users.en.yml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb index 3e7c5347d..bba7a698f 100644 --- a/app/views/admin/api_users/show.html.erb +++ b/app/views/admin/api_users/show.html.erb @@ -18,7 +18,7 @@ <%= link_to t('.delete_btn'), admin_registrar_api_user_path(@api_user.registrar, @api_user), method: :delete, - data: { confirm: t(:are_you_sure) }, + data: { confirm: t('.delete_btn_confirm') }, class: 'btn btn-default' %>
@@ -29,7 +29,7 @@

- <%= t(:general) %> + <%= t '.header' %>

diff --git a/config/locales/admin/api_users.en.yml b/config/locales/admin/api_users.en.yml index 39c1006f6..bd3772556 100644 --- a/config/locales/admin/api_users.en.yml +++ b/config/locales/admin/api_users.en.yml @@ -11,9 +11,11 @@ en: created: API user has been successfully created show: + header: Details subject: Subject edit_btn: Edit delete_btn: Delete + delete_btn_confirm: Are you sure you want to delete this API user? edit: header: Edit API user From 9079fc68ecfd6955184393b40409276863f1571c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Dec 2019 15:58:05 +0200 Subject: [PATCH 235/757] Correct attribute name --- app/views/admin/api_users/_form.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/api_users/_form.html.erb b/app/views/admin/api_users/_form.html.erb index 23dd27b26..ad6ee6b2b 100644 --- a/app/views/admin/api_users/_form.html.erb +++ b/app/views/admin/api_users/_form.html.erb @@ -32,7 +32,7 @@
- <%= f.label :role, nil, for: nil, class: 'required' %> + <%= f.label :roles, nil, for: nil, class: 'required' %>
From c815da3afd356c3766663a01b57df1a31c2f5cae Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Dec 2019 16:11:51 +0200 Subject: [PATCH 236/757] Extract partials --- app/views/admin/api_users/show.html.erb | 82 +------------------ .../api_users/show/_certificates.html.erb | 55 +++++++++++++ .../admin/api_users/show/_details.html.erb | 26 ++++++ config/locales/admin/api_users.en.yml | 8 +- 4 files changed, 89 insertions(+), 82 deletions(-) create mode 100644 app/views/admin/api_users/show/_certificates.html.erb create mode 100644 app/views/admin/api_users/show/_details.html.erb diff --git a/app/views/admin/api_users/show.html.erb b/app/views/admin/api_users/show.html.erb index bba7a698f..05c5651ce 100644 --- a/app/views/admin/api_users/show.html.erb +++ b/app/views/admin/api_users/show.html.erb @@ -26,90 +26,12 @@
-
-
-

- <%= t '.header' %> -

-
- -
-
-
<%= ApiUser.human_attribute_name :username %>
-
<%= @api_user.username %>
- -
<%= ApiUser.human_attribute_name :plain_text_password %>
-
<%= @api_user.plain_text_password %>
- -
<%= Registrar.model_name.human %>
-
<%= link_to(@api_user.registrar, admin_registrar_path(@api_user.registrar)) %>
- -
<%= ApiUser.human_attribute_name :roles %>
-
<%= @api_user.roles.join(', ') %>
- -
<%= ApiUser.human_attribute_name :active %>
-
<%= @api_user.active %>
-
-
-
+ <%= render 'admin/api_users/show/details' %>
-
-
-
- <%= t(:certificates) %> -
-
- <%= link_to(t(:upload_crt), new_admin_api_user_certificate_path(@api_user, crt: true), class: 'btn btn-primary btn-xs') %> - <%= link_to(t(:upload_csr), new_admin_api_user_certificate_path(@api_user), class: 'btn btn-primary btn-xs') %> -
-
- -
- - - - - - - - - - <% @api_user.certificates.each do |x| %> - <% if x.csr %> - - - - - <% elsif x.crt %> - - - - - <% end %> - <% end %> - -
- <%= t('.subject') %> - - <%= t(:status) %> -
- <%= link_to(x.parsed_csr.try(:subject), - admin_api_user_certificate_path(@api_user, - x)) %> - - <%= x.status %> -
- <%= link_to(x.parsed_crt.try(:subject), - admin_api_user_certificate_path(@api_user, - x)) %> - - <%= x.status %> -
-
-
+ <%= render 'admin/api_users/show/certificates' %>
diff --git a/app/views/admin/api_users/show/_certificates.html.erb b/app/views/admin/api_users/show/_certificates.html.erb new file mode 100644 index 000000000..75a3cc2df --- /dev/null +++ b/app/views/admin/api_users/show/_certificates.html.erb @@ -0,0 +1,55 @@ +
+
+
+ <%= t(:certificates) %> +
+ +
+ <%= link_to(t(:upload_crt), new_admin_api_user_certificate_path(@api_user, crt: true), class: 'btn btn-primary btn-xs') %> + <%= link_to(t(:upload_csr), new_admin_api_user_certificate_path(@api_user), class: 'btn btn-primary btn-xs') %> +
+
+ +
+ + + + + + + + + + <% @api_user.certificates.each do |x| %> + <% if x.csr %> + + + + + <% elsif x.crt %> + + + + + <% end %> + <% end %> + +
+ <%= t('.subject') %> + + <%= t(:status) %> +
+ <%= link_to(x.parsed_csr.try(:subject), + admin_api_user_certificate_path(@api_user, + x)) %> + + <%= x.status %> +
+ <%= link_to(x.parsed_crt.try(:subject), + admin_api_user_certificate_path(@api_user, + x)) %> + + <%= x.status %> +
+
+
diff --git a/app/views/admin/api_users/show/_details.html.erb b/app/views/admin/api_users/show/_details.html.erb new file mode 100644 index 000000000..c98f23866 --- /dev/null +++ b/app/views/admin/api_users/show/_details.html.erb @@ -0,0 +1,26 @@ +
+
+

+ <%= t '.header' %> +

+
+ +
+
+
<%= ApiUser.human_attribute_name :username %>
+
<%= @api_user.username %>
+ +
<%= ApiUser.human_attribute_name :plain_text_password %>
+
<%= @api_user.plain_text_password %>
+ +
<%= Registrar.model_name.human %>
+
<%= link_to(@api_user.registrar, admin_registrar_path(@api_user.registrar)) %>
+ +
<%= ApiUser.human_attribute_name :roles %>
+
<%= @api_user.roles.join(', ') %>
+ +
<%= ApiUser.human_attribute_name :active %>
+
<%= @api_user.active %>
+
+
+
diff --git a/config/locales/admin/api_users.en.yml b/config/locales/admin/api_users.en.yml index bd3772556..9fde2db14 100644 --- a/config/locales/admin/api_users.en.yml +++ b/config/locales/admin/api_users.en.yml @@ -11,12 +11,16 @@ en: created: API user has been successfully created show: - header: Details - subject: Subject edit_btn: Edit delete_btn: Delete delete_btn_confirm: Are you sure you want to delete this API user? + details: + header: Details + + certificates: + subject: Subject + edit: header: Edit API user From f4abb0afce7b30c86973cb6c82b3b8545e0de2ef Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 10 Dec 2019 16:12:02 +0200 Subject: [PATCH 237/757] Fix translation --- config/locales/api_users.en.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/locales/api_users.en.yml b/config/locales/api_users.en.yml index 2d8538023..9d4fcb63a 100644 --- a/config/locales/api_users.en.yml +++ b/config/locales/api_users.en.yml @@ -3,3 +3,4 @@ en: attributes: api_user: plain_text_password: Password + roles: Role From 4f75bba3364e7aff5ea2ac563b6e2f1d6137aafc Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 12 Dec 2019 02:40:50 +0200 Subject: [PATCH 238/757] Regenerate `whois` database schema Remove outdated structure of `ar_internal_metadata` table and let Rails create it by itself. Otherwise `bin/rails db:setup:all` fails with: "PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "environment": SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2" --- db/whois_schema.rb | 41 ++++++++++++++++------------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/db/whois_schema.rb b/db/whois_schema.rb index 7d3756dc1..9353bd80c 100644 --- a/db/whois_schema.rb +++ b/db/whois_schema.rb @@ -1,4 +1,3 @@ -# encoding: UTF-8 # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. @@ -11,41 +10,33 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20181102124618) do +ActiveRecord::Schema.define(version: 2018_11_02_124618) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" - create_table "ar_internal_metadata", primary_key: "key", force: :cascade do |t| - t.string "value" + create_table "contact_requests", force: :cascade do |t| + t.integer "whois_record_id", null: false + t.string "secret", null: false + t.string "email", null: false + t.string "name", null: false + t.datetime "valid_to", null: false + t.string "status", default: "new", null: false + t.inet "ip_address" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["email"], name: "index_contact_requests_on_email" + t.index ["ip_address"], name: "index_contact_requests_on_ip_address" + t.index ["secret"], name: "index_contact_requests_on_secret", unique: true + t.index ["whois_record_id"], name: "index_contact_requests_on_whois_record_id" end - create_table "contact_requests", id: :bigserial, force: :cascade do |t| - t.integer "whois_record_id", null: false - t.string "secret", null: false - t.string "email", null: false - t.string "name", null: false - t.datetime "valid_to", null: false - t.string "status", default: "new", null: false - t.inet "ip_address" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - end - - add_index "contact_requests", ["email"], name: "index_contact_requests_on_email", using: :btree - add_index "contact_requests", ["ip_address"], name: "index_contact_requests_on_ip_address", using: :btree - add_index "contact_requests", ["secret"], name: "index_contact_requests_on_secret", unique: true, using: :btree - add_index "contact_requests", ["whois_record_id"], name: "index_contact_requests_on_whois_record_id", using: :btree - create_table "whois_records", force: :cascade do |t| - t.string "name" - t.json "json" + t.string "name" + t.json "json" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["name"], name: "index_domains_on_name" end - add_index "whois_records", ["name"], name: "index_domains_on_name", using: :btree - end From b7519169c0779f2612d197efe0d7b004fbaa7168 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2019 09:22:49 +0000 Subject: [PATCH 239/757] Bump puma from 4.2.1 to 4.3.1 Bumps [puma](https://github.com/puma/puma) from 4.2.1 to 4.3.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v4.2.1...v4.3.1) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2d7582f6e..9a5835796 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -270,7 +270,7 @@ GEM method_source (~> 0.8.1) slop (~> 3.4) public_suffix (4.0.1) - puma (4.2.1) + puma (4.3.1) nio4r (~> 2.0) que (0.14.3) que-web (0.7.2) From e3eab90b9cc0a5829152414e61acb2cc1f55ca9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 12 Dec 2019 11:25:36 +0200 Subject: [PATCH 240/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 600057c1d..84ea48232 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +12.12.2019 +* Updated e-invoice gem [#1429](https://github.com/internetee/registry/pull/1429) + 15.11.2019 * Restored EPP exception logging to syslog [#1371](https://github.com/internetee/registry/issues/1371) From 537c4d99d2d1d3ee45fcc4c6317e1da1280b5a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 12 Dec 2019 12:32:58 +0200 Subject: [PATCH 241/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84ea48232..fbd68ab6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 12.12.2019 * Updated e-invoice gem [#1429](https://github.com/internetee/registry/pull/1429) +* Set not null constraint on contact.name db column [#1417](https://github.com/internetee/registry/pull/1417) 15.11.2019 * Restored EPP exception logging to syslog [#1371](https://github.com/internetee/registry/issues/1371) From aa478361eafae81e15b1f8bbb0f77bcf0421c6b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 12 Dec 2019 12:37:34 +0200 Subject: [PATCH 242/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fbd68ab6f..744c28661 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ 12.12.2019 * Updated e-invoice gem [#1429](https://github.com/internetee/registry/pull/1429) * Set not null constraint on contact.name db column [#1417](https://github.com/internetee/registry/pull/1417) +* Removed domain name from registrant_verifications table [#1431](https://github.com/internetee/registry/pull/1431) 15.11.2019 * Restored EPP exception logging to syslog [#1371](https://github.com/internetee/registry/issues/1371) From 9fbefc5bd08832d401540af289846ce56191702c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 12 Dec 2019 13:45:51 +0200 Subject: [PATCH 243/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 744c28661..f47191332 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 12.12.2019 * Updated e-invoice gem [#1429](https://github.com/internetee/registry/pull/1429) +* Upgraded bundler to 2.0.2 [#1433](https://github.com/internetee/registry/pull/1433) * Set not null constraint on contact.name db column [#1417](https://github.com/internetee/registry/pull/1417) * Removed domain name from registrant_verifications table [#1431](https://github.com/internetee/registry/pull/1431) From c83372c69eca41ff076df1e5f679dd3a26939e80 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 12 Dec 2019 15:35:42 +0200 Subject: [PATCH 244/757] Remove `fill_ident_country` postgresql function as unused --- ...3136_remove_fill_ident_country_function.rb | 7 ++ db/structure.sql | 103 +----------------- 2 files changed, 9 insertions(+), 101 deletions(-) create mode 100644 db/migrate/20191212133136_remove_fill_ident_country_function.rb diff --git a/db/migrate/20191212133136_remove_fill_ident_country_function.rb b/db/migrate/20191212133136_remove_fill_ident_country_function.rb new file mode 100644 index 000000000..7a99ad855 --- /dev/null +++ b/db/migrate/20191212133136_remove_fill_ident_country_function.rb @@ -0,0 +1,7 @@ +class RemoveFillIdentCountryFunction < ActiveRecord::Migration[5.0] + def change + execute <<~SQL + DROP FUNCTION fill_ident_country(); + SQL + end +end diff --git a/db/structure.sql b/db/structure.sql index 66bf5ce60..1f80e6777 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -66,106 +66,6 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public; COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions'; --- --- Name: fill_ident_country(); Type: FUNCTION; Schema: public; Owner: - --- - -CREATE FUNCTION public.fill_ident_country() RETURNS boolean - LANGUAGE plpgsql - AS $_$ - DECLARE - changed BOOLEAN; - multiplier INT []; - multiplier2 INT []; - multiplier3 INT []; - multiplier4 INT []; - r RECORD; - control TEXT; - total INT; - i INT; - mod INT; - counter INT; - BEGIN - - multiplier := ARRAY [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]; - multiplier2 := ARRAY [3, 4, 5, 6, 7, 8, 9, 1, 2, 3]; - multiplier3 := ARRAY [1, 2, 3, 4, 5, 6, 7]; - multiplier4 := ARRAY [3, 4, 5, 6, 7, 8, 9]; - - FOR r IN SELECT id, ident FROM contacts WHERE ident_type = 'priv' AND ident_country_code IS NULL - LOOP - IF (length(r.ident) = 11 AND (r.ident ~ '^[0-9]+$') AND (substring(r.ident, 1, 1) = '3' OR substring(r.ident, 1, 1) = '4' OR substring(r.ident, 1, 1) = '5' OR substring(r.ident, 1, 1) = '6')) - THEN - total := 0; - counter := 1; - FOREACH i IN ARRAY multiplier - LOOP - total := (total + (i * to_number(substring(r.ident, counter, 1), '9'))); - counter := (counter + 1); - END LOOP; - mod := (total % 11); - counter := 1; - IF (mod >= 10) - THEN - total = 0; - FOREACH i IN ARRAY multiplier2 - LOOP - total := (total + (i * to_number(substring(r.ident, counter, 1), '9'))); - counter := (counter + 1); - END LOOP; - mod := (total % 11); - END IF; - IF (mod = 10) - THEN - mod := 0; - END IF; - IF (substring(r.ident, 11, 1) = to_char(mod, 'FM999MI')) - THEN - UPDATE contacts SET ident_country_code = 'EE' WHERE id = r.id; - END IF; - total := 0; - END IF; - END LOOP; - - FOR r IN SELECT id, ident FROM contacts WHERE ident_type = 'org' AND ident_country_code IS NULL - LOOP - IF (length(r.ident) = 8 AND (r.ident ~ '^[0-9]+$') AND (substring(r.ident, 1, 1) = '1' OR substring(r.ident, 1, 1) = '8' OR substring(r.ident, 1, 1) = '9')) - THEN - total := 0; - counter := 1; - FOREACH i IN ARRAY multiplier3 - LOOP - total := (total + (i * to_number(substring(r.ident, counter, 1), '9'))); - counter := (counter + 1); - END LOOP; - mod := total % 11; - total := 0; - counter := 1; - IF (mod >= 10) - THEN - total = 0; - FOREACH i IN ARRAY multiplier4 - LOOP - total := (total + (i * to_number(substring(r.ident, counter, 1), '9'))); - counter := (counter + 1); - END LOOP; - mod := (total % 11); - END IF; - IF (mod = 10) - THEN - mod := 0; - END IF; - IF (substring(r.ident, 8, 1) = to_char(mod, 'FM999MI')) - THEN - UPDATE contacts SET ident_country_code = 'EE' WHERE id = r.id; - END IF; - END IF; - END LOOP; - RETURN changed; - END; - $_$; - - -- -- Name: generate_zonefile(character varying); Type: FUNCTION; Schema: public; Owner: - -- @@ -4362,6 +4262,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191008024334'), ('20191024153351'), ('20191024160038'), -('20191206183853'); +('20191206183853'), +('20191212133136'); From 71cf9994cb1f5c9ae7dbefd970c16e4848eecf3d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 12 Dec 2019 17:51:46 +0200 Subject: [PATCH 245/757] Remove Ruby version from Travis config and let it use .ruby-version --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 24918ddbc..20417c6fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,4 @@ language: ruby -rvm: - - 2.4 - - 2.5 cache: bundler env: - DB=postgresql From f0a7edd6d82122882203315bfbfd8a853a99a360 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sun, 15 Dec 2019 18:27:01 +0200 Subject: [PATCH 246/757] Ignore legacy database columns Closes #1377 --- app/models/contact.rb | 2 ++ app/models/dnskey.rb | 2 ++ app/models/domain.rb | 2 ++ app/models/domain_contact.rb | 2 ++ app/models/nameserver.rb | 2 ++ app/models/registrar.rb | 4 +++- app/models/reserved_domain.rb | 2 ++ app/models/user.rb | 2 ++ doc/registrant-api/v1/domain.md | 9 --------- doc/registrant-api/v1/registry_lock.md | 6 ------ doc/repp/v1/contact.md | 1 - doc/repp/v1/domain.md | 3 --- lib/serializers/registrant_api/domain.rb | 3 --- test/lib/serializers/registrant_api/domain_test.rb | 2 +- 14 files changed, 18 insertions(+), 24 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index 1373ff97d..558292dbd 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -56,6 +56,8 @@ class Contact < ApplicationRecord after_save :update_related_whois_records + self.ignored_columns = %w[legacy_id legacy_history_id] + ORG = 'org' PRIV = 'priv' diff --git a/app/models/dnskey.rb b/app/models/dnskey.rb index 4772188a6..922844874 100644 --- a/app/models/dnskey.rb +++ b/app/models/dnskey.rb @@ -22,6 +22,8 @@ class Dnskey < ApplicationRecord FLAGS = %w(0 256 257) # 256 = ZSK, 257 = KSK DS_DIGEST_TYPE = [1,2] + self.ignored_columns = %w[legacy_domain_id] + def epp_code_map { '2005' => [ diff --git a/app/models/domain.rb b/app/models/domain.rb index bf8072cbf..96eb89616 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -169,6 +169,8 @@ class Domain < ApplicationRecord attr_accessor :registrant_typeahead, :update_me, :epp_pending_update, :epp_pending_delete, :reserved_pw + self.ignored_columns = %w[legacy_id legacy_registrar_id legacy_registrant_id] + def subordinate_nameservers nameservers.select { |x| x.hostname.end_with?(name) } end diff --git a/app/models/domain_contact.rb b/app/models/domain_contact.rb index 26d23dd56..910f4e445 100644 --- a/app/models/domain_contact.rb +++ b/app/models/domain_contact.rb @@ -8,6 +8,8 @@ class DomainContact < ApplicationRecord attr_accessor :value_typeahead + self.ignored_columns = %w[legacy_domain_id legacy_contact_id] + def epp_code_map { '2302' => [ diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 77c7417de..bf76868dc 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -34,6 +34,8 @@ class Nameserver < ApplicationRecord delegate :name, to: :domain, prefix: true + self.ignored_columns = %w[legacy_domain_id] + def epp_code_map { '2302' => [ diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 69a8a1dee..8f41d62ca 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -46,6 +46,8 @@ class Registrar < ApplicationRecord RegenerateRegistrarWhoisesJob.enqueue id end + self.ignored_columns = %w[legacy_id] + class << self def ordered order(name: :asc) @@ -194,4 +196,4 @@ class Registrar < ApplicationRecord def vat_liable_in_foreign_country? !vat_liable_locally? end -end \ No newline at end of file +end diff --git a/app/models/reserved_domain.rb b/app/models/reserved_domain.rb index 871c1991a..11c9bb2f5 100644 --- a/app/models/reserved_domain.rb +++ b/app/models/reserved_domain.rb @@ -8,6 +8,8 @@ class ReservedDomain < ApplicationRecord alias_attribute :registration_code, :password + self.ignored_columns = %w[legacy_id] + class << self def pw_for(domain_name) name_in_ascii = SimpleIDN.to_ascii(domain_name) diff --git a/app/models/user.rb b/app/models/user.rb index cc299640c..6b16bd508 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -5,6 +5,8 @@ class User < ApplicationRecord attr_accessor :phone + self.ignored_columns = %w[legacy_id] + def id_role_username "#{self.id}-#{self.class}: #{self.username}" end diff --git a/doc/registrant-api/v1/domain.md b/doc/registrant-api/v1/domain.md index 5a5a61366..ffea81826 100644 --- a/doc/registrant-api/v1/domain.md +++ b/doc/registrant-api/v1/domain.md @@ -60,9 +60,6 @@ Content-Type: application/json "period_unit":"y", "creator_str":null, "updator_str":null, - "legacy_id":null, - "legacy_registrar_id":null, - "legacy_registrant_id":null, "outzone_at":"2016-09-24T09:11:14.861Z", "delete_date":"2016-10-24", "registrant_verification_asked_at":null, @@ -175,9 +172,6 @@ Content-Type: application/json "period_unit":"y", "creator_str":null, "updator_str":null, - "legacy_id":null, - "legacy_registrar_id":null, - "legacy_registrant_id":null, "outzone_at":"2016-09-24T09:11:14.861Z", "delete_date":"2016-10-24", "registrant_verification_asked_at":null, @@ -282,9 +276,6 @@ Content-Type: application/json "period_unit":"y", "creator_str":null, "updator_str":null, - "legacy_id":null, - "legacy_registrar_id":null, - "legacy_registrant_id":null, "outzone_at":"2016-09-24T09:11:14.861Z", "delete_date":"2016-10-24", "registrant_verification_asked_at":null, diff --git a/doc/registrant-api/v1/registry_lock.md b/doc/registrant-api/v1/registry_lock.md index 61a2c0839..17f4c6f6e 100644 --- a/doc/registrant-api/v1/registry_lock.md +++ b/doc/registrant-api/v1/registry_lock.md @@ -60,9 +60,6 @@ Content-Type: application/json "period_unit":"y", "creator_str":null, "updator_str":null, - "legacy_id":null, - "legacy_registrar_id":null, - "legacy_registrant_id":null, "outzone_at":"2016-09-24T09:11:14.861Z", "delete_date":"2016-10-24", "registrant_verification_asked_at":null, @@ -204,9 +201,6 @@ Content-Type: application/json "period_unit":"y", "creator_str":null, "updator_str":null, - "legacy_id":null, - "legacy_registrar_id":null, - "legacy_registrant_id":null, "outzone_at":"2016-09-24T09:11:14.861Z", "delete_date":"2016-10-24", "registrant_verification_asked_at":null, diff --git a/doc/repp/v1/contact.md b/doc/repp/v1/contact.md index 71bf6276d..41f45551f 100644 --- a/doc/repp/v1/contact.md +++ b/doc/repp/v1/contact.md @@ -50,7 +50,6 @@ Content-Type: application/json "zip": "11111", "country_code": "EE", "state": null, - "legacy_id": null, "statuses": [ "ok" ], diff --git a/doc/repp/v1/domain.md b/doc/repp/v1/domain.md index 035bb1e9a..c6734cbe2 100644 --- a/doc/repp/v1/domain.md +++ b/doc/repp/v1/domain.md @@ -48,9 +48,6 @@ Content-Type: application/json "period_unit": "y", "creator_str": null, "updator_str": null, - "legacy_id": null, - "legacy_registrar_id": null, - "legacy_registrant_id": null, "outzone_at": "2016-09-24T09:11:14.861Z", "delete_date": "2016-10-24", "registrant_verification_asked_at": null, diff --git a/lib/serializers/registrant_api/domain.rb b/lib/serializers/registrant_api/domain.rb index 500d6c08c..19594fe20 100644 --- a/lib/serializers/registrant_api/domain.rb +++ b/lib/serializers/registrant_api/domain.rb @@ -32,9 +32,6 @@ module Serializers period_unit: domain.period_unit, creator_str: domain.creator_str, updator_str: domain.updator_str, - legacy_id: domain.legacy_id, - legacy_registrar_id: domain.legacy_registrar_id, - legacy_registrant_id: domain.legacy_registrant_id, outzone_at: domain.outzone_at, delete_date: domain.delete_date, registrant_verification_asked_at: domain.registrant_verification_asked_at, diff --git a/test/lib/serializers/registrant_api/domain_test.rb b/test/lib/serializers/registrant_api/domain_test.rb index 08648b29c..9bd70f626 100644 --- a/test/lib/serializers/registrant_api/domain_test.rb +++ b/test/lib/serializers/registrant_api/domain_test.rb @@ -70,7 +70,7 @@ class SerializersRegistrantApiDomainTest < ActiveSupport::TestCase def test_other_fields_are_also_present keys = %i[id name registrar registered_at valid_to created_at updated_at registrant tech_contacts admin_contacts transfer_code name_dirty name_puny period - period_unit creator_str updator_str legacy_id legacy_registrar_id legacy_registrant_id + period_unit creator_str updator_str outzone_at delete_date registrant_verification_asked_at registrant_verification_token pending_json force_delete_date statuses locked_by_registrant_at status_notes nameservers] From ea5ae877e3763b04e6585064165e4d2beda470d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 16 Dec 2019 17:24:50 +0200 Subject: [PATCH 247/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f47191332..c6f2c856b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +16.12.2019 +* Refactored API user management [#1435](https://github.com/internetee/registry/pull/1435) + 12.12.2019 * Updated e-invoice gem [#1429](https://github.com/internetee/registry/pull/1429) * Upgraded bundler to 2.0.2 [#1433](https://github.com/internetee/registry/pull/1433) From fe0ee89157dbb91c51aefc85407098b0aa0e32ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 16 Dec 2019 17:27:21 +0200 Subject: [PATCH 248/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6f2c856b..718f0b273 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 16.12.2019 +* Bump puma from 4.2.1 to 4.3.1 [#1437](https://github.com/internetee/registry/pull/1437) * Refactored API user management [#1435](https://github.com/internetee/registry/pull/1435) 12.12.2019 From a3f0d4555c35194355458170de3cce2275b8cb5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 16 Dec 2019 17:29:20 +0200 Subject: [PATCH 249/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 718f0b273..8ef3a2b89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ 16.12.2019 * Bump puma from 4.2.1 to 4.3.1 [#1437](https://github.com/internetee/registry/pull/1437) * Refactored API user management [#1435](https://github.com/internetee/registry/pull/1435) +* Removed `fill_ident_country` postgresql function as unused [#1439](https://github.com/internetee/registry/pull/1439) 12.12.2019 * Updated e-invoice gem [#1429](https://github.com/internetee/registry/pull/1429) From 5db42333a9c629958c001ca61215f7dc2a3e4f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 16 Dec 2019 17:30:49 +0200 Subject: [PATCH 250/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ef3a2b89..4c4eb1e8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ 16.12.2019 * Bump puma from 4.2.1 to 4.3.1 [#1437](https://github.com/internetee/registry/pull/1437) * Refactored API user management [#1435](https://github.com/internetee/registry/pull/1435) +* Removed Ruby version from Travis config and let it use .ruby-version [#1441](https://github.com/internetee/registry/pull/1441) * Removed `fill_ident_country` postgresql function as unused [#1439](https://github.com/internetee/registry/pull/1439) 12.12.2019 From b7c4ed5b9a6066e8749139660226d93006adcca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 16 Dec 2019 18:14:03 +0200 Subject: [PATCH 251/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c4eb1e8b..a20c8171a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ 16.12.2019 * Bump puma from 4.2.1 to 4.3.1 [#1437](https://github.com/internetee/registry/pull/1437) * Refactored API user management [#1435](https://github.com/internetee/registry/pull/1435) +* Ignoring legacy database columns at ActiveRecord level [#1377](https://github.com/internetee/registry/issues/1377) * Removed Ruby version from Travis config and let it use .ruby-version [#1441](https://github.com/internetee/registry/pull/1441) * Removed `fill_ident_country` postgresql function as unused [#1439](https://github.com/internetee/registry/pull/1439) From 408d990c1ccf5033dc30a312ce7cab47a95d8de2 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 18 Dec 2019 08:55:35 +0200 Subject: [PATCH 252/757] Reformat --- app/views/epp/contacts/info.xml.builder | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/epp/contacts/info.xml.builder b/app/views/epp/contacts/info.xml.builder index 38a96a706..4d44b0d61 100644 --- a/app/views/epp/contacts/info.xml.builder +++ b/app/views/epp/contacts/info.xml.builder @@ -68,11 +68,11 @@ xml.epp_head do # xml.tag!('contact:trDate', '123') if false if can? :view_password, @contact, @password xml.tag!('contact:authInfo') do - xml.tag!('contact:pw', @contact.auth_info) + xml.tag!('contact:pw', @contact.auth_info) end else xml.tag!('contact:authInfo') do - xml.tag!('contact:pw', 'No access') + xml.tag!('contact:pw', 'No access') end end end From b90a937c9adb32c178c4af36d4ec30acac043ce4 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 18 Dec 2019 08:55:48 +0200 Subject: [PATCH 253/757] Remove comment --- app/views/epp/contacts/info.xml.builder | 1 - 1 file changed, 1 deletion(-) diff --git a/app/views/epp/contacts/info.xml.builder b/app/views/epp/contacts/info.xml.builder index 4d44b0d61..07ba1102f 100644 --- a/app/views/epp/contacts/info.xml.builder +++ b/app/views/epp/contacts/info.xml.builder @@ -65,7 +65,6 @@ xml.epp_head do xml.tag!('contact:upID', upID) if upID.present? # optional upID xml.tag!('contact:upDate', @contact.updated_at.try(:iso8601)) end - # xml.tag!('contact:trDate', '123') if false if can? :view_password, @contact, @password xml.tag!('contact:authInfo') do xml.tag!('contact:pw', @contact.auth_info) From 5d2f1a89fb004d7630eab0cedb4507a6e74267c8 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 18 Dec 2019 09:14:13 +0200 Subject: [PATCH 254/757] Hide contact password unless the current registrar is sponsoring Closes #1446 --- app/views/epp/contacts/info.xml.builder | 4 --- .../integration/epp/contact/info/base_test.rb | 30 ++++++++++++++++++- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/app/views/epp/contacts/info.xml.builder b/app/views/epp/contacts/info.xml.builder index 07ba1102f..1945e7def 100644 --- a/app/views/epp/contacts/info.xml.builder +++ b/app/views/epp/contacts/info.xml.builder @@ -69,10 +69,6 @@ xml.epp_head do xml.tag!('contact:authInfo') do xml.tag!('contact:pw', @contact.auth_info) end - else - xml.tag!('contact:authInfo') do - xml.tag!('contact:pw', 'No access') - end end end end diff --git a/test/integration/epp/contact/info/base_test.rb b/test/integration/epp/contact/info/base_test.rb index 23a839801..80dad97e8 100644 --- a/test/integration/epp/contact/info/base_test.rb +++ b/test/integration/epp/contact/info/base_test.rb @@ -44,9 +44,37 @@ class EppContactInfoBaseTest < EppTestCase contact: xml_schema).text end + def test_hides_password_when_current_registrar_is_not_sponsoring + non_sponsoring_registrar = registrars(:goodnames) + @contact.update!(registrar: non_sponsoring_registrar) + + # https://github.com/internetee/registry/issues/415 + @contact.update_columns(code: @contact.code.upcase) + + request_xml = <<-XML + + + + + + #{@contact.code} + + + + + XML + + post epp_info_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => + 'session=api_bestnames' } + + assert_epp_response :completed_successfully + response_xml = Nokogiri::XML(response.body) + assert_nil response_xml.at_xpath('//contact:authInfo', contact: xml_schema) + end + private def xml_schema 'https://epp.tld.ee/schema/contact-ee-1.1.xsd' end -end \ No newline at end of file +end From 75eb9faed7737794412b28bab23166b62fb45104 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 18 Dec 2019 09:21:52 +0200 Subject: [PATCH 255/757] Remove unused translation --- config/locales/en.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index a12385169..75f9a6542 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -195,7 +195,6 @@ en: domain_details: 'Domain details' registered_at: 'Registered at' password: 'Password' - authinfo_pw: 'AuthInfo pw' valid_from: 'Valid from' general: 'General' contacts: 'Contacts' From 8970f5ef302e5ace7feb1106be34cb307cbd61db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 19:23:47 +0000 Subject: [PATCH 256/757] Bump rack from 2.0.7 to 2.0.8 Bumps [rack](https://github.com/rack/rack) from 2.0.7 to 2.0.8. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/2.0.7...2.0.8) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 86fa15f81..5fa062881 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -277,7 +277,7 @@ GEM erubis que (~> 0.8) sinatra - rack (2.0.7) + rack (2.0.8) rack-accept (0.4.5) rack (>= 0.4) rack-protection (2.0.7) From effedcf585cfd56c4f0bb2f8926a4f30c8665b9e Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 19 Dec 2019 16:13:46 +0500 Subject: [PATCH 257/757] Add autocheck by reference number in field or in description (parsed by regexp, first 7-digit number) See #1415 --- app/models/bank_transaction.rb | 24 ++++++++----------- test/fixtures/bank_transactions.yml | 4 ++-- test/fixtures/invoices.yml | 3 ++- .../invoices/payment_callback_test.rb | 4 ++-- test/models/bank_transaction_test.rb | 17 ++++++++++--- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 6fbf7ce59..6612a4dbd 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -16,22 +16,12 @@ class BankTransaction < ApplicationRecord account_activity.invoice end - - def invoice_num - return @invoice_no if defined?(@invoice_no) - - match = description.match(/^[^\d]*(\d+)/) - return unless match - - @invoice_no = match[1].try(:to_i) - end - def invoice - @invoice ||= registrar.invoices.find_by(number: invoice_num) if registrar + @invoice ||= registrar.invoices.find_by(total: sum) if registrar end def registrar - @registrar ||= Invoice.find_by(reference_no: reference_no)&.buyer + @registrar ||= Invoice.find_by(reference_no: parsed_ref_number)&.buyer end @@ -39,11 +29,9 @@ class BankTransaction < ApplicationRecord def autobind_invoice return if binded? return unless registrar - return unless invoice_num return unless invoice return unless invoice.payable? - return if invoice.total != sum create_activity(registrar, invoice) end @@ -98,4 +86,12 @@ class BankTransaction < ApplicationRecord registrar.settings['balance_auto_reload'].delete('pending') registrar.save! end + + def parsed_ref_number + reference_no || ref_number_from_description + end + + def ref_number_from_description + /(\d{7})/.match(description)[0] + end end diff --git a/test/fixtures/bank_transactions.yml b/test/fixtures/bank_transactions.yml index ada80981d..70b3b6651 100644 --- a/test/fixtures/bank_transactions.yml +++ b/test/fixtures/bank_transactions.yml @@ -1,5 +1,5 @@ one: sum: 1 currency: EUR - description: Order nr. 1 - iban: US75512108001245126199 \ No newline at end of file + description: Order nr 1 from registrar 1234567 second number 2345678 + iban: US75512108001245126199 diff --git a/test/fixtures/invoices.yml b/test/fixtures/invoices.yml index 3fe18b4b2..bc9fa2900 100644 --- a/test/fixtures/invoices.yml +++ b/test/fixtures/invoices.yml @@ -22,4 +22,5 @@ one: vat_rate: 0.1 total: 16.50 reference_no: 13 - number: 1 \ No newline at end of file + number: 1 + description: Order nr 1 from registrar 1234567 second number 2345678 diff --git a/test/integration/registrar_area/invoices/payment_callback_test.rb b/test/integration/registrar_area/invoices/payment_callback_test.rb index 2303158a7..23db55e84 100644 --- a/test/integration/registrar_area/invoices/payment_callback_test.rb +++ b/test/integration/registrar_area/invoices/payment_callback_test.rb @@ -28,7 +28,7 @@ class PaymentCallbackTest < ApplicationIntegrationTest def assert_matching_bank_transaction_exists(invoice) assert BankTransaction.find_by( - description: invoice.order, + description: invoice.description, currency: invoice.currency, iban: invoice.seller_iban ), 'Matching bank transaction should exist' @@ -56,4 +56,4 @@ class PaymentCallbackTest < ApplicationIntegrationTest payment_method: "every_pay" } end -end \ No newline at end of file +end diff --git a/test/models/bank_transaction_test.rb b/test/models/bank_transaction_test.rb index 0e4d88bd6..37ff4041a 100644 --- a/test/models/bank_transaction_test.rb +++ b/test/models/bank_transaction_test.rb @@ -6,9 +6,20 @@ class BankTransactionTest < ActiveSupport::TestCase @invoice = invoices(:one) end - def test_matches_against_invoice_number_and_reference_number - create_payable_invoice(number: '2222', total: 10, reference_no: '1111') - transaction = BankTransaction.new(description: 'invoice #2222', sum: 10, reference_no: '1111') + def test_matches_against_invoice_nubmber_and_reference_number + create_payable_invoice(number: '2222', total: 10, reference_no: '1234567') + transaction = BankTransaction.new(description: 'invoice #2222', sum: 10, reference_no: '1234567') + + assert_difference 'AccountActivity.count' do + transaction.autobind_invoice + end + end + + def test_matches_against_invoice_nubmber_and_reference_number_in_description + create_payable_invoice(number: '2222', total: 10, reference_no: '1234567') + transaction = BankTransaction.new(description: 'invoice #2222', + sum: 10, + description: 'Order nr 1 from registrar 1234567 second number 2345678') assert_difference 'AccountActivity.count' do transaction.autobind_invoice From ee30c8d4ef6378a25c978b40612d7a57c5adf3f2 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 7 Dec 2019 20:38:38 +0200 Subject: [PATCH 258/757] Add fixture --- test/fixtures/registrant_verifications.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 test/fixtures/registrant_verifications.yml diff --git a/test/fixtures/registrant_verifications.yml b/test/fixtures/registrant_verifications.yml new file mode 100644 index 000000000..28727b262 --- /dev/null +++ b/test/fixtures/registrant_verifications.yml @@ -0,0 +1,7 @@ +one: + action: confirmed + action_type: domain_delete + created_at: <%= Time.zone.parse('2010-07-05') %> + domain: shop + domain_name: shop.test + verification_token: 1234 From 7f308d412393661fd7e471de33feb0fc1ee10cd7 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 7 Dec 2019 20:38:58 +0200 Subject: [PATCH 259/757] Add audit log to registrant verifications Closes #1425 --- app/models/domain.rb | 1 + app/models/registrant_verification.rb | 2 + ...ete_orphaned_registrant_verifications.rake | 15 +++++++ test/models/registrant_verification_test.rb | 12 ++++++ ..._orphaned_registrant_verifications_test.rb | 43 +++++++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake create mode 100644 test/models/registrant_verification_test.rb create mode 100644 test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb diff --git a/app/models/domain.rb b/app/models/domain.rb index 96eb89616..c14d1bc4d 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -57,6 +57,7 @@ class Domain < ApplicationRecord has_many :legal_documents, as: :documentable accepts_nested_attributes_for :legal_documents, reject_if: proc { |attrs| attrs[:body].blank? } + has_many :registrant_verifications, dependent: :destroy after_initialize do self.pending_json = {} if pending_json.blank? diff --git a/app/models/registrant_verification.rb b/app/models/registrant_verification.rb index e6b68d955..96528c887 100644 --- a/app/models/registrant_verification.rb +++ b/app/models/registrant_verification.rb @@ -1,6 +1,8 @@ # Used in Registrant portal to collect registrant verifications # Registrant postgres user can access this table directly. class RegistrantVerification < ApplicationRecord + has_paper_trail + # actions CONFIRMED = 'confirmed' REJECTED = 'rejected' diff --git a/lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake b/lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake new file mode 100644 index 000000000..f65db547e --- /dev/null +++ b/lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake @@ -0,0 +1,15 @@ +namespace :data_migrations do + task delete_orphaned_registrant_verifications: :environment do + orphaned_registrant_verifications = RegistrantVerification.where.not(domain_id: Domain.ids) + orphaned_registrant_verification_count = orphaned_registrant_verifications.count + processed_registrant_verification_count = 0 + + orphaned_registrant_verifications.each do |registrant_verification| + registrant_verification.destroy! + processed_registrant_verification_count += 1 + end + + puts "Processed: #{processed_registrant_verification_count} out of" \ + " #{orphaned_registrant_verification_count}" + end +end diff --git a/test/models/registrant_verification_test.rb b/test/models/registrant_verification_test.rb new file mode 100644 index 000000000..4bb7b6a1c --- /dev/null +++ b/test/models/registrant_verification_test.rb @@ -0,0 +1,12 @@ +require 'test_helper' + +class RegistrantVerificationTest < ActiveSupport::TestCase + def test_audit_log + registrant_verification = registrant_verifications(:one) + random_action = "random#{rand(100)}" + + assert_difference -> { PaperTrail::Version.count } do + registrant_verification.update_attributes!(action: random_action) + end + end +end diff --git a/test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb b/test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb new file mode 100644 index 000000000..df576332e --- /dev/null +++ b/test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb @@ -0,0 +1,43 @@ +require 'test_helper' + +class ArchiveOrphanedRegistrantVerificationsTest < ActiveSupport::TestCase + def test_deletes_orphaned_registrant_verifications + create_orphaned_registrant_verification + + assert_difference 'RegistrantVerification.count', -1 do + capture_io do + run_task + end + end + end + + def test_keeps_non_orphaned_registrant_verifications_intact + assert_no_difference 'RegistrantVerification.count' do + capture_io do + run_task + end + end + end + + def test_output + create_orphaned_registrant_verification + + assert_output "Processed: 1 out of 1\n" do + run_task + end + end + + private + + def create_orphaned_registrant_verification + non_existent_domain_id = 55 + assert_not_includes Domain.ids, non_existent_domain_id + + RegistrantVerification.connection.disable_referential_integrity do + registrant_verifications(:one).update_columns(domain_id: non_existent_domain_id) + end + end + + def run_task + Rake::Task['data_migrations:delete_orphaned_registrant_verifications'].execute end +end From c4ffdbd6506aa025abda0f9ba4f2c3f5ab1dd92d Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 27 Dec 2019 16:59:25 +0500 Subject: [PATCH 260/757] Add registrant verification versions table according to existing logic Creates a log_registrant_verifications table and version class as per https://github.com/internetee/registry/issues/1425#issuecomment-567117002 --- app/models/registrant_verification.rb | 2 +- .../registrant_verification_version.rb | 7 + ...sed_version_to_registrant_verifications.rb | 24 + db/structure.sql | 466 ++++++++++-------- test/fixtures/registrant_verifications.yml | 1 - test/models/registrant_verification_test.rb | 2 +- 6 files changed, 300 insertions(+), 202 deletions(-) create mode 100644 app/models/version/registrant_verification_version.rb create mode 100644 db/migrate/20191227110904_add_json_based_version_to_registrant_verifications.rb diff --git a/app/models/registrant_verification.rb b/app/models/registrant_verification.rb index 96528c887..f4498b9a3 100644 --- a/app/models/registrant_verification.rb +++ b/app/models/registrant_verification.rb @@ -1,7 +1,7 @@ # Used in Registrant portal to collect registrant verifications # Registrant postgres user can access this table directly. class RegistrantVerification < ApplicationRecord - has_paper_trail + has_paper_trail class_name: 'RegistrantVerificationVersion' # actions CONFIRMED = 'confirmed' diff --git a/app/models/version/registrant_verification_version.rb b/app/models/version/registrant_verification_version.rb new file mode 100644 index 000000000..b7dbb8852 --- /dev/null +++ b/app/models/version/registrant_verification_version.rb @@ -0,0 +1,7 @@ +class RegistrantVerificationVersion < PaperTrail::Version + include VersionSession + self.table_name = :log_registrant_verifications + self.sequence_name = :log_registrant_verifications_id_seq + + scope :deleted, -> { where(event: 'destroy') } +end diff --git a/db/migrate/20191227110904_add_json_based_version_to_registrant_verifications.rb b/db/migrate/20191227110904_add_json_based_version_to_registrant_verifications.rb new file mode 100644 index 000000000..6300cddf1 --- /dev/null +++ b/db/migrate/20191227110904_add_json_based_version_to_registrant_verifications.rb @@ -0,0 +1,24 @@ +class AddJsonBasedVersionToRegistrantVerifications < ActiveRecord::Migration[5.0] + def change + name = 'registrant_verification' + table_name = "log_#{name.tableize}" + + create_table table_name do |t| + t.string :item_type, null: false + t.integer :item_id, null: false + t.string :event, null: false + t.string :whodunnit + t.json :object + t.json :object_changes + t.datetime :created_at + t.string :session + end + add_index table_name, [:item_type, :item_id] + add_index table_name, :whodunnit + + add_column name.tableize, :creator_id_tmp, :integer + add_column name.tableize, :updater_id_tmp, :integer + rename_column name.tableize, :creator_id_tmp, :creator_id + rename_column name.tableize, :updater_id_tmp, :updater_id + end +end diff --git a/db/structure.sql b/db/structure.sql index 1f80e6777..b954cbc95 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -195,7 +195,7 @@ SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -235,7 +235,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -271,7 +271,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -303,7 +303,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.ar_internal_metadata ( @@ -315,7 +315,7 @@ CREATE TABLE public.ar_internal_metadata ( -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -348,7 +348,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -384,7 +384,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -428,7 +428,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -461,7 +461,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -499,7 +499,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -557,7 +557,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -592,7 +592,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -633,7 +633,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -671,7 +671,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -708,7 +708,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( @@ -766,7 +766,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -798,7 +798,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -836,7 +836,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -906,7 +906,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -941,7 +941,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -979,7 +979,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1017,7 +1017,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1055,7 +1055,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1093,7 +1093,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1131,7 +1131,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1169,7 +1169,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1207,7 +1207,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1246,7 +1246,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1284,7 +1284,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1322,7 +1322,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1360,7 +1360,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1398,7 +1398,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1436,7 +1436,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1474,7 +1474,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1512,7 +1512,43 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.log_registrant_verifications ( + id integer NOT NULL, + item_type character varying NOT NULL, + item_id integer NOT NULL, + event character varying NOT NULL, + whodunnit character varying, + object json, + object_changes json, + created_at timestamp without time zone, + session character varying +); + + +-- +-- Name: log_registrant_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.log_registrant_verifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: log_registrant_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.log_registrant_verifications_id_seq OWNED BY public.log_registrant_verifications.id; + + +-- +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1550,7 +1586,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1588,7 +1624,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1626,7 +1662,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1664,7 +1700,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1702,7 +1738,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -1740,7 +1776,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -1778,7 +1814,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -1816,7 +1852,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -1858,7 +1894,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( @@ -1868,7 +1904,9 @@ CREATE TABLE public.registrant_verifications ( updated_at timestamp without time zone, action character varying NOT NULL, domain_id integer NOT NULL, - action_type character varying NOT NULL + action_type character varying NOT NULL, + creator_id integer, + updater_id integer ); @@ -1892,7 +1930,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -1945,7 +1983,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -1980,7 +2018,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -1989,7 +2027,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2025,7 +2063,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2077,7 +2115,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2112,7 +2150,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( @@ -2148,7 +2186,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2183,7 +2221,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( @@ -2456,6 +2494,13 @@ ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('pub ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.log_registrant_verifications ALTER COLUMN id SET DEFAULT nextval('public.log_registrant_verifications_id_seq'::regclass); + + -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2583,7 +2628,7 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2591,7 +2636,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -2599,7 +2644,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -2607,7 +2652,7 @@ ALTER TABLE ONLY public.actions -- --- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.ar_internal_metadata @@ -2615,7 +2660,7 @@ ALTER TABLE ONLY public.ar_internal_metadata -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2623,7 +2668,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -2631,7 +2676,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -2639,7 +2684,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2647,7 +2692,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -2655,7 +2700,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2663,7 +2708,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -2671,7 +2716,7 @@ ALTER TABLE ONLY public.directos -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -2679,7 +2724,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -2687,7 +2732,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -2695,7 +2740,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2703,7 +2748,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -2711,7 +2756,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -2719,7 +2764,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -2727,7 +2772,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -2735,7 +2780,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -2743,7 +2788,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -2751,7 +2796,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -2759,7 +2804,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -2767,7 +2812,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -2775,7 +2820,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -2783,7 +2828,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -2791,7 +2836,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -2799,7 +2844,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -2807,7 +2852,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -2815,7 +2860,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -2823,7 +2868,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -2831,7 +2876,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -2839,7 +2884,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -2847,7 +2892,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -2855,7 +2900,15 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.log_registrant_verifications + ADD CONSTRAINT log_registrant_verifications_pkey PRIMARY KEY (id); + + +-- +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -2863,7 +2916,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -2871,7 +2924,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -2879,7 +2932,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -2887,7 +2940,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -2895,7 +2948,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -2903,7 +2956,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -2911,7 +2964,7 @@ ALTER TABLE ONLY public.notifications -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -2919,7 +2972,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -2927,7 +2980,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -2935,7 +2988,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -2943,7 +2996,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -2951,7 +3004,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -2959,7 +3012,7 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2967,7 +3020,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2975,7 +3028,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2983,7 +3036,7 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -2991,7 +3044,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2999,7 +3052,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3007,7 +3060,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3015,7 +3068,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3023,7 +3076,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3031,7 +3084,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3039,7 +3092,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3047,7 +3100,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3055,7 +3108,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3063,7 +3116,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3071,7 +3124,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3079,7 +3132,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3087,7 +3140,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3095,7 +3148,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3103,553 +3156,567 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); + + +-- +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); + + +-- +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); @@ -4263,6 +4330,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191024153351'), ('20191024160038'), ('20191206183853'), -('20191212133136'); +('20191212133136'), +('20191227110904'); diff --git a/test/fixtures/registrant_verifications.yml b/test/fixtures/registrant_verifications.yml index 28727b262..bc3be67db 100644 --- a/test/fixtures/registrant_verifications.yml +++ b/test/fixtures/registrant_verifications.yml @@ -3,5 +3,4 @@ one: action_type: domain_delete created_at: <%= Time.zone.parse('2010-07-05') %> domain: shop - domain_name: shop.test verification_token: 1234 diff --git a/test/models/registrant_verification_test.rb b/test/models/registrant_verification_test.rb index 4bb7b6a1c..1950c1ad6 100644 --- a/test/models/registrant_verification_test.rb +++ b/test/models/registrant_verification_test.rb @@ -5,7 +5,7 @@ class RegistrantVerificationTest < ActiveSupport::TestCase registrant_verification = registrant_verifications(:one) random_action = "random#{rand(100)}" - assert_difference -> { PaperTrail::Version.count } do + assert_difference -> { RegistrantVerificationVersion.count } do registrant_verification.update_attributes!(action: random_action) end end From 8f33ac49d40d6a34997a21a52e91e6e7a3933d1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 27 Dec 2019 16:56:30 +0200 Subject: [PATCH 261/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a20c8171a..b6d8d7036 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +27.12.2019 +* Records in registrant_verifications are now archived by PaperTrail [#1425](https://github.com/internetee/registry/issues/1425) + 16.12.2019 * Bump puma from 4.2.1 to 4.3.1 [#1437](https://github.com/internetee/registry/pull/1437) * Refactored API user management [#1435](https://github.com/internetee/registry/pull/1435) From a583c99ee043fdfc9485806d4b601ace37778072 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 30 Dec 2019 12:21:52 +0300 Subject: [PATCH 262/757] Update `e_invoice` gem --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 86fa15f81..5d889e257 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/e_invoice.git - revision: ab13681dff52c927cd4ce0703369e052987e3aa8 + revision: 3a754974ed25569aa85d99a87ae9e131b7c10a24 branch: master specs: e_invoice (0.1.0) From a863c3c7baa9dd19726678b9079bf9a451acb6b8 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 23 Dec 2019 15:34:13 +0500 Subject: [PATCH 263/757] Fix epp domains controller to apply add or rem changes to status From this patch epp domains controller will allow to update domain statuses only if there is only one status - clientHold. This was made to allow usage of new ForceDelete procedures. --- app/controllers/epp/domains_controller.rb | 6 +++ .../epp/domain/update/base_test.rb | 50 +++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 2b708d66c..1295f558e 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -311,6 +311,7 @@ module Epp def status_editing_disabled return true if Setting.client_status_editing_enabled + return true if check_client_hold return true if params[:parsed_frame].css('status').empty? epp_errors << { code: '2306', @@ -318,6 +319,11 @@ module Epp } end + def check_client_hold + statuses = params[:parsed_frame].css('status').map { |element| element['s'] } + statuses == [::DomainStatus::CLIENT_HOLD] + end + def balance_ok?(operation, period = nil, unit = nil) @domain_pricelist = @domain.pricelist(operation, period.try(:to_i), unit) if @domain_pricelist.try(:price) # checking if price list is not found diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 41c451373..3cdae2d52 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -303,6 +303,56 @@ class EppDomainUpdateBaseTest < EppTestCase assert @domain.inactive? end + def test_update_domain_allows_add_of_client_hold + request_xml = <<-XML + + + + + + shop.test + + Test + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + @domain.reload + assert_epp_response :completed_successfully + assert_includes(@domain.statuses, DomainStatus::CLIENT_HOLD) + end + + def test_update_domain_allows_remove_of_client_hold + @domain.update!(statuses: [DomainStatus::CLIENT_HOLD]) + + request_xml = <<-XML + + + + + + shop.test + + Test + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + @domain.reload + assert_epp_response :completed_successfully + assert_not_includes(@domain.statuses, DomainStatus::CLIENT_HOLD) + end + private def assert_verification_and_notification_emails From a46dd0eba53bb73e475a18c21cf73965a2bd4770 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 2 Jan 2020 19:02:20 +0500 Subject: [PATCH 264/757] Add :show action to admin api_user routes In application_helper.rb we are generating link to creator/updater, but if contact creator is API user, there is an error as we are trying to create link_to(api_user) without having a :show route. This commit fixes this. Closes #1458 --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 8cc5a5721..135fe8eb0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -271,7 +271,7 @@ Rails.application.routes.draw do resources :admin_users # /admin/api_users is mainly for manual testing - resources :api_users, only: :index do + resources :api_users, only: [:index, :show] do resources :certificates do member do post 'sign' From 371432f41dc548d7696f2c12c24a9f2a4e857896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 3 Jan 2020 14:25:03 +0200 Subject: [PATCH 265/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6d8d7036..8200b54d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +03.01.2020 +* Fixed contact view internal error in admin [#1458](https://github.com/internetee/registry/issues/1458) + 27.12.2019 * Records in registrant_verifications are now archived by PaperTrail [#1425](https://github.com/internetee/registry/issues/1425) From 771b253e78958f7f9a0f4fa712b222be1b633af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 3 Jan 2020 14:45:17 +0200 Subject: [PATCH 266/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8200b54d5..750779590 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 03.01.2020 +* Added an option for registrars to add and remove clientHold status on domains [#1454](https://github.com/internetee/registry/pull/1454) * Fixed contact view internal error in admin [#1458](https://github.com/internetee/registry/issues/1458) 27.12.2019 From 851a2d6a2aa154171653615241985998578e9bad Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 6 Jan 2020 16:58:55 +0500 Subject: [PATCH 267/757] Allow ForceDelete status not to block domain update --- app/models/domain.rb | 15 +++++++++------ app/models/epp/domain.rb | 3 ++- test/integration/epp/domain/update/base_test.rb | 4 +++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index c14d1bc4d..50f41c38a 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -116,12 +116,15 @@ class Domain < ApplicationRecord attr_accessor :is_admin - validate :check_permissions, :unless => :is_admin - def check_permissions - return unless force_delete_scheduled? - errors.add(:base, I18n.t(:object_status_prohibits_operation)) - false - end + # Removed to comply new ForceDelete procedure + # at https://github.com/internetee/registry/issues/1428#issuecomment-570561967 + # + # validate :check_permissions, :unless => :is_admin + # def check_permissions + # return unless force_delete_scheduled? + # errors.add(:base, I18n.t(:object_status_prohibits_operation)) + # false + # end validates :nameservers, domain_nameserver: { min: -> { Setting.ns_min_count }, diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 176e5710d..dc80b2e40 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -9,7 +9,8 @@ class Epp::Domain < Domain def manage_permissions return if is_admin # this bad hack for 109086524, refactor later return true if is_transfer || is_renewal - return unless update_prohibited? || delete_prohibited? + return unless update_prohibited? + stat = (statuses & (DomainStatus::UPDATE_PROHIBIT_STATES + DomainStatus::DELETE_PROHIBIT_STATES)).first add_epp_error('2304', 'status', stat, I18n.t(:object_status_prohibits_operation)) throw(:abort) diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 3cdae2d52..9e533a501 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -328,7 +328,9 @@ class EppDomainUpdateBaseTest < EppTestCase end def test_update_domain_allows_remove_of_client_hold - @domain.update!(statuses: [DomainStatus::CLIENT_HOLD]) + @domain.update!(statuses: [DomainStatus::CLIENT_HOLD, DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED]) request_xml = <<-XML From bd82b570f0229baaa209c2fe4aced0f9e997ca89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 6 Jan 2020 16:01:30 +0200 Subject: [PATCH 268/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 750779590..dd9fd0121 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +06.01.2020 +* Updated e-invoice gem [#1456](https://github.com/internetee/registry/pull/1456) +* Bumped rack gem to 2.0.8 [#1448](https://github.com/internetee/registry/pull/1448) + 03.01.2020 * Added an option for registrars to add and remove clientHold status on domains [#1454](https://github.com/internetee/registry/pull/1454) * Fixed contact view internal error in admin [#1458](https://github.com/internetee/registry/issues/1458) From 9051b8eb10a20ddc35aff43f54f64b751840d273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 9 Jan 2020 14:51:19 +0200 Subject: [PATCH 269/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd9fd0121..f3341240d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +09.01.2020 +* serverForceDelete status does not block removing clientHold status [#1462](https://github.com/internetee/registry/pull/1462) + 06.01.2020 * Updated e-invoice gem [#1456](https://github.com/internetee/registry/pull/1456) * Bumped rack gem to 2.0.8 [#1448](https://github.com/internetee/registry/pull/1448) From e2c298226323ff01466e47c0c956169efc4fa738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 10 Jan 2020 14:43:10 +0200 Subject: [PATCH 270/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3341240d..b5d08bb5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +10.01.2020 +* regenerated WHOIS db schema [#1436](https://github.com/internetee/registry/pull/1436) + 09.01.2020 * serverForceDelete status does not block removing clientHold status [#1462](https://github.com/internetee/registry/pull/1462) From 7b73a10073423df617ca4af3bda0f1398b3531a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 10 Jan 2020 17:24:42 +0200 Subject: [PATCH 271/757] Modify forceDelete mail templates to comply with new dates --- app/mailers/domain_delete_mailer.rb | 2 ++ .../forced/legal_person.html.erb | 16 +++++++-------- .../forced/legal_person.text.erb | 16 +++++++-------- .../forced/private_person.html.erb | 20 +++++++++---------- .../forced/private_person.text.erb | 20 +++++++++---------- 5 files changed, 38 insertions(+), 36 deletions(-) diff --git a/app/mailers/domain_delete_mailer.rb b/app/mailers/domain_delete_mailer.rb index eaac1a5af..f1a7fc237 100644 --- a/app/mailers/domain_delete_mailer.rb +++ b/app/mailers/domain_delete_mailer.rb @@ -39,6 +39,8 @@ class DomainDeleteMailer < ApplicationMailer @registrant = RegistrantPresenter.new(registrant: registrant, view: view_context) @redemption_grace_period = Setting.redemption_grace_period + @expire_warning_period = Setting.expire_warning_period + @delete_period_length = @redemption_grace_period + @expire_warning_period subject = default_i18n_subject(domain_name: domain.name) mail(from: forced_email_from, diff --git a/app/views/mailers/domain_delete_mailer/forced/legal_person.html.erb b/app/views/mailers/domain_delete_mailer/forced/legal_person.html.erb index 4a4877767..39bedde9b 100644 --- a/app/views/mailers/domain_delete_mailer/forced/legal_person.html.erb +++ b/app/views/mailers/domain_delete_mailer/forced/legal_person.html.erb @@ -2,11 +2,11 @@

Eesti Interneti Sihtasutusele on saanud teatavaks, et juriidiline isik registrikoodiga <%= @registrant.reg_no %> on äriregistrist kustutatud.

-

Kuna äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @redemption_grace_period %> päevane kustutusmenetlus. Menetluse käigus on domeen internetis kättesaadav.

+

Kuna äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @delete_period_length %> päevane kustutusmenetlus. Menetluse käigus on domeen <%= @expire_warning_period %> esimest päeva internetis kättesaadav.

Domeeni suhtes õigust omaval isikul on võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus koos seda tõendava dokumendiga.

-

Kui üleandmine ei ole <%= @redemption_grace_period %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe siit.

+

Kui üleandmine ei ole <%= @delete_period_length %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe siit.

Lisaküsimuste korral võtke palun ühendust oma registripidajaga:

<%= render 'mailers/shared/registrar/registrar.et.html', registrar: @registrar %> @@ -19,11 +19,11 @@

Estonian Internet Foundation has learned that the legal person with registry code <%= @registrant.reg_no %> has been deleted from the Business Registry.

-

As a terminated legal person cannot be the registrant of a domain, a <%= @redemption_grace_period %>-day deletion process has started for the <%= @domain.name %> domain. The domain will remain available on the Internet during the deletion process.

+

As a terminated legal person cannot be the registrant of a domain, a <%= @delete_period_length %>-day deletion process has started for the <%= @domain.name %> domain. For the first <%= @expire_warning_period %> days the domain will remain available on the Internet during the deletion process.

The registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %> with legal documentation.

-

If the transfer is not made within <%= @redemption_grace_period %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction portal. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results.

+

If the transfer is not made within <%= @delete_period_length %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction portal. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results.

Should you have additional questions, please contact your registrar:

<%= render 'mailers/shared/registrar/registrar.en.html', registrar: @registrar %> @@ -35,13 +35,13 @@

Целевому учреждению Eesti Internet (EIS) стало известно, что юридическое лицо с регистрационным кодом <%= @registrant.reg_no %> удалено из коммерческого реестра.

-

Поскольку удаленное из коммерческого регистра юридическое лицо не может являться регистрантом домена, начат <%= @redemption_grace_period %>-дневный процесс удаления домена <%= @domain.name %>. До завершения процесса домен доступен в Интернете.

+

Поскольку удаленное из коммерческого регистра юридическое лицо не может являться регистрантом домена, начат <%= @delete_period_length %>-дневный процесс удаления домена <%= @domain.name %>. Домен доступен в интернете на протяжении <%= @expire_warning_period %> дней после начала процесса удаления.

-

Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче домена, представив вместе с ходатайством подтверждающие документы. Документы должны быть представлены регистратору в течение <%= @redemption_grace_period %> дней.

+

Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче домена, представив вместе с ходатайством подтверждающие документы. Документы должны быть представлены регистратору в течение <%= @delete_period_length %> дней.

-

Если передача не состоится в течение <%= @redemption_grace_period %> дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». Читайте о других возможных результатах аукциона.

+

Если передача не состоится в течение <%= @delete_period_length %> дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». Читайте о других возможных результатах аукциона.

В случае возникновения дополнительных вопросов свяжитесь, пожалуйста, со своим регистратором: <%= render 'mailers/shared/registrar/registrar.ru.html', registrar: @registrar %>

-<%= render 'mailers/shared/signatures/signature.ru.html' %> \ No newline at end of file +<%= render 'mailers/shared/signatures/signature.ru.html' %> diff --git a/app/views/mailers/domain_delete_mailer/forced/legal_person.text.erb b/app/views/mailers/domain_delete_mailer/forced/legal_person.text.erb index 31d13b9f9..fb2bc5d6c 100644 --- a/app/views/mailers/domain_delete_mailer/forced/legal_person.text.erb +++ b/app/views/mailers/domain_delete_mailer/forced/legal_person.text.erb @@ -2,11 +2,11 @@ Lugupeetud domeeni <%= @domain.name %> registreerija/halduskontakt Eesti Interneti Sihtasutusele on saanud teatavaks, et juriidiline isik registrikoodiga <%= @registrant.reg_no %> on äriregistrist kustutatud. -Kuna äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @redemption_grace_period %> päevane kustutusmenetlus. Menetluse käigus on domeen internetis kättesaadav. +Kuna äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @delete_period_length %> päevane kustutusmenetlus. Menetluse käigus on domeen <%= @expire_warning_period %> esimest päeva internetis kättesaadav. Domeeni suhtes õigust omaval isikul on võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus koos seda tõendava dokumendiga. -Kui üleandmine ei ole <%= @redemption_grace_period %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda https://auction.internet.ee. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe https://www.internet.ee/domeenid/domeenide-oksjonikeskkonna-kasutajatingimused#3-oksjonikeskkonna-enampakkumisel-osalemise-tingimused. +Kui üleandmine ei ole <%= @delete_period_length %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda https://auction.internet.ee. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe https://www.internet.ee/domeenid/domeenide-oksjonikeskkonna-kasutajatingimused#3-oksjonikeskkonna-enampakkumisel-osalemise-tingimused. Lisaküsimuste korral võtke palun ühendust oma registripidajaga: <%= render 'mailers/shared/registrar/registrar.et.text', registrar: @registrar %> @@ -19,11 +19,11 @@ Dear registrant/administrative contact of .ee domain, Estonian Internet Foundation has learned that the legal person with registry code <%= @registrant.reg_no %> has been deleted from the Business Registry. -As a terminated legal person cannot be the registrant of a domain, a <%= @redemption_grace_period %>-day deletion process has started for the <%= @domain.name %> domain. The domain will remain available on the Internet during the deletion process. +As a terminated legal person cannot be the registrant of a domain, a <%= @delete_period_length %>-day deletion process has started for the <%= @domain.name %> domain. For the first <%= @expire_warning_period %> days the domain will remain available on the Internet during the deletion process. The registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %> with legal documentation. -If the transfer is not made within <%= @redemption_grace_period %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction portal https://auction.internet.ee. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results at https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment. +If the transfer is not made within <%= @delete_period_length %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction portal https://auction.internet.ee. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results at https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment. Should you have additional questions, please contact your registrar: <%= render 'mailers/shared/registrar/registrar.en.text', registrar: @registrar %> @@ -36,13 +36,13 @@ Should you have additional questions, please contact your registrar: Целевому учреждению Eesti Internet (EIS) стало известно, что юридическое лицо с регистрационным кодом <%= @registrant.reg_no %> удалено из коммерческого реестра. -Поскольку удаленное из коммерческого регистра юридическое лицо не может являться регистрантом домена, начат <%= @redemption_grace_period %>-дневный процесс удаления домена <%= @domain.name %>. До завершения процесса домен доступен в Интернете. +Поскольку удаленное из коммерческого регистра юридическое лицо не может являться регистрантом домена, начат <%= @delete_period_length %>-дневный процесс удаления домена <%= @domain.name %>. Домен доступен в интернете на протяжении <%= @expire_warning_period %> дней после начала процесса удаления.

-Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче домена, представив вместе с ходатайством подтверждающие документы. Документы должны быть представлены регистратору в течение <%= @redemption_grace_period %> дней. +Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче домена, представив вместе с ходатайством подтверждающие документы. Документы должны быть представлены регистратору в течение <%= @delete_period_length %> дней. -Если передача не состоится в течение <%= @redemption_grace_period %> дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee https://auction.internet.ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». О других возможных результатах аукциона читайте по ссылке https://www.internet.ee/domeny/dogovor-pol-zovatelya-aukcionnoj-sredy#3-usloviya-uchastiya-v-aukcione. +Если передача не состоится в течение <%= @delete_period_length %>дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee https://auction.internet.ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». О других возможных результатах аукциона читайте по ссылке https://www.internet.ee/domeny/dogovor-pol-zovatelya-aukcionnoj-sredy#3-usloviya-uchastiya-v-aukcione. В случае возникновения дополнительных вопросов свяжитесь, пожалуйста, со своим регистратором: <%= render 'mailers/shared/registrar/registrar.ru.text', registrar: @registrar %> -<%= render 'mailers/shared/signatures/signature.ru.text' %> \ No newline at end of file +<%= render 'mailers/shared/signatures/signature.ru.text' %> diff --git a/app/views/mailers/domain_delete_mailer/forced/private_person.html.erb b/app/views/mailers/domain_delete_mailer/forced/private_person.html.erb index 2a7144d2c..947ff5c2b 100644 --- a/app/views/mailers/domain_delete_mailer/forced/private_person.html.erb +++ b/app/views/mailers/domain_delete_mailer/forced/private_person.html.erb @@ -2,11 +2,11 @@

Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et füüsiline isik isikukoodiga <%= @registrant.id_code %> on surnud ja sellest on möödunud vähemalt 6 kuud.

-

Kuna surnud isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @redemption_grace_period %> päevane kustutusmenetlus. Menetluse käigus on domeen internetis kättesaadav.

+

Kuna surnud isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @delete_period_length %> päevane kustutusmenetlus. Menetluse käigus on domeen <%= @expire_warning_period %> esimest päeva internetis kättesaadav.

-

Domeeni suhtes õigust omaval isikul on võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus, millele tuleb lisada pärimisõiguse tõend. Dokumentatsioon tuleb esitada registripidajale <%= @redemption_grace_period %> päeva jooksul.

+

Domeeni suhtes õigust omaval isikul on võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus, millele tuleb lisada pärimisõiguse tõend. Dokumentatsioon tuleb esitada registripidajale <%= @delete_period_length %> päeva jooksul.

-

Kui üleandmine ei ole <%= @redemption_grace_period %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe siit.

+

Kui üleandmine ei ole <%= @delete_period_length %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe siit.

Lisaküsimuste korral võtke palun ühendust oma registripidajaga:

<%= render 'mailers/shared/registrar/registrar.et.html', registrar: @registrar %> @@ -19,11 +19,11 @@

Estonian Internet Foundation (EIF) has learned that the natural person with identification code <%= @registrant.id_code %> has been deceased more than 6 months.

-

The registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %>.The application must be submitted together with succession evidence certifying the acquisition of the domain. The relevant documents should be submitted to the registrar within <%= @redemption_grace_period %> days.

+

The registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %>.The application must be submitted together with succession evidence certifying the acquisition of the domain. The relevant documents should be submitted to the registrar within <%= @delete_period_length %> days.

-

As a deceased natural person can not be the registrant of a domain, a <%= @redemption_grace_period %>-day deletion process of <%= @domain.name %> domain has started. The domain will remain available on the Internet during the deletion process.

+

As a deceased natural person can not be the registrant of a domain, a <%= @delete_period_length %>-day deletion process of <%= @domain.name %> domain has started. For the first <%= @expire_warning_period %> days the domain will remain available on the Internet during the deletion process.

-

If the transfer is not made within <%= @redemption_grace_period %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction environment. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results.

+

If the transfer is not made within <%= @delete_period_length %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction environment. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results.

Should you have additional questions, please contact your registrar:

<%= render 'mailers/shared/registrar/registrar.en.html', registrar: @registrar %> @@ -36,13 +36,13 @@

Целевому учреждению Eesti Internet (EIS) стало известно, что физическое лицо с личным кодом <%= @registrant.id_code %> умерло, и с момента смерти прошло не менее 6 месяцев.

-

Поскольку умершее лицо не может являться регистрантом домена, начат <%= @redemption_grace_period %>-дневный процесс удаления домена <%= @domain.name %>. До завершения процесса домен доступен в Интернете.

+

Поскольку умершее лицо не может являться регистрантом домена, начат <%= @delete_period_length %>-дневный процесс удаления домена <%= @domain.name %>. Домен доступен в интернете на протяжении <%= @expire_warning_period %> дней после начала процесса удаления.

-

Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче, представив справку о праве наследования. Документы должны быть представлены регистратору в течение <%= @redemption_grace_period %> дней.

+

Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче, представив справку о праве наследования. Документы должны быть представлены регистратору в течение <%= @delete_period_length %> дней.

-

Если передача не состоится в течение <%= @redemption_grace_period %> дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». Читайте о других возможных результатах аукциона.

+

Если передача не состоится в течение <%= @delete_period_length %> дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». Читайте о других возможных результатах аукциона.

В случае возникновения дополнительных вопросов свяжитесь, пожалуйста, со своим регистратором:

<%= render 'mailers/shared/registrar/registrar.ru.html', registrar: @registrar %> -<%= render 'mailers/shared/signatures/signature.ru.html' %> \ No newline at end of file +<%= render 'mailers/shared/signatures/signature.ru.html' %> diff --git a/app/views/mailers/domain_delete_mailer/forced/private_person.text.erb b/app/views/mailers/domain_delete_mailer/forced/private_person.text.erb index 9a8971b19..bb315e48b 100644 --- a/app/views/mailers/domain_delete_mailer/forced/private_person.text.erb +++ b/app/views/mailers/domain_delete_mailer/forced/private_person.text.erb @@ -2,11 +2,11 @@ Lugupeetud domeeni <%= @domain.name %> registreerija/halduskontakt Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et füüsiline isik isikukoodiga <%= @registrant.id_code %> on surnud ja sellest on möödunud vähemalt 6 kuud. -Kuna surnud isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @redemption_grace_period %> päevane kustutusmenetlus. Menetluse käigus on domeen internetis kättesaadav. +Kuna surnud isik ei saa olla domeeni registreerijaks, algas domeeni <%= @domain.name %> suhtes <%= @delete_period_length %> päevane kustutusmenetlus. Menetluse käigus on domeen <%= @expire_warning_period %> esimest päeva internetis kättesaadav. -Domeeni suhtes õigust omaval isikul on võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus, millele tuleb lisada pärimisõiguse tõend. Dokumentatsioon tuleb esitada registripidajale <%= @redemption_grace_period %> päeva jooksul. +Domeeni suhtes õigust omaval isikul on võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @registrar.name %> domeeni üleandmise taotlus, millele tuleb lisada pärimisõiguse tõend. Dokumentatsioon tuleb esitada registripidajale <%= @delete_period_length %> päeva jooksul. -Kui üleandmine ei ole <%= @redemption_grace_period %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda https://auction.internet.ee. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe https://www.internet.ee/domeenid/domeenide-oksjonikeskkonna-kasutajatingimused#3-oksjonikeskkonna-enampakkumisel-osalemise-tingimused. +Kui üleandmine ei ole <%= @delete_period_length %> päeva jooksul toimunud, läheb domeen <%= @domain.name %> <%= @domain.force_delete_date %> domeenioksjonile .ee oksjonikeskkonda https://auction.internet.ee. Juhul kui domeenile <%= @domain.name %> ei tehta oksjonil 24h möödudes pakkumist, domeen vabaneb ja on registreerimiseks vabalt kättesaadav kõigile huvilistele. Muude võimalike oksjoni tulemuste kohta loe https://www.internet.ee/domeenid/domeenide-oksjonikeskkonna-kasutajatingimused#3-oksjonikeskkonna-enampakkumisel-osalemise-tingimused. Lisaküsimuste korral võtke palun ühendust oma registripidajaga: <%= render 'mailers/shared/registrar/registrar.et.text', registrar: @registrar %> @@ -19,11 +19,11 @@ Dear registrant/administrative contact of <%= @domain.name %> domain Estonian Internet Foundation (EIF) has learned that the natural person with identification code <%= @registrant.id_code %> has been deceased more than 6 months. -The registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %>.The application must be submitted together with succession evidence certifying the acquisition of the domain. The relevant documents should be submitted to the registrar within <%= @redemption_grace_period %> days. +The registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @registrar.name %>.The application must be submitted together with succession evidence certifying the acquisition of the domain. The relevant documents should be submitted to the registrar within <%= @delete_period_length %> days. -As a deceased natural person can not be the registrant of a domain, a <%= @redemption_grace_period %>-day deletion process of <%= @domain.name %> domain has started. The domain will remain available on the Internet during the deletion process. +As a deceased natural person can not be the registrant of a domain, a <%= @delete_period_length %>-day deletion process of <%= @domain.name %> domain has started. For the first <%= @expire_warning_period %> days the domain will remain available on the Internet during the deletion process. -If the transfer is not made within <%= @redemption_grace_period %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction environment at https://auction.internet.ee. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results at https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment. +If the transfer is not made within <%= @delete_period_length %> days, the domain <%= @domain.name %> will go to domain auction on <%= @domain.force_delete_date %> in the .ee auction environment at https://auction.internet.ee. If no offer is made for the domain <%= @domain.name %> at auction within 24 hours, the domain will be released and made freely available for registration to anyone interested on a first-come, first-served basis. Read more about other potential auction results at https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment. Should you have additional questions, please contact your registrar: <%= render 'mailers/shared/registrar/registrar.en.text', registrar: @registrar %> @@ -36,13 +36,13 @@ Should you have additional questions, please contact your registrar: Целевому учреждению Eesti Internet (EIS) стало известно, что физическое лицо с личным кодом <%= @registrant.id_code %> умерло, и с момента смерти прошло не менее 6 месяцев. -Поскольку умершее лицо не может являться регистрантом домена, начат <%= @redemption_grace_period %>-дневный процесс удаления домена <%= @domain.name %>. До завершения процесса домен доступен в Интернете. +Поскольку умершее лицо не может являться регистрантом домена, начат <%= @delete_period_length %>-дневный процесс удаления домена <%= @domain.name %>. Домен доступен в интернете на протяжении <%= @expire_warning_period %> дней после начала процесса удаления. -Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче, представив справку о праве наследования. Документы должны быть представлены регистратору в течение <%= @redemption_grace_period %> дней. +Лицо, обладающее правом на домен, может подать регистратору <%= @registrar.name %> домена <%= @domain.name %> ходатайство о передаче, представив справку о праве наследования. Документы должны быть представлены регистратору в течение <%= @delete_period_length %> дней. -Если передача не состоится в течение <%= @redemption_grace_period %> дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee https://auction.internet.ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». О других возможных результатах аукциона читайте по ссылке https://www.internet.ee/domeny/dogovor-pol-zovatelya-aukcionnoj-sredy#3-usloviya-uchastiya-v-aukcione. +Если передача не состоится в течение <%= @delete_period_length %>дней, <%= @domain.force_delete_date %> домен <%= @domain.name %> отправится на доменный аукцион в аукционной среде .ee https://auction.internet.ee. Если в течение 24 часов в отношении домена <%= @domain.name %> не поступит предложений, домен освободится и станет доступным для всех желающих по принципу «кто раньше». О других возможных результатах аукциона читайте по ссылке https://www.internet.ee/domeny/dogovor-pol-zovatelya-aukcionnoj-sredy#3-usloviya-uchastiya-v-aukcione. В случае возникновения дополнительных вопросов свяжитесь, пожалуйста, со своим регистратором: <%= render 'mailers/shared/registrar/registrar.ru.text', registrar: @registrar %> -<%= render 'mailers/shared/signatures/signature.ru.text' %> \ No newline at end of file +<%= render 'mailers/shared/signatures/signature.ru.text' %> From 8b5b28b9d64ef9ef6dad9dc2d489a90ea38a3b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 10 Jan 2020 17:45:52 +0200 Subject: [PATCH 272/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5d08bb5c..3fb5f3e61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 10.01.2020 +* updated ForceDelete email templates according new regulation [#1466](https://github.com/internetee/registry/issues/1466) * regenerated WHOIS db schema [#1436](https://github.com/internetee/registry/pull/1436) 09.01.2020 From 0e3229aa0e4df39e59dbb7a676001ce2509353b7 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 13 Jan 2020 14:21:21 +0500 Subject: [PATCH 273/757] Add uuid field to log_registrant_verification --- ...200113091254_add_uuid_to_log_registrant_verification.rb | 7 +++++++ db/structure.sql | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20200113091254_add_uuid_to_log_registrant_verification.rb diff --git a/db/migrate/20200113091254_add_uuid_to_log_registrant_verification.rb b/db/migrate/20200113091254_add_uuid_to_log_registrant_verification.rb new file mode 100644 index 000000000..4e130fc8e --- /dev/null +++ b/db/migrate/20200113091254_add_uuid_to_log_registrant_verification.rb @@ -0,0 +1,7 @@ +class AddUuidToLogRegistrantVerification < ActiveRecord::Migration[5.0] + def change + change_table 'log_registrant_verifications' do |t| + t.string :uuid + end + end +end diff --git a/db/structure.sql b/db/structure.sql index b954cbc95..6246862ea 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1524,7 +1524,8 @@ CREATE TABLE public.log_registrant_verifications ( object json, object_changes json, created_at timestamp without time zone, - session character varying + session character varying, + uuid character varying ); @@ -4329,8 +4330,10 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191008024334'), ('20191024153351'), ('20191024160038'), +('20191203083643'), ('20191206183853'), ('20191212133136'), -('20191227110904'); +('20191227110904'), +('20200113091254'); From ec900c18a5b04048179ed3c7432655f293d002c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 13 Jan 2020 17:26:13 +0200 Subject: [PATCH 274/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fb5f3e61..9d48e7bc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +13.01.2020 +* resolved internal error on registrant confirmation [#1468](https://github.com/internetee/registry/issues/1468) + 10.01.2020 * updated ForceDelete email templates according new regulation [#1466](https://github.com/internetee/registry/issues/1466) * regenerated WHOIS db schema [#1436](https://github.com/internetee/registry/pull/1436) From a7da3fe0db575be1710aa37649fb06b599d12cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 14 Jan 2020 14:22:18 +0200 Subject: [PATCH 275/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d48e7bc7..bb3c79950 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +14.01.2020 +* removed authinfo element from contact:info response for non-sponsoring registrars [#1446](https://github.com/internetee/registry/issues/1446) + 13.01.2020 * resolved internal error on registrant confirmation [#1468](https://github.com/internetee/registry/issues/1468) From 550d020229f27968fb9e68b78f6f283f891377ed Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 3 Dec 2019 14:34:40 +0500 Subject: [PATCH 276/757] Add force_delete_start field to ForceDelete & add tests Add new test file new_force_delete_test.rb to check if new ForceDeleteProcedures are correct. ATM it's just a scaffold of some sort, all tests are red, magic numbers and so - just a proof of concept. See #1428 --- app/models/concerns/domain/force_delete.rb | 9 + ...83643_add_force_delete_start_to_domains.rb | 5 + db/structure.sql | 6 +- test/models/domain/force_delete_test.rb | 203 ++++++++---------- 4 files changed, 109 insertions(+), 114 deletions(-) create mode 100644 db/migrate/20191203083643_add_force_delete_start_to_domains.rb diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index d820d8f4b..84c8a559c 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -1,6 +1,8 @@ module Concerns::Domain::ForceDelete extend ActiveSupport::Concern + DAYS_TO_START_HOLD = 15.days + def force_delete_scheduled? statuses.include?(DomainStatus::FORCE_DELETE) end @@ -25,6 +27,12 @@ module Concerns::Domain::ForceDelete save(validate: false) end + def check_hold + if force_delete_start < valid_to && (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today + statuses << DomainStatus::CLIENT_HOLD + end + end + private def stop_all_pending_actions @@ -62,6 +70,7 @@ module Concerns::Domain::ForceDelete statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED) statuses.delete(DomainStatus::PENDING_DELETE) statuses.delete(DomainStatus::SERVER_MANUAL_INZONE) + statuses.delete(DomainStatus::CLIENT_HOLD) end def allow_deletion diff --git a/db/migrate/20191203083643_add_force_delete_start_to_domains.rb b/db/migrate/20191203083643_add_force_delete_start_to_domains.rb new file mode 100644 index 000000000..af2380539 --- /dev/null +++ b/db/migrate/20191203083643_add_force_delete_start_to_domains.rb @@ -0,0 +1,5 @@ +class AddForceDeleteStartToDomains < ActiveRecord::Migration[5.0] + def change + add_column :domains, :force_delete_start, :datetime + end +end diff --git a/db/structure.sql b/db/structure.sql index 6246862ea..dd84254bb 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -8,6 +8,7 @@ SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; +SET xmloption = content; SET client_min_messages = warning; -- @@ -742,7 +743,8 @@ CREATE TABLE public.domains ( upid integer, up_date timestamp without time zone, uuid uuid DEFAULT public.gen_random_uuid() NOT NULL, - locked_by_registrant_at timestamp without time zone + locked_by_registrant_at timestamp without time zone, + force_delete_start timestamp without time zone ); @@ -4334,6 +4336,8 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191206183853'), ('20191212133136'), ('20191227110904'), +('20191203083643'), ('20200113091254'); + diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 9092fad86..c481a7b97 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -1,130 +1,107 @@ -require 'test_helper' +module Concerns::Domain::ForceDelete + extend ActiveSupport::Concern -class DomainForceDeleteTest < ActiveSupport::TestCase - setup do - @domain = domains(:shop) - @original_redemption_grace_period = Setting.redemption_grace_period + DAYS_TO_START_HOLD = 15.days + + def force_delete_scheduled? + statuses.include?(DomainStatus::FORCE_DELETE) end - teardown do - Setting.redemption_grace_period = @original_redemption_grace_period - end + def schedule_force_delete(type: :fast_track) + if discarded? + raise StandardError 'Force delete procedure cannot be scheduled while a domain is discarded' + end - def test_schedules_force_delete - assert_not @domain.force_delete_scheduled? - Setting.redemption_grace_period = 30 - travel_to Time.zone.parse('2010-07-05') - - @domain.schedule_force_delete - @domain.reload - - assert @domain.force_delete_scheduled? - assert_equal Date.parse('2010-08-05'), @domain.force_delete_date - end - - def test_scheduling_force_delete_adds_corresponding_statuses - statuses_to_be_added = [ - DomainStatus::FORCE_DELETE, - DomainStatus::SERVER_RENEW_PROHIBITED, - DomainStatus::SERVER_TRANSFER_PROHIBITED, - DomainStatus::SERVER_UPDATE_PROHIBITED, - DomainStatus::PENDING_DELETE, - ] - - @domain.schedule_force_delete - @domain.reload - assert (@domain.statuses & statuses_to_be_added) == statuses_to_be_added - end - - def test_scheduling_force_delete_allows_domain_deletion - statuses_to_be_removed = [ - DomainStatus::CLIENT_DELETE_PROHIBITED, - DomainStatus::SERVER_DELETE_PROHIBITED, - ] - - @domain.statuses = statuses_to_be_removed + %w[other-status] - @domain.schedule_force_delete - @domain.reload - assert_empty @domain.statuses & statuses_to_be_removed - end - - def test_scheduling_force_delete_stops_pending_actions - statuses_to_be_removed = [ - DomainStatus::PENDING_UPDATE, - DomainStatus::PENDING_TRANSFER, - DomainStatus::PENDING_RENEW, - DomainStatus::PENDING_CREATE, - ] - - @domain.statuses = statuses_to_be_removed + %w[other-status] - @domain.schedule_force_delete - @domain.reload - assert_empty @domain.statuses & statuses_to_be_removed, 'Pending actions should be stopped' - end - - def test_scheduling_force_delete_preserves_current_statuses - @domain.statuses = %w[test1 test2] - @domain.schedule_force_delete - @domain.reload - assert_equal %w[test1 test2], @domain.statuses_before_force_delete - end - - def test_scheduling_force_delete_bypasses_validation - @domain = domains(:invalid) - @domain.schedule_force_delete - assert @domain.force_delete_scheduled? - end - - def test_force_delete_cannot_be_scheduled_when_a_domain_is_discarded - @domain.update!(statuses: [DomainStatus::DELETE_CANDIDATE]) - assert_raises StandardError do - @domain.schedule_force_delete + case type + when :fast_track + force_delete_fast_track + when :soft + force_delete_soft + else + raise StandardError, 'Wrong type for force delete' end end - def test_cancels_force_delete - @domain.update_columns(statuses: [DomainStatus::FORCE_DELETE], force_delete_date: '2010-07-05') - assert @domain.force_delete_scheduled? - - @domain.cancel_force_delete - @domain.reload - - assert_not @domain.force_delete_scheduled? - assert_nil @domain.force_delete_date + def force_delete_fast_track + preserve_current_statuses_for_force_delete + add_force_delete_statuses + self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days + self.force_delete_start = Time.zone.today + stop_all_pending_actions + allow_deletion + save(validate: false) end - def test_cancelling_force_delete_bypasses_validation - @domain = domains(:invalid) - @domain.schedule_force_delete - @domain.cancel_force_delete - assert_not @domain.force_delete_scheduled? + def force_delete_soft + preserve_current_statuses_for_force_delete + add_force_delete_statuses + calculate_soft_delete_date + stop_all_pending_actions + check_hold + allow_deletion + save(validate: false) end - def test_cancelling_force_delete_removes_statuses_that_were_set_on_force_delete - statuses = [ - DomainStatus::FORCE_DELETE, - DomainStatus::SERVER_RENEW_PROHIBITED, - DomainStatus::SERVER_TRANSFER_PROHIBITED, - DomainStatus::SERVER_UPDATE_PROHIBITED, - DomainStatus::PENDING_DELETE, - DomainStatus::SERVER_MANUAL_INZONE - ] - @domain.statuses = @domain.statuses + statuses - @domain.schedule_force_delete - - @domain.cancel_force_delete - @domain.reload - - assert_empty @domain.statuses & statuses + def cancel_force_delete + restore_statuses_before_force_delete + remove_force_delete_statuses + self.force_delete_date = nil + self.force_delete_start = nil + save(validate: false) end - def test_cancelling_force_delete_restores_statuses_that_a_domain_had_before_force_delete - @domain.statuses_before_force_delete = ['test1', DomainStatus::DELETE_CANDIDATE] + private - @domain.cancel_force_delete - @domain.reload + def check_hold + if force_delete_start.present? && + force_delete_start < valid_to && + (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today + statuses << DomainStatus::CLIENT_HOLD + end + end - assert_equal ['test1', DomainStatus::DELETE_CANDIDATE], @domain.statuses - assert_nil @domain.statuses_before_force_delete + def calculate_soft_delete_date + years = (self.valid_to.to_date - Time.zone.today).to_i / 365 + if years.positive? + self.force_delete_start = self.valid_to - years.years + self.force_delete_date = self.force_delete_start + Setting.redemption_grace_period.days + end + end + + def stop_all_pending_actions + statuses.delete(DomainStatus::PENDING_UPDATE) + statuses.delete(DomainStatus::PENDING_TRANSFER) + statuses.delete(DomainStatus::PENDING_RENEW) + statuses.delete(DomainStatus::PENDING_CREATE) + end + + def preserve_current_statuses_for_force_delete + self.statuses_before_force_delete = statuses.clone + end + + def restore_statuses_before_force_delete + self.statuses = statuses_before_force_delete + self.statuses_before_force_delete = nil + end + + def add_force_delete_statuses + statuses << DomainStatus::FORCE_DELETE + statuses << DomainStatus::SERVER_RENEW_PROHIBITED + statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED + end + + def remove_force_delete_statuses + statuses.delete(DomainStatus::FORCE_DELETE) + statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED) + statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED) + statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED) + statuses.delete(DomainStatus::PENDING_DELETE) + statuses.delete(DomainStatus::SERVER_MANUAL_INZONE) + statuses.delete(DomainStatus::CLIENT_HOLD) + end + + def allow_deletion + statuses.delete(DomainStatus::CLIENT_DELETE_PROHIBITED) + statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED) end end From bbc89e5860173f3b9aa482c07679e97a6c707be6 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 4 Dec 2019 14:38:18 +0500 Subject: [PATCH 277/757] Add :fast_track & :soft versions of ForceDelete See #1428 --- app/models/concerns/domain/force_delete.rb | 49 +++++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 84c8a559c..c481a7b97 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -7,33 +7,66 @@ module Concerns::Domain::ForceDelete statuses.include?(DomainStatus::FORCE_DELETE) end - def schedule_force_delete + def schedule_force_delete(type: :fast_track) if discarded? - raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded' + raise StandardError 'Force delete procedure cannot be scheduled while a domain is discarded' end + case type + when :fast_track + force_delete_fast_track + when :soft + force_delete_soft + else + raise StandardError, 'Wrong type for force delete' + end + end + + def force_delete_fast_track preserve_current_statuses_for_force_delete add_force_delete_statuses - self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days + 1.day + self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days + self.force_delete_start = Time.zone.today stop_all_pending_actions allow_deletion save(validate: false) end + def force_delete_soft + preserve_current_statuses_for_force_delete + add_force_delete_statuses + calculate_soft_delete_date + stop_all_pending_actions + check_hold + allow_deletion + save(validate: false) + end + def cancel_force_delete restore_statuses_before_force_delete remove_force_delete_statuses self.force_delete_date = nil + self.force_delete_start = nil save(validate: false) end + private + def check_hold - if force_delete_start < valid_to && (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today + if force_delete_start.present? && + force_delete_start < valid_to && + (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today statuses << DomainStatus::CLIENT_HOLD end end - private + def calculate_soft_delete_date + years = (self.valid_to.to_date - Time.zone.today).to_i / 365 + if years.positive? + self.force_delete_start = self.valid_to - years.years + self.force_delete_date = self.force_delete_start + Setting.redemption_grace_period.days + end + end def stop_all_pending_actions statuses.delete(DomainStatus::PENDING_UPDATE) @@ -55,12 +88,6 @@ module Concerns::Domain::ForceDelete statuses << DomainStatus::FORCE_DELETE statuses << DomainStatus::SERVER_RENEW_PROHIBITED statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED - statuses << DomainStatus::SERVER_UPDATE_PROHIBITED - statuses << DomainStatus::PENDING_DELETE - - if (statuses & [DomainStatus::SERVER_HOLD, DomainStatus::CLIENT_HOLD]).empty? - statuses << DomainStatus::SERVER_MANUAL_INZONE - end end def remove_force_delete_statuses From 4b4650ee7f43d4ef405ed6a025017b3c0d371116 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 4 Dec 2019 14:45:08 +0500 Subject: [PATCH 278/757] Revert "Add :fast_track & :soft versions of ForceDelete" This reverts commit 392b145fc7dab7a1581662d377ae0c1ea79d09f3. --- app/models/concerns/domain/force_delete.rb | 49 +++++----------------- 1 file changed, 11 insertions(+), 38 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index c481a7b97..84c8a559c 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -7,66 +7,33 @@ module Concerns::Domain::ForceDelete statuses.include?(DomainStatus::FORCE_DELETE) end - def schedule_force_delete(type: :fast_track) + def schedule_force_delete if discarded? - raise StandardError 'Force delete procedure cannot be scheduled while a domain is discarded' + raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded' end - case type - when :fast_track - force_delete_fast_track - when :soft - force_delete_soft - else - raise StandardError, 'Wrong type for force delete' - end - end - - def force_delete_fast_track preserve_current_statuses_for_force_delete add_force_delete_statuses - self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days - self.force_delete_start = Time.zone.today + self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days + 1.day stop_all_pending_actions allow_deletion save(validate: false) end - def force_delete_soft - preserve_current_statuses_for_force_delete - add_force_delete_statuses - calculate_soft_delete_date - stop_all_pending_actions - check_hold - allow_deletion - save(validate: false) - end - def cancel_force_delete restore_statuses_before_force_delete remove_force_delete_statuses self.force_delete_date = nil - self.force_delete_start = nil save(validate: false) end - private - def check_hold - if force_delete_start.present? && - force_delete_start < valid_to && - (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today + if force_delete_start < valid_to && (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today statuses << DomainStatus::CLIENT_HOLD end end - def calculate_soft_delete_date - years = (self.valid_to.to_date - Time.zone.today).to_i / 365 - if years.positive? - self.force_delete_start = self.valid_to - years.years - self.force_delete_date = self.force_delete_start + Setting.redemption_grace_period.days - end - end + private def stop_all_pending_actions statuses.delete(DomainStatus::PENDING_UPDATE) @@ -88,6 +55,12 @@ module Concerns::Domain::ForceDelete statuses << DomainStatus::FORCE_DELETE statuses << DomainStatus::SERVER_RENEW_PROHIBITED statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED + statuses << DomainStatus::SERVER_UPDATE_PROHIBITED + statuses << DomainStatus::PENDING_DELETE + + if (statuses & [DomainStatus::SERVER_HOLD, DomainStatus::CLIENT_HOLD]).empty? + statuses << DomainStatus::SERVER_MANUAL_INZONE + end end def remove_force_delete_statuses From 0e1542609e26f85bbb62ecf86337e6689188720e Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 4 Dec 2019 14:54:34 +0500 Subject: [PATCH 279/757] Fix local conflict --- app/models/concerns/domain/force_delete.rb | 43 ++-- test/models/domain/force_delete_test.rb | 232 +++++++++++++-------- 2 files changed, 170 insertions(+), 105 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 84c8a559c..38875d31c 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -7,33 +7,59 @@ module Concerns::Domain::ForceDelete statuses.include?(DomainStatus::FORCE_DELETE) end - def schedule_force_delete + def schedule_force_delete(type: :fast_track) if discarded? raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded' end + type == :fast_track ? force_delete_fast_track : force_delete_soft + end + + def force_delete_fast_track preserve_current_statuses_for_force_delete add_force_delete_statuses - self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days + 1.day + self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days + self.force_delete_start = Time.zone.today stop_all_pending_actions allow_deletion save(validate: false) end + def force_delete_soft + preserve_current_statuses_for_force_delete + add_force_delete_statuses + calculate_soft_delete_date + stop_all_pending_actions + check_hold + allow_deletion + save(validate: false) + end + def cancel_force_delete restore_statuses_before_force_delete remove_force_delete_statuses self.force_delete_date = nil + self.force_delete_start = nil save(validate: false) end + private + def check_hold - if force_delete_start < valid_to && (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today + if force_delete_start.present? && force_delete_start + DAYS_TO_START_HOLD < valid_to statuses << DomainStatus::CLIENT_HOLD end end - private + def calculate_soft_delete_date + years = (valid_to.to_date - Time.zone.today).to_i / 365 + soft_delete_dates(years) if years.positive? + end + + def soft_delete_dates(years) + self.force_delete_start = valid_to - years.years + self.force_delete_date = force_delete_start + Setting.redemption_grace_period.days + end def stop_all_pending_actions statuses.delete(DomainStatus::PENDING_UPDATE) @@ -55,21 +81,12 @@ module Concerns::Domain::ForceDelete statuses << DomainStatus::FORCE_DELETE statuses << DomainStatus::SERVER_RENEW_PROHIBITED statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED - statuses << DomainStatus::SERVER_UPDATE_PROHIBITED - statuses << DomainStatus::PENDING_DELETE - - if (statuses & [DomainStatus::SERVER_HOLD, DomainStatus::CLIENT_HOLD]).empty? - statuses << DomainStatus::SERVER_MANUAL_INZONE - end end def remove_force_delete_statuses statuses.delete(DomainStatus::FORCE_DELETE) statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED) statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED) - statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED) - statuses.delete(DomainStatus::PENDING_DELETE) - statuses.delete(DomainStatus::SERVER_MANUAL_INZONE) statuses.delete(DomainStatus::CLIENT_HOLD) end diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index c481a7b97..1bbbde206 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -1,107 +1,155 @@ -module Concerns::Domain::ForceDelete - extend ActiveSupport::Concern +require 'test_helper' - DAYS_TO_START_HOLD = 15.days - - def force_delete_scheduled? - statuses.include?(DomainStatus::FORCE_DELETE) +class NewDomainForceDeleteTest < ActiveSupport::TestCase + setup do + @domain = domains(:shop) + Setting.redemption_grace_period = 45 end - def schedule_force_delete(type: :fast_track) - if discarded? - raise StandardError 'Force delete procedure cannot be scheduled while a domain is discarded' - end + def test_schedules_force_delete_fast_track + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') - case type - when :fast_track - force_delete_fast_track - when :soft - force_delete_soft - else - raise StandardError, 'Wrong type for force delete' + @domain.schedule_force_delete(type: :fast_track) + @domain.reload + + assert @domain.force_delete_scheduled? + assert_equal Date.parse('2010-08-19'), @domain.force_delete_date.to_date + assert_equal Date.parse('2010-07-05'), @domain.force_delete_start.to_date + end + + def test_schedules_force_delete_soft_year_ahead + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + + @domain.schedule_force_delete(type: :soft) + @domain.reload + + assert @domain.force_delete_scheduled? + assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date + assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date + assert (@domain.statuses.include?(DomainStatus::CLIENT_HOLD)) + end + + def test_schedules_force_delete_soft_less_than_year_ahead + @domain.update_columns(valid_to: Time.zone.parse('2010-08-05'), + force_delete_date: nil) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + + @domain.schedule_force_delete(type: :soft) + @domain.reload + + assert @domain.force_delete_scheduled? + assert_nil @domain.force_delete_date + assert_nil @domain.force_delete_start + end + + def test_scheduling_soft_force_delete_adds_corresponding_statuses + statuses_to_be_added = [ + DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED, + ] + + @domain.schedule_force_delete(type: :soft) + @domain.reload + assert (@domain.statuses & statuses_to_be_added) == statuses_to_be_added + end + + def test_scheduling_fast_track_force_delete_adds_corresponding_statuses + statuses_to_be_added = [ + DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED, + ] + + @domain.schedule_force_delete(type: :fast_track) + @domain.reload + assert (@domain.statuses & statuses_to_be_added) == statuses_to_be_added + end + + def test_scheduling_force_delete_allows_domain_deletion + statuses_to_be_removed = [ + DomainStatus::CLIENT_DELETE_PROHIBITED, + DomainStatus::SERVER_DELETE_PROHIBITED, + ] + + @domain.statuses = statuses_to_be_removed + %w[other-status] + @domain.schedule_force_delete(type: :fast_track) + @domain.reload + assert_empty @domain.statuses & statuses_to_be_removed + end + + def test_scheduling_force_delete_stops_pending_actions + Setting.redemption_grace_period = 45 + statuses_to_be_removed = [ + DomainStatus::PENDING_UPDATE, + DomainStatus::PENDING_TRANSFER, + DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_CREATE, + ] + + @domain.statuses = statuses_to_be_removed + %w[other-status] + @domain.schedule_force_delete(type: :fast_track) + @domain.reload + assert_empty @domain.statuses & statuses_to_be_removed, 'Pending actions should be stopped' + end + + def test_scheduling_force_delete_preserves_current_statuses + @domain.statuses = %w[test1 test2] + @domain.schedule_force_delete(type: :fast_track) + @domain.reload + assert_equal %w[test1 test2], @domain.statuses_before_force_delete + end + + def test_scheduling_force_delete_bypasses_validation + @domain = domains(:invalid) + @domain.schedule_force_delete(type: :fast_track) + assert @domain.force_delete_scheduled? + end + + def test_force_delete_cannot_be_scheduled_when_a_domain_is_discarded + @domain.update!(statuses: [DomainStatus::DELETE_CANDIDATE]) + assert_raises StandardError do + @domain.schedule_force_delete(type: :fast_track) end end - def force_delete_fast_track - preserve_current_statuses_for_force_delete - add_force_delete_statuses - self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days - self.force_delete_start = Time.zone.today - stop_all_pending_actions - allow_deletion - save(validate: false) + def test_cancels_force_delete + @domain.update_columns(statuses: [DomainStatus::FORCE_DELETE], + force_delete_date: Time.zone.parse('2010-07-05'), + force_delete_start: Time.zone.parse('2010-07-05') - 45.days) + assert @domain.force_delete_scheduled? + + @domain.cancel_force_delete + @domain.reload + + assert_not @domain.force_delete_scheduled? + assert_nil @domain.force_delete_date + assert_nil @domain.force_delete_start end - def force_delete_soft - preserve_current_statuses_for_force_delete - add_force_delete_statuses - calculate_soft_delete_date - stop_all_pending_actions - check_hold - allow_deletion - save(validate: false) + def test_cancelling_force_delete_bypasses_validation + @domain = domains(:invalid) + @domain.schedule_force_delete(type: :fast_track) + @domain.cancel_force_delete + assert_not @domain.force_delete_scheduled? end - def cancel_force_delete - restore_statuses_before_force_delete - remove_force_delete_statuses - self.force_delete_date = nil - self.force_delete_start = nil - save(validate: false) - end + def test_cancelling_force_delete_removes_statuses_that_were_set_on_force_delete + statuses = [ + DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED, + ] + @domain.statuses = @domain.statuses + statuses + @domain.schedule_force_delete(type: :fast_track) - private + @domain.cancel_force_delete + @domain.reload - def check_hold - if force_delete_start.present? && - force_delete_start < valid_to && - (force_delete_date + DAYS_TO_START_HOLD) > Time.zone.today - statuses << DomainStatus::CLIENT_HOLD - end - end - - def calculate_soft_delete_date - years = (self.valid_to.to_date - Time.zone.today).to_i / 365 - if years.positive? - self.force_delete_start = self.valid_to - years.years - self.force_delete_date = self.force_delete_start + Setting.redemption_grace_period.days - end - end - - def stop_all_pending_actions - statuses.delete(DomainStatus::PENDING_UPDATE) - statuses.delete(DomainStatus::PENDING_TRANSFER) - statuses.delete(DomainStatus::PENDING_RENEW) - statuses.delete(DomainStatus::PENDING_CREATE) - end - - def preserve_current_statuses_for_force_delete - self.statuses_before_force_delete = statuses.clone - end - - def restore_statuses_before_force_delete - self.statuses = statuses_before_force_delete - self.statuses_before_force_delete = nil - end - - def add_force_delete_statuses - statuses << DomainStatus::FORCE_DELETE - statuses << DomainStatus::SERVER_RENEW_PROHIBITED - statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED - end - - def remove_force_delete_statuses - statuses.delete(DomainStatus::FORCE_DELETE) - statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED) - statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED) - statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED) - statuses.delete(DomainStatus::PENDING_DELETE) - statuses.delete(DomainStatus::SERVER_MANUAL_INZONE) - statuses.delete(DomainStatus::CLIENT_HOLD) - end - - def allow_deletion - statuses.delete(DomainStatus::CLIENT_DELETE_PROHIBITED) - statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED) + assert_empty @domain.statuses & statuses end end From b9575661eb2d45f444e0fae4b60ee1ce721ab528 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 5 Dec 2019 12:12:49 +0500 Subject: [PATCH 280/757] Add both types of delete procedure to the view/controller --- .../admin/domains/force_delete_controller.rb | 10 +++++++++- .../admin/domains/_force_delete_dialog.html.erb | 12 ++++++++++++ config/locales/admin/domains.en.yml | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index b01962fc7..36835bfe5 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -5,7 +5,7 @@ module Admin authorize! :manage, domain domain.transaction do - domain.schedule_force_delete + domain.schedule_force_delete(type: force_delete_type) domain.registrar.notifications.create!(text: t('force_delete_set_on_domain', domain_name: domain.name)) @@ -35,6 +35,14 @@ module Admin def notify_by_email? ActiveRecord::Type::Boolean.new.cast(params[:notify_by_email]) end + + def force_delete_type + soft_delete? ? :soft : :fast_track + end + + def soft_delete? + ActiveRecord::Type::Boolean.new.cast(params[:soft_delete]) + end end end end diff --git a/app/views/admin/domains/_force_delete_dialog.html.erb b/app/views/admin/domains/_force_delete_dialog.html.erb index 26edf3756..6287abffe 100644 --- a/app/views/admin/domains/_force_delete_dialog.html.erb +++ b/app/views/admin/domains/_force_delete_dialog.html.erb @@ -10,6 +10,18 @@ <%= form_tag admin_domain_force_delete_path(domain), id: 'domain-force-delete-form', class: 'modal-body form-horizontal' do %> +
+
+
+ +
+
+
+
diff --git a/config/locales/admin/domains.en.yml b/config/locales/admin/domains.en.yml index 2abdaee91..c6e96bb15 100644 --- a/config/locales/admin/domains.en.yml +++ b/config/locales/admin/domains.en.yml @@ -31,6 +31,7 @@ en: force_delete_dialog: title: Force delete notify_by_email: Notify registrant and administrative contacts by email + use_soft_delete: Use soft delete procedure email_template: Email template close_btn: Close dialog submit_btn: Force delete domain From a815e943d3ede98125630deef11257a9a8283ffe Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 16 Dec 2019 16:50:25 +0500 Subject: [PATCH 281/757] Modify force_delete procedure to set clientHold only by job --- app/models/concerns/domain/force_delete.rb | 35 ++++++++++++------ app/models/domain_cron.rb | 42 ++++++++++++++++++++++ db/structure.sql | 2 +- test/models/domain/force_delete_test.rb | 3 +- 4 files changed, 69 insertions(+), 13 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 38875d31c..81b792106 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -1,12 +1,29 @@ module Concerns::Domain::ForceDelete extend ActiveSupport::Concern - DAYS_TO_START_HOLD = 15.days + class_methods do + def force_delete_scheduled + where('force_delete_start <= ?', Time.zone.now) + end + end def force_delete_scheduled? statuses.include?(DomainStatus::FORCE_DELETE) end + def client_holdable? + force_delete_scheduled? && !statuses.include?(DomainStatus::CLIENT_HOLD) && + force_delete_start.present? && force_delete_lte_today && force_delete_lte_valid_date + end + + def force_delete_lte_today + force_delete_start + Setting.expire_warning_period.days <= Time.zone.now + end + + def force_delete_lte_valid_date + force_delete_start + Setting.expire_warning_period.days <= valid_to + end + def schedule_force_delete(type: :fast_track) if discarded? raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded' @@ -18,7 +35,7 @@ module Concerns::Domain::ForceDelete def force_delete_fast_track preserve_current_statuses_for_force_delete add_force_delete_statuses - self.force_delete_date = Time.zone.today + Setting.redemption_grace_period.days + self.force_delete_date = force_delete_fast_track_start_date self.force_delete_start = Time.zone.today stop_all_pending_actions allow_deletion @@ -30,7 +47,6 @@ module Concerns::Domain::ForceDelete add_force_delete_statuses calculate_soft_delete_date stop_all_pending_actions - check_hold allow_deletion save(validate: false) end @@ -45,12 +61,6 @@ module Concerns::Domain::ForceDelete private - def check_hold - if force_delete_start.present? && force_delete_start + DAYS_TO_START_HOLD < valid_to - statuses << DomainStatus::CLIENT_HOLD - end - end - def calculate_soft_delete_date years = (valid_to.to_date - Time.zone.today).to_i / 365 soft_delete_dates(years) if years.positive? @@ -58,7 +68,8 @@ module Concerns::Domain::ForceDelete def soft_delete_dates(years) self.force_delete_start = valid_to - years.years - self.force_delete_date = force_delete_start + Setting.redemption_grace_period.days + self.force_delete_date = force_delete_start + Setting.expire_warning_period.days + + Setting.redemption_grace_period.days end def stop_all_pending_actions @@ -94,4 +105,8 @@ module Concerns::Domain::ForceDelete statuses.delete(DomainStatus::CLIENT_DELETE_PROHIBITED) statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED) end + + def force_delete_fast_track_start_date + Time.zone.today + Setting.expire_warning_period.days + Setting.redemption_grace_period.days + end end diff --git a/app/models/domain_cron.rb b/app/models/domain_cron.rb index 578538e17..e3edf9f4c 100644 --- a/app/models/domain_cron.rb +++ b/app/models/domain_cron.rb @@ -78,4 +78,46 @@ class DomainCron STDOUT << "#{Time.zone.now.utc} - Successfully set server_hold to #{marked} of #{real} domains\n" unless Rails.env.test? marked end + + def self.start_client_hold + log_prepare_client_hold + + ::PaperTrail.whodunnit = "cron - #{__method__}" + + marked = 0 + real = 0 + + Domain.force_delete_scheduled.each do |domain| + next unless domain.client_holdable? + + real += 1 + domain.statuses << DomainStatus::CLIENT_HOLD + log_start_client_hold(domain) + + domain.save(validate: false) and marked += 1 + end + + log_end_end_client_hold(marked: marked, real: real) + marked + end + + def self.log_prepare_client_hold + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} - Setting client_hold to domains\n" + end + + def self.log_start_client_hold(domain) + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} DomainCron.start_client_hold: ##{domain.id} (#{domain.name})"\ + "#{domain.changes}\n" + end + + def self.log_end_end_client_hold(marked:, real:) + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold to #{marked} of #{real} "\ + "domains\n" + end end diff --git a/db/structure.sql b/db/structure.sql index dd84254bb..f7401285a 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -4337,7 +4337,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191212133136'), ('20191227110904'), ('20191203083643'), +('20191206183853'), ('20200113091254'); - diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 1bbbde206..be97c0f38 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -3,7 +3,7 @@ require 'test_helper' class NewDomainForceDeleteTest < ActiveSupport::TestCase setup do @domain = domains(:shop) - Setting.redemption_grace_period = 45 + Setting.redemption_grace_period = 30 end def test_schedules_force_delete_fast_track @@ -29,7 +29,6 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase assert @domain.force_delete_scheduled? assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date - assert (@domain.statuses.include?(DomainStatus::CLIENT_HOLD)) end def test_schedules_force_delete_soft_less_than_year_ahead From d20821dd38aa02f6f02ac513b6a0238ab903c002 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 17 Dec 2019 12:52:21 +0500 Subject: [PATCH 282/757] Add tests for clientHold status --- test/models/domain/force_delete_test.rb | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index be97c0f38..a36615113 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -151,4 +151,64 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase assert_empty @domain.statuses & statuses end + + def test_force_delete_soft_year_ahead_sets_client_hold + asserted_status = DomainStatus::CLIENT_HOLD + + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + @domain.schedule_force_delete(type: :soft) + + travel_to Time.zone.parse('2010-08-20') + DomainCron.start_client_hold + @domain.reload + assert_includes(@domain.statuses, asserted_status) + end + + def test_force_delete_soft_year_ahead_not_sets_client_hold_before_threshold + asserted_status = DomainStatus::CLIENT_HOLD + + @domain.update_columns(valid_to: Time.zone.parse('2010-08-05'), + force_delete_date: nil) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + @domain.schedule_force_delete(type: :soft) + + travel_to Time.zone.parse('2010-07-06') + DomainCron.start_client_hold + @domain.reload + + assert_not_includes(@domain.statuses, asserted_status) + end + + def test_force_delete_fast_track_sets_client_hold + asserted_status = DomainStatus::CLIENT_HOLD + @domain.update_columns(valid_to: Time.zone.parse('2010-10-05'), + force_delete_date: nil) + + travel_to Time.zone.parse('2010-07-05') + + @domain.schedule_force_delete(type: :fast_track) + travel_to Time.zone.parse('2010-07-25') + DomainCron.start_client_hold + @domain.reload + + assert_includes(@domain.statuses, asserted_status) + end + + def test_not_sets_hold_before_treshold + asserted_status = DomainStatus::CLIENT_HOLD + @domain.update_columns(valid_to: Time.zone.parse('2010-10-05'), + force_delete_date: nil) + + travel_to Time.zone.parse('2010-07-05') + + @domain.schedule_force_delete(type: :fast_track) + travel_to Time.zone.parse('2010-07-06') + DomainCron.start_client_hold + @domain.reload + + assert_not_includes(@domain.statuses, asserted_status) + end end From c863cb26786e0c80d38e8099ec8a19a92efad32b Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 19 Dec 2019 17:09:40 +0500 Subject: [PATCH 283/757] Move force delete dates to one day ahead --- app/models/concerns/domain/force_delete.rb | 6 +++--- db/structure.sql | 2 -- test/models/domain/force_delete_test.rb | 10 +++++----- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 81b792106..c8cbe6b0a 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -35,8 +35,8 @@ module Concerns::Domain::ForceDelete def force_delete_fast_track preserve_current_statuses_for_force_delete add_force_delete_statuses - self.force_delete_date = force_delete_fast_track_start_date - self.force_delete_start = Time.zone.today + self.force_delete_date = force_delete_fast_track_start_date + 1.day + self.force_delete_start = Time.zone.today + 1.day stop_all_pending_actions allow_deletion save(validate: false) @@ -67,7 +67,7 @@ module Concerns::Domain::ForceDelete end def soft_delete_dates(years) - self.force_delete_start = valid_to - years.years + self.force_delete_start = valid_to - years.years + 1.day self.force_delete_date = force_delete_start + Setting.expire_warning_period.days + Setting.redemption_grace_period.days end diff --git a/db/structure.sql b/db/structure.sql index f7401285a..7d15804a4 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -4336,8 +4336,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191206183853'), ('20191212133136'), ('20191227110904'), -('20191203083643'), -('20191206183853'), ('20200113091254'); diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index a36615113..f59cf58bd 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -14,8 +14,8 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase @domain.reload assert @domain.force_delete_scheduled? - assert_equal Date.parse('2010-08-19'), @domain.force_delete_date.to_date - assert_equal Date.parse('2010-07-05'), @domain.force_delete_start.to_date + assert_equal Date.parse('2010-08-20'), @domain.force_delete_date.to_date + assert_equal Date.parse('2010-07-06'), @domain.force_delete_start.to_date end def test_schedules_force_delete_soft_year_ahead @@ -27,8 +27,8 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase @domain.reload assert @domain.force_delete_scheduled? - assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date - assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date + assert_equal Date.parse('2010-09-20'), @domain.force_delete_date.to_date + assert_equal Date.parse('2010-08-06'), @domain.force_delete_start.to_date end def test_schedules_force_delete_soft_less_than_year_ahead @@ -160,7 +160,7 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase travel_to Time.zone.parse('2010-07-05') @domain.schedule_force_delete(type: :soft) - travel_to Time.zone.parse('2010-08-20') + travel_to Time.zone.parse('2010-08-21') DomainCron.start_client_hold @domain.reload assert_includes(@domain.statuses, asserted_status) From 222ac639acc63da5dad12c541bc0b55cfaddee3d Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 13 Jan 2020 16:40:40 +0500 Subject: [PATCH 284/757] Add pull messages on soft force delete & force delete cancel --- app/models/concerns/domain/force_delete.rb | 1 + app/models/domain_cron.rb | 8 +++++++- config/locales/en.yml | 2 ++ config/schedule.rb | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index c8cbe6b0a..d09ea3704 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -57,6 +57,7 @@ module Concerns::Domain::ForceDelete self.force_delete_date = nil self.force_delete_start = nil save(validate: false) + registrar.notifications.create!(text: I18n.t('force_delete_cancelled', domain_name: name)) end private diff --git a/app/models/domain_cron.rb b/app/models/domain_cron.rb index e3edf9f4c..154c4ca19 100644 --- a/app/models/domain_cron.rb +++ b/app/models/domain_cron.rb @@ -94,7 +94,7 @@ class DomainCron domain.statuses << DomainStatus::CLIENT_HOLD log_start_client_hold(domain) - domain.save(validate: false) and marked += 1 + domain.save(validate: false) and marked += 1 and notify_client_hold(domain) end log_end_end_client_hold(marked: marked, real: real) @@ -120,4 +120,10 @@ class DomainCron STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold to #{marked} of #{real} "\ "domains\n" end + + def self.notify_client_hold(domain) + domain.registrar.notifications.create!(text: I18n.t('soft_force_delete_set_on_domain', + domain_name: domain.name, + start_date: domain.force_delete_start)) + end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 75f9a6542..b4a5d1c18 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -619,6 +619,8 @@ en: created_at_until: 'Created at until' is_registrant: 'Is registrant' force_delete_set_on_domain: 'Force delete set on domain %{domain_name}' + soft_force_delete_set_on_domain: 'clientHold status is set for domain %{domain_name}, ForceDelete is in effect from %{start_date}' + force_delete_cancelled: 'Force delete is cancelled on domain %{domain_name}' contact_is_not_valid: 'Contact %{value} is not valid, please fix the invalid contact' next: 'Next' previous: 'Previous' diff --git a/config/schedule.rb b/config/schedule.rb index fe920dc6d..07a04fa39 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -46,6 +46,10 @@ if @cron_group == 'registry' runner 'DomainCron.start_redemption_grace_period' end + every 1.hour do + runner 'DomainCron.start_client_hold' + end + every '0 0 1 * *' do runner 'Directo.send_monthly_invoices' end From 9916ca52cbdcfc4771898dedc51e74b505450ecb Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 14 Jan 2020 17:03:23 +0500 Subject: [PATCH 285/757] Add poll message on start of grace period for soft delete Add removing forceDelete on registrant change. Restore email template choosing on safe force delete via admin dashboard. See https://github.com/internetee/registry/issues/1428#issuecomment-573766153 --- app/models/concerns/domain/force_delete.rb | 5 ++ app/models/concerns/job/force_delete.rb | 31 ++++++++++++ .../concerns/job/force_delete_messages.rb | 40 +++++++++++++++ app/models/domain.rb | 2 + app/models/domain_cron.rb | 50 +------------------ .../domains/_force_delete_dialog.html.erb | 3 +- config/locales/en.yml | 3 +- config/schedule.rb | 2 +- 8 files changed, 84 insertions(+), 52 deletions(-) create mode 100644 app/models/concerns/job/force_delete.rb create mode 100644 app/models/concerns/job/force_delete_messages.rb diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index d09ea3704..ffe997322 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -11,6 +11,11 @@ module Concerns::Domain::ForceDelete statuses.include?(DomainStatus::FORCE_DELETE) end + def should_notify_on_soft_force_delete? + force_delete_scheduled? && !statuses.include?(DomainStatus::CLIENT_HOLD) && + force_delete_start.present? && force_delete_start.to_date == Time.zone.now.to_date + end + def client_holdable? force_delete_scheduled? && !statuses.include?(DomainStatus::CLIENT_HOLD) && force_delete_start.present? && force_delete_lte_today && force_delete_lte_valid_date diff --git a/app/models/concerns/job/force_delete.rb b/app/models/concerns/job/force_delete.rb new file mode 100644 index 000000000..727ddaa3b --- /dev/null +++ b/app/models/concerns/job/force_delete.rb @@ -0,0 +1,31 @@ +module Concerns + module Job + module ForceDelete + extend ActiveSupport::Concern + + class_methods do + def start_client_hold + log_prepare_client_hold + + ::PaperTrail.whodunnit = "cron - #{__method__}" + + ::Domain.force_delete_scheduled.each do |domain| + proceed_client_hold(domain: domain) + log_end_end_client_hold(domain) + end + end + + def proceed_client_hold(domain:) + notify_on_grace_period(domain) if domain.should_notify_on_soft_force_delete? + return unless domain.client_holdable? + + domain.statuses << DomainStatus::CLIENT_HOLD + log_start_client_hold(domain) + + domain.save(validate: false) + notify_client_hold(domain) + end + end + end + end +end diff --git a/app/models/concerns/job/force_delete_messages.rb b/app/models/concerns/job/force_delete_messages.rb new file mode 100644 index 000000000..cb4f298a8 --- /dev/null +++ b/app/models/concerns/job/force_delete_messages.rb @@ -0,0 +1,40 @@ +module Concerns + module Job + module ForceDeleteMessages + extend ActiveSupport::Concern + + class_methods do + def log_prepare_client_hold + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} - Setting client_hold to domains\n" + end + + def log_start_client_hold(domain) + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} DomainCron.start_client_hold: ##{domain.id} "\ + "(#{domain.name}) #{domain.changes}\n" + end + + def log_end_end_client_hold(domain) + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold on (#{domain.name})" + end + + def notify_client_hold(domain) + domain.registrar.notifications.create!(text: I18n.t('client_hold_set_on_domain', + domain_name: domain.name, + date: domain.force_delete_start)) + end + + def notify_on_grace_period(domain) + domain.registrar.notifications.create!(text: I18n.t('grace_period_started_domain', + domain_name: domain.name, + date: domain.force_delete_start)) + end + end + end + end +end diff --git a/app/models/domain.rb b/app/models/domain.rb index 50f41c38a..734243c0d 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -547,6 +547,8 @@ class Domain < ApplicationRecord activate if nameservers.reject(&:marked_for_destruction?).size >= Setting.ns_min_count end + cancel_force_delete if force_delete_scheduled? && pending_json['new_registrant_id'] + if statuses.empty? && valid? statuses << DomainStatus::OK elsif (statuses.length > 1 && active?) || !valid? diff --git a/app/models/domain_cron.rb b/app/models/domain_cron.rb index 154c4ca19..47e5a99b5 100644 --- a/app/models/domain_cron.rb +++ b/app/models/domain_cron.rb @@ -1,4 +1,6 @@ class DomainCron + include Concerns::Job::ForceDelete + include Concerns::Job::ForceDeleteMessages def self.clean_expired_pendings STDOUT << "#{Time.zone.now.utc} - Clean expired domain pendings\n" unless Rails.env.test? @@ -78,52 +80,4 @@ class DomainCron STDOUT << "#{Time.zone.now.utc} - Successfully set server_hold to #{marked} of #{real} domains\n" unless Rails.env.test? marked end - - def self.start_client_hold - log_prepare_client_hold - - ::PaperTrail.whodunnit = "cron - #{__method__}" - - marked = 0 - real = 0 - - Domain.force_delete_scheduled.each do |domain| - next unless domain.client_holdable? - - real += 1 - domain.statuses << DomainStatus::CLIENT_HOLD - log_start_client_hold(domain) - - domain.save(validate: false) and marked += 1 and notify_client_hold(domain) - end - - log_end_end_client_hold(marked: marked, real: real) - marked - end - - def self.log_prepare_client_hold - return if Rails.env.test? - - STDOUT << "#{Time.zone.now.utc} - Setting client_hold to domains\n" - end - - def self.log_start_client_hold(domain) - return if Rails.env.test? - - STDOUT << "#{Time.zone.now.utc} DomainCron.start_client_hold: ##{domain.id} (#{domain.name})"\ - "#{domain.changes}\n" - end - - def self.log_end_end_client_hold(marked:, real:) - return if Rails.env.test? - - STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold to #{marked} of #{real} "\ - "domains\n" - end - - def self.notify_client_hold(domain) - domain.registrar.notifications.create!(text: I18n.t('soft_force_delete_set_on_domain', - domain_name: domain.name, - start_date: domain.force_delete_start)) - end end diff --git a/app/views/admin/domains/_force_delete_dialog.html.erb b/app/views/admin/domains/_force_delete_dialog.html.erb index 6287abffe..a76c14edd 100644 --- a/app/views/admin/domains/_force_delete_dialog.html.erb +++ b/app/views/admin/domains/_force_delete_dialog.html.erb @@ -14,8 +14,7 @@
diff --git a/config/locales/en.yml b/config/locales/en.yml index b4a5d1c18..0d76a030d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -619,7 +619,8 @@ en: created_at_until: 'Created at until' is_registrant: 'Is registrant' force_delete_set_on_domain: 'Force delete set on domain %{domain_name}' - soft_force_delete_set_on_domain: 'clientHold status is set for domain %{domain_name}, ForceDelete is in effect from %{start_date}' + client_hold_set_on_domain: 'clientHold status is set for domain %{domain_name}, ForceDelete is in effect from %{date}' + grace_period_started_domain: 'For domain %{domain_name} started 45-days redemption grace period, ForceDelete will be in effect from %{date}' force_delete_cancelled: 'Force delete is cancelled on domain %{domain_name}' contact_is_not_valid: 'Contact %{value} is not valid, please fix the invalid contact' next: 'Next' diff --git a/config/schedule.rb b/config/schedule.rb index 07a04fa39..089ce93f9 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -46,7 +46,7 @@ if @cron_group == 'registry' runner 'DomainCron.start_redemption_grace_period' end - every 1.hour do + every 1.day do runner 'DomainCron.start_client_hold' end From d95081adcf724cd572f6239cc3247a883da9f415 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 14 Jan 2020 18:47:24 +0500 Subject: [PATCH 286/757] Add test to see if registrant verification stores versions --- config/environments/test.rb | 2 ++ test/models/registrant_verification_test.rb | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/config/environments/test.rb b/config/environments/test.rb index 73ae40f08..6913ceb7e 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -27,6 +27,8 @@ Rails.application.configure do # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test + config.action_mailer.raise_delivery_errors = false + # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr diff --git a/test/models/registrant_verification_test.rb b/test/models/registrant_verification_test.rb index 1950c1ad6..ef4038784 100644 --- a/test/models/registrant_verification_test.rb +++ b/test/models/registrant_verification_test.rb @@ -1,6 +1,16 @@ require 'test_helper' class RegistrantVerificationTest < ActiveSupport::TestCase + + setup do + @domain = domains(:shop) + @initiator = users(:api_bestnames).username + @token = 'zzzzz' + @domain.update(statuses: [DomainStatus::PENDING_UPDATE], + registrant_verification_asked_at: Time.zone.now - 1.day, + registrant_verification_token: @token) + end + def test_audit_log registrant_verification = registrant_verifications(:one) random_action = "random#{rand(100)}" @@ -9,4 +19,15 @@ class RegistrantVerificationTest < ActiveSupport::TestCase registrant_verification.update_attributes!(action: random_action) end end + + def test_reject_changes + @registrant_verification = RegistrantVerification.new(domain_id: @domain.id, + verification_token: @token) + start_versions_count = RegistrantVerificationVersion.count + + assert_nothing_raised do + @registrant_verification.domain_registrant_change_reject!("email link, #{@initiator}") + end + assert_equal RegistrantVerificationVersion.count, start_versions_count + 1 + end end From c252d801f98bd1b10004a9f407625083fcce8ed0 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 15 Jan 2020 16:00:56 +0500 Subject: [PATCH 287/757] Add mail notification on soft force delete --- .../admin/domains/force_delete_controller.rb | 23 ++++++++++---- .../registrant/domains_controller.rb | 2 +- app/models/concerns/domain/force_delete.rb | 29 ++++++++++++++++-- .../concerns/job/force_delete_logging.rb | 28 +++++++++++++++++ ...ete_messages.rb => force_delete_notify.rb} | 30 +++++++------------ app/models/domain_cron.rb | 3 +- ...102202_add_force_delete_data_to_domains.rb | 5 ++++ db/structure.sql | 7 +++-- test/models/domain/force_delete_test.rb | 1 + .../admin_area/domains/force_delete_test.rb | 3 +- 10 files changed, 97 insertions(+), 34 deletions(-) create mode 100644 app/models/concerns/job/force_delete_logging.rb rename app/models/concerns/job/{force_delete_messages.rb => force_delete_notify.rb} (56%) create mode 100644 db/migrate/20200115102202_add_force_delete_data_to_domains.rb diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index 36835bfe5..28a058b4d 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -9,17 +9,21 @@ module Admin domain.registrar.notifications.create!(text: t('force_delete_set_on_domain', domain_name: domain.name)) - if notify_by_email? - DomainDeleteMailer.forced(domain: domain, - registrar: domain.registrar, - registrant: domain.registrant, - template_name: params[:template_name]).deliver_now - end + notify_by_email if notify_by_email? end redirect_to edit_admin_domain_url(domain), notice: t('.scheduled') end + def notify_by_email + if force_delete_type == :fast_track + send_email + domain.update(contact_notification_sent_date: Time.zone.today) + else + domain.update(template_name: params[:template_name]) + end + end + def destroy authorize! :manage, domain domain.cancel_force_delete @@ -36,6 +40,13 @@ module Admin ActiveRecord::Type::Boolean.new.cast(params[:notify_by_email]) end + def send_email + DomainDeleteMailer.forced(domain: domain, + registrar: domain.registrar, + registrant: domain.registrant, + template_name: params[:template_name]).deliver_now + end + def force_delete_type soft_delete? ? :soft : :fast_track end diff --git a/app/controllers/registrant/domains_controller.rb b/app/controllers/registrant/domains_controller.rb index fc66806e2..216f87e54 100644 --- a/app/controllers/registrant/domains_controller.rb +++ b/app/controllers/registrant/domains_controller.rb @@ -76,4 +76,4 @@ class Registrant::DomainsController < RegistrantController params.require(:q).permit(:name_matches, :registrant_ident_eq, :valid_to_gteq, :valid_to_lteq, :results_per_page) end -end \ No newline at end of file +end diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index ffe997322..0120347c8 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -1,6 +1,18 @@ -module Concerns::Domain::ForceDelete +module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength extend ActiveSupport::Concern + included do + store_accessor :force_delete_data, + :force_delete_type, + :contact_notification_sent_date, + :template_name + + scope :notification_not_sent, + lambda { + where("(force_delete_data->>'contact_notification_sent_date') is null") + } + end + class_methods do def force_delete_scheduled where('force_delete_start <= ?', Time.zone.now) @@ -12,8 +24,8 @@ module Concerns::Domain::ForceDelete end def should_notify_on_soft_force_delete? - force_delete_scheduled? && !statuses.include?(DomainStatus::CLIENT_HOLD) && - force_delete_start.present? && force_delete_start.to_date == Time.zone.now.to_date + force_delete_scheduled? && contact_notification_sent_date.blank? && + force_delete_start.to_date == Time.zone.now.to_date && force_delete_type.to_sym == :soft end def client_holdable? @@ -37,9 +49,14 @@ module Concerns::Domain::ForceDelete type == :fast_track ? force_delete_fast_track : force_delete_soft end + def add_force_delete_type(force_delete_type) + self.force_delete_type = force_delete_type + end + def force_delete_fast_track preserve_current_statuses_for_force_delete add_force_delete_statuses + add_force_delete_type(:fast) self.force_delete_date = force_delete_fast_track_start_date + 1.day self.force_delete_start = Time.zone.today + 1.day stop_all_pending_actions @@ -50,15 +67,21 @@ module Concerns::Domain::ForceDelete def force_delete_soft preserve_current_statuses_for_force_delete add_force_delete_statuses + add_force_delete_type(:soft) calculate_soft_delete_date stop_all_pending_actions allow_deletion save(validate: false) end + def clear_force_delete_data + self.force_delete_data = nil + end + def cancel_force_delete restore_statuses_before_force_delete remove_force_delete_statuses + clear_force_delete_data self.force_delete_date = nil self.force_delete_start = nil save(validate: false) diff --git a/app/models/concerns/job/force_delete_logging.rb b/app/models/concerns/job/force_delete_logging.rb new file mode 100644 index 000000000..072c5b98f --- /dev/null +++ b/app/models/concerns/job/force_delete_logging.rb @@ -0,0 +1,28 @@ +module Concerns + module Job + module ForceDeleteLogging + extend ActiveSupport::Concern + + class_methods do + def log_prepare_client_hold + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} - Setting client_hold to domains\n" + end + + def log_start_client_hold(domain) + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} DomainCron.start_client_hold: ##{domain.id} "\ + "(#{domain.name}) #{domain.changes}\n" + end + + def log_end_end_client_hold(domain) + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold on (#{domain.name})" + end + end + end + end +end diff --git a/app/models/concerns/job/force_delete_messages.rb b/app/models/concerns/job/force_delete_notify.rb similarity index 56% rename from app/models/concerns/job/force_delete_messages.rb rename to app/models/concerns/job/force_delete_notify.rb index cb4f298a8..bc7322645 100644 --- a/app/models/concerns/job/force_delete_messages.rb +++ b/app/models/concerns/job/force_delete_notify.rb @@ -1,28 +1,9 @@ module Concerns module Job - module ForceDeleteMessages + module ForceDeleteNotify extend ActiveSupport::Concern class_methods do - def log_prepare_client_hold - return if Rails.env.test? - - STDOUT << "#{Time.zone.now.utc} - Setting client_hold to domains\n" - end - - def log_start_client_hold(domain) - return if Rails.env.test? - - STDOUT << "#{Time.zone.now.utc} DomainCron.start_client_hold: ##{domain.id} "\ - "(#{domain.name}) #{domain.changes}\n" - end - - def log_end_end_client_hold(domain) - return if Rails.env.test? - - STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold on (#{domain.name})" - end - def notify_client_hold(domain) domain.registrar.notifications.create!(text: I18n.t('client_hold_set_on_domain', domain_name: domain.name, @@ -33,6 +14,15 @@ module Concerns domain.registrar.notifications.create!(text: I18n.t('grace_period_started_domain', domain_name: domain.name, date: domain.force_delete_start)) + send_mail(domain) + domain.update(contact_notification_sent_date: Time.zone.today) + end + + def send_mail(domain) + DomainDeleteMailer.forced(domain: domain, + registrar: domain.registrar, + registrant: domain.registrant, + template_name: domain.template_name).deliver_now end end end diff --git a/app/models/domain_cron.rb b/app/models/domain_cron.rb index 47e5a99b5..bc075c067 100644 --- a/app/models/domain_cron.rb +++ b/app/models/domain_cron.rb @@ -1,6 +1,7 @@ class DomainCron include Concerns::Job::ForceDelete - include Concerns::Job::ForceDeleteMessages + include Concerns::Job::ForceDeleteLogging + include Concerns::Job::ForceDeleteNotify def self.clean_expired_pendings STDOUT << "#{Time.zone.now.utc} - Clean expired domain pendings\n" unless Rails.env.test? diff --git a/db/migrate/20200115102202_add_force_delete_data_to_domains.rb b/db/migrate/20200115102202_add_force_delete_data_to_domains.rb new file mode 100644 index 000000000..2ecc7ceaf --- /dev/null +++ b/db/migrate/20200115102202_add_force_delete_data_to_domains.rb @@ -0,0 +1,5 @@ +class AddForceDeleteDataToDomains < ActiveRecord::Migration[5.0] + def change + add_column :domains, :force_delete_data, :hstore + end +end diff --git a/db/structure.sql b/db/structure.sql index 7d15804a4..a23623bae 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -744,7 +744,9 @@ CREATE TABLE public.domains ( up_date timestamp without time zone, uuid uuid DEFAULT public.gen_random_uuid() NOT NULL, locked_by_registrant_at timestamp without time zone, - force_delete_start timestamp without time zone + force_delete_start timestamp without time zone, + force_delete_data public.hstore + ); @@ -4336,6 +4338,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191206183853'), ('20191212133136'), ('20191227110904'), -('20200113091254'); +('20200113091254'), +('20200115102202'); diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index f59cf58bd..5945ac807 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -201,6 +201,7 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase asserted_status = DomainStatus::CLIENT_HOLD @domain.update_columns(valid_to: Time.zone.parse('2010-10-05'), force_delete_date: nil) + @domain.update(template_name: 'legal_person') travel_to Time.zone.parse('2010-07-05') diff --git a/test/system/admin_area/domains/force_delete_test.rb b/test/system/admin_area/domains/force_delete_test.rb index 5e135bf24..b8af02f94 100644 --- a/test/system/admin_area/domains/force_delete_test.rb +++ b/test/system/admin_area/domains/force_delete_test.rb @@ -31,6 +31,7 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase def test_notifies_registrant_and_admin_contacts_by_email_by_default assert_emails 1 do visit edit_admin_domain_url(@domain) + find(:css, '#soft_delete').set(false) click_link_or_button 'Force delete domain' end end @@ -62,4 +63,4 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase assert_no_button 'Schedule force delete' assert_no_link 'Schedule force delete' end -end \ No newline at end of file +end From a2158027246df0d443dd8224c450a92b76575ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 16 Jan 2020 10:55:00 +0200 Subject: [PATCH 288/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb3c79950..5c412bdd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +16.01.2020 +* Added tests for registrant verification [#1430](https://github.com/internetee/registry/pull/1430) + 14.01.2020 * removed authinfo element from contact:info response for non-sponsoring registrars [#1446](https://github.com/internetee/registry/issues/1446) From e7581246d64bcdffb587491f3b87bf7681771365 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 15 Jan 2020 17:46:31 +0500 Subject: [PATCH 289/757] Add test for clear force delete on registrar change --- app/models/concerns/domain/force_delete.rb | 2 +- test/models/domain/force_delete_test.rb | 1 + test/models/domain_cron_test.rb | 17 ++++++++++++++++- test/models/domain_test.rb | 16 ++++++++++++++++ .../admin_area/domains/force_delete_test.rb | 10 +++++++++- 5 files changed, 43 insertions(+), 3 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 0120347c8..c335fcfd0 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -25,7 +25,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength def should_notify_on_soft_force_delete? force_delete_scheduled? && contact_notification_sent_date.blank? && - force_delete_start.to_date == Time.zone.now.to_date && force_delete_type.to_sym == :soft + force_delete_start.to_date <= Time.zone.now.to_date && force_delete_type.to_sym == :soft end def client_holdable? diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 5945ac807..053721868 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -156,6 +156,7 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase asserted_status = DomainStatus::CLIENT_HOLD @domain.update(valid_to: Time.zone.parse('2012-08-05')) + @domain.update(template_name: 'legal_person') assert_not @domain.force_delete_scheduled? travel_to Time.zone.parse('2010-07-05') @domain.schedule_force_delete(type: :soft) diff --git a/test/models/domain_cron_test.rb b/test/models/domain_cron_test.rb index 742bf2eaf..f0a0bbc9d 100644 --- a/test/models/domain_cron_test.rb +++ b/test/models/domain_cron_test.rb @@ -23,4 +23,19 @@ class DomainCronTest < ActiveSupport::TestCase assert_emails 1 end -end \ No newline at end of file + + def test_client_hold + Setting.redemption_grace_period = 30 + + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + @domain.schedule_force_delete(type: :soft) + @domain.reload + @domain.update(template_name: 'legal_person') + travel_to Time.zone.parse('2010-08-06') + DomainCron.start_client_hold + + assert_emails 1 + end +end diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb index 7e681e560..8bac6d7ab 100644 --- a/test/models/domain_test.rb +++ b/test/models/domain_test.rb @@ -405,6 +405,22 @@ class DomainTest < ActiveSupport::TestCase assert_not domain.active? end + def test_registrant_change_removes_force_delete + @domain.update_columns(valid_to: Time.zone.parse('2010-10-05'), + force_delete_date: nil) + @domain.update(template_name: 'legal_person') + travel_to Time.zone.parse('2010-07-05') + @domain.schedule_force_delete(type: :fast_track) + assert(@domain.force_delete_scheduled?) + other_registrant = Registrant.find_by(code: 'jane-001') + @domain.pending_json['new_registrant_id'] = other_registrant.id + + @domain.registrant = other_registrant + @domain.save! + + assert_not(@domain.force_delete_scheduled?) + end + private def valid_domain diff --git a/test/system/admin_area/domains/force_delete_test.rb b/test/system/admin_area/domains/force_delete_test.rb index b8af02f94..4ccc10923 100644 --- a/test/system/admin_area/domains/force_delete_test.rb +++ b/test/system/admin_area/domains/force_delete_test.rb @@ -28,7 +28,7 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase end end - def test_notifies_registrant_and_admin_contacts_by_email_by_default + def test_notifies_registrant_and_admin_contacts_by_email_if_fast_delete assert_emails 1 do visit edit_admin_domain_url(@domain) find(:css, '#soft_delete').set(false) @@ -36,6 +36,14 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase end end + def test_notifies_registrant_and_admin_contacts_by_email_if_soft_delete + assert_emails 0 do + visit edit_admin_domain_url(@domain) + find(:css, '#soft_delete').set(true) + click_link_or_button 'Force delete domain' + end + end + def test_allows_to_skip_notifying_registrant_and_admin_contacts_by_email assert_no_emails do visit edit_admin_domain_url(@domain) From 214877558c9f8091bcccec1eabc8f5b3f1fb08a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Sat, 18 Jan 2020 15:26:28 +0200 Subject: [PATCH 290/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c412bdd4..64b24ee41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +18.01.2020 +* New ForceDelete procedure [#1428](https://github.com/internetee/registry/issues/1428) + 16.01.2020 * Added tests for registrant verification [#1430](https://github.com/internetee/registry/pull/1430) From 6f8a8f6435f6e8459ab07ebec7f38548ccc9bb74 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 20 Jan 2020 13:50:38 +0500 Subject: [PATCH 291/757] Add tech contacts & info & name@name to force delete mailer See #1477 --- app/mailers/domain_delete_mailer.rb | 2 +- app/models/domain.rb | 9 +++++++++ test/mailers/domain_delete_mailer_test.rb | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/mailers/domain_delete_mailer.rb b/app/mailers/domain_delete_mailer.rb index f1a7fc237..1f08204bf 100644 --- a/app/mailers/domain_delete_mailer.rb +++ b/app/mailers/domain_delete_mailer.rb @@ -44,7 +44,7 @@ class DomainDeleteMailer < ApplicationMailer subject = default_i18n_subject(domain_name: domain.name) mail(from: forced_email_from, - to: domain.primary_contact_emails, + to: domain.force_delete_contact_emails, subject: subject, template_path: 'mailers/domain_delete_mailer/forced', template_name: template_name) diff --git a/app/models/domain.rb b/app/models/domain.rb index 734243c0d..ca2a664b0 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -587,6 +587,15 @@ class Domain < ApplicationRecord (admin_contacts.emails + [registrant.email]).uniq end + def force_delete_contact_emails + (primary_contact_emails + tech_contacts.pluck(:email) + + ["info@#{name}", "#{prepared_domain_name}@#{name}"]).uniq + end + + def prepared_domain_name + name.split('.')&.first + end + def new_registrant_email pending_json['new_registrant_email'] end diff --git a/test/mailers/domain_delete_mailer_test.rb b/test/mailers/domain_delete_mailer_test.rb index e6a39ff3d..ae060921f 100644 --- a/test/mailers/domain_delete_mailer_test.rb +++ b/test/mailers/domain_delete_mailer_test.rb @@ -73,9 +73,9 @@ class DomainDeleteMailerTest < ActionMailer::TestCase assert_emails 1 assert_equal ['legal@registry.test'], email.from - assert_equal %w[jane@mail.test john@inbox.test], email.to + assert_equal @domain.force_delete_contact_emails, email.to assert_equal 'Domeen shop.test on kustutusmenetluses' \ ' / Domain shop.test is in deletion process' \ ' / Домен shop.test в процессе удаления', email.subject end -end \ No newline at end of file +end From 658538297eb3df922f59b2934e5dbf5b51a2b2f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 20 Jan 2020 13:04:34 +0200 Subject: [PATCH 292/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64b24ee41..c1d9edd74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +20.01.2020 +* ForceDelete email notifications are sent to all contacts + info and domain@domain [#1477](https://github.com/internetee/registry/issues/1477) + 18.01.2020 * New ForceDelete procedure [#1428](https://github.com/internetee/registry/issues/1428) From a9ce9dba516aedb964bb3604f57f01875919dd96 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 20 Jan 2020 15:56:58 +0500 Subject: [PATCH 293/757] Set single poll message for force delete --- app/controllers/admin/domains/force_delete_controller.rb | 4 +++- app/models/concerns/domain/force_delete.rb | 9 +++++++++ app/models/concerns/job/force_delete_notify.rb | 5 +++-- config/locales/en.yml | 3 +-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index 28a058b4d..c61f050d2 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -7,7 +7,9 @@ module Admin domain.transaction do domain.schedule_force_delete(type: force_delete_type) domain.registrar.notifications.create!(text: t('force_delete_set_on_domain', - domain_name: domain.name)) + domain_name: domain.name, + outzone_date: domain.outzone_date, + purge_date: domain.purge_date)) notify_by_email if notify_by_email? end diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index c335fcfd0..f3817c956 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -88,6 +88,15 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength registrar.notifications.create!(text: I18n.t('force_delete_cancelled', domain_name: name)) end + def outzone_date + (force_delete_start || valid_to) + Setting.expire_warning_period.days + end + + def purge_date + force_delete_date || valid_to + Setting.expire_warning_period.days + + Setting.redemption_grace_period.days + 1.day + end + private def calculate_soft_delete_date diff --git a/app/models/concerns/job/force_delete_notify.rb b/app/models/concerns/job/force_delete_notify.rb index bc7322645..658c7a315 100644 --- a/app/models/concerns/job/force_delete_notify.rb +++ b/app/models/concerns/job/force_delete_notify.rb @@ -5,9 +5,10 @@ module Concerns class_methods do def notify_client_hold(domain) - domain.registrar.notifications.create!(text: I18n.t('client_hold_set_on_domain', + domain.registrar.notifications.create!(text: I18n.t('force_delete_set_on_domain', domain_name: domain.name, - date: domain.force_delete_start)) + outzone_date: domain.outzone_date, + purge_date: domain.purge_date)) end def notify_on_grace_period(domain) diff --git a/config/locales/en.yml b/config/locales/en.yml index 0d76a030d..74040fe98 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -618,8 +618,7 @@ en: created_at_from: 'Created at from' created_at_until: 'Created at until' is_registrant: 'Is registrant' - force_delete_set_on_domain: 'Force delete set on domain %{domain_name}' - client_hold_set_on_domain: 'clientHold status is set for domain %{domain_name}, ForceDelete is in effect from %{date}' + force_delete_set_on_domain: 'Force delete set on domain %{domain_name}. Outzone date: %{outzone_date}. Purge date: %{purge_date}' grace_period_started_domain: 'For domain %{domain_name} started 45-days redemption grace period, ForceDelete will be in effect from %{date}' force_delete_cancelled: 'Force delete is cancelled on domain %{domain_name}' contact_is_not_valid: 'Contact %{value} is not valid, please fix the invalid contact' From 2af18edfea92a990e36801efc9ce8bb947c4eba8 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 21 Jan 2020 15:08:38 +0500 Subject: [PATCH 294/757] Add conditions for force delete clean on registrant change --- app/models/domain.rb | 2 +- .../epp/domain/update/base_test.rb | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index ca2a664b0..d6545284d 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -547,7 +547,7 @@ class Domain < ApplicationRecord activate if nameservers.reject(&:marked_for_destruction?).size >= Setting.ns_min_count end - cancel_force_delete if force_delete_scheduled? && pending_json['new_registrant_id'] + cancel_force_delete if force_delete_scheduled? && registrant_id_changed? if statuses.empty? && valid? statuses << DomainStatus::OK diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 9e533a501..b645df95a 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -268,6 +268,46 @@ class EppDomainUpdateBaseTest < EppTestCase assert_no_emails end + def test_clears_force_delete_when_registrar_changed + Setting.request_confrimation_on_registrant_change_enabled = true + new_registrant = contacts(:william).becomes(Registrant) + @domain.schedule_force_delete(type: :fast_track) + assert_not_equal new_registrant, @domain.registrant + assert @domain.force_delete_scheduled? + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + #{'test' * 2000} + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + @domain.reload + + assert_epp_response :completed_successfully + assert_equal new_registrant, @domain.registrant + assert_not @domain.registrant_verification_asked? + refute @domain.force_delete_scheduled? + refute_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_no_emails + end + def test_deactivates_domain_when_all_name_servers_are_removed assert @domain.active? assert_equal 2, @domain.nameservers.count From d4a9c81dad91e239425c3d42e870525c44bcc4ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 21 Jan 2020 18:10:04 +0200 Subject: [PATCH 295/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1d9edd74..4ed64093e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +21.01.2020 +* Registrant change cancels automatically force delete process [#1479](https://github.com/internetee/registry/issues/1479) + 20.01.2020 * ForceDelete email notifications are sent to all contacts + info and domain@domain [#1477](https://github.com/internetee/registry/issues/1477) From 363a74248f5ec3211d9b139a1f6da62e99251eb8 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 21 Jan 2020 18:49:09 +0500 Subject: [PATCH 296/757] Fix purge_date format to fast/soft forcedelete domains --- app/models/concerns/domain/force_delete.rb | 4 +-- test/models/domain/force_delete_test.rb | 29 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index f3817c956..480d793b5 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -93,8 +93,8 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end def purge_date - force_delete_date || valid_to + Setting.expire_warning_period.days + - Setting.redemption_grace_period.days + 1.day + (force_delete_date&.beginning_of_day || valid_to + Setting.expire_warning_period.days + + Setting.redemption_grace_period.days) end private diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 053721868..e3818c484 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -152,6 +152,35 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase assert_empty @domain.statuses & statuses end + def test_hard_force_delete_should_have_outzone_and_purge_date_with_time + @domain.schedule_force_delete(type: :fast_track) + @domain.reload + + assert_equal(@domain.purge_date.to_date, @domain.force_delete_date) + assert_equal(@domain.outzone_date.to_date, @domain.force_delete_start.to_date + + Setting.expire_warning_period.days) + assert(@domain.purge_date.is_a?(ActiveSupport::TimeWithZone)) + assert(@domain.outzone_date.is_a?(ActiveSupport::TimeWithZone)) + end + + def test_soft_force_delete_year_ahead_should_have_outzone_and_purge_date_with_time + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + @domain.update(template_name: 'legal_person') + travel_to Time.zone.parse('2010-07-05') + + @domain.schedule_force_delete(type: :soft) + + travel_to Time.zone.parse('2010-08-21') + DomainCron.start_client_hold + @domain.reload + + assert_equal(@domain.purge_date.to_date, @domain.force_delete_date.to_date) + assert_equal(@domain.outzone_date.to_date, @domain.force_delete_start.to_date + + Setting.expire_warning_period.days) + assert(@domain.purge_date.is_a?(ActiveSupport::TimeWithZone)) + assert(@domain.outzone_date.is_a?(ActiveSupport::TimeWithZone)) + end + def test_force_delete_soft_year_ahead_sets_client_hold asserted_status = DomainStatus::CLIENT_HOLD From c46244394cda69885b47fd6f96b337aa91136f97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 22 Jan 2020 14:27:19 +0200 Subject: [PATCH 297/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ed64093e..3371bf2ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +22.01.2020 +* ForceDelete poll messages with outzone and purge dates [#1478](https://github.com/internetee/registry/issues/1478) + 21.01.2020 * Registrant change cancels automatically force delete process [#1479](https://github.com/internetee/registry/issues/1479) From 823139cf7545f3cea8f41ce7e2a963ace522470c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 23 Jan 2020 16:02:54 +0200 Subject: [PATCH 298/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3371bf2ac..dbeae914c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +23.01.2020 +* Payment invoice matching by looking for ref nr in description field [#1415](https://github.com/internetee/registry/issues/1415) + 22.01.2020 * ForceDelete poll messages with outzone and purge dates [#1478](https://github.com/internetee/registry/issues/1478) From a7b4b0d19ba5e83d6522e5741ecb4eccea04fdc3 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 20 Jan 2020 17:06:37 +0500 Subject: [PATCH 299/757] Add condition on not having clientHold status for force-delete job See #1480 --- app/models/concerns/domain/force_delete.rb | 3 ++- app/models/concerns/job/force_delete.rb | 5 ++++- app/models/concerns/job/force_delete_logging.rb | 6 ++++++ test/models/domain_cron_test.rb | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index c335fcfd0..0c131f43c 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -25,7 +25,8 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength def should_notify_on_soft_force_delete? force_delete_scheduled? && contact_notification_sent_date.blank? && - force_delete_start.to_date <= Time.zone.now.to_date && force_delete_type.to_sym == :soft + force_delete_start.to_date <= Time.zone.now.to_date && force_delete_type.to_sym == :soft && + !statuses.include?(DomainStatus::CLIENT_HOLD) end def client_holdable? diff --git a/app/models/concerns/job/force_delete.rb b/app/models/concerns/job/force_delete.rb index 727ddaa3b..2c3cdfdb5 100644 --- a/app/models/concerns/job/force_delete.rb +++ b/app/models/concerns/job/force_delete.rb @@ -11,8 +11,9 @@ module Concerns ::Domain.force_delete_scheduled.each do |domain| proceed_client_hold(domain: domain) - log_end_end_client_hold(domain) end + + log_end_end_force_delete_job end def proceed_client_hold(domain:) @@ -24,6 +25,8 @@ module Concerns domain.save(validate: false) notify_client_hold(domain) + + log_end_end_client_hold(domain) end end end diff --git a/app/models/concerns/job/force_delete_logging.rb b/app/models/concerns/job/force_delete_logging.rb index 072c5b98f..8f6ee227c 100644 --- a/app/models/concerns/job/force_delete_logging.rb +++ b/app/models/concerns/job/force_delete_logging.rb @@ -22,6 +22,12 @@ module Concerns STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold on (#{domain.name})" end + + def log_end_end_force_delete_job + return if Rails.env.test? + + STDOUT << "#{Time.zone.now.utc} - All client_hold setting are done\n" + end end end end diff --git a/test/models/domain_cron_test.rb b/test/models/domain_cron_test.rb index f0a0bbc9d..5b3b0120e 100644 --- a/test/models/domain_cron_test.rb +++ b/test/models/domain_cron_test.rb @@ -38,4 +38,18 @@ class DomainCronTest < ActiveSupport::TestCase assert_emails 1 end + + def test_does_not_sets_hold_if_already_set + Setting.redemption_grace_period = 30 + + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + travel_to Time.zone.parse('2010-07-05') + @domain.schedule_force_delete(type: :soft) + @domain.reload + @domain.update(template_name: 'legal_person', statuses: [DomainStatus::CLIENT_HOLD]) + travel_to Time.zone.parse('2010-08-06') + DomainCron.start_client_hold + + assert_emails 0 + end end From 3d424e3dd07f71ca878dae9367a1404d13dd7973 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 24 Jan 2020 13:51:44 +0500 Subject: [PATCH 300/757] Fix ignored attributes on history models Concern method #all_versions_for(ids, time) tried to create model instance from history and raises an exception when in history object there are some columns which are ignored in model at the moment. This patch removes ignored columns from data used to create a new inctance. See #1489 --- app/models/concerns/versions.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index 77bc484ae..47ed461ce 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -61,7 +61,8 @@ module Versions preceding(time + 1, true). select("distinct on (item_id) #{ver_klass.table_name}.*"). map do |ver| - o = new(ver.object) + ignored_columns = ver.item_type.constantize&.ignored_columns + o = new(ver.object&.except!(*ignored_columns)) o.version_loader = ver ver.object_changes.to_h.each { |k, v| o.public_send("#{k}=", v[-1]) } o From e4352d121a7e1fb6bb5b2be9b66f0b18d667a067 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 24 Jan 2020 14:26:30 +0500 Subject: [PATCH 301/757] Add tests for fixing ignored columns in versions --- app/models/concerns/versions.rb | 4 ++-- test/models/concerns/versions_test.rb | 28 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 test/models/concerns/versions_test.rb diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index 47ed461ce..b0a82376f 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -61,8 +61,8 @@ module Versions preceding(time + 1, true). select("distinct on (item_id) #{ver_klass.table_name}.*"). map do |ver| - ignored_columns = ver.item_type.constantize&.ignored_columns - o = new(ver.object&.except!(*ignored_columns)) + valid_columns = ver.item_type.constantize&.column_names + o = new(ver.object&.slice(*valid_columns)) o.version_loader = ver ver.object_changes.to_h.each { |k, v| o.public_send("#{k}=", v[-1]) } o diff --git a/test/models/concerns/versions_test.rb b/test/models/concerns/versions_test.rb new file mode 100644 index 000000000..2a54b4476 --- /dev/null +++ b/test/models/concerns/versions_test.rb @@ -0,0 +1,28 @@ +require 'test_helper' + +class VersionsTest < ActiveSupport::TestCase + + def test_if_gets_all_versions_without_error_if_ignored_column_present + @nameserver = nameservers(:shop_ns1) + @nameserver.update(hostname: 'ns99.bestnames.test') + @ignored_column_title = Nameserver.ignored_columns.first + + version = NameserverVersion.last + hash = version.object + hash[@ignored_column_title] = 123456 + version.update(object: hash) + + assert_nothing_raised do + Nameserver.all_versions_for([@nameserver.id], Time.zone.now) + end + end + + def test_if_gets_all_versions_without_error_if_no_ignored_column + @account = accounts(:cash) + @account.update(currency: 'USD') + + assert_nothing_raised do + Account.all_versions_for([@account.id], Time.zone.now) + end + end +end From 2324fd2ceb6b02c737e1dd007913a0663de1caad Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Mon, 27 Jan 2020 08:49:43 +0200 Subject: [PATCH 302/757] resolve https://github.com/internetee/registry/pull/1420#discussion_r346786232 --- app/controllers/epp/sessions_controller.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index 892628ab7..d3db24723 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -13,9 +13,8 @@ module Epp webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) if webclient_request && !Rails.env.test? && !Rails.env.development? client_md5 = Certificate.parse_md_from_string(request.env['HTTP_SSL_CLIENT_CERT']) - if ENV['cert_path'].nil? - logger.error('webclient cert (cert_path) missing, registrar epp/repp disabled') - end + fail 'webclient cert (cert_path) missing, registrar epp/repp disabled' unless ENV['cert_path'].present? + server_md5 = Certificate.parse_md_from_string(File.read(ENV['cert_path'])) if client_md5 != server_md5 epp_errors << { From 0924381473d7ccff663b13c6c4706da560fd206c Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Mon, 27 Jan 2020 09:15:45 +0200 Subject: [PATCH 303/757] fixup! follow styleguide --- app/controllers/epp/sessions_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index d3db24723..f1cd35b33 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -13,7 +13,9 @@ module Epp webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) if webclient_request && !Rails.env.test? && !Rails.env.development? client_md5 = Certificate.parse_md_from_string(request.env['HTTP_SSL_CLIENT_CERT']) - fail 'webclient cert (cert_path) missing, registrar epp/repp disabled' unless ENV['cert_path'].present? + if ENV['cert_path'].blank? + raise 'webclient cert (cert_path) missing, registrar (r)epp disabled' + end server_md5 = Certificate.parse_md_from_string(File.read(ENV['cert_path'])) if client_md5 != server_md5 From ec14237076b4856effb81a52604cc54306ef71f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 27 Jan 2020 17:28:34 +0200 Subject: [PATCH 304/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dbeae914c..b56984d2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +27.01.2020 +* Admin: fixed history view for domains with legacy id [#1489](https://github.com/internetee/registry/issues/1489) + 23.01.2020 * Payment invoice matching by looking for ref nr in description field [#1415](https://github.com/internetee/registry/issues/1415) From 83a214b88890908324c738fb479cc5967ae1fefc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 27 Jan 2020 17:57:49 +0200 Subject: [PATCH 305/757] Registrar/Domains: Allow :s as search parameter --- app/controllers/registrar/domains_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index 5c82ba675..f533a874c 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -184,7 +184,8 @@ class Registrar :contacts_ident_eq, :nameservers_hostname_eq, :valid_to_gteq, - :valid_to_lteq) + :valid_to_lteq, + :s) end end end From 2c2bdc5a43b922b066ebcf9bf71d5f8f28d86d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 28 Jan 2020 17:51:03 +0200 Subject: [PATCH 306/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b56984d2e..234b37bf1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +28.01.2020 +* clientHold status is now set once instead of resetting it every time the job is run [#1480](https://github.com/internetee/registry/issues/1480) + 27.01.2020 * Admin: fixed history view for domains with legacy id [#1489](https://github.com/internetee/registry/issues/1489) From 25a21225e0e98c1ec0487d062602ce2e0f335897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 28 Jan 2020 19:05:38 +0200 Subject: [PATCH 307/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 234b37bf1..615bf62d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 28.01.2020 +* Registrar: fixed sorting of domain view [#1461](https://github.com/internetee/registry/issues/1461) * clientHold status is now set once instead of resetting it every time the job is run [#1480](https://github.com/internetee/registry/issues/1480) 27.01.2020 From 3821c76d3677b12a2bb5436399d47daee7af847d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 28 Jan 2020 19:56:17 +0200 Subject: [PATCH 308/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 615bf62d2..71b8a8ac9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,9 @@ * Set not null constraint on contact.name db column [#1417](https://github.com/internetee/registry/pull/1417) * Removed domain name from registrant_verifications table [#1431](https://github.com/internetee/registry/pull/1431) +19.11.2019 +* Updated Rails to 5.0.7 [#377](https://github.com/internetee/registry/issues/377) + 15.11.2019 * Restored EPP exception logging to syslog [#1371](https://github.com/internetee/registry/issues/1371) From 19cd5ecd95d3665e6b82d0ce772b14897eef1b4d Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 29 Jan 2020 20:19:00 +0500 Subject: [PATCH 309/757] Add autobind fix if invoice with this sum is already present --- app/models/bank_transaction.rb | 2 +- test/models/bank_transaction_test.rb | 51 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 6612a4dbd..c04a98e90 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -17,7 +17,7 @@ class BankTransaction < ApplicationRecord end def invoice - @invoice ||= registrar.invoices.find_by(total: sum) if registrar + @invoice ||= registrar.invoices.order(created_at: :asc).unpaid.find_by(total: sum) if registrar end def registrar diff --git a/test/models/bank_transaction_test.rb b/test/models/bank_transaction_test.rb index 37ff4041a..e4cce2487 100644 --- a/test/models/bank_transaction_test.rb +++ b/test/models/bank_transaction_test.rb @@ -15,6 +15,57 @@ class BankTransactionTest < ActiveSupport::TestCase end end + def test_binds_if_this_sum_invoice_already_present + create_payable_invoice(number: '2222', total: 10, reference_no: '1234567') + another_invoice = @invoice.dup + another_invoice.save(validate: false) + another_invoice.update(reference_no: '7654321', number: '2221') + + another_item = @invoice.items.first.dup + another_item.invoice = another_invoice + another_item.save + another_invoice.reload + + first_transaction = BankTransaction.new(description: 'invoice #2221', + sum: 10, + description: 'Order nr 1 from registrar 1234567 second number 2345678') + + first_transaction.create_activity(another_invoice.buyer, another_invoice) + + transaction = BankTransaction.new(description: 'invoice #2222', + sum: 10, + description: 'Order nr 1 from registrar 1234567 second number 2345678') + + assert_difference 'AccountActivity.count' do + transaction.autobind_invoice + end + end + + def test_marks_the_first_one_as_paid_if_same_sum + create_payable_invoice(number: '2222', total: 10, reference_no: '1234567') + another_invoice = @invoice.dup + another_invoice.save(validate: false) + another_invoice.update(reference_no: '7654321', number: '2221') + + another_item = @invoice.items.first.dup + another_item.invoice = another_invoice + another_item.save + another_invoice.reload + + transaction = BankTransaction.new(description: 'invoice #2222', + sum: 10, + description: 'Order nr 1 from registrar 1234567 second number 2345678') + + assert_difference 'AccountActivity.count' do + transaction.autobind_invoice + end + + @invoice.reload + another_invoice.reload + assert(@invoice.paid?) + assert_not(another_invoice.paid?) + end + def test_matches_against_invoice_nubmber_and_reference_number_in_description create_payable_invoice(number: '2222', total: 10, reference_no: '1234567') transaction = BankTransaction.new(description: 'invoice #2222', From dbbe6b07ae0b661c55cfbc19d748992d0f8b6195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 29 Jan 2020 18:16:57 +0200 Subject: [PATCH 310/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71b8a8ac9..701678596 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +29.01.2020 +* Fixed the invoice binding bug where process failed if registrar tried to load a sum that they have used before [#1496](https://github.com/internetee/registry/issues/1496) + 28.01.2020 * Registrar: fixed sorting of domain view [#1461](https://github.com/internetee/registry/issues/1461) * clientHold status is now set once instead of resetting it every time the job is run [#1480](https://github.com/internetee/registry/issues/1480) From 5c59119c2c7885a1214c79a0ab53a3805b56f301 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 29 Jan 2020 22:47:01 +0500 Subject: [PATCH 311/757] Add non_cancelled scope to autobind invoices See https://github.com/internetee/registry/issues/1496#issuecomment-579870465 --- app/models/bank_transaction.rb | 8 +++++++- test/models/bank_transaction_test.rb | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index c04a98e90..d2f8bb66b 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -17,7 +17,13 @@ class BankTransaction < ApplicationRecord end def invoice - @invoice ||= registrar.invoices.order(created_at: :asc).unpaid.find_by(total: sum) if registrar + return unless registrar + + @invoice ||= registrar.invoices + .order(created_at: :asc) + .unpaid + .non_cancelled + .find_by(total: sum) end def registrar diff --git a/test/models/bank_transaction_test.rb b/test/models/bank_transaction_test.rb index e4cce2487..b8b0f65f7 100644 --- a/test/models/bank_transaction_test.rb +++ b/test/models/bank_transaction_test.rb @@ -41,6 +41,28 @@ class BankTransactionTest < ActiveSupport::TestCase end end + def test_binds_if_this_sum_cancelled_invoice_already_present + create_payable_invoice(number: '2222', total: 10, reference_no: '1234567') + another_invoice = @invoice.dup + another_invoice.save(validate: false) + + + another_item = @invoice.items.first.dup + another_item.invoice = another_invoice + + another_item.save + another_invoice.reload + another_invoice.update(reference_no: '1234567', number: '2221', cancelled_at: Time.zone.now) + + transaction = BankTransaction.new(description: 'invoice #2222', + sum: 10, + description: 'Order nr 1 from registrar 1234567 second number 2345678') + + assert_difference 'AccountActivity.count' do + transaction.autobind_invoice + end + end + def test_marks_the_first_one_as_paid_if_same_sum create_payable_invoice(number: '2222', total: 10, reference_no: '1234567') another_invoice = @invoice.dup From 53fbd2f50c3dae3a5c3ffe1dbb3a9343359d6229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Jan 2020 17:24:07 +0200 Subject: [PATCH 312/757] Implement partial payment logging for EveryPay / Bank links --- .../registrar/payments_controller.rb | 63 ++- app/models/invoice.rb | 3 +- app/models/payment_order.rb | 57 +++ app/models/payment_orders.rb | 15 - app/models/payment_orders/bank_link.rb | 87 ++-- app/models/payment_orders/base.rb | 33 -- app/models/payment_orders/every_pay.rb | 46 +- app/models/payment_orders/lhv.rb | 7 + app/models/payment_orders/seb.rb | 7 + app/models/payment_orders/swed.rb | 7 + app/views/registrar/invoices/show.haml | 2 +- app/views/registrar/payments/pay.html.haml | 4 +- .../20200130092113_create_payment_orders.rb | 13 + db/structure.sql | 471 ++++++++++-------- 14 files changed, 470 insertions(+), 345 deletions(-) create mode 100644 app/models/payment_order.rb delete mode 100644 app/models/payment_orders.rb delete mode 100644 app/models/payment_orders/base.rb create mode 100644 app/models/payment_orders/lhv.rb create mode 100644 app/models/payment_orders/seb.rb create mode 100644 app/models/payment_orders/swed.rb create mode 100644 db/migrate/20200130092113_create_payment_orders.rb diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index 5be0d6562..98b9e1d7d 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -9,27 +9,37 @@ class Registrar def pay invoice = Invoice.find(params[:invoice_id]) - bank = params[:bank] - opts = { - return_url: registrar_return_payment_with_url( - bank, invoice_id: invoice - ), - response_url: registrar_response_payment_with_url( - bank, invoice_id: invoice - ) - } - @payment = ::PaymentOrders.create_with_type(bank, invoice, opts) - @payment.create_transaction + payment_type = params[:bank] + + channel = if payment_type == 'every_pay' + 'PaymentOrders::EveryPay' + elsif payment_type == 'seb' + 'PaymentOrders::SEB' + elsif payment_type == 'swed' + 'PaymentOrders::Swed' + elsif payment_type == 'lhv' + 'PaymentOrders::LHV' + end + + @payment_order = PaymentOrder.new(type: channel, invoice: invoice) + @payment_order.save && @payment_order.reload + + @payment_order.return_url = registrar_return_payment_with_url(@payment_order) + @payment_order.response_url = registrar_response_payment_with_url(@payment_order) + + @payment_order.save && @payment_order.reload end def back - invoice = Invoice.find(params[:invoice_id]) - opts = { response: params } - @payment = ::PaymentOrders.create_with_type(params[:bank], invoice, opts) - if @payment.valid_response_from_intermediary? && @payment.settled_payment? - @payment.complete_transaction + puts params - if invoice.paid? + @payment_order = PaymentOrder.find_by!(id: params[:bank]) + @payment_order.update!(response: params.to_unsafe_h) + + if @payment_order.valid_response_from_intermediary? && @payment_order.settled_payment? + @payment_order.complete_transaction + + if @payment_order.invoice.paid? flash[:notice] = t(:pending_applied) else flash[:alert] = t(:something_wrong) @@ -37,16 +47,15 @@ class Registrar else flash[:alert] = t(:something_wrong) end - redirect_to registrar_invoice_path(invoice) + redirect_to registrar_invoice_path(@payment_order.invoice) end def callback - invoice = Invoice.find(params[:invoice_id]) - opts = { response: params } - @payment = ::PaymentOrders.create_with_type(params[:bank], invoice, opts) + @payment_order = PaymentOrder.find_by!(id: params[:bank]) + @payment_order.update!(response: params.to_unsafe_h) - if @payment.valid_response_from_intermediary? && @payment.settled_payment? - @payment.complete_transaction + if @payment_order.valid_response_from_intermediary? && @payment_order.settled_payment? + @payment_order.complete_transaction end render status: 200, json: { status: 'ok' } @@ -56,12 +65,14 @@ class Registrar def check_supported_payment_method return if supported_payment_method? - raise StandardError.new("Not supported payment method") + + raise StandardError.new('Not supported payment method') end - def supported_payment_method? - PaymentOrders::PAYMENT_METHODS.include?(params[:bank]) + puts "Payment method param is #{params[:bank]}" + # PaymentOrder::PAYMENT_METHODS.include?(params[:bank]) + true end end end diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 7f1dea825..3aa2a5c3c 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -7,6 +7,7 @@ class Invoice < ApplicationRecord has_one :account_activity has_many :items, class_name: 'InvoiceItem', dependent: :destroy has_many :directo_records, as: :item, class_name: 'Directo' + has_many :payment_orders accepts_nested_attributes_for :items @@ -111,4 +112,4 @@ class Invoice < ApplicationRecord def calculate_total self.total = subtotal + vat_amount end -end \ No newline at end of file +end diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb new file mode 100644 index 000000000..228c4021d --- /dev/null +++ b/app/models/payment_order.rb @@ -0,0 +1,57 @@ +class PaymentOrder < ApplicationRecord + #include Versions + include ActionView::Helpers::NumberHelper + + PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].to_s.strip.split(', ').freeze + PAYMENT_BANKLINK_BANKS = ENV['payments_banks'].to_s.strip.split(', ').freeze + PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS].flatten.freeze + + belongs_to :invoice, optional: false + + validate :invoice_cannot_be_already_paid, on: :create + # validates :type, inclusion: { in: PAYMENT_METHODS } + + enum status: { issued: 'issued', paid: 'paid', cancelled: 'cancelled' } + + attr_accessor :return_url, :response_url + + # Name of configuration namespace + def self.config_namespace_name; end + + def invoice_cannot_be_already_paid + return unless invoice&.paid? + + errors.add(:invoice, 'is already paid') + end + + def self.supported_method?(some_class) + raise ArgumentError unless some_class < PaymentOrder + + if PAYMENT_METHODS.include?(some_class.name) + true + else + false + end + end + + def self.supported_methods + enabled = [] + + ENABLED_METHODS.each do |method| + class_name = method.constantize + raise(Errors::ExpectedPaymentOrder, class_name) unless class_name < PaymentOrder + + enabled << class_name + end + + enabled + end + + def channel + type.gsub('PaymentOrders::', '') + end + + def form_url + ENV["payments_#{self.class.config_namespace_name}_url"] + end +end diff --git a/app/models/payment_orders.rb b/app/models/payment_orders.rb deleted file mode 100644 index 921af0cd4..000000000 --- a/app/models/payment_orders.rb +++ /dev/null @@ -1,15 +0,0 @@ -module PaymentOrders - PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].to_s.strip.split(', ').freeze - PAYMENT_BANKLINK_BANKS = ENV['payments_banks'].to_s.strip.split(', ').freeze - PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS].flatten.freeze - - def self.create_with_type(type, invoice, opts = {}) - raise ArgumentError unless PAYMENT_METHODS.include?(type) - - if PAYMENT_BANKLINK_BANKS.include?(type) - BankLink.new(type, invoice, opts) - elsif type == 'every_pay' - EveryPay.new(type, invoice, opts) - end - end -end diff --git a/app/models/payment_orders/bank_link.rb b/app/models/payment_orders/bank_link.rb index e568da0df..0cdedbd85 100644 --- a/app/models/payment_orders/bank_link.rb +++ b/app/models/payment_orders/bank_link.rb @@ -1,44 +1,44 @@ module PaymentOrders - class BankLink < Base - BANK_LINK_VERSION = '008' + class BankLink < PaymentOrder + BANK_LINK_VERSION = '008'.freeze - NEW_TRANSACTION_SERVICE_NUMBER = '1012' - SUCCESSFUL_PAYMENT_SERVICE_NUMBER = '1111' - CANCELLED_PAYMENT_SERVICE_NUMBER = '1911' + NEW_TRANSACTION_SERVICE_NUMBER = '1012'.freeze + SUCCESSFUL_PAYMENT_SERVICE_NUMBER = '1111'.freeze + CANCELLED_PAYMENT_SERVICE_NUMBER = '1911'.freeze - NEW_MESSAGE_KEYS = %w(VK_SERVICE VK_VERSION VK_SND_ID VK_STAMP VK_AMOUNT + NEW_MESSAGE_KEYS = %w[VK_SERVICE VK_VERSION VK_SND_ID VK_STAMP VK_AMOUNT VK_CURR VK_REF VK_MSG VK_RETURN VK_CANCEL - VK_DATETIME).freeze - SUCCESS_MESSAGE_KEYS = %w(VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP + VK_DATETIME].freeze + SUCCESS_MESSAGE_KEYS = %w[VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP VK_T_NO VK_AMOUNT VK_CURR VK_REC_ACC VK_REC_NAME VK_SND_ACC VK_SND_NAME VK_REF VK_MSG - VK_T_DATETIME).freeze - CANCEL_MESSAGE_KEYS = %w(VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP - VK_REF VK_MSG).freeze + VK_T_DATETIME].freeze + CANCEL_MESSAGE_KEYS = %w[VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP + VK_REF VK_MSG].freeze def form_fields hash = {} - hash["VK_SERVICE"] = NEW_TRANSACTION_SERVICE_NUMBER - hash["VK_VERSION"] = BANK_LINK_VERSION - hash["VK_SND_ID"] = seller_account - hash["VK_STAMP"] = invoice.number - hash["VK_AMOUNT"] = number_with_precision(invoice.total, precision: 2, separator: ".") - hash["VK_CURR"] = invoice.currency - hash["VK_REF"] = "" - hash["VK_MSG"] = invoice.order - hash["VK_RETURN"] = return_url - hash["VK_CANCEL"] = return_url - hash["VK_DATETIME"] = Time.zone.now.strftime("%Y-%m-%dT%H:%M:%S%z") - hash["VK_MAC"] = calc_mac(hash) - hash["VK_ENCODING"] = "UTF-8" - hash["VK_LANG"] = "ENG" + hash['VK_SERVICE'] = NEW_TRANSACTION_SERVICE_NUMBER + hash['VK_VERSION'] = BANK_LINK_VERSION + hash['VK_SND_ID'] = seller_account + hash['VK_STAMP'] = invoice.number + hash['VK_AMOUNT'] = number_with_precision(invoice.total, precision: 2, separator: ".") + hash['VK_CURR'] = invoice.currency + hash['VK_REF'] = '' + hash['VK_MSG'] = invoice.order + hash['VK_RETURN'] = return_url + hash['VK_CANCEL'] = return_url + hash['VK_DATETIME'] = Time.zone.now.strftime('%Y-%m-%dT%H:%M:%S%z') + hash['VK_MAC'] = calc_mac(hash) + hash['VK_ENCODING'] = 'UTF-8' + hash['VK_LANG'] = 'ENG' hash end def valid_response_from_intermediary? return false unless response - case response["VK_SERVICE"] + case response['VK_SERVICE'] when SUCCESSFUL_PAYMENT_SERVICE_NUMBER valid_successful_transaction? when CANCELLED_PAYMENT_SERVICE_NUMBER @@ -49,30 +49,31 @@ module PaymentOrders end def complete_transaction - return unless valid_successful_transaction? + return unless valid_response_from_intermediary? && settled_payment? - transaction = BankTransaction.find_by( + transaction = BankTransaction.where(description: invoice.order).first_or_initialize( description: invoice.order, + reference_no: invoice.reference_no, currency: invoice.currency, iban: invoice.seller_iban ) transaction.sum = response['VK_AMOUNT'] transaction.bank_reference = response['VK_T_NO'] - transaction.buyer_bank_code = response["VK_SND_ID"] - transaction.buyer_iban = response["VK_SND_ACC"] - transaction.buyer_name = response["VK_SND_NAME"] - transaction.paid_at = Time.parse(response["VK_T_DATETIME"]) + transaction.buyer_bank_code = response['VK_SND_ID'] + transaction.buyer_iban = response['VK_SND_ACC'] + transaction.buyer_name = response['VK_SND_NAME'] + transaction.paid_at = Time.parse(response['VK_T_DATETIME']) transaction.save! transaction.autobind_invoice end def settled_payment? - response["VK_SERVICE"] == SUCCESSFUL_PAYMENT_SERVICE_NUMBER + response['VK_SERVICE'] == SUCCESSFUL_PAYMENT_SERVICE_NUMBER end - private + # private def valid_successful_transaction? valid_success_notice? && valid_amount? && valid_currency? @@ -88,17 +89,17 @@ module PaymentOrders def valid_amount? source = number_with_precision( - BigDecimal.new(response["VK_AMOUNT"]), precision: 2, separator: "." + BigDecimal(response['VK_AMOUNT']), precision: 2, separator: '.' ) target = number_with_precision( - invoice.total, precision: 2, separator: "." + invoice.total, precision: 2, separator: '.' ) source == target end def valid_currency? - invoice.currency == response["VK_CURR"] + invoice.currency == response['VK_CURR'] end def sign(data) @@ -116,7 +117,7 @@ module PaymentOrders def valid_mac?(hash, keys) data = keys.map { |element| prepend_size(hash[element]) }.join - verify_mac(data, hash["VK_MAC"]) + verify_mac(data, hash['VK_MAC']) end def verify_mac(data, mac) @@ -125,22 +126,22 @@ module PaymentOrders end def prepend_size(value) - value = (value || "").to_s.strip - string = "" + value = (value || '').to_s.strip + string = '' string << format("%03i", value.size) string << value end def seller_account - ENV["payments_#{type}_seller_account"] + ENV["payments_#{self.class.config_namespace_name}_seller_account"] end def seller_certificate - ENV["payments_#{type}_seller_private"] + ENV["payments_#{self.class.config_namespace_name}_seller_private"] end def bank_certificate - ENV["payments_#{type}_bank_certificate"] + ENV["payments_#{self.class.config_namespace_name}_bank_certificate"] end end end diff --git a/app/models/payment_orders/base.rb b/app/models/payment_orders/base.rb deleted file mode 100644 index cf0293025..000000000 --- a/app/models/payment_orders/base.rb +++ /dev/null @@ -1,33 +0,0 @@ -module PaymentOrders - class Base - include ActionView::Helpers::NumberHelper - - attr_reader :type, - :invoice, - :return_url, - :response_url, - :response - - def initialize(type, invoice, opts = {}) - @type = type - @invoice = invoice - @return_url = opts[:return_url] - @response_url = opts[:response_url] - @response = opts[:response] - end - - def create_transaction - transaction = BankTransaction.where(description: invoice.order).first_or_initialize( - reference_no: invoice.reference_no, - currency: invoice.currency, - iban: invoice.seller_iban - ) - - transaction.save! - end - - def form_url - ENV["payments_#{type}_url"] - end - end -end diff --git a/app/models/payment_orders/every_pay.rb b/app/models/payment_orders/every_pay.rb index b4ddcdf29..ae84aacca 100644 --- a/app/models/payment_orders/every_pay.rb +++ b/app/models/payment_orders/every_pay.rb @@ -1,9 +1,15 @@ module PaymentOrders - class EveryPay < Base - USER = ENV['payments_every_pay_api_user'].freeze - KEY = ENV['payments_every_pay_api_key'].freeze - ACCOUNT_ID = ENV['payments_every_pay_seller_account'].freeze - SUCCESSFUL_PAYMENT = %w(settled authorized).freeze + class EveryPay < PaymentOrder + USER = ENV['payments_every_pay_api_user'] + KEY = ENV['payments_every_pay_api_key'] + ACCOUNT_ID = ENV['payments_every_pay_seller_account'] + SUCCESSFUL_PAYMENT = %w[settled authorized].freeze + + CONFIG_NAMESPACE = 'every_pay' + + def self.config_namespace_name + CONFIG_NAMESPACE + end def form_fields base_json = base_params @@ -20,32 +26,31 @@ module PaymentOrders def valid_response_from_intermediary? return false unless response + valid_hmac? && valid_amount? && valid_account? end def settled_payment? - SUCCESSFUL_PAYMENT.include?(response[:payment_state]) + SUCCESSFUL_PAYMENT.include?(response['payment_state']) end def complete_transaction return unless valid_response_from_intermediary? && settled_payment? - transaction = BankTransaction.find_by( + transaction = BankTransaction.where(description: invoice.order).first_or_initialize( description: invoice.order, - currency: invoice.currency, - iban: invoice.seller_iban + reference_no: invoice.reference_no, + currency: invoice.currency, + iban: invoice.seller_iban ) - transaction.sum = response[:amount] - transaction.paid_at = Date.strptime(response[:timestamp], '%s') - transaction.buyer_name = response[:cc_holder_name] + transaction.sum = response['amount'] + transaction.paid_at = Date.strptime(response['timestamp'], '%s') + transaction.buyer_name = response['cc_holder_name'] - transaction.save! transaction.autobind_invoice end - private - def base_params { api_username: USER, @@ -61,24 +66,23 @@ module PaymentOrders end def valid_hmac? - hmac_fields = response[:hmac_fields].split(',') + hmac_fields = response['hmac_fields'].split(',') hmac_hash = {} hmac_fields.map do |field| - symbol = field.to_sym - hmac_hash[symbol] = response[symbol] + hmac_hash[field] = response[field] end hmac_string = hmac_hash.map { |key, _v| "#{key}=#{hmac_hash[key]}" }.join('&') expected_hmac = OpenSSL::HMAC.hexdigest('sha1', KEY, hmac_string) - expected_hmac == response[:hmac] + expected_hmac == response['hmac'] end def valid_amount? - invoice.total == BigDecimal.new(response[:amount]) + invoice.total == BigDecimal(response['amount']) end def valid_account? - response[:account_id] == ACCOUNT_ID + response['account_id'] == ACCOUNT_ID end end end diff --git a/app/models/payment_orders/lhv.rb b/app/models/payment_orders/lhv.rb new file mode 100644 index 000000000..7443f85d3 --- /dev/null +++ b/app/models/payment_orders/lhv.rb @@ -0,0 +1,7 @@ +module PaymentOrders + class LHV < BankLink + def self.config_namespace_name + 'lhv' + end + end +end diff --git a/app/models/payment_orders/seb.rb b/app/models/payment_orders/seb.rb new file mode 100644 index 000000000..50fb24ced --- /dev/null +++ b/app/models/payment_orders/seb.rb @@ -0,0 +1,7 @@ +module PaymentOrders + class SEB < BankLink + def self.config_namespace_name + 'seb' + end + end +end diff --git a/app/models/payment_orders/swed.rb b/app/models/payment_orders/swed.rb new file mode 100644 index 000000000..ff3aca3d1 --- /dev/null +++ b/app/models/payment_orders/swed.rb @@ -0,0 +1,7 @@ +module PaymentOrders + class Swed < BankLink + def self.config_namespace_name + 'swed' + end + end +end diff --git a/app/views/registrar/invoices/show.haml b/app/views/registrar/invoices/show.haml index 66a025eaf..d987241b1 100644 --- a/app/views/registrar/invoices/show.haml +++ b/app/views/registrar/invoices/show.haml @@ -17,4 +17,4 @@ - if @invoice.payable? .row.semifooter - .col-md-6-offset-6.text-right= render 'registrar/invoices/partials/banklinks', locals: { payment_channels: PaymentOrders::PAYMENT_METHODS } + .col-md-6-offset-6.text-right= render 'registrar/invoices/partials/banklinks', locals: { payment_channels: PaymentOrder::PAYMENT_METHODS } diff --git a/app/views/registrar/payments/pay.html.haml b/app/views/registrar/payments/pay.html.haml index 8e759f9ea..dd3fc982f 100644 --- a/app/views/registrar/payments/pay.html.haml +++ b/app/views/registrar/payments/pay.html.haml @@ -2,8 +2,8 @@ = t('registrar.invoices.redirected_to_intermediary') .payment-form - = form_tag @payment.form_url, method: :post do - - @payment.form_fields.each do |k, v| + = form_tag @payment_order.form_url, method: :post do + - @payment_order.form_fields.each do |k, v| = hidden_field_tag k, v = submit_tag t('registrar.invoices.go_to_intermediary') diff --git a/db/migrate/20200130092113_create_payment_orders.rb b/db/migrate/20200130092113_create_payment_orders.rb new file mode 100644 index 000000000..0b0594e56 --- /dev/null +++ b/db/migrate/20200130092113_create_payment_orders.rb @@ -0,0 +1,13 @@ +class CreatePaymentOrders < ActiveRecord::Migration[5.0] + def change + create_table :payment_orders do |t| + t.string :type, null: false + t.string :status, default: 0, null: false + t.belongs_to :invoice, foreign_key: true + t.jsonb :response, null: true + t.string :notes, null: true + + t.timestamps + end + end +end diff --git a/db/structure.sql b/db/structure.sql index a23623bae..c664522bb 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -196,7 +196,7 @@ SET default_tablespace = ''; SET default_with_oids = false; -- --- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.account_activities ( @@ -236,7 +236,7 @@ ALTER SEQUENCE public.account_activities_id_seq OWNED BY public.account_activiti -- --- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.accounts ( @@ -272,7 +272,7 @@ ALTER SEQUENCE public.accounts_id_seq OWNED BY public.accounts.id; -- --- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.actions ( @@ -304,7 +304,7 @@ ALTER SEQUENCE public.actions_id_seq OWNED BY public.actions.id; -- --- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.ar_internal_metadata ( @@ -316,7 +316,7 @@ CREATE TABLE public.ar_internal_metadata ( -- --- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: auctions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.auctions ( @@ -349,7 +349,7 @@ ALTER SEQUENCE public.auctions_id_seq OWNED BY public.auctions.id; -- --- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_statements ( @@ -385,7 +385,7 @@ ALTER SEQUENCE public.bank_statements_id_seq OWNED BY public.bank_statements.id; -- --- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.bank_transactions ( @@ -429,7 +429,7 @@ ALTER SEQUENCE public.bank_transactions_id_seq OWNED BY public.bank_transactions -- --- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.blocked_domains ( @@ -462,7 +462,7 @@ ALTER SEQUENCE public.blocked_domains_id_seq OWNED BY public.blocked_domains.id; -- --- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.certificates ( @@ -500,7 +500,7 @@ ALTER SEQUENCE public.certificates_id_seq OWNED BY public.certificates.id; -- --- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.contacts ( @@ -558,7 +558,7 @@ ALTER SEQUENCE public.contacts_id_seq OWNED BY public.contacts.id; -- --- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: directos; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.directos ( @@ -593,7 +593,7 @@ ALTER SEQUENCE public.directos_id_seq OWNED BY public.directos.id; -- --- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.dnskeys ( @@ -634,7 +634,7 @@ ALTER SEQUENCE public.dnskeys_id_seq OWNED BY public.dnskeys.id; -- --- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_contacts ( @@ -672,7 +672,7 @@ ALTER SEQUENCE public.domain_contacts_id_seq OWNED BY public.domain_contacts.id; -- --- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domain_transfers ( @@ -709,7 +709,7 @@ ALTER SEQUENCE public.domain_transfers_id_seq OWNED BY public.domain_transfers.i -- --- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.domains ( @@ -746,7 +746,6 @@ CREATE TABLE public.domains ( locked_by_registrant_at timestamp without time zone, force_delete_start timestamp without time zone, force_delete_data public.hstore - ); @@ -770,7 +769,7 @@ ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id; -- --- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.epp_sessions ( @@ -802,7 +801,7 @@ ALTER SEQUENCE public.epp_sessions_id_seq OWNED BY public.epp_sessions.id; -- --- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoice_items ( @@ -840,7 +839,7 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id; -- --- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.invoices ( @@ -910,7 +909,7 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; -- --- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.legal_documents ( @@ -945,7 +944,7 @@ ALTER SEQUENCE public.legal_documents_id_seq OWNED BY public.legal_documents.id; -- --- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_account_activities ( @@ -983,7 +982,7 @@ ALTER SEQUENCE public.log_account_activities_id_seq OWNED BY public.log_account_ -- --- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_accounts ( @@ -1021,7 +1020,7 @@ ALTER SEQUENCE public.log_accounts_id_seq OWNED BY public.log_accounts.id; -- --- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_actions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_actions ( @@ -1059,7 +1058,7 @@ ALTER SEQUENCE public.log_actions_id_seq OWNED BY public.log_actions.id; -- --- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_statements ( @@ -1097,7 +1096,7 @@ ALTER SEQUENCE public.log_bank_statements_id_seq OWNED BY public.log_bank_statem -- --- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_bank_transactions ( @@ -1135,7 +1134,7 @@ ALTER SEQUENCE public.log_bank_transactions_id_seq OWNED BY public.log_bank_tran -- --- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_blocked_domains ( @@ -1173,7 +1172,7 @@ ALTER SEQUENCE public.log_blocked_domains_id_seq OWNED BY public.log_blocked_dom -- --- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_certificates ( @@ -1211,7 +1210,7 @@ ALTER SEQUENCE public.log_certificates_id_seq OWNED BY public.log_certificates.i -- --- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_contacts ( @@ -1250,7 +1249,7 @@ ALTER SEQUENCE public.log_contacts_id_seq OWNED BY public.log_contacts.id; -- --- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_dnskeys ( @@ -1288,7 +1287,7 @@ ALTER SEQUENCE public.log_dnskeys_id_seq OWNED BY public.log_dnskeys.id; -- --- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domain_contacts ( @@ -1326,7 +1325,7 @@ ALTER SEQUENCE public.log_domain_contacts_id_seq OWNED BY public.log_domain_cont -- --- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_domains ( @@ -1364,7 +1363,7 @@ ALTER SEQUENCE public.log_domains_id_seq OWNED BY public.log_domains.id; -- --- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoice_items ( @@ -1402,7 +1401,7 @@ ALTER SEQUENCE public.log_invoice_items_id_seq OWNED BY public.log_invoice_items -- --- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_invoices ( @@ -1440,7 +1439,7 @@ ALTER SEQUENCE public.log_invoices_id_seq OWNED BY public.log_invoices.id; -- --- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_nameservers ( @@ -1478,7 +1477,7 @@ ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; -- --- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_notifications ( @@ -1516,7 +1515,7 @@ ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications -- --- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrant_verifications ( @@ -1553,7 +1552,7 @@ ALTER SEQUENCE public.log_registrant_verifications_id_seq OWNED BY public.log_re -- --- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_registrars ( @@ -1591,7 +1590,7 @@ ALTER SEQUENCE public.log_registrars_id_seq OWNED BY public.log_registrars.id; -- --- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_reserved_domains ( @@ -1629,7 +1628,7 @@ ALTER SEQUENCE public.log_reserved_domains_id_seq OWNED BY public.log_reserved_d -- --- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_settings ( @@ -1667,7 +1666,7 @@ ALTER SEQUENCE public.log_settings_id_seq OWNED BY public.log_settings.id; -- --- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_users ( @@ -1705,7 +1704,7 @@ ALTER SEQUENCE public.log_users_id_seq OWNED BY public.log_users.id; -- --- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.log_white_ips ( @@ -1743,7 +1742,7 @@ ALTER SEQUENCE public.log_white_ips_id_seq OWNED BY public.log_white_ips.id; -- --- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.nameservers ( @@ -1781,7 +1780,7 @@ ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; -- --- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.notifications ( @@ -1819,7 +1818,42 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; -- --- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.payment_orders ( + id integer NOT NULL, + type character varying NOT NULL, + status character varying DEFAULT '0'::character varying NOT NULL, + invoice_id integer, + response jsonb, + notes character varying, + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone NOT NULL +); + + +-- +-- Name: payment_orders_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.payment_orders_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: payment_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.payment_orders_id_seq OWNED BY public.payment_orders.id; + + +-- +-- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.prices ( @@ -1857,7 +1891,7 @@ ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id; -- --- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.que_jobs ( @@ -1899,7 +1933,7 @@ ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id; -- --- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrant_verifications ( @@ -1935,7 +1969,7 @@ ALTER SEQUENCE public.registrant_verifications_id_seq OWNED BY public.registrant -- --- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.registrars ( @@ -1988,7 +2022,7 @@ ALTER SEQUENCE public.registrars_id_seq OWNED BY public.registrars.id; -- --- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.reserved_domains ( @@ -2023,7 +2057,7 @@ ALTER SEQUENCE public.reserved_domains_id_seq OWNED BY public.reserved_domains.i -- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.schema_migrations ( @@ -2032,7 +2066,7 @@ CREATE TABLE public.schema_migrations ( -- --- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: settings; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.settings ( @@ -2068,7 +2102,7 @@ ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id; -- --- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.users ( @@ -2120,7 +2154,7 @@ ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; -- --- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: versions; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.versions ( @@ -2155,7 +2189,7 @@ ALTER SEQUENCE public.versions_id_seq OWNED BY public.versions.id; -- --- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: white_ips; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.white_ips ( @@ -2191,7 +2225,7 @@ ALTER SEQUENCE public.white_ips_id_seq OWNED BY public.white_ips.id; -- --- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: whois_records; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.whois_records ( @@ -2226,7 +2260,7 @@ ALTER SEQUENCE public.whois_records_id_seq OWNED BY public.whois_records.id; -- --- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- Name: zones; Type: TABLE; Schema: public; Owner: -; Tablespace: -- CREATE TABLE public.zones ( @@ -2555,6 +2589,13 @@ ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public. ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('public.notifications_id_seq'::regclass); +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('public.payment_orders_id_seq'::regclass); + + -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2633,7 +2674,7 @@ ALTER TABLE ONLY public.zones ALTER COLUMN id SET DEFAULT nextval('public.zones_ -- --- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.account_activities @@ -2641,7 +2682,7 @@ ALTER TABLE ONLY public.account_activities -- --- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.accounts @@ -2649,7 +2690,7 @@ ALTER TABLE ONLY public.accounts -- --- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.actions @@ -2657,7 +2698,7 @@ ALTER TABLE ONLY public.actions -- --- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.ar_internal_metadata @@ -2665,7 +2706,7 @@ ALTER TABLE ONLY public.ar_internal_metadata -- --- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: auctions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -2673,7 +2714,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_statements @@ -2681,7 +2722,7 @@ ALTER TABLE ONLY public.bank_statements -- --- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.bank_transactions @@ -2689,7 +2730,7 @@ ALTER TABLE ONLY public.bank_transactions -- --- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -2697,7 +2738,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.certificates @@ -2705,7 +2746,7 @@ ALTER TABLE ONLY public.certificates -- --- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -2713,7 +2754,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: directos_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.directos @@ -2721,7 +2762,7 @@ ALTER TABLE ONLY public.directos -- --- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.dnskeys @@ -2729,7 +2770,7 @@ ALTER TABLE ONLY public.dnskeys -- --- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_contacts @@ -2737,7 +2778,7 @@ ALTER TABLE ONLY public.domain_contacts -- --- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domain_transfers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domain_transfers @@ -2745,7 +2786,7 @@ ALTER TABLE ONLY public.domain_transfers -- --- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -2753,7 +2794,7 @@ ALTER TABLE ONLY public.domains -- --- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -2761,7 +2802,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoice_items @@ -2769,7 +2810,7 @@ ALTER TABLE ONLY public.invoice_items -- --- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -2777,7 +2818,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: legal_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.legal_documents @@ -2785,7 +2826,7 @@ ALTER TABLE ONLY public.legal_documents -- --- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_account_activities_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_account_activities @@ -2793,7 +2834,7 @@ ALTER TABLE ONLY public.log_account_activities -- --- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_accounts @@ -2801,7 +2842,7 @@ ALTER TABLE ONLY public.log_accounts -- --- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_actions @@ -2809,7 +2850,7 @@ ALTER TABLE ONLY public.log_actions -- --- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_statements_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_statements @@ -2817,7 +2858,7 @@ ALTER TABLE ONLY public.log_bank_statements -- --- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_bank_transactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_bank_transactions @@ -2825,7 +2866,7 @@ ALTER TABLE ONLY public.log_bank_transactions -- --- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_blocked_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_blocked_domains @@ -2833,7 +2874,7 @@ ALTER TABLE ONLY public.log_blocked_domains -- --- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_certificates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_certificates @@ -2841,7 +2882,7 @@ ALTER TABLE ONLY public.log_certificates -- --- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_contacts @@ -2849,7 +2890,7 @@ ALTER TABLE ONLY public.log_contacts -- --- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_dnskeys @@ -2857,7 +2898,7 @@ ALTER TABLE ONLY public.log_dnskeys -- --- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domain_contacts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domain_contacts @@ -2865,7 +2906,7 @@ ALTER TABLE ONLY public.log_domain_contacts -- --- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_domains @@ -2873,7 +2914,7 @@ ALTER TABLE ONLY public.log_domains -- --- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoice_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoice_items @@ -2881,7 +2922,7 @@ ALTER TABLE ONLY public.log_invoice_items -- --- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_invoices @@ -2889,7 +2930,7 @@ ALTER TABLE ONLY public.log_invoices -- --- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_nameservers @@ -2897,7 +2938,7 @@ ALTER TABLE ONLY public.log_nameservers -- --- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_notifications @@ -2905,7 +2946,7 @@ ALTER TABLE ONLY public.log_notifications -- --- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrant_verifications @@ -2913,7 +2954,7 @@ ALTER TABLE ONLY public.log_registrant_verifications -- --- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_registrars @@ -2921,7 +2962,7 @@ ALTER TABLE ONLY public.log_registrars -- --- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_reserved_domains @@ -2929,7 +2970,7 @@ ALTER TABLE ONLY public.log_reserved_domains -- --- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_settings @@ -2937,7 +2978,7 @@ ALTER TABLE ONLY public.log_settings -- --- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_users @@ -2945,7 +2986,7 @@ ALTER TABLE ONLY public.log_users -- --- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: log_white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.log_white_ips @@ -2953,7 +2994,7 @@ ALTER TABLE ONLY public.log_white_ips -- --- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.nameservers @@ -2961,7 +3002,7 @@ ALTER TABLE ONLY public.nameservers -- --- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.notifications @@ -2969,7 +3010,15 @@ ALTER TABLE ONLY public.notifications -- --- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.payment_orders + ADD CONSTRAINT payment_orders_pkey PRIMARY KEY (id); + + +-- +-- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.prices @@ -2977,7 +3026,7 @@ ALTER TABLE ONLY public.prices -- --- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.que_jobs @@ -2985,7 +3034,7 @@ ALTER TABLE ONLY public.que_jobs -- --- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrant_verifications @@ -2993,7 +3042,7 @@ ALTER TABLE ONLY public.registrant_verifications -- --- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3001,7 +3050,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: reserved_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3009,7 +3058,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.settings @@ -3017,7 +3066,7 @@ ALTER TABLE ONLY public.settings -- --- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_blocked_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.blocked_domains @@ -3025,7 +3074,7 @@ ALTER TABLE ONLY public.blocked_domains -- --- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_contact_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3033,7 +3082,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_domain_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.domains @@ -3041,7 +3090,7 @@ ALTER TABLE ONLY public.domains -- --- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_reserved_domains_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.reserved_domains @@ -3049,7 +3098,7 @@ ALTER TABLE ONLY public.reserved_domains -- --- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: uniq_uuid; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3057,7 +3106,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3065,7 +3114,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_contact_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.contacts @@ -3073,7 +3122,7 @@ ALTER TABLE ONLY public.contacts -- --- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_name; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3081,7 +3130,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_number; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.invoices @@ -3089,7 +3138,7 @@ ALTER TABLE ONLY public.invoices -- --- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_reference_no; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.registrars @@ -3097,7 +3146,7 @@ ALTER TABLE ONLY public.registrars -- --- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_registration_code; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.auctions @@ -3105,7 +3154,7 @@ ALTER TABLE ONLY public.auctions -- --- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_session_id; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.epp_sessions @@ -3113,7 +3162,7 @@ ALTER TABLE ONLY public.epp_sessions -- --- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: unique_zone_origin; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3121,7 +3170,7 @@ ALTER TABLE ONLY public.zones -- --- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.users @@ -3129,7 +3178,7 @@ ALTER TABLE ONLY public.users -- --- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.versions @@ -3137,7 +3186,7 @@ ALTER TABLE ONLY public.versions -- --- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: white_ips_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.white_ips @@ -3145,7 +3194,7 @@ ALTER TABLE ONLY public.white_ips -- --- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: whois_records_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.whois_records @@ -3153,7 +3202,7 @@ ALTER TABLE ONLY public.whois_records -- --- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- Name: zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- ALTER TABLE ONLY public.zones @@ -3161,567 +3210,574 @@ ALTER TABLE ONLY public.zones -- --- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_account_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_account_id ON public.account_activities USING btree (account_id); -- --- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_bank_transaction_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_bank_transaction_id ON public.account_activities USING btree (bank_transaction_id); -- --- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_account_activities_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_account_activities_on_invoice_id ON public.account_activities USING btree (invoice_id); -- --- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_accounts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_accounts_on_registrar_id ON public.accounts USING btree (registrar_id); -- --- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_certificates_on_api_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_certificates_on_api_user_id ON public.certificates USING btree (api_user_id); -- --- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_code ON public.contacts USING btree (code); -- --- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id ON public.contacts USING btree (registrar_id); -- --- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_contacts_on_registrar_id_and_ident_type; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_contacts_on_registrar_id_and_ident_type ON public.contacts USING btree (registrar_id, ident_type); -- --- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_directos_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_directos_on_item_type_and_item_id ON public.directos USING btree (item_type, item_id); -- --- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_domain_id ON public.dnskeys USING btree (domain_id); -- --- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_dnskeys_on_legacy_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_dnskeys_on_legacy_domain_id ON public.dnskeys USING btree (legacy_domain_id); -- --- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_contact_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_contact_id ON public.domain_contacts USING btree (contact_id); -- --- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_contacts_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_contacts_on_domain_id ON public.domain_contacts USING btree (domain_id); -- --- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domain_transfers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USING btree (domain_id); -- --- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date); -- --- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_domains_on_name ON public.domains USING btree (name); -- --- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_outzone_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_outzone_at ON public.domains USING btree (outzone_at); -- --- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_id ON public.domains USING btree (registrant_id); -- --- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_asked_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_asked_at ON public.domains USING btree (registrant_verification_asked_at); -- --- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrant_verification_token; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrant_verification_token ON public.domains USING btree (registrant_verification_token); -- --- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (registrar_id); -- --- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_domains_on_statuses; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses); -- --- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_epp_sessions_on_updated_at ON public.epp_sessions USING btree (updated_at); -- --- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoice_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoice_items_on_invoice_id ON public.invoice_items USING btree (invoice_id); -- --- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_invoices_on_buyer_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_invoices_on_buyer_id ON public.invoices USING btree (buyer_id); -- --- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_checksum; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_checksum ON public.legal_documents USING btree (checksum); -- --- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_legal_documents_on_documentable_type_and_documentable_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_legal_documents_on_documentable_type_and_documentable_id ON public.legal_documents USING btree (documentable_type, documentable_id); -- --- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_item_type_and_item_id ON public.log_account_activities USING btree (item_type, item_id); -- --- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_account_activities_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_account_activities_on_whodunnit ON public.log_account_activities USING btree (whodunnit); -- --- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_item_type_and_item_id ON public.log_accounts USING btree (item_type, item_id); -- --- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_accounts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_accounts_on_whodunnit ON public.log_accounts USING btree (whodunnit); -- --- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_item_type_and_item_id ON public.log_bank_statements USING btree (item_type, item_id); -- --- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_statements_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_statements_on_whodunnit ON public.log_bank_statements USING btree (whodunnit); -- --- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_item_type_and_item_id ON public.log_bank_transactions USING btree (item_type, item_id); -- --- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_bank_transactions_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_bank_transactions_on_whodunnit ON public.log_bank_transactions USING btree (whodunnit); -- --- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_item_type_and_item_id ON public.log_blocked_domains USING btree (item_type, item_id); -- --- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_blocked_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_blocked_domains_on_whodunnit ON public.log_blocked_domains USING btree (whodunnit); -- --- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_item_type_and_item_id ON public.log_certificates USING btree (item_type, item_id); -- --- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_certificates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_certificates_on_whodunnit ON public.log_certificates USING btree (whodunnit); -- --- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_item_type_and_item_id ON public.log_contacts USING btree (item_type, item_id); -- --- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_contacts_on_whodunnit ON public.log_contacts USING btree (whodunnit); -- --- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_item_type_and_item_id ON public.log_dnskeys USING btree (item_type, item_id); -- --- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_dnskeys_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_dnskeys_on_whodunnit ON public.log_dnskeys USING btree (whodunnit); -- --- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_item_type_and_item_id ON public.log_domain_contacts USING btree (item_type, item_id); -- --- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domain_contacts_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domain_contacts_on_whodunnit ON public.log_domain_contacts USING btree (whodunnit); -- --- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_item_type_and_item_id ON public.log_domains USING btree (item_type, item_id); -- --- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_domains_on_whodunnit ON public.log_domains USING btree (whodunnit); -- --- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_item_type_and_item_id ON public.log_invoice_items USING btree (item_type, item_id); -- --- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoice_items_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoice_items_on_whodunnit ON public.log_invoice_items USING btree (whodunnit); -- --- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_item_type_and_item_id ON public.log_invoices USING btree (item_type, item_id); -- --- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_invoices_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_invoices_on_whodunnit ON public.log_invoices USING btree (whodunnit); -- --- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_nameservers USING btree (item_type, item_id); -- --- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_nameservers_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); -- --- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); -- --- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); -- --- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON public.log_registrant_verifications USING btree (item_type, item_id); -- --- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrant_verifications_on_whodunnit ON public.log_registrant_verifications USING btree (whodunnit); -- --- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_item_type_and_item_id ON public.log_registrars USING btree (item_type, item_id); -- --- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_registrars_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_registrars_on_whodunnit ON public.log_registrars USING btree (whodunnit); -- --- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_item_type_and_item_id ON public.log_reserved_domains USING btree (item_type, item_id); -- --- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_reserved_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_reserved_domains_on_whodunnit ON public.log_reserved_domains USING btree (whodunnit); -- --- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_item_type_and_item_id ON public.log_settings USING btree (item_type, item_id); -- --- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_settings_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_settings_on_whodunnit ON public.log_settings USING btree (whodunnit); -- --- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING btree (item_type, item_id); -- --- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_log_users_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); -- --- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); -- --- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); -- --- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_payment_orders_on_invoice_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id); + + +-- +-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_prices_on_zone_id ON public.prices USING btree (zone_id); -- --- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_created_at ON public.registrant_verifications USING btree (created_at); -- --- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_registrant_verifications_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_registrant_verifications_on_domain_id ON public.registrant_verifications USING btree (domain_id); -- --- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_settings_on_thing_type_and_thing_id_and_var; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX index_settings_on_thing_type_and_thing_id_and_var ON public.settings USING btree (thing_type, thing_id, var); -- --- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_identity_code; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_identity_code ON public.users USING btree (identity_code); -- --- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_users_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_id); -- --- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_versions_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_versions_on_item_type_and_item_id ON public.versions USING btree (item_type, item_id); -- --- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_domain_id ON public.whois_records USING btree (domain_id); -- --- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: index_whois_records_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX index_whois_records_on_registrar_id ON public.whois_records USING btree (registrar_id); -- --- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_contacts_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_contacts_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_dnskeys_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_dnskeys_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_domains_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_domains_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_id'::text))::integer)); -- --- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: log_nameservers_object_legacy_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE INDEX log_nameservers_object_legacy_id ON public.log_contacts USING btree ((((object ->> 'legacy_domain_id'::text))::integer)); -- --- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: -- CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version); @@ -3895,6 +3951,14 @@ ALTER TABLE ONLY public.registrant_verifications ADD CONSTRAINT fk_rails_f41617a0e9 FOREIGN KEY (domain_id) REFERENCES public.domains(id); +-- +-- Name: fk_rails_f9dc5857c3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.payment_orders + ADD CONSTRAINT fk_rails_f9dc5857c3 FOREIGN KEY (invoice_id) REFERENCES public.invoices(id); + + -- -- Name: invoice_items_invoice_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -4339,6 +4403,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191212133136'), ('20191227110904'), ('20200113091254'), -('20200115102202'); +('20200115102202'), +('20200130092113'); From 7033d912272565ea1c4fe57f84126f9cf2741bd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Jan 2020 18:31:39 +0200 Subject: [PATCH 313/757] EveryPay/BankLink: Select specific Invoice to mark as paid --- app/models/bank_transaction.rb | 15 ++++++++++----- app/models/payment_orders/bank_link.rb | 3 ++- app/models/payment_orders/every_pay.rb | 4 +++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 6612a4dbd..174aae06c 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -24,15 +24,20 @@ class BankTransaction < ApplicationRecord @registrar ||= Invoice.find_by(reference_no: parsed_ref_number)&.buyer end - # For successful binding, reference number, invoice id and sum must match with the invoice - def autobind_invoice + def autobind_invoice(invoice_no: nil) return if binded? return unless registrar - return unless invoice - return unless invoice.payable? - create_activity(registrar, invoice) + inv = if invoice_no.nil? + invoice + else + Invoice.find_by(number: invoice_no) + end + return unless inv + return unless inv.payable? + + create_activity(registrar, inv) end def bind_invoice(invoice_no) diff --git a/app/models/payment_orders/bank_link.rb b/app/models/payment_orders/bank_link.rb index 0cdedbd85..be78973ed 100644 --- a/app/models/payment_orders/bank_link.rb +++ b/app/models/payment_orders/bank_link.rb @@ -51,6 +51,7 @@ module PaymentOrders def complete_transaction return unless valid_response_from_intermediary? && settled_payment? + self.status = 'paid' transaction = BankTransaction.where(description: invoice.order).first_or_initialize( description: invoice.order, reference_no: invoice.reference_no, @@ -66,7 +67,7 @@ module PaymentOrders transaction.paid_at = Time.parse(response['VK_T_DATETIME']) transaction.save! - transaction.autobind_invoice + transaction.autobind_invoice(invoice_no: invoice.number) end def settled_payment? diff --git a/app/models/payment_orders/every_pay.rb b/app/models/payment_orders/every_pay.rb index ae84aacca..66c34c3fa 100644 --- a/app/models/payment_orders/every_pay.rb +++ b/app/models/payment_orders/every_pay.rb @@ -36,6 +36,7 @@ module PaymentOrders def complete_transaction return unless valid_response_from_intermediary? && settled_payment? + self.status = 'paid' transaction = BankTransaction.where(description: invoice.order).first_or_initialize( description: invoice.order, @@ -48,7 +49,8 @@ module PaymentOrders transaction.paid_at = Date.strptime(response['timestamp'], '%s') transaction.buyer_name = response['cc_holder_name'] - transaction.autobind_invoice + transaction.save! + transaction.autobind_invoice(invoice_no: invoice.number) end def base_params From 32d4fc3c8332a413c01d3d76f7510bfb2e73898c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Jan 2020 21:01:15 +0200 Subject: [PATCH 314/757] Refactor EveryPay / Banklink processing --- .../registrar/payments_controller.rb | 14 +++++++------ app/models/bank_transaction.rb | 14 ++++--------- app/models/payment_order.rb | 19 +++++++++++++++++- app/models/payment_orders/bank_link.rb | 16 ++++++++++----- app/models/payment_orders/every_pay.rb | 20 +++++++++++++------ 5 files changed, 55 insertions(+), 28 deletions(-) diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index 98b9e1d7d..aaa742be5 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -31,20 +31,20 @@ class Registrar end def back - puts params - @payment_order = PaymentOrder.find_by!(id: params[:bank]) @payment_order.update!(response: params.to_unsafe_h) - if @payment_order.valid_response_from_intermediary? && @payment_order.settled_payment? - @payment_order.complete_transaction + if @payment_order.payment_received? + @payment_order.complete_transaction(@payment_order.composed_transaction) if @payment_order.invoice.paid? flash[:notice] = t(:pending_applied) else - flash[:alert] = t(:something_wrong) + # flash[:alert] = t(:something_wrong) + flash[:alert] = 'We fucked up' end else + @payment_order.create_failure_report flash[:alert] = t(:something_wrong) end redirect_to registrar_invoice_path(@payment_order.invoice) @@ -54,8 +54,10 @@ class Registrar @payment_order = PaymentOrder.find_by!(id: params[:bank]) @payment_order.update!(response: params.to_unsafe_h) - if @payment_order.valid_response_from_intermediary? && @payment_order.settled_payment? + if @payment_order.payment_received? @payment_order.complete_transaction + else + @payment_order.create_failure_report end render status: 200, json: { status: 'ok' } diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 0cc9500cc..792a32484 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -31,19 +31,13 @@ class BankTransaction < ApplicationRecord end # For successful binding, reference number, invoice id and sum must match with the invoice - def autobind_invoice(invoice_no: nil) + def autobind_invoice return if binded? return unless registrar + return unless invoice + return unless invoice.payable? - inv = if invoice_no.nil? - invoice - else - Invoice.find_by(number: invoice_no) - end - return unless inv - return unless inv.payable? - - create_activity(registrar, inv) + create_activity(registrar, invoice) end def bind_invoice(invoice_no) diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index 228c4021d..a0d3da254 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -11,7 +11,8 @@ class PaymentOrder < ApplicationRecord validate :invoice_cannot_be_already_paid, on: :create # validates :type, inclusion: { in: PAYMENT_METHODS } - enum status: { issued: 'issued', paid: 'paid', cancelled: 'cancelled' } + enum status: { issued: 'issued', paid: 'paid', cancelled: 'cancelled', + failed: 'failed' } attr_accessor :return_url, :response_url @@ -34,6 +35,22 @@ class PaymentOrder < ApplicationRecord end end + def complete_transaction(transaction) + paid! + + transaction.save! + transaction.bind_invoice(invoice.number) + + return unless transaction.errors.any? + + worded_errors = 'Failed to bind. ' + transaction.errors.full_messages.each do |err| + worded_errors << "#{err}, " + end + + update!(notes: worded_errors) + end + def self.supported_methods enabled = [] diff --git a/app/models/payment_orders/bank_link.rb b/app/models/payment_orders/bank_link.rb index be78973ed..c5a8bc54e 100644 --- a/app/models/payment_orders/bank_link.rb +++ b/app/models/payment_orders/bank_link.rb @@ -48,10 +48,17 @@ module PaymentOrders end end - def complete_transaction - return unless valid_response_from_intermediary? && settled_payment? + def payment_received? + valid_response_from_intermediary? && settled_payment? + end - self.status = 'paid' + def create_failure_report + notes = "User failed to make valid payment. Bank responded with code #{response['VK_SERVICE']}" + status = 'cancelled' + update!(notes: notes, status: status) + end + + def composed_transaction transaction = BankTransaction.where(description: invoice.order).first_or_initialize( description: invoice.order, reference_no: invoice.reference_no, @@ -66,8 +73,7 @@ module PaymentOrders transaction.buyer_name = response['VK_SND_NAME'] transaction.paid_at = Time.parse(response['VK_T_DATETIME']) - transaction.save! - transaction.autobind_invoice(invoice_no: invoice.number) + transaction end def settled_payment? diff --git a/app/models/payment_orders/every_pay.rb b/app/models/payment_orders/every_pay.rb index 66c34c3fa..53705d1a6 100644 --- a/app/models/payment_orders/every_pay.rb +++ b/app/models/payment_orders/every_pay.rb @@ -34,11 +34,12 @@ module PaymentOrders SUCCESSFUL_PAYMENT.include?(response['payment_state']) end - def complete_transaction - return unless valid_response_from_intermediary? && settled_payment? - self.status = 'paid' + def payment_received? + valid_response_from_intermediary? && settled_payment? + end - transaction = BankTransaction.where(description: invoice.order).first_or_initialize( + def composed_transaction + transaction = BankTransaction.new( description: invoice.order, reference_no: invoice.reference_no, currency: invoice.currency, @@ -49,8 +50,13 @@ module PaymentOrders transaction.paid_at = Date.strptime(response['timestamp'], '%s') transaction.buyer_name = response['cc_holder_name'] - transaction.save! - transaction.autobind_invoice(invoice_no: invoice.number) + transaction + end + + def create_failure_report + notes = "User failed to make valid payment. Payment state: #{response['payment_state']}" + status = 'cancelled' + update!(notes: notes, status: status) end def base_params @@ -80,6 +86,8 @@ module PaymentOrders end def valid_amount? + return false unless response.key? 'amount' + invoice.total == BigDecimal(response['amount']) end From 347249df39af1886fb2c999617787b5e7e70a8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Jan 2020 21:02:07 +0200 Subject: [PATCH 315/757] Introduce Payment Orders to views --- app/views/admin/invoices/show.haml | 2 ++ .../invoices/partials/_payment_orders.haml | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 app/views/registrar/invoices/partials/_payment_orders.haml diff --git a/app/views/admin/invoices/show.haml b/app/views/admin/invoices/show.haml index e3627c158..d0450469f 100644 --- a/app/views/admin/invoices/show.haml +++ b/app/views/admin/invoices/show.haml @@ -21,3 +21,5 @@ .col-md-6= render 'registrar/invoices/partials/buyer' .row .col-md-12= render 'registrar/invoices/partials/items' +.row + .col-md-12= render 'registrar/invoices/partials/payment_orders' diff --git a/app/views/registrar/invoices/partials/_payment_orders.haml b/app/views/registrar/invoices/partials/_payment_orders.haml new file mode 100644 index 000000000..d418ea1ac --- /dev/null +++ b/app/views/registrar/invoices/partials/_payment_orders.haml @@ -0,0 +1,19 @@ +%h4= "Payment Orders" +%hr +.table-responsive + %table.table.table-hover.table-condensed + %thead + %tr + %th{class: 'col-xs-1'}= "#" + %th{class: 'col-xs-1'}= "Channel" + %th{class: 'col-xs-2'}= "Status" + %th{class: 'col-xs-3'}= "Initiated" + %th{class: 'col-xs-4'}= "Notes" + %tbody + - @invoice.payment_orders.each do |payment_order| + %tr + %td= payment_order.id + %td= payment_order.channel + %td= payment_order.status + %td= payment_order.created_at + %td= payment_order.notes From 03b031abeb3e5b60d304bcfcd6a97ee86c98002c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 30 Jan 2020 21:02:43 +0200 Subject: [PATCH 316/757] Make PaymentOrder default status 'issued' --- db/migrate/20200130092113_create_payment_orders.rb | 2 +- db/structure.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/db/migrate/20200130092113_create_payment_orders.rb b/db/migrate/20200130092113_create_payment_orders.rb index 0b0594e56..d3320ee9b 100644 --- a/db/migrate/20200130092113_create_payment_orders.rb +++ b/db/migrate/20200130092113_create_payment_orders.rb @@ -2,7 +2,7 @@ class CreatePaymentOrders < ActiveRecord::Migration[5.0] def change create_table :payment_orders do |t| t.string :type, null: false - t.string :status, default: 0, null: false + t.string :status, default: 'issued', null: false t.belongs_to :invoice, foreign_key: true t.jsonb :response, null: true t.string :notes, null: true diff --git a/db/structure.sql b/db/structure.sql index c664522bb..edf53fe6f 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1824,7 +1824,7 @@ ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; CREATE TABLE public.payment_orders ( id integer NOT NULL, type character varying NOT NULL, - status character varying DEFAULT '0'::character varying NOT NULL, + status character varying DEFAULT 'issued'::character varying NOT NULL, invoice_id integer, response jsonb, notes character varying, From 0cdc3451fd30003e654f40eba5d0fa14dbf6f5c9 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 31 Jan 2020 16:42:22 +0500 Subject: [PATCH 317/757] Add InvoiceDate field to Directo model See #1416 --- app/models/directo.rb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index 5f73a3f16..789db64b2 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -22,14 +22,16 @@ class Directo < ApplicationRecord counter += 1 num = invoice.number + paid_at = invoice.account_activity.bank_transaction&.paid_at&.strftime("%Y-%m-%d") mappers[num] = invoice xml.invoice( - "SalesAgent" => Setting.directo_sales_agent, - "Number" => num, - "InvoiceDate" => invoice.issue_date.strftime("%Y-%m-%d"), - "PaymentTerm" => Setting.directo_receipt_payment_term, - "Currency" => invoice.currency, - "CustomerCode"=> invoice.buyer.accounting_customer_code + "SalesAgent" => Setting.directo_sales_agent, + "Number" => num, + "InvoiceDate" => invoice.issue_date.strftime("%Y-%m-%d"), + 'TransactionDate' => paid_at, + "PaymentTerm" => Setting.directo_receipt_payment_term, + "Currency" => invoice.currency, + "CustomerCode"=> invoice.buyer.accounting_customer_code ){ xml.line( "ProductID" => Setting.directo_receipt_product_name, From 0cf2ff92a3142afbbee9a2b707b4d850da2df670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 31 Jan 2020 12:56:58 +0200 Subject: [PATCH 318/757] Bind specific invoice when paid via Banklink / EveryPay Fix styling issues Move redundant logic to shared base --- .../registrar/payments_controller.rb | 2 ++ app/models/bank_transaction.rb | 1 + app/models/payment_orders/bank_link.rb | 13 +++++----- app/models/payment_orders/base.rb | 26 +++++++++++++++++++ app/models/payment_orders/every_pay.rb | 14 +++++----- test/models/payment_orders/bank_link_test.rb | 4 ++- test/models/payment_orders/every_pay_test.rb | 4 ++- 7 files changed, 50 insertions(+), 14 deletions(-) diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index 5be0d6562..8df9bb046 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -27,6 +27,8 @@ class Registrar opts = { response: params } @payment = ::PaymentOrders.create_with_type(params[:bank], invoice, opts) if @payment.valid_response_from_intermediary? && @payment.settled_payment? + Rails.logger.info("User paid invoice ##{invoice.number} successfully") + @payment.complete_transaction if invoice.paid? diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index d2f8bb66b..cb9aebc5e 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -48,6 +48,7 @@ class BankTransaction < ApplicationRecord end invoice = Invoice.find_by(number: invoice_no) + @registrar = invoice.buyer unless invoice errors.add(:base, I18n.t('invoice_was_not_found')) diff --git a/app/models/payment_orders/bank_link.rb b/app/models/payment_orders/bank_link.rb index e568da0df..1e4c2785a 100644 --- a/app/models/payment_orders/bank_link.rb +++ b/app/models/payment_orders/bank_link.rb @@ -51,11 +51,7 @@ module PaymentOrders def complete_transaction return unless valid_successful_transaction? - transaction = BankTransaction.find_by( - description: invoice.order, - currency: invoice.currency, - iban: invoice.seller_iban - ) + transaction = compose_or_find_transaction transaction.sum = response['VK_AMOUNT'] transaction.bank_reference = response['VK_T_NO'] @@ -65,7 +61,12 @@ module PaymentOrders transaction.paid_at = Time.parse(response["VK_T_DATETIME"]) transaction.save! - transaction.autobind_invoice + transaction.bind_invoice(invoice.number) + if transaction.errors.empty? + Rails.logger.info("Invoice ##{invoice.number} was marked as paid") + else + Rails.logger.error("Failed to bind invoice ##{invoice.number}") + end end def settled_payment? diff --git a/app/models/payment_orders/base.rb b/app/models/payment_orders/base.rb index cf0293025..772f33ba5 100644 --- a/app/models/payment_orders/base.rb +++ b/app/models/payment_orders/base.rb @@ -26,6 +26,32 @@ module PaymentOrders transaction.save! end + def compose_or_find_transaction + transaction = BankTransaction.find_by(base_transaction_params) + + # Transaction already autobinded (possibly) invalid invoice + if transaction.binded? + Rails.logger.info("Transaction #{transaction.id} is already binded") + Rails.logger.info('Creating new BankTransaction record.') + + transaction = new_base_transaction + end + + transaction + end + + def new_base_transaction + BankTransaction.new(base_transaction_params) + end + + def base_transaction_params + { + description: invoice.order, + currency: invoice.currency, + iban: invoice.seller_iban, + } + end + def form_url ENV["payments_#{type}_url"] end diff --git a/app/models/payment_orders/every_pay.rb b/app/models/payment_orders/every_pay.rb index b4ddcdf29..a866ba972 100644 --- a/app/models/payment_orders/every_pay.rb +++ b/app/models/payment_orders/every_pay.rb @@ -20,6 +20,7 @@ module PaymentOrders def valid_response_from_intermediary? return false unless response + valid_hmac? && valid_amount? && valid_account? end @@ -30,18 +31,19 @@ module PaymentOrders def complete_transaction return unless valid_response_from_intermediary? && settled_payment? - transaction = BankTransaction.find_by( - description: invoice.order, - currency: invoice.currency, - iban: invoice.seller_iban - ) + transaction = compose_or_find_transaction transaction.sum = response[:amount] transaction.paid_at = Date.strptime(response[:timestamp], '%s') transaction.buyer_name = response[:cc_holder_name] transaction.save! - transaction.autobind_invoice + transaction.bind_invoice(invoice.number) + if transaction.errors.empty? + Rails.logger.info("Invoice ##{invoice.number} marked as paid") + else + Rails.logger.error("Failed to bind invoice ##{invoice.number}") + end end private diff --git a/test/models/payment_orders/bank_link_test.rb b/test/models/payment_orders/bank_link_test.rb index f1069819c..002f488b9 100644 --- a/test/models/payment_orders/bank_link_test.rb +++ b/test/models/payment_orders/bank_link_test.rb @@ -114,7 +114,9 @@ class BankLinkTest < ActiveSupport::TestCase mock_transaction.expect(:paid_at= , Date.parse('2018-04-01 00:30:00 +0300'), [Time.parse('2018-04-01T00:30:00+0300')]) mock_transaction.expect(:buyer_name=, 'John Doe', ['John Doe']) mock_transaction.expect(:save!, true) - mock_transaction.expect(:autobind_invoice, AccountActivity.new) + mock_transaction.expect(:binded?, false) + mock_transaction.expect(:bind_invoice, AccountActivity.new, [1]) + mock_transaction.expect(:errors, []) BankTransaction.stub(:find_by, mock_transaction) do @completed_bank_link.complete_transaction diff --git a/test/models/payment_orders/every_pay_test.rb b/test/models/payment_orders/every_pay_test.rb index 202efc1b7..81e077b23 100644 --- a/test/models/payment_orders/every_pay_test.rb +++ b/test/models/payment_orders/every_pay_test.rb @@ -72,7 +72,9 @@ class EveryPayTest < ActiveSupport::TestCase mock_transaction.expect(:paid_at= , Date.strptime('1524136727', '%s'), [Date.strptime('1524136727', '%s')]) mock_transaction.expect(:buyer_name=, 'John Doe', ['John Doe']) mock_transaction.expect(:save!, true) - mock_transaction.expect(:autobind_invoice, AccountActivity.new) + mock_transaction.expect(:binded?, false) + mock_transaction.expect(:bind_invoice, AccountActivity.new, [1]) + mock_transaction.expect(:errors, []) BankTransaction.stub(:find_by, mock_transaction) do @every_pay.complete_transaction From 4985c8f42bea5bfa7283aed8c00f428489ec9db6 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 31 Jan 2020 17:28:22 +0500 Subject: [PATCH 319/757] Add test to check if transaction date included in request --- test/models/directo_test.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/models/directo_test.rb diff --git a/test/models/directo_test.rb b/test/models/directo_test.rb new file mode 100644 index 000000000..9dbbf64d4 --- /dev/null +++ b/test/models/directo_test.rb @@ -0,0 +1,20 @@ +require 'test_helper' + +class DirectoTest < ActiveSupport::TestCase + setup do + @invoice = invoices(:one) + end + + def test_xml_is_include_transaction_date + @invoice.update(total: @invoice.account_activity.bank_transaction.sum) + @invoice.account_activity.bank_transaction.update(paid_at: Time.zone.now) + + stub_request(:post, ENV['directo_invoice_url']).with do |request| + request.body.include? 'TransactionDate' + end + + assert_nothing_raised do + Directo.send_receipts + end + end +end From a190f4ecca8b905dd2f8b976d16ff088a82b45bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 31 Jan 2020 15:14:14 +0200 Subject: [PATCH 320/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 701678596..820cd7c72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +31.01.2020 +* Instant payments marks specific invoice as paid [#1500](https://github.com/internetee/registry/issues/1500) + 29.01.2020 * Fixed the invoice binding bug where process failed if registrar tried to load a sum that they have used before [#1496](https://github.com/internetee/registry/issues/1496) From 05d1cc3cb9ec1df26b7dcdf5e1885edbf1184072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 31 Jan 2020 17:05:55 +0200 Subject: [PATCH 321/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 820cd7c72..14a0bba2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 31.01.2020 * Instant payments marks specific invoice as paid [#1500](https://github.com/internetee/registry/issues/1500) +* Sending invoice payment date to accounting [#1416](https://github.com/internetee/registry/issues/1416) 29.01.2020 * Fixed the invoice binding bug where process failed if registrar tried to load a sum that they have used before [#1496](https://github.com/internetee/registry/issues/1496) From 89cdfe20fc0af4fd7226a2ee7d1e0b88db830ba3 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 3 Feb 2020 13:47:33 +0500 Subject: [PATCH 322/757] Pump SimpleIDN gem version, add check/test to block punicode IDN domains Closes #1142 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/models/dns/domain_name.rb | 3 ++- test/fixtures/blocked_domains.yml | 2 ++ test/models/dns/domain_name_test.rb | 3 +++ 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 26294b04e..b3882e792 100644 --- a/Gemfile +++ b/Gemfile @@ -37,7 +37,7 @@ gem 'grape' # registry specfic gem 'isikukood' # for EE-id validation -gem 'simpleidn', '0.0.7' # For punycode +gem 'simpleidn', '0.0.9' # For punycode gem 'money-rails' gem 'data_migrate' gem 'whenever', '0.9.4', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 4dd4bd57c..23aa90a51 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -382,7 +382,7 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - simpleidn (0.0.7) + simpleidn (0.0.9) sinatra (2.0.7) mustermann (~> 1.0) rack (~> 2.0) @@ -491,7 +491,7 @@ DEPENDENCIES select2-rails (= 3.5.9.3) selectize-rails (= 0.12.1) simplecov - simpleidn (= 0.0.7) + simpleidn (= 0.0.9) uglifier validates_email_format_of (= 1.6.3) webdrivers diff --git a/app/models/dns/domain_name.rb b/app/models/dns/domain_name.rb index d2ca9fa50..e4dd24fa5 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -60,7 +60,8 @@ module DNS end def blocked? - BlockedDomain.where(name: name).any? + BlockedDomain.where(name: name).any? || + BlockedDomain.where(name: SimpleIDN.to_unicode(name)).any? end def reserved? diff --git a/test/fixtures/blocked_domains.yml b/test/fixtures/blocked_domains.yml index 4bf0d0299..52c9beec2 100644 --- a/test/fixtures/blocked_domains.yml +++ b/test/fixtures/blocked_domains.yml @@ -1,2 +1,4 @@ one: name: blocked.test +idn: + name: blockedäöüõ.test diff --git a/test/models/dns/domain_name_test.rb b/test/models/dns/domain_name_test.rb index 5d0dd5386..bd83076bc 100644 --- a/test/models/dns/domain_name_test.rb +++ b/test/models/dns/domain_name_test.rb @@ -131,7 +131,10 @@ class DNS::DomainNameTest < ActiveSupport::TestCase def test_blocked assert_equal 'blocked.test', blocked_domains(:one).name + assert_equal 'blockedäöüõ.test', blocked_domains(:idn).name assert DNS::DomainName.new('blocked.test').blocked? + assert DNS::DomainName.new('blockedäöüõ.test').blocked? + assert DNS::DomainName.new(SimpleIDN.to_ascii('blockedäöüõ.test')).blocked? assert_not DNS::DomainName.new('nonblocked .test').blocked? end From 3f5b5962d1797abcc81ab27655621894e4ae741d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 3 Feb 2020 14:14:31 +0200 Subject: [PATCH 323/757] Make sure that Payment method is functional prior to paying --- .../registrar/payments_controller.rb | 23 +++++----------- app/models/payment_order.rb | 26 +++++++++---------- app/models/payment_orders/lhv.rb | 2 +- app/models/payment_orders/seb.rb | 2 +- config/routes.rb | 10 +++---- 5 files changed, 27 insertions(+), 36 deletions(-) diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index aaa742be5..00b10f34e 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -5,21 +5,14 @@ class Registrar skip_authorization_check # actually anyone can pay, no problems at all skip_before_action :authenticate_registrar_user!, :check_ip_restriction, only: [:back, :callback] - before_action :check_supported_payment_method + + before_action :check_supported_payment_method, only: [:pay] def pay invoice = Invoice.find(params[:invoice_id]) payment_type = params[:bank] - channel = if payment_type == 'every_pay' - 'PaymentOrders::EveryPay' - elsif payment_type == 'seb' - 'PaymentOrders::SEB' - elsif payment_type == 'swed' - 'PaymentOrders::Swed' - elsif payment_type == 'lhv' - 'PaymentOrders::LHV' - end + channel = PaymentOrder.type_from_shortname(payment_type) @payment_order = PaymentOrder.new(type: channel, invoice: invoice) @payment_order.save && @payment_order.reload @@ -31,7 +24,7 @@ class Registrar end def back - @payment_order = PaymentOrder.find_by!(id: params[:bank]) + @payment_order = PaymentOrder.find_by!(id: params[:payment_order]) @payment_order.update!(response: params.to_unsafe_h) if @payment_order.payment_received? @@ -51,7 +44,7 @@ class Registrar end def callback - @payment_order = PaymentOrder.find_by!(id: params[:bank]) + @payment_order = PaymentOrder.find_by!(id: params[:payment_order]) @payment_order.update!(response: params.to_unsafe_h) if @payment_order.payment_received? @@ -68,13 +61,11 @@ class Registrar def check_supported_payment_method return if supported_payment_method? - raise StandardError.new('Not supported payment method') + raise(StandardError, 'Not supported payment method') end def supported_payment_method? - puts "Payment method param is #{params[:bank]}" - # PaymentOrder::PAYMENT_METHODS.include?(params[:bank]) - true + PaymentOrder.supported_method?(params[:bank]) end end end diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index a0d3da254..4ce67d887 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -25,14 +25,14 @@ class PaymentOrder < ApplicationRecord errors.add(:invoice, 'is already paid') end - def self.supported_method?(some_class) - raise ArgumentError unless some_class < PaymentOrder + def self.type_from_shortname(shortname) + ('PaymentOrders::' + shortname.camelize).constantize + end - if PAYMENT_METHODS.include?(some_class.name) - true - else - false - end + def self.supported_method?(some_class) + supported_methods.include? type_from_shortname(some_class) + rescue NameError + false end def complete_transaction(transaction) @@ -52,16 +52,16 @@ class PaymentOrder < ApplicationRecord end def self.supported_methods - enabled = [] + supported = [] - ENABLED_METHODS.each do |method| - class_name = method.constantize - raise(Errors::ExpectedPaymentOrder, class_name) unless class_name < PaymentOrder + PAYMENT_METHODS.each do |method| + class_name = ('PaymentOrders::' + method.camelize).constantize + raise(NoMethodError, class_name) unless class_name < PaymentOrder - enabled << class_name + supported << class_name end - enabled + supported end def channel diff --git a/app/models/payment_orders/lhv.rb b/app/models/payment_orders/lhv.rb index 7443f85d3..4c9f59c4a 100644 --- a/app/models/payment_orders/lhv.rb +++ b/app/models/payment_orders/lhv.rb @@ -1,5 +1,5 @@ module PaymentOrders - class LHV < BankLink + class Lhv < BankLink def self.config_namespace_name 'lhv' end diff --git a/app/models/payment_orders/seb.rb b/app/models/payment_orders/seb.rb index 50fb24ced..878d877a7 100644 --- a/app/models/payment_orders/seb.rb +++ b/app/models/payment_orders/seb.rb @@ -1,5 +1,5 @@ module PaymentOrders - class SEB < BankLink + class Seb < BankLink def self.config_namespace_name 'seb' end diff --git a/config/routes.rb b/config/routes.rb index 135fe8eb0..f77529e4f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -127,11 +127,11 @@ Rails.application.routes.draw do end end - get 'pay/return/:bank' => 'payments#back', as: 'return_payment_with' - post 'pay/return/:bank' => 'payments#back' - put 'pay/return/:bank' => 'payments#back' - post 'pay/callback/:bank' => 'payments#callback', as: 'response_payment_with' - get 'pay/go/:bank' => 'payments#pay', as: 'payment_with' + get 'pay/return/:payment_order' => 'payments#back', as: 'return_payment_with' + post 'pay/return/:payment_order' => 'payments#back' + put 'pay/return/:payment_order' => 'payments#back' + post 'pay/callback/:payment_order' => 'payments#callback', as: 'response_payment_with' + get 'pay/go/:bank' => 'payments#pay', as: 'payment_with' namespace :settings do resource :balance_auto_reload, controller: :balance_auto_reload, only: %i[edit update destroy] From ec5ff5dc8cff26e02e1d03669542fc2a7472b3f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 3 Feb 2020 15:52:02 +0200 Subject: [PATCH 324/757] Validate inclusion of payment method when saving PaymentOrder --- .../registrar/payments_controller.rb | 5 +- app/models/payment_order.rb | 90 +++++++++++-------- app/models/payment_orders/bank_link.rb | 21 ++--- app/models/payment_orders/every_pay.rb | 19 ++-- 4 files changed, 71 insertions(+), 64 deletions(-) diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index 00b10f34e..736cfe01c 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -28,7 +28,7 @@ class Registrar @payment_order.update!(response: params.to_unsafe_h) if @payment_order.payment_received? - @payment_order.complete_transaction(@payment_order.composed_transaction) + @payment_order.complete_transaction if @payment_order.invoice.paid? flash[:notice] = t(:pending_applied) @@ -65,7 +65,8 @@ class Registrar end def supported_payment_method? - PaymentOrder.supported_method?(params[:bank]) + method_name = PaymentOrder.type_from_shortname(params[:bank]) + PaymentOrder.supported_method?(method_name) end end end diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index 4ce67d887..e204ec5dc 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -9,48 +9,13 @@ class PaymentOrder < ApplicationRecord belongs_to :invoice, optional: false validate :invoice_cannot_be_already_paid, on: :create - # validates :type, inclusion: { in: PAYMENT_METHODS } + validate :supported_payment_method enum status: { issued: 'issued', paid: 'paid', cancelled: 'cancelled', failed: 'failed' } attr_accessor :return_url, :response_url - # Name of configuration namespace - def self.config_namespace_name; end - - def invoice_cannot_be_already_paid - return unless invoice&.paid? - - errors.add(:invoice, 'is already paid') - end - - def self.type_from_shortname(shortname) - ('PaymentOrders::' + shortname.camelize).constantize - end - - def self.supported_method?(some_class) - supported_methods.include? type_from_shortname(some_class) - rescue NameError - false - end - - def complete_transaction(transaction) - paid! - - transaction.save! - transaction.bind_invoice(invoice.number) - - return unless transaction.errors.any? - - worded_errors = 'Failed to bind. ' - transaction.errors.full_messages.each do |err| - worded_errors << "#{err}, " - end - - update!(notes: worded_errors) - end - def self.supported_methods supported = [] @@ -64,6 +29,59 @@ class PaymentOrder < ApplicationRecord supported end + # Name of configuration namespace + def self.config_namespace_name; end + + def supported_payment_method + return if PaymentOrder.supported_method? type.constantize + + errors.add(:type, 'is not supported') + end + + def invoice_cannot_be_already_paid + return unless invoice&.paid? + + errors.add(:invoice, 'is already paid') + end + + def self.type_from_shortname(shortname) + ('PaymentOrders::' + shortname.camelize).constantize + end + + def self.supported_method?(some_class) + supported_methods.include? some_class + rescue NameError + false + end + + def base_transaction(sum:, paid_at:, buyer_name:) + BankTransaction.new( + description: invoice.order, + reference_no: invoice.reference_no, + currency: invoice.currency, + iban: invoice.seller_iban, + sum: sum, + paid_at: paid_at, + buyer_name: buyer_name + ) + end + + def complete_transaction + paid! + transaction = composed_transaction + transaction.save! + transaction.bind_invoice(invoice.number) + + return unless transaction.errors.any? + + worded_errors = 'Failed to bind. ' + transaction.errors.full_messages.each do |err| + worded_errors << "#{err}, " + end + + update!(notes: worded_errors) + end + def channel type.gsub('PaymentOrders::', '') end diff --git a/app/models/payment_orders/bank_link.rb b/app/models/payment_orders/bank_link.rb index c5a8bc54e..5bfd02c48 100644 --- a/app/models/payment_orders/bank_link.rb +++ b/app/models/payment_orders/bank_link.rb @@ -53,25 +53,20 @@ module PaymentOrders end def create_failure_report - notes = "User failed to make valid payment. Bank responded with code #{response['VK_SERVICE']}" + notes = "User failed to make payment. Bank responded with code #{response['VK_SERVICE']}" status = 'cancelled' update!(notes: notes, status: status) end def composed_transaction - transaction = BankTransaction.where(description: invoice.order).first_or_initialize( - description: invoice.order, - reference_no: invoice.reference_no, - currency: invoice.currency, - iban: invoice.seller_iban - ) + paid_at = Time.parse(response['VK_T_DATETIME']) + transaction = base_transaction(sum: response['VK_AMOUNT'], + paid_at: paid_at, + buyer_name: response['VK_SND_NAME']) - transaction.sum = response['VK_AMOUNT'] - transaction.bank_reference = response['VK_T_NO'] + transaction.bank_reference = response['VK_T_NO'] transaction.buyer_bank_code = response['VK_SND_ID'] - transaction.buyer_iban = response['VK_SND_ACC'] - transaction.buyer_name = response['VK_SND_NAME'] - transaction.paid_at = Time.parse(response['VK_T_DATETIME']) + transaction.buyer_iban = response['VK_SND_ACC'] transaction end @@ -80,7 +75,7 @@ module PaymentOrders response['VK_SERVICE'] == SUCCESSFUL_PAYMENT_SERVICE_NUMBER end - # private + private def valid_successful_transaction? valid_success_notice? && valid_amount? && valid_currency? diff --git a/app/models/payment_orders/every_pay.rb b/app/models/payment_orders/every_pay.rb index 53705d1a6..2f848fa82 100644 --- a/app/models/payment_orders/every_pay.rb +++ b/app/models/payment_orders/every_pay.rb @@ -5,7 +5,7 @@ module PaymentOrders ACCOUNT_ID = ENV['payments_every_pay_seller_account'] SUCCESSFUL_PAYMENT = %w[settled authorized].freeze - CONFIG_NAMESPACE = 'every_pay' + CONFIG_NAMESPACE = 'every_pay'.freeze def self.config_namespace_name CONFIG_NAMESPACE @@ -39,18 +39,9 @@ module PaymentOrders end def composed_transaction - transaction = BankTransaction.new( - description: invoice.order, - reference_no: invoice.reference_no, - currency: invoice.currency, - iban: invoice.seller_iban - ) - - transaction.sum = response['amount'] - transaction.paid_at = Date.strptime(response['timestamp'], '%s') - transaction.buyer_name = response['cc_holder_name'] - - transaction + base_transaction(sum: response['amount'], + paid_at: Date.strptime(response['timestamp'], '%s'), + buyer_name: response['cc_holder_name']) end def create_failure_report @@ -59,6 +50,8 @@ module PaymentOrders update!(notes: notes, status: status) end + private + def base_params { api_username: USER, From fa1687baf0c27b1dc9b99af6a59b234cb8c5f4a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 3 Feb 2020 16:47:04 +0200 Subject: [PATCH 325/757] Add PaperTrail history to PaymentOrders --- app/models/payment_order.rb | 2 +- app/models/version/payment_order_version.rb | 4 ++ .../20200130092113_create_payment_orders.rb | 2 + ...203143458_create_payment_order_versions.rb | 16 +++++ db/structure.sql | 58 ++++++++++++++++++- 5 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 app/models/version/payment_order_version.rb create mode 100644 db/migrate/20200203143458_create_payment_order_versions.rb diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index e204ec5dc..5449262ba 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -1,5 +1,5 @@ class PaymentOrder < ApplicationRecord - #include Versions + include Versions include ActionView::Helpers::NumberHelper PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].to_s.strip.split(', ').freeze diff --git a/app/models/version/payment_order_version.rb b/app/models/version/payment_order_version.rb new file mode 100644 index 000000000..e556f1021 --- /dev/null +++ b/app/models/version/payment_order_version.rb @@ -0,0 +1,4 @@ +class PaymentOrderVersion < PaperTrail::Version + self.table_name = :log_payment_orders + self.sequence_name = :log_payment_orders_id_seq +end diff --git a/db/migrate/20200130092113_create_payment_orders.rb b/db/migrate/20200130092113_create_payment_orders.rb index d3320ee9b..97d86a034 100644 --- a/db/migrate/20200130092113_create_payment_orders.rb +++ b/db/migrate/20200130092113_create_payment_orders.rb @@ -6,6 +6,8 @@ class CreatePaymentOrders < ActiveRecord::Migration[5.0] t.belongs_to :invoice, foreign_key: true t.jsonb :response, null: true t.string :notes, null: true + t.string :creator_str + t.string :updator_str t.timestamps end diff --git a/db/migrate/20200203143458_create_payment_order_versions.rb b/db/migrate/20200203143458_create_payment_order_versions.rb new file mode 100644 index 000000000..d02b300e1 --- /dev/null +++ b/db/migrate/20200203143458_create_payment_order_versions.rb @@ -0,0 +1,16 @@ +class CreatePaymentOrderVersions < ActiveRecord::Migration[5.0] + def change + create_table :log_payment_orders do |t| + t.string :item_type, null: false + t.integer :item_id, null: false + t.string :event, null: false + t.string :whodunnit + t.jsonb :object + t.jsonb :object_changes + t.datetime :created_at + t.string :session + t.jsonb :children + t.string :uuid + end + end +end diff --git a/db/structure.sql b/db/structure.sql index edf53fe6f..d694da536 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1514,6 +1514,44 @@ CREATE SEQUENCE public.log_notifications_id_seq ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications.id; +-- +-- Name: log_payment_orders; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.log_payment_orders ( + id integer NOT NULL, + item_type character varying NOT NULL, + item_id integer NOT NULL, + event character varying NOT NULL, + whodunnit character varying, + object jsonb, + object_changes jsonb, + created_at timestamp without time zone, + session character varying, + children jsonb, + uuid character varying +); + + +-- +-- Name: log_payment_orders_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.log_payment_orders_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: log_payment_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.log_payment_orders_id_seq OWNED BY public.log_payment_orders.id; + + -- -- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -1828,6 +1866,8 @@ CREATE TABLE public.payment_orders ( invoice_id integer, response jsonb, notes character varying, + creator_str character varying, + updator_str character varying, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL ); @@ -2533,6 +2573,13 @@ ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('pub ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.log_payment_orders ALTER COLUMN id SET DEFAULT nextval('public.log_payment_orders_id_seq'::regclass); + + -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2945,6 +2992,14 @@ ALTER TABLE ONLY public.log_notifications ADD CONSTRAINT log_notifications_pkey PRIMARY KEY (id); +-- +-- Name: log_payment_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.log_payment_orders + ADD CONSTRAINT log_payment_orders_pkey PRIMARY KEY (id); + + -- -- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -4404,6 +4459,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191227110904'), ('20200113091254'), ('20200115102202'), -('20200130092113'); +('20200130092113'), +('20200203143458'); From b6469f3dfe63761a1e31dea6a7bb246372a5bc66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 3 Feb 2020 19:57:52 +0200 Subject: [PATCH 326/757] Move payment method fetching logic to Model, rewrite tests for EveryPay component --- .../registrar/payments_controller.rb | 6 +- app/models/payment_order.rb | 12 ++- app/models/payment_orders/every_pay.rb | 2 + test/fixtures/invoice_items.yml | 7 ++ test/fixtures/invoices.yml | 27 ++++++ test/fixtures/payment_orders.yml | 20 ++++ .../invoices/payment_callback_test.rb | 2 +- test/models/payment_orders/bank_link_test.rb | 20 ++-- test/models/payment_orders/every_pay_test.rb | 96 ++++++++++--------- test/models/payment_orders_test.rb | 24 +++-- 10 files changed, 139 insertions(+), 77 deletions(-) create mode 100644 test/fixtures/payment_orders.yml diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index 736cfe01c..a988dc57e 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -10,11 +10,9 @@ class Registrar def pay invoice = Invoice.find(params[:invoice_id]) - payment_type = params[:bank] + channel = params[:bank] - channel = PaymentOrder.type_from_shortname(payment_type) - - @payment_order = PaymentOrder.new(type: channel, invoice: invoice) + @payment_order = PaymentOrder.create_with_type(type: channel, invoice: invoice) @payment_order.save && @payment_order.reload @payment_order.return_url = registrar_return_payment_with_url(@payment_order) diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index 5449262ba..bc10528fc 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -29,6 +29,12 @@ class PaymentOrder < ApplicationRecord supported end + def self.create_with_type(type:, invoice:) + channel = PaymentOrder.type_from_shortname(type) + + PaymentOrder.new(type: channel, invoice: invoice) + end + # Name of configuration namespace def self.config_namespace_name; end @@ -67,11 +73,11 @@ class PaymentOrder < ApplicationRecord end def complete_transaction + return NoMethodError unless payment_received? + paid! transaction = composed_transaction - transaction.save! - transaction.bind_invoice(invoice.number) - + transaction.save! && transaction.bind_invoice(invoice.number) return unless transaction.errors.any? worded_errors = 'Failed to bind. ' diff --git a/app/models/payment_orders/every_pay.rb b/app/models/payment_orders/every_pay.rb index 2f848fa82..2695c20e0 100644 --- a/app/models/payment_orders/every_pay.rb +++ b/app/models/payment_orders/every_pay.rb @@ -76,6 +76,8 @@ module PaymentOrders hmac_string = hmac_hash.map { |key, _v| "#{key}=#{hmac_hash[key]}" }.join('&') expected_hmac = OpenSSL::HMAC.hexdigest('sha1', KEY, hmac_string) expected_hmac == response['hmac'] + rescue NoMethodError + false end def valid_amount? diff --git a/test/fixtures/invoice_items.yml b/test/fixtures/invoice_items.yml index 19409df81..a61ef4eb0 100644 --- a/test/fixtures/invoice_items.yml +++ b/test/fixtures/invoice_items.yml @@ -4,3 +4,10 @@ one: quantity: 1 unit: pc invoice: one + +two: + description: Acme services + price: 5 + quantity: 1 + unit: pc + invoice: unpaid diff --git a/test/fixtures/invoices.yml b/test/fixtures/invoices.yml index bc9fa2900..6c0dca021 100644 --- a/test/fixtures/invoices.yml +++ b/test/fixtures/invoices.yml @@ -24,3 +24,30 @@ one: reference_no: 13 number: 1 description: Order nr 1 from registrar 1234567 second number 2345678 + +unpaid: + issue_date: <%= Date.parse '2010-07-05' %> + due_date: <%= Date.parse '2010-07-06' %> + currency: EUR + seller_name: Seller Ltd + seller_reg_no: 1234 + seller_iban: US75512108001245126199 + seller_bank: Main Bank + seller_swift: swift + seller_email: info@seller.test + seller_country_code: US + seller_street: Main Street 1 + seller_city: New York + seller_contact_name: John Doe + buyer: bestnames + buyer_name: Buyer Ltd + buyer_reg_no: 12345 + buyer_email: info@buyer.test + buyer_country_code: GB + buyer_street: Main Street 2 + buyer_city: London + vat_rate: 0.1 + total: 16.50 + reference_no: 13 + number: 2 + description: Order nr 2 from registrar 1234567 second number 2345678 diff --git a/test/fixtures/payment_orders.yml b/test/fixtures/payment_orders.yml new file mode 100644 index 000000000..b39d309dc --- /dev/null +++ b/test/fixtures/payment_orders.yml @@ -0,0 +1,20 @@ +issued: + type: PaymentOrders::EveryPay + status: issued + invoice: one + response: + notes: + +paid: + type: PaymentOrders::EveryPay + status: paid + invoice: one + response: "{}" + notes: + +cancelled: + type: PaymentOrders::Seb + status: cancelled + invoice: one + response: "{}" + notes: User failed to make payment. Bank responded with code 1911 diff --git a/test/integration/registrar_area/invoices/payment_callback_test.rb b/test/integration/registrar_area/invoices/payment_callback_test.rb index 23db55e84..c26ffa8c0 100644 --- a/test/integration/registrar_area/invoices/payment_callback_test.rb +++ b/test/integration/registrar_area/invoices/payment_callback_test.rb @@ -12,7 +12,7 @@ class PaymentCallbackTest < ApplicationIntegrationTest invoice = payable_invoice assert_matching_bank_transaction_exists(invoice) - request_params = every_pay_request_params.merge(invoice_id: invoice.id) + request_params = every_pay_request_params.merge(payment_order: invoice.id) post "/registrar/pay/callback/every_pay", params: request_params assert_response :ok diff --git a/test/models/payment_orders/bank_link_test.rb b/test/models/payment_orders/bank_link_test.rb index f1069819c..775e82cf9 100644 --- a/test/models/payment_orders/bank_link_test.rb +++ b/test/models/payment_orders/bank_link_test.rb @@ -36,11 +36,11 @@ class BankLinkTest < ActiveSupport::TestCase 'VK_MAC': 'CZZvcptkxfuOxRR88JmT4N+Lw6Hs4xiQfhBWzVYldAcRTQbcB/lPf9MbJzBE4e1/HuslQgkdCFt5g1xW2lJwrVDBQTtP6DAHfvxU3kkw7dbk0IcwhI4whUl68/QCwlXEQTAVDv1AFnGVxXZ40vbm/aLKafBYgrirB5SUe8+g9FE=', 'VK_ENCODING': 'UTF-8', 'VK_LANG': 'ENG' - }.with_indifferent_access + }.as_json - @completed_bank_link = PaymentOrders::BankLink.new( - 'seb', @invoice, { response: params } - ) + @completed_bank_link = PaymentOrder.new(type: 'PaymentOrders::Seb', + invoice: @invoice, + response: params) end def create_cancelled_bank_link @@ -55,16 +55,18 @@ class BankLinkTest < ActiveSupport::TestCase 'VK_MAC': 'PElE2mYXXN50q2UBvTuYU1rN0BmOQcbafPummDnWfNdm9qbaGQkGyOn0XaaFGlrdEcldXaHBbZKUS0HegIgjdDfl2NOk+wkLNNH0Iu38KzZaxHoW9ga7vqiyKHC8dcxkHiO9HsOnz77Sy/KpWCq6cz48bi3fcMgo+MUzBMauWoQ=', 'VK_ENCODING': 'UTF-8', 'VK_LANG': 'ENG' - }.with_indifferent_access + }.as_json - @cancelled_bank_link = PaymentOrders::BankLink.new( - 'seb', @invoice, { response: params } - ) + @cancelled_bank_link = PaymentOrder.new(type: 'PaymentOrders::Seb', + invoice: @invoice, + response: params) end def create_new_bank_link params = { return_url: 'return.url', response_url: 'response.url' } - @new_bank_link = PaymentOrders::BankLink.new('seb', @invoice, params) + @new_bank_link = PaymentOrder.new(type: 'PaymentOrders::Seb', invoice: @invoice) + @new_bank_link.return_url = 'return.url' + @new_bank_link.response_url = 'response.url' end def test_response_is_not_valid_when_it_is_missing diff --git a/test/models/payment_orders/every_pay_test.rb b/test/models/payment_orders/every_pay_test.rb index 202efc1b7..1e560f32a 100644 --- a/test/models/payment_orders/every_pay_test.rb +++ b/test/models/payment_orders/every_pay_test.rb @@ -4,36 +4,38 @@ class EveryPayTest < ActiveSupport::TestCase def setup super - @invoice = invoices(:one) + @invoice = invoices(:unpaid) @invoice.update!(total: 12) - params = { - response: - { - utf8: '✓', - _method: 'put', - authenticity_token: 'OnA69vbccQtMt3C9wxEWigs5Gpf/7z+NoxRCMkFPlTvaATs8+OgMKF1I4B2f+vuK37zCgpWZaWWtyuslRRSwkw==', - nonce: '392f2d7748bc8cb0d14f263ebb7b8932', - timestamp: '1524136727', - api_username: 'ca8d6336dd750ddb', - transaction_result: 'completed', - payment_reference: 'fd5d27b59a1eb597393cd5ff77386d6cab81ae05067e18d530b10f3802e30b56', - payment_state: 'settled', - amount: '12.00', - order_reference: 'e468a2d59a731ccc546f2165c3b1a6', - account_id: 'EUR3D1', - cc_type: 'master_card', - cc_last_four_digits: '0487', - cc_month: '10', - cc_year: '2018', - cc_holder_name: 'John Doe', - hmac_fields: 'account_id,amount,api_username,cc_holder_name,cc_last_four_digits,cc_month,cc_type,cc_year,hmac_fields,nonce,order_reference,payment_reference,payment_state,timestamp,transaction_result', - hmac: 'efac1c732835668cd86023a7abc140506c692f0d', - invoice_id: '1', - }, - } - @every_pay = PaymentOrders::EveryPay.new('every_pay', @invoice, params) - @other_pay = PaymentOrders::EveryPay.new('every_pay', @invoice, {}) + response = { + "utf8": '✓', + "_method": 'put', + "authenticity_token": 'OnA69vbccQtMt3C9wxEWigs5Gpf/7z+NoxRCMkFPlTvaATs8+OgMKF1I4B2f+vuK37zCgpWZaWWtyuslRRSwkw=="', + "nonce": '392f2d7748bc8cb0d14f263ebb7b8932', + "timestamp": '1524136727', + "api_username": 'ca8d6336dd750ddb', + "transaction_result": 'completed', + "payment_reference": 'fd5d27b59a1eb597393cd5ff77386d6cab81ae05067e18d530b10f3802e30b56', + "payment_state": 'settled', + "amount": '12.00', + "order_reference": 'e468a2d59a731ccc546f2165c3b1a6', + "account_id": 'EUR3D1', + "cc_type": 'master_card', + "cc_last_four_digits": '0487', + "cc_month": '10', + "cc_year": '2018', + "cc_holder_name": 'John Doe', + "hmac_fields": 'account_id,amount,api_username,cc_holder_name,cc_last_four_digits,cc_month,cc_type,cc_year,hmac_fields,nonce,order_reference,payment_reference,payment_state,timestamp,transaction_result', + "hmac": 'efac1c732835668cd86023a7abc140506c692f0d', + "invoice_id": '2' + }.as_json + + @successful_payment = PaymentOrder.new(type: 'PaymentOrders::EveryPay', + invoice: @invoice, + response: response) + + @failed_payment = @successful_payment.dup + @failed_payment.response['payment_state'] = 'cancelled' travel_to Time.zone.parse('2018-04-01 00:30:00 +0000') end @@ -47,37 +49,37 @@ class EveryPayTest < ActiveSupport::TestCase transaction_type: 'charge', hmac_fields: 'account_id,amount,api_username,callback_url,customer_url,hmac_fields,nonce,order_reference,timestamp,transaction_type' } - form_fields = @every_pay.form_fields + form_fields = @successful_payment.form_fields expected_fields.each do |k, v| assert_equal(v, form_fields[k]) end end def test_valid_response_from_intermediary? - assert(@every_pay.valid_response_from_intermediary?) - refute(@other_pay.valid_response_from_intermediary?) + assert(@successful_payment.valid_response_from_intermediary?) + + @failed_payment.response = { 'what': 'definitely not valid everypay response' } + refute(@failed_payment.valid_response_from_intermediary?) + end + + def test_valid_and_successful_payment_is_determined + assert(@successful_payment.payment_received?) + refute(@failed_payment.payment_received?) end def test_settled_payment? - assert(@every_pay.settled_payment?) - other_pay = PaymentOrders::EveryPay.new( - 'every_pay', @invoice, {response: {payment_state: 'CANCELLED'}} - ) - refute(other_pay.settled_payment?) + assert(@successful_payment.settled_payment?) + refute(@failed_payment.settled_payment?) end - def test_complete_transaction_calls_methods_on_transaction - mock_transaction = MiniTest::Mock.new - mock_transaction.expect(:sum= , '12.00', ['12.00']) - mock_transaction.expect(:paid_at= , Date.strptime('1524136727', '%s'), [Date.strptime('1524136727', '%s')]) - mock_transaction.expect(:buyer_name=, 'John Doe', ['John Doe']) - mock_transaction.expect(:save!, true) - mock_transaction.expect(:autobind_invoice, AccountActivity.new) + def test_successful_payment_creates_bank_transaction + @successful_payment.complete_transaction - BankTransaction.stub(:find_by, mock_transaction) do - @every_pay.complete_transaction - end + transaction = BankTransaction.find_by( + sum: @successful_payment.response['amount'], + buyer_name: @successful_payment.response['cc_holder_name'] + ) - mock_transaction.verify + assert transaction.present? end end diff --git a/test/models/payment_orders_test.rb b/test/models/payment_orders_test.rb index 252ba0582..3027bb60e 100644 --- a/test/models/payment_orders_test.rb +++ b/test/models/payment_orders_test.rb @@ -5,23 +5,21 @@ class PaymentOrdersTest < ActiveSupport::TestCase super @original_methods = ENV['payment_methods'] - @original_seb_URL = ENV['seb_payment_url'] - ENV['payment_methods'] = 'seb, swed, credit_card' + @original_seb_url = ENV['seb_payment_url'] + ENV['payment_methods'] = 'seb, swed, every_pay' ENV['seb_payment_url'] = nil - @not_implemented_payment = PaymentOrders::Base.new( - 'not_implemented', Invoice.new - ) + @not_implemented_payment = PaymentOrder.new(invoice: Invoice.new) end def teardown super ENV['payment_methods'] = @original_methods - ENV['seb_payment_url'] = @original_seb_URL + ENV['seb_payment_url'] = @original_seb_url end def test_variable_assignment - assert_equal 'not_implemented', @not_implemented_payment.type + assert_nil @not_implemented_payment.type assert_nil @not_implemented_payment.response_url assert_nil @not_implemented_payment.return_url assert_nil @not_implemented_payment.form_url @@ -45,14 +43,14 @@ class PaymentOrdersTest < ActiveSupport::TestCase end end - def test_that_create_with_type_raises_argument_error - assert_raise ArgumentError do - PaymentOrders.create_with_type("not_implemented", Invoice.new) + def test_can_not_create_order_with_invalid_type + assert_raise NameError do + PaymentOrder.create_with_type(type: 'not_implemented', invoice: Invoice.new) end end - def test_create_with_correct_subclass - payment = PaymentOrders.create_with_type('seb', Invoice.new) - assert_equal PaymentOrders::BankLink, payment.class + def test_can_create_with_correct_subclass + payment = PaymentOrder.create_with_type(type: 'seb', invoice: Invoice.new) + assert_equal PaymentOrders::Seb, payment.class end end From 6418924fafda1a7e1b46f1f2f4c5670b13e15d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Feb 2020 09:42:26 +0200 Subject: [PATCH 327/757] Cover EveryPay / BankLink payments with tests --- .../registrar/payments_controller.rb | 7 +- app/models/payment_order.rb | 15 ++-- test/fixtures/payment_orders.yml | 13 +++- .../invoices/payment_callback_test.rb | 44 ++++++------ .../invoices/payment_return_test.rb | 68 ++++++++++++++++--- test/models/payment_orders/bank_link_test.rb | 38 ++++++----- test/models/payment_orders_test.rb | 21 ++++++ 7 files changed, 145 insertions(+), 61 deletions(-) diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index a988dc57e..e356f7049 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -57,14 +57,9 @@ class Registrar private def check_supported_payment_method - return if supported_payment_method? + return if PaymentOrder.supported_method?(params[:bank], shortname: true) raise(StandardError, 'Not supported payment method') end - - def supported_payment_method? - method_name = PaymentOrder.type_from_shortname(params[:bank]) - PaymentOrder.supported_method?(method_name) - end end end diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index bc10528fc..b6fea65be 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -30,7 +30,7 @@ class PaymentOrder < ApplicationRecord end def self.create_with_type(type:, invoice:) - channel = PaymentOrder.type_from_shortname(type) + channel = ('PaymentOrders::' + type.camelize).constantize PaymentOrder.new(type: channel, invoice: invoice) end @@ -39,7 +39,7 @@ class PaymentOrder < ApplicationRecord def self.config_namespace_name; end def supported_payment_method - return if PaymentOrder.supported_method? type.constantize + return if PaymentOrder.supported_method?(type) errors.add(:type, 'is not supported') end @@ -50,11 +50,12 @@ class PaymentOrder < ApplicationRecord errors.add(:invoice, 'is already paid') end - def self.type_from_shortname(shortname) - ('PaymentOrders::' + shortname.camelize).constantize - end - - def self.supported_method?(some_class) + def self.supported_method?(name, shortname: false) + some_class = if shortname + ('PaymentOrders::' + name.camelize).constantize + else + name.constantize + end supported_methods.include? some_class rescue NameError false diff --git a/test/fixtures/payment_orders.yml b/test/fixtures/payment_orders.yml index b39d309dc..39289b7d1 100644 --- a/test/fixtures/payment_orders.yml +++ b/test/fixtures/payment_orders.yml @@ -1,20 +1,27 @@ -issued: +everypay_issued: type: PaymentOrders::EveryPay status: issued invoice: one response: notes: +banklink_issued: + type: PaymentOrders::Seb + status: issued + invoice: one + response: + notes: + paid: type: PaymentOrders::EveryPay status: paid - invoice: one + invoice: unpaid response: "{}" notes: cancelled: type: PaymentOrders::Seb status: cancelled - invoice: one + invoice: unpaid response: "{}" notes: User failed to make payment. Bank responded with code 1911 diff --git a/test/integration/registrar_area/invoices/payment_callback_test.rb b/test/integration/registrar_area/invoices/payment_callback_test.rb index c26ffa8c0..94ca6e373 100644 --- a/test/integration/registrar_area/invoices/payment_callback_test.rb +++ b/test/integration/registrar_area/invoices/payment_callback_test.rb @@ -6,34 +6,40 @@ class PaymentCallbackTest < ApplicationIntegrationTest @user = users(:api_bestnames) sign_in @user + + @payment_order = payment_orders(:everypay_issued) + @invoice = invoices(:one) + @invoice.update!(account_activity: nil, total: 12) end def test_every_pay_callback_returns_status_200 - invoice = payable_invoice - assert_matching_bank_transaction_exists(invoice) - - request_params = every_pay_request_params.merge(payment_order: invoice.id) - post "/registrar/pay/callback/every_pay", params: request_params + request_params = every_pay_request_params + post "/registrar/pay/callback/#{@payment_order.id}", params: request_params assert_response :ok end + def test_invoice_is_marked_as_paid + request_params = every_pay_request_params + post "/registrar/pay/callback/#{@payment_order.id}", params: request_params + + assert @payment_order.invoice.paid? + end + + def failure_log_is_created_if_unsuccessful_payment + request_params = every_pay_request_params.dup + request_params['payment_state'] = 'cancelled' + request_params['transaction_result'] = 'failed' + + post "/registrar/pay/callback/#{@payment_order.id}", params: request_params + + @payment_order.reload + assert @payment_order.cancelled? + assert_includes @payment_order.notes, 'Payment state: cancelled' + end + private - def payable_invoice - invoice = invoices(:one) - invoice.update!(account_activity: nil) - invoice - end - - def assert_matching_bank_transaction_exists(invoice) - assert BankTransaction.find_by( - description: invoice.description, - currency: invoice.currency, - iban: invoice.seller_iban - ), 'Matching bank transaction should exist' - end - def every_pay_request_params { nonce: "392f2d7748bc8cb0d14f263ebb7b8932", diff --git a/test/integration/registrar_area/invoices/payment_return_test.rb b/test/integration/registrar_area/invoices/payment_return_test.rb index de65cccb0..a4adb8160 100644 --- a/test/integration/registrar_area/invoices/payment_return_test.rb +++ b/test/integration/registrar_area/invoices/payment_return_test.rb @@ -8,6 +8,9 @@ class PaymentReturnTest < ApplicationIntegrationTest sign_in @user @invoice = invoices(:one) + @invoice.update!(account_activity: nil, total: 12) + @everypay_order = payment_orders(:everypay_issued) + @banklink_order = payment_orders(:banklink_issued) end def every_pay_request_params @@ -57,33 +60,78 @@ class PaymentReturnTest < ApplicationIntegrationTest } end - def test_every_pay_return_creates_activity_redirects_to_invoice_path - request_params = every_pay_request_params.merge(invoice_id: @invoice.id) + def test_successful_bank_payment_marks_invoice_as_paid + @invoice.update!(account_activity: nil) + request_params = bank_link_request_params - post "/registrar/pay/return/every_pay", params: request_params + post "/registrar/pay/return/#{@banklink_order.id}", params: request_params + + @banklink_order.reload + assert @banklink_order.invoice.paid? + end + + def test_every_pay_return_creates_activity_redirects_to_invoice_path + request_params = every_pay_request_params + + post "/registrar/pay/return/#{@everypay_order.id}", params: request_params assert_equal(302, response.status) assert_redirected_to(registrar_invoice_path(@invoice)) end - def test_Every_Pay_return_raises_RecordNotFound - request_params = every_pay_request_params.merge(invoice_id: "178907") + def test_every_pay_return_raises_record_not_found + request_params = every_pay_request_params assert_raises(ActiveRecord::RecordNotFound) do - post "/registrar/pay/return/every_pay", params: request_params + post '/registrar/pay/return/123456', params: request_params end end def test_bank_link_return_redirects_to_invoice_paths - request_params = bank_link_request_params.merge(invoice_id: @invoice.id) + request_params = bank_link_request_params - post "/registrar/pay/return/seb", params: request_params + post "/registrar/pay/return/#{@banklink_order.id}", params: request_params assert_equal(302, response.status) assert_redirected_to(registrar_invoice_path(@invoice)) end def test_bank_link_return - request_params = bank_link_request_params.merge(invoice_id: "178907") + request_params = bank_link_request_params assert_raises(ActiveRecord::RecordNotFound) do - post "/registrar/pay/return/seb", params: request_params + post '/registrar/pay/return/123456', params: request_params end end + + def test_marks_as_paid_and_adds_notes_if_failed_to_bind + request_params = bank_link_request_params + + post "/registrar/pay/return/#{@banklink_order.id}", params: request_params + post "/registrar/pay/return/#{@banklink_order.id}", params: request_params + @banklink_order.reload + + assert @banklink_order.notes.present? + assert @banklink_order.paid? + assert_includes @banklink_order.notes, 'Failed to bind' + end + + def test_failed_bank_link_payment_creates_brief_error_explanation + request_params = bank_link_request_params.dup + request_params['VK_SERVICE'] = '1911' + + post "/registrar/pay/return/#{@banklink_order.id}", params: request_params + + @banklink_order.reload + + assert_includes @banklink_order.notes, 'Bank responded with code 1911' + end + + def test_failed_every_pay_payment_creates_brief_error_explanation + request_params = every_pay_request_params.dup + request_params['payment_state'] = 'cancelled' + request_params['transaction_result'] = 'failed' + + post "/registrar/pay/return/#{@everypay_order.id}", params: request_params + + @everypay_order.reload + + assert_includes @everypay_order.notes, 'Payment state: cancelled' + end end diff --git a/test/models/payment_orders/bank_link_test.rb b/test/models/payment_orders/bank_link_test.rb index 775e82cf9..7f7897f5f 100644 --- a/test/models/payment_orders/bank_link_test.rb +++ b/test/models/payment_orders/bank_link_test.rb @@ -8,7 +8,7 @@ class BankLinkTest < ActiveSupport::TestCase super @invoice = invoices(:one) - @invoice.update!(total: 12) + @invoice.update!(account_activity: nil, total: 12) travel_to '2018-04-01 00:30 +0300' create_new_bank_link @@ -63,7 +63,6 @@ class BankLinkTest < ActiveSupport::TestCase end def create_new_bank_link - params = { return_url: 'return.url', response_url: 'response.url' } @new_bank_link = PaymentOrder.new(type: 'PaymentOrders::Seb', invoice: @invoice) @new_bank_link.return_url = 'return.url' @new_bank_link.response_url = 'response.url' @@ -94,6 +93,20 @@ class BankLinkTest < ActiveSupport::TestCase assert_equal(expected_response, @new_bank_link.form_fields) end + def test_correct_channel_is_assigned + swed_link = PaymentOrder.create_with_type(type: 'swed', invoice: @invoice) + assert_equal swed_link.channel, 'Swed' + assert_equal swed_link.class.config_namespace_name, 'swed' + + seb_link = PaymentOrder.create_with_type(type: 'seb', invoice: @invoice) + assert_equal seb_link.channel, 'Seb' + assert_equal seb_link.class.config_namespace_name, 'seb' + + lhv_link = PaymentOrder.create_with_type(type: 'lhv', invoice: @invoice) + assert_equal lhv_link.channel, 'Lhv' + assert_equal lhv_link.class.config_namespace_name, 'lhv' + end + def test_valid_success_response_from_intermediary? assert(@completed_bank_link.valid_response_from_intermediary?) end @@ -107,21 +120,14 @@ class BankLinkTest < ActiveSupport::TestCase refute(@cancelled_bank_link.settled_payment?) end - def test_complete_transaction_calls_methods_on_transaction - mock_transaction = MiniTest::Mock.new - mock_transaction.expect(:sum= , '12.00', ['12.00']) - mock_transaction.expect(:bank_reference= , '1', ['1']) - mock_transaction.expect(:buyer_bank_code= , 'testvpos', ['testvpos']) - mock_transaction.expect(:buyer_iban= , '1234', ['1234']) - mock_transaction.expect(:paid_at= , Date.parse('2018-04-01 00:30:00 +0300'), [Time.parse('2018-04-01T00:30:00+0300')]) - mock_transaction.expect(:buyer_name=, 'John Doe', ['John Doe']) - mock_transaction.expect(:save!, true) - mock_transaction.expect(:autobind_invoice, AccountActivity.new) + def test_successful_payment_creates_bank_transaction + @completed_bank_link.complete_transaction - BankTransaction.stub(:find_by, mock_transaction) do - @completed_bank_link.complete_transaction - end + transaction = BankTransaction.find_by( + sum: @completed_bank_link.response['VK_AMOUNT'], + buyer_name: @completed_bank_link.response['VK_SND_NAME'] + ) - mock_transaction.verify + assert transaction.present? end end diff --git a/test/models/payment_orders_test.rb b/test/models/payment_orders_test.rb index 3027bb60e..3f72dcf8f 100644 --- a/test/models/payment_orders_test.rb +++ b/test/models/payment_orders_test.rb @@ -43,12 +43,33 @@ class PaymentOrdersTest < ActiveSupport::TestCase end end + def test_can_not_create_order_for_paid_invoice + invoice = invoices(:one) + payment_order = PaymentOrder.create_with_type(type: 'every_pay', invoice: invoice) + assert payment_order.invalid? + assert_includes payment_order.errors[:invoice], 'is already paid' + end + + def test_order_without_channel_is_invalid + payment_order = PaymentOrder.new + assert payment_order.invalid? + assert_includes payment_order.errors[:type], 'is not supported' + end + def test_can_not_create_order_with_invalid_type assert_raise NameError do PaymentOrder.create_with_type(type: 'not_implemented', invoice: Invoice.new) end end + def test_supported_method_bool_does_not_fail + assert_not PaymentOrder.supported_method?('not_implemented', shortname: true) + assert PaymentOrder.supported_method?('every_pay', shortname: true) + + assert_not PaymentOrder.supported_method?('PaymentOrders::NonExistant') + assert PaymentOrder.supported_method?('PaymentOrders::EveryPay') + end + def test_can_create_with_correct_subclass payment = PaymentOrder.create_with_type(type: 'seb', invoice: Invoice.new) assert_equal PaymentOrders::Seb, payment.class From 5d56998e21e382fb8f7b76bf49d5ed5f63cdf78e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 4 Feb 2020 15:53:57 +0200 Subject: [PATCH 328/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14a0bba2b..8a14ba1c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +04.02.2020 +* SimpleIDN gem update to 0.0.9 [#1508](https://github.com/internetee/registry/pull/1508) + 31.01.2020 * Instant payments marks specific invoice as paid [#1500](https://github.com/internetee/registry/issues/1500) * Sending invoice payment date to accounting [#1416](https://github.com/internetee/registry/issues/1416) From 934033cfbcffadff2bcc0d54e166e311c7b9a008 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 4 Feb 2020 18:34:50 +0500 Subject: [PATCH 329/757] Add test & validation to not to register blocked IDN domains via EPP Fixes https://github.com/internetee/registry/issues/1142#issuecomment-581889350 --- app/validators/domain_name_validator.rb | 4 ++- .../epp/domain/create/base_test.rb | 30 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/validators/domain_name_validator.rb b/app/validators/domain_name_validator.rb index 0d5638b37..2652c44d6 100644 --- a/app/validators/domain_name_validator.rb +++ b/app/validators/domain_name_validator.rb @@ -33,7 +33,9 @@ class DomainNameValidator < ActiveModel::EachValidator def validate_blocked(value) return true unless value - return false if BlockedDomain.where(name: value).count.positive? + return false if BlockedDomain.where(name: value).any? + return false if BlockedDomain.where(name: SimpleIDN.to_unicode(value)).any? + DNS::Zone.where(origin: value).count.zero? end end diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index ff8da3696..ffd56ffc5 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -144,6 +144,36 @@ class EppDomainCreateBaseTest < EppTestCase assert_epp_response :data_management_policy_violation end + def test_blocked_punicode_domain_cannot_be_registered + blocked_domain = 'blockedäöüõ.test' + assert BlockedDomain.find_by(name: blocked_domain) + + request_xml = <<-XML + + + + + + #{SimpleIDN.to_ascii('blockedäöüõ.test')} + #{contacts(:john).code} + + + + + #{'test' * 2000} + + + + + XML + + assert_no_difference 'Domain.count' do + post epp_create_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + assert_epp_response :data_management_policy_violation + end + def test_reserved_domain_cannot_be_registered_with_wrong_registration_code request_xml = <<-XML From 687e72d6d5cd09d11bf51b7557a4bec14aace158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 4 Feb 2020 17:42:59 +0200 Subject: [PATCH 330/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a14ba1c1..c0670abc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 04.02.2020 +* Fixed bug that allowed bypassing blocked domain validation using punycode [#1142](https://github.com/internetee/registry/issues/1142) * SimpleIDN gem update to 0.0.9 [#1508](https://github.com/internetee/registry/pull/1508) 31.01.2020 From 2645654aefbc4c3086395110e25cc647fc0857d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Feb 2020 18:36:06 +0200 Subject: [PATCH 331/757] Create System / Admin payment log --- .../admin/bank_statements_controller.rb | 2 +- .../admin/bank_transactions_controller.rb | 2 +- app/models/bank_statement.rb | 8 ++- app/models/bank_transaction.rb | 63 +++++++++++++------ app/models/payment_order.rb | 4 +- app/models/payment_orders/admin_payment.rb | 9 +++ app/models/payment_orders/system_payment.rb | 9 +++ test/models/payment_orders/bank_link_test.rb | 14 ----- test/models/payment_orders_test.rb | 26 ++++++++ test/tasks/invoices/process_payments_test.rb | 26 +++++++- 10 files changed, 122 insertions(+), 41 deletions(-) create mode 100644 app/models/payment_orders/admin_payment.rb create mode 100644 app/models/payment_orders/system_payment.rb diff --git a/app/controllers/admin/bank_statements_controller.rb b/app/controllers/admin/bank_statements_controller.rb index a70387317..1e3b31bf5 100644 --- a/app/controllers/admin/bank_statements_controller.rb +++ b/app/controllers/admin/bank_statements_controller.rb @@ -60,7 +60,7 @@ module Admin end def bind_invoices - @bank_statement.bind_invoices + @bank_statement.bind_invoices(manual: true) flash[:notice] = t('invoices_were_fully_binded') if @bank_statement.fully_binded? flash[:warning] = t('invoices_were_partially_binded') if @bank_statement.partially_binded? diff --git a/app/controllers/admin/bank_transactions_controller.rb b/app/controllers/admin/bank_transactions_controller.rb index 1ce62b279..348cadc64 100644 --- a/app/controllers/admin/bank_transactions_controller.rb +++ b/app/controllers/admin/bank_transactions_controller.rb @@ -34,7 +34,7 @@ module Admin end def bind - if @bank_transaction.bind_invoice(params[:invoice_no]) + if @bank_transaction.bind_invoice(params[:invoice_no], manual: true) flash[:notice] = I18n.t('record_created') redirect_to [:admin, @bank_transaction] else diff --git a/app/models/bank_statement.rb b/app/models/bank_statement.rb index 8d4608f64..ace1e922d 100644 --- a/app/models/bank_statement.rb +++ b/app/models/bank_statement.rb @@ -45,7 +45,7 @@ class BankStatement < ApplicationRecord buyer_name: row[83, 35].strip, document_no: row[118, 8].strip, description: row[126, 140].strip, - sum: BigDecimal.new(row[268, 12].strip) / BigDecimal.new('100.0'), + sum: BigDecimal(row[268, 12].strip) / BigDecimal('100.0'), reference_no: row[280, 35].strip } end @@ -80,7 +80,9 @@ class BankStatement < ApplicationRecord status == FULLY_BINDED end - def bind_invoices - bank_transactions.unbinded.each(&:autobind_invoice) + def bind_invoices(manual: false) + bank_transactions.unbinded.each do |transaction| + transaction.autobind_invoice(manual: manual) + end end end diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 792a32484..25c6b60e9 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -13,6 +13,7 @@ class BankTransaction < ApplicationRecord def binded_invoice return unless binded? + account_activity.invoice end @@ -31,28 +32,54 @@ class BankTransaction < ApplicationRecord end # For successful binding, reference number, invoice id and sum must match with the invoice - def autobind_invoice + def autobind_invoice(manual: false) return if binded? return unless registrar return unless invoice return unless invoice.payable? - create_activity(registrar, invoice) + channel = if manual + 'admin_payment' + else + 'system_payment' + end + record_system_payment(channel: channel, invoice: invoice, registrar: registrar) end - def bind_invoice(invoice_no) + def record_system_payment(channel: nil, invoice:, registrar:) + if channel.nil? + create_activity(invoice.buyer, invoice) + return + end + + payment_order = PaymentOrder.create_with_type(type: channel, invoice: invoice) + payment_order.save! + + if create_activity(registrar, invoice) + payment_order.paid! + else + payment_order.failed! + payment_order.notes = 'Failed to create activity' + payment_order.save! + end + end + + def bind_invoice(invoice_no, manual: false) if binded? errors.add(:base, I18n.t('transaction_is_already_binded')) return end invoice = Invoice.find_by(number: invoice_no) + errors.add(:base, I18n.t('invoice_was_not_found')) unless invoice + validate_invoice_data(invoice) + return if errors.any? - unless invoice - errors.add(:base, I18n.t('invoice_was_not_found')) - return - end + record_system_payment(channel: (manual ? 'admin_payment' : nil), invoice: invoice, + registrar: invoice.buyer) + end + def validate_invoice_data(invoice) if invoice.paid? errors.add(:base, I18n.t('invoice_is_already_binded')) return @@ -63,23 +90,19 @@ class BankTransaction < ApplicationRecord return end - if invoice.total != sum - errors.add(:base, I18n.t('invoice_and_transaction_sums_do_not_match')) - return - end - - create_activity(invoice.buyer, invoice) + errors.add(:base, I18n.t('invoice_and_transaction_sums_do_not_match')) if invoice.total != sum end def create_activity(registrar, invoice) - ActiveRecord::Base.transaction do - create_account_activity!(account: registrar.cash_account, - invoice: invoice, - sum: invoice.subtotal, - currency: currency, - description: description, - activity_type: AccountActivity::ADD_CREDIT) + activity = AccountActivity.new(account: registrar.cash_account, + invoice: invoice, sum: invoice.subtotal, + currency: currency, description: description, + activity_type: AccountActivity::ADD_CREDIT) + if activity.save reset_pending_registrar_balance_reload + true + else + false end end diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index b6fea65be..c2cc883a6 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -4,7 +4,9 @@ class PaymentOrder < ApplicationRecord PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].to_s.strip.split(', ').freeze PAYMENT_BANKLINK_BANKS = ENV['payments_banks'].to_s.strip.split(', ').freeze - PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS].flatten.freeze + INTERNAL_PAYMENT_METHODS = %w[admin_payment system_payment].freeze + PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS, + INTERNAL_PAYMENT_METHODS].flatten.freeze belongs_to :invoice, optional: false diff --git a/app/models/payment_orders/admin_payment.rb b/app/models/payment_orders/admin_payment.rb new file mode 100644 index 000000000..05ae061fb --- /dev/null +++ b/app/models/payment_orders/admin_payment.rb @@ -0,0 +1,9 @@ +module PaymentOrders + class AdminPayment < PaymentOrder + CONFIG_NAMESPACE = 'admin_payment'.freeze + + def self.config_namespace_name + CONFIG_NAMESPACE + end + end +end diff --git a/app/models/payment_orders/system_payment.rb b/app/models/payment_orders/system_payment.rb new file mode 100644 index 000000000..47c75ebe3 --- /dev/null +++ b/app/models/payment_orders/system_payment.rb @@ -0,0 +1,9 @@ +module PaymentOrders + class SystemPayment < PaymentOrder + CONFIG_NAMESPACE = 'system_payment'.freeze + + def self.config_namespace_name + CONFIG_NAMESPACE + end + end +end diff --git a/test/models/payment_orders/bank_link_test.rb b/test/models/payment_orders/bank_link_test.rb index 7f7897f5f..30d91cb7c 100644 --- a/test/models/payment_orders/bank_link_test.rb +++ b/test/models/payment_orders/bank_link_test.rb @@ -93,20 +93,6 @@ class BankLinkTest < ActiveSupport::TestCase assert_equal(expected_response, @new_bank_link.form_fields) end - def test_correct_channel_is_assigned - swed_link = PaymentOrder.create_with_type(type: 'swed', invoice: @invoice) - assert_equal swed_link.channel, 'Swed' - assert_equal swed_link.class.config_namespace_name, 'swed' - - seb_link = PaymentOrder.create_with_type(type: 'seb', invoice: @invoice) - assert_equal seb_link.channel, 'Seb' - assert_equal seb_link.class.config_namespace_name, 'seb' - - lhv_link = PaymentOrder.create_with_type(type: 'lhv', invoice: @invoice) - assert_equal lhv_link.channel, 'Lhv' - assert_equal lhv_link.class.config_namespace_name, 'lhv' - end - def test_valid_success_response_from_intermediary? assert(@completed_bank_link.valid_response_from_intermediary?) end diff --git a/test/models/payment_orders_test.rb b/test/models/payment_orders_test.rb index 3f72dcf8f..67267fec0 100644 --- a/test/models/payment_orders_test.rb +++ b/test/models/payment_orders_test.rb @@ -43,6 +43,32 @@ class PaymentOrdersTest < ActiveSupport::TestCase end end + def test_correct_channel_is_assigned + everypay_channel = PaymentOrder.create_with_type(type: 'every_pay', invoice: @invoice) + assert_equal everypay_channel.channel, 'EveryPay' + assert_equal everypay_channel.class.config_namespace_name, 'every_pay' + + swed_channel = PaymentOrder.create_with_type(type: 'swed', invoice: @invoice) + assert_equal swed_channel.channel, 'Swed' + assert_equal swed_channel.class.config_namespace_name, 'swed' + + seb_channel = PaymentOrder.create_with_type(type: 'seb', invoice: @invoice) + assert_equal seb_channel.channel, 'Seb' + assert_equal seb_channel.class.config_namespace_name, 'seb' + + lhv_channel = PaymentOrder.create_with_type(type: 'lhv', invoice: @invoice) + assert_equal lhv_channel.channel, 'Lhv' + assert_equal lhv_channel.class.config_namespace_name, 'lhv' + + admin_channel = PaymentOrder.create_with_type(type: 'admin_payment', invoice: @invoice) + assert_equal admin_channel.channel, 'AdminPayment' + assert_equal admin_channel.class.config_namespace_name, 'admin_payment' + + system_channel = PaymentOrder.create_with_type(type: 'system_payment', invoice: @invoice) + assert_equal system_channel.channel, 'SystemPayment' + assert_equal system_channel.class.config_namespace_name, 'system_payment' + end + def test_can_not_create_order_for_paid_invoice invoice = invoices(:one) payment_order = PaymentOrder.create_with_type(type: 'every_pay', invoice: invoice) diff --git a/test/tasks/invoices/process_payments_test.rb b/test/tasks/invoices/process_payments_test.rb index 8c3b6ec73..02855e9fa 100644 --- a/test/tasks/invoices/process_payments_test.rb +++ b/test/tasks/invoices/process_payments_test.rb @@ -58,6 +58,30 @@ class ProcessPaymentsTaskTest < ActiveSupport::TestCase assert @invoice.paid? end + def test_attaches_paid_payment_order_to_invoice + assert @invoice.unpaid? + + capture_io { run_task } + @invoice.reload + + payment_order = @invoice.payment_orders.last + assert_equal 'PaymentOrders::SystemPayment', payment_order.type + assert payment_order.paid? + end + + def test_attaches_failed_payment_order_to_invoice + assert @invoice.unpaid? + account = accounts(:cash) + account.update!(registrar: registrars(:goodnames)) + + capture_io { run_task } + @invoice.reload + + payment_order = @invoice.payment_orders.last + assert_equal 'PaymentOrders::SystemPayment', payment_order.type + assert payment_order.failed? + end + def test_output assert_output "Transactions processed: 1\n" do run_task @@ -75,4 +99,4 @@ class ProcessPaymentsTaskTest < ActiveSupport::TestCase invoice.update!({ account_activity: nil, cancelled_at: nil }.merge(attributes)) invoice end -end \ No newline at end of file +end From 37e7def669a9334bfe6f9decbe9ae0619b20d308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 4 Feb 2020 21:11:30 +0200 Subject: [PATCH 332/757] Provide better context for EveryPay / Banklink payment state alerts --- app/controllers/registrar/payments_controller.rb | 7 +++---- config/locales/registrar/payments.en.yml | 7 +++++++ 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 config/locales/registrar/payments.en.yml diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index e356f7049..c1944767f 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -29,14 +29,13 @@ class Registrar @payment_order.complete_transaction if @payment_order.invoice.paid? - flash[:notice] = t(:pending_applied) + flash[:notice] = t('.payment_successful') else - # flash[:alert] = t(:something_wrong) - flash[:alert] = 'We fucked up' + flash[:alert] = t('.successful_payment_backend_error') end else @payment_order.create_failure_report - flash[:alert] = t(:something_wrong) + flash[:alert] = t('.payment_not_received') end redirect_to registrar_invoice_path(@payment_order.invoice) end diff --git a/config/locales/registrar/payments.en.yml b/config/locales/registrar/payments.en.yml new file mode 100644 index 000000000..9c817e0ea --- /dev/null +++ b/config/locales/registrar/payments.en.yml @@ -0,0 +1,7 @@ +en: + registrar: + payments: + back: + payment_successful: 'Thank you! Payment received successfully.' + successful_payment_backend_error: 'We received your payment, but something went wrong on our side. Please contact us via email or phone.' + payment_not_received: 'Payment was unsuccessful. Please make sure you have enough funds on your account and try again.' From 5393130e34bc869bd42fc4c461059041c88f161a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 5 Feb 2020 09:15:56 +0200 Subject: [PATCH 333/757] Rename create_payment_method to create_internal_payment_record --- app/models/bank_transaction.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 25c6b60e9..105f7d14f 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -43,10 +43,11 @@ class BankTransaction < ApplicationRecord else 'system_payment' end - record_system_payment(channel: channel, invoice: invoice, registrar: registrar) + create_internal_payment_record(channel: channel, invoice: invoice, + registrar: registrar) end - def record_system_payment(channel: nil, invoice:, registrar:) + def create_internal_payment_record(channel: nil, invoice:, registrar:) if channel.nil? create_activity(invoice.buyer, invoice) return @@ -75,8 +76,8 @@ class BankTransaction < ApplicationRecord validate_invoice_data(invoice) return if errors.any? - record_system_payment(channel: (manual ? 'admin_payment' : nil), invoice: invoice, - registrar: invoice.buyer) + create_internal_payment_record(channel: (manual ? 'admin_payment' : nil), invoice: invoice, + registrar: invoice.buyer) end def validate_invoice_data(invoice) From fe8d1d1f0b0b7ffba5a779a6faaef115ced16cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 5 Feb 2020 09:16:24 +0200 Subject: [PATCH 334/757] Show user only allowed customer-scoped payment methods --- app/models/payment_order.rb | 1 + app/views/registrar/invoices/show.haml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index c2cc883a6..3d788913b 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -7,6 +7,7 @@ class PaymentOrder < ApplicationRecord INTERNAL_PAYMENT_METHODS = %w[admin_payment system_payment].freeze PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS, INTERNAL_PAYMENT_METHODS].flatten.freeze + CUSTOMER_PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS].flatten.freeze belongs_to :invoice, optional: false diff --git a/app/views/registrar/invoices/show.haml b/app/views/registrar/invoices/show.haml index d987241b1..5e6104091 100644 --- a/app/views/registrar/invoices/show.haml +++ b/app/views/registrar/invoices/show.haml @@ -17,4 +17,4 @@ - if @invoice.payable? .row.semifooter - .col-md-6-offset-6.text-right= render 'registrar/invoices/partials/banklinks', locals: { payment_channels: PaymentOrder::PAYMENT_METHODS } + .col-md-6-offset-6.text-right= render 'registrar/invoices/partials/banklinks', locals: { payment_channels: PaymentOrder::CUSTOMER_PAYMENT_METHODS } From 1a594877243bea76a3dc42c907ea8837d56a19c7 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 29 Jan 2020 13:40:19 +0500 Subject: [PATCH 335/757] Raise ruby version to 2.5.7, raise some gem versions --- .ruby-version | 2 +- Gemfile.lock | 151 ++++++++++++++++++----------------- config/initializers/money.rb | 4 +- 3 files changed, 83 insertions(+), 74 deletions(-) diff --git a/.ruby-version b/.ruby-version index e30309f73..35d16fb1a 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.4.7 +2.5.7 diff --git a/Gemfile.lock b/Gemfile.lock index 23aa90a51..6c374892f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,7 +27,7 @@ GIT GIT remote: https://github.com/internetee/epp.git - revision: 76f9fd487d0ca3865b6f706c5a72703951c03996 + revision: af7cefda37ac81d14b1d12641cde410776082d59 branch: master specs: epp (1.5.0) @@ -97,9 +97,9 @@ GEM tzinfo (~> 1.1) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - airbrake (9.4.5) - airbrake-ruby (~> 4.7) - airbrake-ruby (4.7.1) + airbrake (10.0.1) + airbrake-ruby (~> 4.13) + airbrake-ruby (4.13.0) rbtree3 (~> 0.5) akami (1.3.1) gyoku (>= 0.4.0) @@ -109,19 +109,15 @@ GEM actionpack activesupport (>= 3.0.0) rspec - autoprefixer-rails (9.6.5) + autoprefixer-rails (9.7.4) execjs - axiom-types (0.1.1) - descendants_tracker (~> 0.0.4) - ice_nine (~> 0.11.0) - thread_safe (~> 0.3, >= 0.3.1) bcrypt (3.1.13) bootstrap-sass (3.4.1) autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) - builder (3.2.3) - cancancan (3.0.1) - capybara (3.29.0) + builder (3.2.4) + cancancan (3.0.2) + capybara (3.31.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -132,8 +128,6 @@ GEM childprocess (3.0.0) chronic (0.10.2) coderay (1.1.0) - coercible (1.0.0) - descendants_tracker (~> 0.0.1) coffee-rails (4.2.2) coffee-script (>= 2.2.0) railties (>= 4.0.0) @@ -148,16 +142,14 @@ GEM unicode_utils (~> 1.4) crack (0.4.3) safe_yaml (~> 1.0.0) - crass (1.0.5) + crass (1.0.6) daemons (1.3.1) daemons-rails (1.2.1) daemons multi_json (~> 1.0) - data_migrate (6.0.5) + data_migrate (6.2.0) rails (>= 5.0) - database_cleaner (1.7.0) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) + database_cleaner (1.8.2) devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -168,21 +160,41 @@ GEM docile (1.3.2) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - equalizer (0.0.11) + dry-configurable (0.9.0) + concurrent-ruby (~> 1.0) + dry-core (~> 0.4, >= 0.4.7) + dry-container (0.7.2) + concurrent-ruby (~> 1.0) + dry-configurable (~> 0.1, >= 0.1.3) + dry-core (0.4.9) + concurrent-ruby (~> 1.0) + dry-equalizer (0.3.0) + dry-inflector (0.2.0) + dry-logic (1.0.5) + concurrent-ruby (~> 1.0) + dry-core (~> 0.2) + dry-equalizer (~> 0.2) + dry-types (1.2.2) + concurrent-ruby (~> 1.0) + dry-container (~> 0.3) + dry-core (~> 0.4, >= 0.4.4) + dry-equalizer (~> 0.3) + dry-inflector (~> 0.1, >= 0.1.2) + dry-logic (~> 1.0, >= 1.0.2) erubis (2.7.0) execjs (2.7.0) - ffi (1.11.1) + ffi (1.12.2) figaro (1.1.1) thor (~> 0.14) globalid (0.4.2) activesupport (>= 4.2.0) - grape (1.2.4) + grape (1.3.0) activesupport builder + dry-types (>= 1.1) mustermann-grape (~> 1.0.0) rack (>= 1.3.0) rack-accept - virtus (>= 1.0.0) gyoku (1.3.1) builder (>= 2.1.2) haml (5.1.2) @@ -197,10 +209,9 @@ GEM httpi (2.4.4) rack socksify - i18n (1.7.0) + i18n (1.8.2) concurrent-ruby (~> 1.0) i18n_data (0.8.0) - ice_nine (0.11.2) isikukood (0.1.2) iso8601 (0.8.6) jquery-rails (4.3.5) @@ -210,27 +221,27 @@ GEM jquery-ui-rails (5.0.5) railties (>= 3.2.16) json (1.8.6) - kaminari (1.1.1) + kaminari (1.2.0) activesupport (>= 4.1.0) - kaminari-actionview (= 1.1.1) - kaminari-activerecord (= 1.1.1) - kaminari-core (= 1.1.1) - kaminari-actionview (1.1.1) + kaminari-actionview (= 1.2.0) + kaminari-activerecord (= 1.2.0) + kaminari-core (= 1.2.0) + kaminari-actionview (1.2.0) actionview - kaminari-core (= 1.1.1) - kaminari-activerecord (1.1.1) + kaminari-core (= 1.2.0) + kaminari-activerecord (1.2.0) activerecord - kaminari-core (= 1.1.1) - kaminari-core (1.1.1) + kaminari-core (= 1.2.0) + kaminari-core (1.2.0) keystores (0.4.0) libxml-ruby (3.1.0) - loofah (2.3.1) + loofah (2.4.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) method_source (0.8.2) - mime-types (3.3) + mime-types (3.3.1) mime-types-data (~> 3.2015) mime-types-data (3.2019.1009) mina (0.3.1) @@ -239,22 +250,23 @@ GEM mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.10.3) - monetize (1.9.2) + monetize (1.9.4) money (~> 6.12) - money (6.13.4) + money (6.13.7) i18n (>= 0.6.4, <= 2) - money-rails (1.13.2) + money-rails (1.13.3) activesupport (>= 3.0) monetize (~> 1.9.0) money (~> 6.13.2) railties (>= 3.0) multi_json (1.14.1) - mustermann (1.0.3) - mustermann-grape (1.0.0) - mustermann (~> 1.0.0) + mustermann (1.1.1) + ruby2_keywords (~> 0.0.1) + mustermann-grape (1.0.1) + mustermann (>= 1.0.0) netrc (0.11.0) nio4r (2.5.2) - nokogiri (1.10.4) + nokogiri (1.10.7) mini_portile2 (~> 2.4.0) nori (2.6.0) open4 (1.3.4) @@ -269,7 +281,7 @@ GEM coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - public_suffix (4.0.1) + public_suffix (4.0.3) puma (4.3.1) nio4r (~> 2.0) que (0.14.3) @@ -277,10 +289,10 @@ GEM erubis que (~> 0.8) sinatra - rack (2.0.8) + rack (2.1.2) rack-accept (0.4.5) rack (>= 0.4) - rack-protection (2.0.7) + rack-protection (2.0.8.1) rack rack-test (0.6.3) rack (>= 1.0) @@ -310,19 +322,19 @@ GEM method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) - rake (13.0.0) + rake (13.0.1) ransack (1.8.10) actionpack (>= 3.0, < 5.2) activerecord (>= 3.0, < 5.2) activesupport (>= 3.0, < 5.2) i18n rb-fsevent (0.10.3) - rb-inotify (0.10.0) + rb-inotify (0.10.1) ffi (~> 1.0) - rbtree3 (0.5.0) + rbtree3 (0.6.0) rdoc (4.3.0) regexp_parser (1.6.0) - request_store (1.4.1) + request_store (1.5.0) rack (>= 1.4) responders (3.0.0) actionpack (>= 5.0) @@ -336,16 +348,17 @@ GEM rspec-core (~> 3.9.0) rspec-expectations (~> 3.9.0) rspec-mocks (~> 3.9.0) - rspec-core (3.9.0) - rspec-support (~> 3.9.0) + rspec-core (3.9.1) + rspec-support (~> 3.9.1) rspec-expectations (3.9.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) - rspec-mocks (3.9.0) + rspec-mocks (3.9.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) - rspec-support (3.9.0) - rubyzip (2.0.0) + rspec-support (3.9.2) + ruby2_keywords (0.0.2) + rubyzip (2.2.0) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) @@ -374,19 +387,18 @@ GEM select2-rails (3.5.9.3) thor (~> 0.14) selectize-rails (0.12.1) - selenium-webdriver (3.142.6) + selenium-webdriver (3.142.7) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) - simplecov (0.17.1) + simplecov (0.18.1) docile (~> 1.1) - json (>= 1.8, < 3) - simplecov-html (~> 0.10.0) - simplecov-html (0.10.2) + simplecov-html (~> 0.11.0) + simplecov-html (0.11.0) simpleidn (0.0.9) - sinatra (2.0.7) + sinatra (2.0.8.1) mustermann (~> 1.0) rack (~> 2.0) - rack-protection (= 2.0.7) + rack-protection (= 2.0.8.1) tilt (~> 2.0) sixarm_ruby_unaccent (1.2.0) slop (3.6.0) @@ -402,7 +414,7 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) - tzinfo (1.2.5) + tzinfo (1.2.6) thread_safe (~> 0.1) uglifier (4.2.0) execjs (>= 0.3.0, < 3) @@ -412,21 +424,16 @@ GEM unicode_utils (1.4.0) validates_email_format_of (1.6.3) i18n - virtus (1.0.5) - axiom-types (~> 0.1) - coercible (~> 1.0) - descendants_tracker (~> 0.0, >= 0.0.3) - equalizer (~> 0.0, >= 0.0.9) warden (1.2.8) rack (>= 2.0.6) wasabi (3.5.0) httpi (~> 2.0) nokogiri (>= 1.4.2) - webdrivers (4.1.3) + webdrivers (4.2.0) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) - webmock (3.7.6) + webmock (3.8.0) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -435,7 +442,7 @@ GEM websocket-extensions (0.1.4) whenever (0.9.4) chronic (>= 0.6.3) - wkhtmltopdf-binary (0.12.4) + wkhtmltopdf-binary (0.12.5.1) xpath (3.2.0) nokogiri (~> 1.8) @@ -500,4 +507,4 @@ DEPENDENCIES wkhtmltopdf-binary BUNDLED WITH - 2.0.2 + 2.1.4 diff --git a/config/initializers/money.rb b/config/initializers/money.rb index cb476b589..a52ff280d 100644 --- a/config/initializers/money.rb +++ b/config/initializers/money.rb @@ -1,4 +1,6 @@ MoneyRails.configure do |config| # Wrapper for Money#default_currency with additional functionality config.default_currency = :eur -end \ No newline at end of file + config.rounding_mode = BigDecimal::ROUND_HALF_EVEN + config.locale_backend = :i18n +end From af57711dc0433f03bae59340bea50b14e0a2a1a3 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 29 Jan 2020 14:51:00 +0500 Subject: [PATCH 336/757] Pump rails version, fix tests --- Gemfile | 2 +- Gemfile.lock | 81 ++++++++++--------- bin/setup | 25 +++--- bin/update | 0 bin/yarn | 11 +++ config/application.rb | 1 + config/cable.yml | 1 + config/environments/production.rb | 2 +- config/initializers/assets.rb | 3 +- .../new_framework_defaults_5_1.rb | 14 ++++ config/puma.rb | 23 ++++-- config/spring.rb | 6 ++ test/models/dns/domain_name_test.rb | 2 + 13 files changed, 110 insertions(+), 61 deletions(-) mode change 100644 => 100755 bin/update create mode 100755 bin/yarn create mode 100644 config/initializers/new_framework_defaults_5_1.rb create mode 100644 config/spring.rb diff --git a/Gemfile b/Gemfile index b3882e792..57e78ed84 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source 'https://rubygems.org' # core gem 'iso8601', '0.8.6' # for dates and times -gem 'rails', '~> 5.0.7' +gem 'rails', '~> 5.1.7' gem 'rest-client' gem 'uglifier' diff --git a/Gemfile.lock b/Gemfile.lock index 6c374892f..381645baa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -58,39 +58,39 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (5.0.7.2) - actionpack (= 5.0.7.2) - nio4r (>= 1.2, < 3.0) + actioncable (5.1.7) + actionpack (= 5.1.7) + nio4r (~> 2.0) websocket-driver (~> 0.6.1) - actionmailer (5.0.7.2) - actionpack (= 5.0.7.2) - actionview (= 5.0.7.2) - activejob (= 5.0.7.2) + actionmailer (5.1.7) + actionpack (= 5.1.7) + actionview (= 5.1.7) + activejob (= 5.1.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.0.7.2) - actionview (= 5.0.7.2) - activesupport (= 5.0.7.2) + actionpack (5.1.7) + actionview (= 5.1.7) + activesupport (= 5.1.7) rack (~> 2.0) - rack-test (~> 0.6.3) + rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.0.7.2) - activesupport (= 5.0.7.2) + actionview (5.1.7) + activesupport (= 5.1.7) builder (~> 3.1) - erubis (~> 2.7.0) + erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.0.7.2) - activesupport (= 5.0.7.2) + activejob (5.1.7) + activesupport (= 5.1.7) globalid (>= 0.3.6) - activemodel (5.0.7.2) - activesupport (= 5.0.7.2) - activerecord (5.0.7.2) - activemodel (= 5.0.7.2) - activesupport (= 5.0.7.2) - arel (~> 7.0) - activesupport (5.0.7.2) + activemodel (5.1.7) + activesupport (= 5.1.7) + activerecord (5.1.7) + activemodel (= 5.1.7) + activesupport (= 5.1.7) + arel (~> 8.0) + activesupport (5.1.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -104,7 +104,7 @@ GEM akami (1.3.1) gyoku (>= 0.4.0) nokogiri - arel (7.1.4) + arel (8.0.0) autodoc (0.7.3) actionpack activesupport (>= 3.0.0) @@ -181,6 +181,7 @@ GEM dry-equalizer (~> 0.3) dry-inflector (~> 0.1, >= 0.1.2) dry-logic (~> 1.0, >= 1.0.2) + erubi (1.9.0) erubis (2.7.0) execjs (2.7.0) ffi (1.12.2) @@ -294,20 +295,20 @@ GEM rack (>= 0.4) rack-protection (2.0.8.1) rack - rack-test (0.6.3) - rack (>= 1.0) + rack-test (1.1.0) + rack (>= 1.0, < 3) railroady (1.3.0) - rails (5.0.7.2) - actioncable (= 5.0.7.2) - actionmailer (= 5.0.7.2) - actionpack (= 5.0.7.2) - actionview (= 5.0.7.2) - activejob (= 5.0.7.2) - activemodel (= 5.0.7.2) - activerecord (= 5.0.7.2) - activesupport (= 5.0.7.2) + rails (5.1.7) + actioncable (= 5.1.7) + actionmailer (= 5.1.7) + actionpack (= 5.1.7) + actionview (= 5.1.7) + activejob (= 5.1.7) + activemodel (= 5.1.7) + activerecord (= 5.1.7) + activesupport (= 5.1.7) bundler (>= 1.3.0) - railties (= 5.0.7.2) + railties (= 5.1.7) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -316,9 +317,9 @@ GEM loofah (~> 2.3) rails-settings-cached (0.7.2) rails (>= 4.2.0) - railties (5.0.7.2) - actionpack (= 5.0.7.2) - activesupport (= 5.0.7.2) + railties (5.1.7) + actionpack (= 5.1.7) + activesupport (= 5.1.7) method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) @@ -489,7 +490,7 @@ DEPENDENCIES que que-web railroady (= 1.3.0) - rails (~> 5.0.7) + rails (~> 5.1.7) rails-settings-cached (= 0.7.2) ransack (~> 1.8) rest-client diff --git a/bin/setup b/bin/setup index b3067cf22..b5ca43ac5 100755 --- a/bin/setup +++ b/bin/setup @@ -1,33 +1,36 @@ #!/usr/bin/env ruby require 'pathname' -require 'fileutils' +include FileUtils # path to your application root. APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) - def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") end -Dir.chdir APP_ROOT do +chdir APP_ROOT do + # This script is a starting point to setup your application. + # Add necessary setup steps to this file. - puts '== Installing dependencies with bundler ==' + puts '== Installing dependencies ==' system! 'gem install bundler --conservative' system('bundle check') || system!('bundle install') - puts "\n== Copying sample development database config files ==" - unless File.exist?('config/database.yml') - system! 'cp config/database-example-development.yml config/database.yml' - end + # Install JavaScript dependencies if using Yarn + # system('bin/yarn') + + puts "\n== Copying sample files ==" + unless File.exist?('config/database.yml') + system! 'cp config/database.yml.sample config/database.yml' + end puts "\n== Preparing database ==" system! 'bin/rails db:setup' puts "\n== Removing old logs and tempfiles ==" - system! 'bin/rake log:clear tmp:clear' + system! 'bin/rails log:clear tmp:clear' puts "\n== Restarting application server ==" - system! 'touch tmp/restart.txt' - + system! 'bin/rails restart' end diff --git a/bin/update b/bin/update old mode 100644 new mode 100755 diff --git a/bin/yarn b/bin/yarn new file mode 100755 index 000000000..c2bacef83 --- /dev/null +++ b/bin/yarn @@ -0,0 +1,11 @@ +#!/usr/bin/env ruby +VENDOR_PATH = File.expand_path('..', __dir__) +Dir.chdir(VENDOR_PATH) do + begin + exec "yarnpkg #{ARGV.join(" ")}" + rescue Errno::ENOENT + $stderr.puts "Yarn executable was not detected in the system." + $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" + exit 1 + end +end diff --git a/config/application.rb b/config/application.rb index c70ab2111..57a3878a9 100644 --- a/config/application.rb +++ b/config/application.rb @@ -16,6 +16,7 @@ end module DomainNameRegistry class Application < Rails::Application + #config.load_defaults 5.1 # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. diff --git a/config/cable.yml b/config/cable.yml index 0bbde6f74..858bb1f14 100644 --- a/config/cable.yml +++ b/config/cable.yml @@ -7,3 +7,4 @@ test: production: adapter: redis url: redis://localhost:6379/1 + channel_prefix: domain_name_registry_production diff --git a/config/environments/production.rb b/config/environments/production.rb index c2262235d..6e13ea1f7 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -66,7 +66,7 @@ Rails.application.configure do # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = [I18n.default_locale] + config.i18n.fallbacks = true # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index d3b8408d5..ba78ea325 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -5,7 +5,7 @@ Rails.application.configure do config.assets.version = '1.0' # Add additional assets to the asset load path - config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') + config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts', 'node_modules') # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. @@ -14,4 +14,5 @@ Rails.application.configure do config.assets.precompile += %w(admin-manifest.css admin-manifest.js) config.assets.precompile += %w(registrar-manifest.css registrar-manifest.js) config.assets.precompile += %w(registrant-manifest.css registrant-manifest.js) + config.assets.precompile += %w( admin.js admin.css ) end diff --git a/config/initializers/new_framework_defaults_5_1.rb b/config/initializers/new_framework_defaults_5_1.rb new file mode 100644 index 000000000..9010abd5c --- /dev/null +++ b/config/initializers/new_framework_defaults_5_1.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. +# +# This file contains migration options to ease your Rails 5.1 upgrade. +# +# Once upgraded flip defaults one by one to migrate to the new default. +# +# Read the Guide for Upgrading Ruby on Rails for more info on each option. + +# Make `form_with` generate non-remote forms. +Rails.application.config.action_view.form_with_generates_remote_forms = false + +# Unknown asset fallback will return the path passed in when the given +# asset is not present in the asset pipeline. +# Rails.application.config.assets.unknown_asset_fallback = false diff --git a/config/puma.rb b/config/puma.rb index c7f311f81..1e19380dc 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,13 +1,13 @@ # Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers a minimum and maximum. +# The `threads` method setting takes two numbers: a minimum and maximum. # Any libraries that use thread pools should be configured to match # the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum, this matches the default thread size of Active Record. +# and maximum; this matches the default thread size of Active Record. # -threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i +threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } threads threads_count, threads_count -# Specifies the `port` that Puma will listen on to receive requests, default is 3000. +# Specifies the `port` that Puma will listen on to receive requests; default is 3000. # port ENV.fetch("PORT") { 3000 } @@ -32,16 +32,25 @@ environment ENV.fetch("RAILS_ENV") { "development" } # # preload_app! +# If you are preloading your application and using Active Record, it's +# recommended that you close any connections to the database before workers +# are forked to prevent connection leakage. +# +# before_fork do +# ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord) +# end + # The code in the `on_worker_boot` will be called if you are using # clustered mode by specifying a number of `workers`. After each worker -# process is booted this block will be run, if you are using `preload_app!` -# option you will want to use this block to reconnect to any threads -# or connections that may have been created at application boot, Ruby +# process is booted, this block will be run. If you are using the `preload_app!` +# option, you will want to use this block to reconnect to any threads +# or connections that may have been created at application boot, as Ruby # cannot share connections between processes. # # on_worker_boot do # ActiveRecord::Base.establish_connection if defined?(ActiveRecord) # end +# # Allow puma to be restarted by `rails restart` command. plugin :tmp_restart diff --git a/config/spring.rb b/config/spring.rb new file mode 100644 index 000000000..c9119b40c --- /dev/null +++ b/config/spring.rb @@ -0,0 +1,6 @@ +%w( + .ruby-version + .rbenv-vars + tmp/restart.txt + tmp/caching-dev.txt +).each { |path| Spring.watch(path) } diff --git a/test/models/dns/domain_name_test.rb b/test/models/dns/domain_name_test.rb index bd83076bc..4f8922d32 100644 --- a/test/models/dns/domain_name_test.rb +++ b/test/models/dns/domain_name_test.rb @@ -13,6 +13,8 @@ class AuctionDoubleTest < ActiveSupport::TestCase end class DNS::DomainNameTest < ActiveSupport::TestCase + fixtures 'whois/records' + def test_available_when_not_at_auction domain_name = DNS::DomainName.new('auction.test') auctions(:one).update!(domain: 'auction.test', status: Auction.statuses[:domain_registered]) From 95ad3086b0fd2f7ba6362191e36218df2a12b6f8 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 29 Jan 2020 15:13:48 +0500 Subject: [PATCH 337/757] Change deprecated usage of strings in if blocks --- app/controllers/epp/base_controller.rb | 2 +- app/models/contact.rb | 4 ++-- app/models/registrar.rb | 4 ++-- config/application.rb | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index 6e3f39e46..fb48c285a 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -10,7 +10,7 @@ module Epp before_action :latin_only before_action :validate_against_schema before_action :validate_request - before_action :update_epp_session, if: 'signed_in?' + before_action :update_epp_session, if: -> { signed_in? } around_action :wrap_exceptions diff --git a/app/models/contact.rb b/app/models/contact.rb index 558292dbd..31ef7241e 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -23,7 +23,7 @@ class Contact < ApplicationRecord accepts_nested_attributes_for :legal_documents validates :name, :email, presence: true - validates :street, :city, :zip, :country_code, presence: true, if: 'self.class.address_processing?' + validates :street, :city, :zip, :country_code, presence: true, if: -> { self.class.address_processing? } validates :phone, presence: true, e164: true, phone: true @@ -37,7 +37,7 @@ class Contact < ApplicationRecord validates_associated :identifier validate :validate_html - validate :validate_country_code, if: 'self.class.address_processing?' + validate :validate_country_code, if: -> { self.class.address_processing? } after_initialize do self.status_notes = {} if status_notes.nil? diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 8f41d62ca..3ebddf8ae 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -21,9 +21,9 @@ class Registrar < ApplicationRecord validates :reference_no, format: Billing::ReferenceNo::REGEXP validate :forbid_special_code - validates :vat_rate, presence: true, if: 'vat_liable_in_foreign_country? && vat_no.blank?' + validates :vat_rate, presence: true, if: -> { vat_liable_in_foreign_country? && vat_no.blank? } validates :vat_rate, absence: true, if: :vat_liable_locally? - validates :vat_rate, absence: true, if: 'vat_liable_in_foreign_country? && vat_no?' + validates :vat_rate, absence: true, if: -> { vat_liable_in_foreign_country? && vat_no? } validates :vat_rate, numericality: { greater_than_or_equal_to: 0, less_than: 100 }, allow_nil: true diff --git a/config/application.rb b/config/application.rb index 57a3878a9..72b592a3b 100644 --- a/config/application.rb +++ b/config/application.rb @@ -16,7 +16,7 @@ end module DomainNameRegistry class Application < Rails::Application - #config.load_defaults 5.1 + config.load_defaults 5.1 # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. From 01114386b31a9a04a73dd9a5e30edc769c6ec5c4 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 29 Jan 2020 15:41:03 +0500 Subject: [PATCH 338/757] Change deprecated changed? methods to new in callbacks --- app/models/admin_user.rb | 2 +- app/models/api_user.rb | 2 +- app/models/contact.rb | 2 +- app/models/dnskey.rb | 9 +++++++-- app/models/domain.rb | 4 ++-- app/models/epp/contact.rb | 2 +- app/models/registrar.rb | 2 +- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/models/admin_user.rb b/app/models/admin_user.rb index 07686e921..159578ab0 100644 --- a/app/models/admin_user.rb +++ b/app/models/admin_user.rb @@ -4,7 +4,7 @@ class AdminUser < User validates :identity_code, presence: true, if: -> { country_code == 'EE' } validates :email, presence: true validates :password, :password_confirmation, presence: true, if: :new_record? - validates :password_confirmation, presence: true, if: :encrypted_password_changed? + validates :password_confirmation, presence: true, if: :will_save_change_to_encrypted_password? validate :validate_identity_code, if: -> { country_code == 'EE' } ROLES = %w(user customer_service admin) # should not match to api_users roles diff --git a/app/models/api_user.rb b/app/models/api_user.rb index e11dbf90f..3dc240727 100644 --- a/app/models/api_user.rb +++ b/app/models/api_user.rb @@ -43,7 +43,7 @@ class ApiUser < User after_initialize :set_defaults def set_defaults return unless new_record? - self.active = true unless active_changed? + self.active = true unless saved_change_to_active? end class << self diff --git a/app/models/contact.rb b/app/models/contact.rb index 31ef7241e..e4ed542a6 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -28,7 +28,7 @@ class Contact < ApplicationRecord validates :phone, presence: true, e164: true, phone: true validates :email, format: /@/ - validates :email, email_format: { message: :invalid }, if: proc { |c| c.email_changed? } + validates :email, email_format: { message: :invalid }, if: proc { |c| c.will_save_change_to_email? } validates :code, uniqueness: { message: :epp_id_taken }, diff --git a/app/models/dnskey.rb b/app/models/dnskey.rb index 922844874..08a5b03d8 100644 --- a/app/models/dnskey.rb +++ b/app/models/dnskey.rb @@ -9,10 +9,15 @@ class Dnskey < ApplicationRecord validate :validate_protocol validate :validate_flags - before_save -> { generate_digest if public_key_changed? && !ds_digest_changed? } + before_save -> { generate_digest if will_save_change_to_public_key? && + !will_save_change_to_ds_digest? } before_save lambda { - if (public_key_changed? || flags_changed? || alg_changed? || protocol_changed?) && !ds_key_tag_changed? + if (will_save_change_to_public_key? || + will_save_change_to_flags? || + will_save_change_to_alg? || + will_save_change_to_protocol?) && + !will_save_change_to_ds_key_tag? generate_ds_key_tag end } diff --git a/app/models/domain.rb b/app/models/domain.rb index d6545284d..3ad3b09f2 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -73,7 +73,7 @@ class Domain < ApplicationRecord before_update :manage_statuses def manage_statuses - return unless registrant_id_changed? # rollback has not yet happened + return unless will_save_change_to_registrant_id? # rollback has not yet happened pending_update! if registrant_verification_asked? true end @@ -547,7 +547,7 @@ class Domain < ApplicationRecord activate if nameservers.reject(&:marked_for_destruction?).size >= Setting.ns_min_count end - cancel_force_delete if force_delete_scheduled? && registrant_id_changed? + cancel_force_delete if force_delete_scheduled? && will_save_change_to_registrant_id? if statuses.empty? && valid? statuses << DomainStatus::OK diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index 742f0339f..fa488d9e1 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -182,7 +182,7 @@ class Epp::Contact < Contact self.attributes = at - email_changed = email_changed? + email_changed = will_save_change_to_email? old_email = email_was updated = save diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 3ebddf8ae..88aa1c629 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -33,7 +33,7 @@ class Registrar < ApplicationRecord after_initialize :set_defaults validates :email, email_format: { message: :invalid }, - allow_blank: true, if: proc { |c| c.email_changed? } + allow_blank: true, if: proc { |c| c.will_save_change_to_email? } validates :billing_email, email_format: { message: :invalid }, allow_blank: true alias_attribute :contact_email, :email From c7593338e2be685715b957b86d8d0fb30253ea07 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 29 Jan 2020 15:50:09 +0500 Subject: [PATCH 339/757] Pump pg gem version up to 1.2.2 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 57e78ed84..68e0b4aa2 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ gem 'uglifier' gem 'figaro', '1.1.1' # model related -gem 'pg', '0.19.0' +gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 gem 'ransack', '~> 1.8' gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 diff --git a/Gemfile.lock b/Gemfile.lock index 381645baa..ed210f681 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -277,7 +277,7 @@ GEM activesupport (>= 3.0, < 6.0) request_store (~> 1.1) pdfkit (0.8.4.1) - pg (0.19.0) + pg (1.2.2) pry (0.10.1) coderay (~> 1.1.0) method_source (~> 0.8.1) @@ -484,7 +484,7 @@ DEPENDENCIES nokogiri paper_trail (~> 4.0) pdfkit - pg (= 0.19.0) + pg (= 1.2.2) pry (= 0.10.1) puma que From 4e1bec3613886afa183d4df17c9874e5c5c62560 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 30 Jan 2020 13:55:08 +0500 Subject: [PATCH 340/757] Pump minitest version --- Gemfile | 2 +- Gemfile.lock | 4 +- app/models/contact.rb | 4 +- app/models/dnskey.rb | 7 ++- app/models/domain.rb | 3 +- test/support/rails5_assertions.rb | 96 ------------------------------- test/test_helper.rb | 1 - 7 files changed, 12 insertions(+), 105 deletions(-) delete mode 100644 test/support/rails5_assertions.rb diff --git a/Gemfile b/Gemfile index 68e0b4aa2..ce9565beb 100644 --- a/Gemfile +++ b/Gemfile @@ -84,8 +84,8 @@ end group :test do gem 'capybara' gem 'database_cleaner' + gem 'minitest', '~> 5.14' gem 'simplecov', require: false gem 'webdrivers' gem 'webmock' - gem 'minitest', '~> 5.10.0' end diff --git a/Gemfile.lock b/Gemfile.lock index ed210f681..75317c030 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -250,7 +250,7 @@ GEM rake mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.10.3) + minitest (5.14.0) monetize (1.9.4) money (~> 6.12) money (6.13.7) @@ -479,7 +479,7 @@ DEPENDENCIES kaminari lhv! mina (= 0.3.1) - minitest (~> 5.10.0) + minitest (~> 5.14) money-rails nokogiri paper_trail (~> 4.0) diff --git a/app/models/contact.rb b/app/models/contact.rb index e4ed542a6..9cb954462 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -23,7 +23,9 @@ class Contact < ApplicationRecord accepts_nested_attributes_for :legal_documents validates :name, :email, presence: true - validates :street, :city, :zip, :country_code, presence: true, if: -> { self.class.address_processing? } + validates :street, :city, :zip, :country_code, presence: true, if: lambda { + self.class.address_processing? + } validates :phone, presence: true, e164: true, phone: true diff --git a/app/models/dnskey.rb b/app/models/dnskey.rb index 08a5b03d8..c0f3f7491 100644 --- a/app/models/dnskey.rb +++ b/app/models/dnskey.rb @@ -9,15 +9,16 @@ class Dnskey < ApplicationRecord validate :validate_protocol validate :validate_flags - before_save -> { generate_digest if will_save_change_to_public_key? && - !will_save_change_to_ds_digest? } + before_save lambda { + generate_digest if will_save_change_to_public_key? && !will_save_change_to_ds_digest? + } before_save lambda { if (will_save_change_to_public_key? || will_save_change_to_flags? || will_save_change_to_alg? || will_save_change_to_protocol?) && - !will_save_change_to_ds_key_tag? + !will_save_change_to_ds_key_tag? generate_ds_key_tag end } diff --git a/app/models/domain.rb b/app/models/domain.rb index 3ad3b09f2..b37d31ea0 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -74,11 +74,12 @@ class Domain < ApplicationRecord before_update :manage_statuses def manage_statuses return unless will_save_change_to_registrant_id? # rollback has not yet happened + pending_update! if registrant_verification_asked? true end - after_commit :update_whois_record, unless: 'domain_name.at_auction?' + after_commit :update_whois_record, unless: -> { domain_name.at_auction? } after_create :update_reserved_domains def update_reserved_domains diff --git a/test/support/rails5_assertions.rb b/test/support/rails5_assertions.rb deleted file mode 100644 index a11bb3ef1..000000000 --- a/test/support/rails5_assertions.rb +++ /dev/null @@ -1,96 +0,0 @@ -# Built-in since Rails 5.1 - -module ActiveSupport - module Testing - module Assertions - UNTRACKED = Object.new # :nodoc: - - # Assertion that the result of evaluating an expression is changed before - # and after invoking the passed in block. - # - # assert_changes 'Status.all_good?' do - # post :create, params: { status: { ok: false } } - # end - # - # You can pass the block as a string to be evaluated in the context of - # the block. A lambda can be passed for the block as well. - # - # assert_changes -> { Status.all_good? } do - # post :create, params: { status: { ok: false } } - # end - # - # The assertion is useful to test side effects. The passed block can be - # anything that can be converted to string with #to_s. - # - # assert_changes :@object do - # @object = 42 - # end - # - # The keyword arguments :from and :to can be given to specify the - # expected initial value and the expected value after the block was - # executed. - # - # assert_changes :@object, from: nil, to: :foo do - # @object = :foo - # end - # - # An error message can be specified. - # - # assert_changes -> { Status.all_good? }, 'Expected the status to be bad' do - # post :create, params: { status: { incident: true } } - # end - def assert_changes(expression, message = nil, from: UNTRACKED, to: UNTRACKED, &block) - exp = expression.respond_to?(:call) ? expression : -> { eval(expression.to_s, block.binding) } - - before = exp.call - retval = yield - - unless from == UNTRACKED - error = "#{expression.inspect} isn't #{from.inspect}" - error = "#{message}.\n#{error}" if message - assert from === before, error - end - - after = exp.call - - if to == UNTRACKED - error = "#{expression.inspect} didn't changed" - error = "#{message}.\n#{error}" if message - assert_not_equal before, after, error - else - error = "#{expression.inspect} didn't change to #{to}" - error = "#{message}.\n#{error}" if message - assert to === after, error - end - - retval - end - - # Assertion that the result of evaluating an expression is changed before - # and after invoking the passed in block. - # - # assert_no_changes 'Status.all_good?' do - # post :create, params: { status: { ok: true } } - # end - # - # An error message can be specified. - # - # assert_no_changes -> { Status.all_good? }, 'Expected the status to be good' do - # post :create, params: { status: { ok: false } } - # end - def assert_no_changes(expression, message = nil, &block) - exp = expression.respond_to?(:call) ? expression : -> { eval(expression.to_s, block.binding) } - - before = exp.call - retval = yield - after = exp.call - - error = "#{expression.inspect} did change to #{after}" - error = "#{message}.\n#{error}" if message - assert_equal before, after, error - - retval - end - end - end -end diff --git a/test/test_helper.rb b/test/test_helper.rb index 4cd632ea2..efdbc288f 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -16,7 +16,6 @@ require 'minitest/mock' require 'capybara/rails' require 'capybara/minitest' require 'webmock/minitest' -require 'support/rails5_assertions' # Remove once upgraded to Rails 5.1 require 'support/assertions/epp_assertions' From ad46e08f32215ef99e7762d32c753b728235ab81 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 30 Jan 2020 16:18:04 +0500 Subject: [PATCH 341/757] Pump iso8601 gem version --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/models/concerns/contact/transferable.rb | 2 +- config/initializers/new_framework_defaults.rb | 7 +++++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index ce9565beb..6a5c89321 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' # core -gem 'iso8601', '0.8.6' # for dates and times +gem 'iso8601', '0.12.1' # for dates and times gem 'rails', '~> 5.1.7' gem 'rest-client' gem 'uglifier' diff --git a/Gemfile.lock b/Gemfile.lock index 75317c030..b76bfefd0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -214,7 +214,7 @@ GEM concurrent-ruby (~> 1.0) i18n_data (0.8.0) isikukood (0.1.2) - iso8601 (0.8.6) + iso8601 (0.12.1) jquery-rails (4.3.5) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) @@ -473,7 +473,7 @@ DEPENDENCIES grape haml (~> 5.0) isikukood - iso8601 (= 0.8.6) + iso8601 (= 0.12.1) jquery-rails jquery-ui-rails (= 5.0.5) kaminari diff --git a/app/models/concerns/contact/transferable.rb b/app/models/concerns/contact/transferable.rb index 3f151251a..987933a8d 100644 --- a/app/models/concerns/contact/transferable.rb +++ b/app/models/concerns/contact/transferable.rb @@ -3,7 +3,7 @@ module Concerns::Contact::Transferable included do validates :auth_info, presence: true - after_initialize :generate_auth_info, if: 'new_record? && auth_info.blank?' + after_initialize :generate_auth_info, if: -> { new_record? && auth_info.blank? } end def transfer(new_registrar) diff --git a/config/initializers/new_framework_defaults.rb b/config/initializers/new_framework_defaults.rb index 99b2db3b0..2f9c3c5cb 100644 --- a/config/initializers/new_framework_defaults.rb +++ b/config/initializers/new_framework_defaults.rb @@ -6,7 +6,8 @@ # # Read the Guide for Upgrading Ruby on Rails for more info on each option. -Rails.application.config.action_controller.raise_on_unfiltered_parameters = true +# DEPRECATION WARNING: raise_on_unfiltered_parameters is deprecated and has no effect in Rails 5.1. +#Rails.application.config.action_controller.raise_on_unfiltered_parameters = true # Enable per-form CSRF tokens. Previous versions had false. Rails.application.config.action_controller.per_form_csrf_tokens = true @@ -19,7 +20,9 @@ Rails.application.config.action_controller.forgery_protection_origin_check = tru ActiveSupport.to_time_preserves_timezone = true # Do not halt callback chains when a callback returns false. Previous versions had true. -ActiveSupport.halt_callback_chains_on_return_false = false +# DEPRECATION WARNING: ActiveSupport.halt_callback_chains_on_return_false= is deprecated and +# will be removed in Rails 5.2. +#ActiveSupport.halt_callback_chains_on_return_false = false # Configure SSL options to enable HSTS with subdomains. Previous versions had false. Rails.application.config.ssl_options = { hsts: { subdomains: true } } From a18f7b160537edf6b91adf8e541401305ac39069 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 30 Jan 2020 17:07:53 +0500 Subject: [PATCH 342/757] Pump papertrail version to 6.0.2 --- Gemfile | 2 +- Gemfile.lock | 7 +++---- app/controllers/application_controller.rb | 3 ++- app/controllers/epp/domains_controller.rb | 1 + app/controllers/epp/sessions_controller.rb | 1 + app/models/concerns/versions.rb | 2 +- config/initializers/paper_trail.rb | 1 + .../api/registrant/registrant_api_registry_locks_test.rb | 2 +- test/integration/contact/audit_log_test.rb | 4 ++-- test/integration/domain/audit_log_test.rb | 4 ++-- test/learning/paper_trail_test.rb | 4 ++-- test/models/domain/domain_version_test.rb | 4 ++-- 12 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 config/initializers/paper_trail.rb diff --git a/Gemfile b/Gemfile index 6a5c89321..89472674b 100644 --- a/Gemfile +++ b/Gemfile @@ -14,7 +14,7 @@ gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 gem 'ransack', '~> 1.8' gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 -gem 'paper_trail', '~> 4.0' +gem 'paper_trail', '~> 6.0' # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server # https://github.com/huacnlee/rails-settings-cached/issues/165 diff --git a/Gemfile.lock b/Gemfile.lock index b76bfefd0..097ab7c97 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -272,9 +272,8 @@ GEM nori (2.6.0) open4 (1.3.4) orm_adapter (0.5.0) - paper_trail (4.2.0) - activerecord (>= 3.0, < 6.0) - activesupport (>= 3.0, < 6.0) + paper_trail (6.0.2) + activerecord (>= 4.0, < 5.2) request_store (~> 1.1) pdfkit (0.8.4.1) pg (1.2.2) @@ -482,7 +481,7 @@ DEPENDENCIES minitest (~> 5.14) money-rails nokogiri - paper_trail (~> 4.0) + paper_trail (~> 6.0) pdfkit pg (= 1.2.2) pry (= 0.10.1) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 1a57b5573..5a6b45668 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,5 +1,6 @@ class ApplicationController < ActionController::Base check_authorization unless: :devise_controller? + before_action :set_paper_trail_whodunnit # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. @@ -32,4 +33,4 @@ class ApplicationController < ActionController::Base def available_languages { en: 'English', et: 'Estonian' }.invert end -end \ No newline at end of file +end diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 1295f558e..9e4f6123a 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -2,6 +2,7 @@ module Epp class DomainsController < BaseController before_action :find_domain, only: %i[info renew update transfer delete] before_action :find_password, only: %i[info update transfer delete] + before_action :set_paper_trail_whodunnit def info authorize! :info, @domain diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index 2175f7281..ef8f125ee 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -1,6 +1,7 @@ module Epp class SessionsController < BaseController skip_authorization_check only: [:hello, :login, :logout] + before_action :set_paper_trail_whodunnit def hello render_epp_response('greeting') diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index b0a82376f..df464f10c 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -55,7 +55,7 @@ module Versions module ClassMethods def all_versions_for(ids, time) - ver_klass = paper_trail_version_class + ver_klass = paper_trail.version_class from_history = ver_klass.where(item_id: ids.to_a). order(:item_id). preceding(time + 1, true). diff --git a/config/initializers/paper_trail.rb b/config/initializers/paper_trail.rb new file mode 100644 index 000000000..39a667917 --- /dev/null +++ b/config/initializers/paper_trail.rb @@ -0,0 +1 @@ +PaperTrail.config.track_associations = false diff --git a/test/integration/api/registrant/registrant_api_registry_locks_test.rb b/test/integration/api/registrant/registrant_api_registry_locks_test.rb index 4babdf428..e4f551072 100644 --- a/test/integration/api/registrant/registrant_api_registry_locks_test.rb +++ b/test/integration/api/registrant/registrant_api_registry_locks_test.rb @@ -25,7 +25,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest end def test_locking_a_domain_creates_a_version_record - assert_difference '@domain.versions.count', 1 do + assert_difference '@domain.versions.count', 2 do post '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', headers: @auth_headers end diff --git a/test/integration/contact/audit_log_test.rb b/test/integration/contact/audit_log_test.rb index f0f6a4bf2..41eb74cdd 100644 --- a/test/integration/contact/audit_log_test.rb +++ b/test/integration/contact/audit_log_test.rb @@ -5,7 +5,7 @@ class ContactAuditLogTest < ActionDispatch::IntegrationTest contact = contacts(:john) contact.legal_document_id = 1 - assert_difference 'contact.versions.count' do + assert_difference 'contact.versions.count', 2 do contact.save! end @@ -13,4 +13,4 @@ class ContactAuditLogTest < ActionDispatch::IntegrationTest assert_equal ({ legal_documents: [1] }).with_indifferent_access, contact_version.children.with_indifferent_access end -end \ No newline at end of file +end diff --git a/test/integration/domain/audit_log_test.rb b/test/integration/domain/audit_log_test.rb index 292994ca3..244e55ff7 100644 --- a/test/integration/domain/audit_log_test.rb +++ b/test/integration/domain/audit_log_test.rb @@ -14,7 +14,7 @@ class DomainAuditLogTest < ActionDispatch::IntegrationTest assert_equal registrant_id, domain.registrant_id domain.legal_document_id = legal_document_id - assert_difference 'domain.versions.count' do + assert_difference 'domain.versions.count', 2 do domain.save! end @@ -26,4 +26,4 @@ class DomainAuditLogTest < ActionDispatch::IntegrationTest assert_equal [legal_document_id], domain_version.children['legal_documents'] assert_equal [registrant_id], domain_version.children['registrant'] end -end \ No newline at end of file +end diff --git a/test/learning/paper_trail_test.rb b/test/learning/paper_trail_test.rb index 9396496b7..1a46022e4 100644 --- a/test/learning/paper_trail_test.rb +++ b/test/learning/paper_trail_test.rb @@ -40,7 +40,7 @@ class PaperTrailLearningTest < ActiveSupport::TestCase @record = Post.create!(title: 'any') assert_difference -> { @record.versions.size } do - @record.touch_with_version + @record.paper_trail.touch_with_version end end -end \ No newline at end of file +end diff --git a/test/models/domain/domain_version_test.rb b/test/models/domain/domain_version_test.rb index 74844f3af..305f353fa 100644 --- a/test/models/domain/domain_version_test.rb +++ b/test/models/domain/domain_version_test.rb @@ -17,7 +17,7 @@ class DomainVersionTest < ActiveSupport::TestCase duplicate_domain = prepare_duplicate_domain PaperTrail.whodunnit = @user.id_role_username - assert_difference 'duplicate_domain.versions.count', 1 do + assert_difference 'duplicate_domain.versions.count', 2 do duplicate_domain.save! end @@ -30,7 +30,7 @@ class DomainVersionTest < ActiveSupport::TestCase def test_assigns_updator_to_paper_trail_whodunnit PaperTrail.whodunnit = @user.id_role_username - assert_difference '@domain.versions.count', 1 do + assert_difference '@domain.versions.count', 2 do @domain.apply_registry_lock end From 8240b37910246234cfa2f34a5902af2438b8f982 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 30 Jan 2020 17:19:03 +0500 Subject: [PATCH 343/757] Pump papertrail gem to 8.1 --- Gemfile | 2 +- Gemfile.lock | 6 +++--- app/models/concerns/versions.rb | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 89472674b..82f07ed9e 100644 --- a/Gemfile +++ b/Gemfile @@ -10,11 +10,11 @@ gem 'uglifier' gem 'figaro', '1.1.1' # model related +gem 'paper_trail', '~> 8.1' gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 gem 'ransack', '~> 1.8' gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 -gem 'paper_trail', '~> 6.0' # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server # https://github.com/huacnlee/rails-settings-cached/issues/165 diff --git a/Gemfile.lock b/Gemfile.lock index 097ab7c97..c922a04dd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -272,8 +272,8 @@ GEM nori (2.6.0) open4 (1.3.4) orm_adapter (0.5.0) - paper_trail (6.0.2) - activerecord (>= 4.0, < 5.2) + paper_trail (8.1.2) + activerecord (>= 4.2, < 5.2) request_store (~> 1.1) pdfkit (0.8.4.1) pg (1.2.2) @@ -481,7 +481,7 @@ DEPENDENCIES minitest (~> 5.14) money-rails nokogiri - paper_trail (~> 6.0) + paper_trail (~> 8.1) pdfkit pg (= 1.2.2) pry (= 0.10.1) diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index df464f10c..bd6580adf 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -45,11 +45,11 @@ module Versions # callbacks def touch_domain_version - domain.try(:touch_with_version) + domain.paper_trail.try(:touch_with_version) end def touch_domains_version - domains.each(&:touch_with_version) + domains.each { |domain| domain.paper_trail.touch_with_version } end end From 6c7a63f25e20b2c8b8302741861fc1c8602199c0 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 30 Jan 2020 17:37:45 +0500 Subject: [PATCH 344/757] Pump ruby version to 2.6 --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index 35d16fb1a..ec1cf33c3 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.5.7 +2.6.3 From 725ff30bb302ff53a594c6e01f3c8927e816297d Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 4 Feb 2020 14:29:05 +0500 Subject: [PATCH 345/757] Pump ruby version in dockerfile --- Dockerfile | 2 +- app/jobs/send_e_invoice_job.rb | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 app/jobs/send_e_invoice_job.rb diff --git a/Dockerfile b/Dockerfile index 7e3b11d80..5d241eeef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM internetee/ruby:2.4 +FROM internetee/ruby:2.6-buster RUN mkdir -p /opt/webapps/app/tmp/pids WORKDIR /opt/webapps/app diff --git a/app/jobs/send_e_invoice_job.rb b/app/jobs/send_e_invoice_job.rb new file mode 100644 index 000000000..e69de29bb From 62fef98eeb9b7811fede2bbd870156ce3c44fcc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 5 Feb 2020 13:48:28 +0200 Subject: [PATCH 346/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0670abc8..9bd0e3602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +05.02.2020 +* Ruby version upgrade to 2.6.3 [#846](https://github.com/internetee/registry/issues/846) + 04.02.2020 * Fixed bug that allowed bypassing blocked domain validation using punycode [#1142](https://github.com/internetee/registry/issues/1142) * SimpleIDN gem update to 0.0.9 [#1508](https://github.com/internetee/registry/pull/1508) From faeb50cad5b7fc2dc92b1c307786b8e87bca1986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 5 Feb 2020 15:42:57 +0200 Subject: [PATCH 347/757] DirectoInvoiceForwardJob, send prepayments via Directo gem --- Gemfile | 2 + app/jobs/directo_invoice_forward_job_job.rb | 100 ++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 app/jobs/directo_invoice_forward_job_job.rb diff --git a/Gemfile b/Gemfile index b3882e792..f91077714 100644 --- a/Gemfile +++ b/Gemfile @@ -68,6 +68,8 @@ gem 'domain_name' gem 'haml', '~> 5.0' gem 'wkhtmltopdf-binary' +gem 'directo', github: 'internetee/directo', branch: 'directo-api' + group :development do # deploy gem 'mina', '0.3.1' # for fast deployment diff --git a/app/jobs/directo_invoice_forward_job_job.rb b/app/jobs/directo_invoice_forward_job_job.rb new file mode 100644 index 000000000..4c95bb366 --- /dev/null +++ b/app/jobs/directo_invoice_forward_job_job.rb @@ -0,0 +1,100 @@ +class DirectoInvoiceForwardJobJob < ApplicationJob + queue_as :default + + def perform(monthly: false, dry: false) + api_url = ENV['directo_invoice_url'] + sales_agent = Setting.directo_sales_agent + payment_term = Setting.directo_receipt_payment_term + @prepayment_product_id = Setting.directo_receipt_product_name + + @client = DirectoApi::Client.new(api_url, sales_agent, payment_term) + monthly ? send_monthly_invoices(dry: dry) : send_receipts(dry: dry) + end + + def send_receipts + unsent_invoices = Invoice.where(in_directo: false).non_cancelled + + Rails.logger.info("[DIRECTO] Trying to send #{unsent_invoices.count} prepayment invoices") + unsent_invoices.each do |invoice| + unless valid_invoice_conditions?(invoice) + Rails.logger.info("[DIRECTO] Invoice #{invoice.number} has been skipped") && next + end + + @client.invoices.add(generate_directo_invoice(invoice: invoice, client: @client, + product_id: @prepayment_product_id)) + end + sync_with_directo + end + + def send_monthly_invoices; end + + def valid_invoice_conditions?(invoice) + if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? || + invoice.account_activity.bank_transaction.sum.nil? || + invoice.account_activity.bank_transaction.sum != invoice.total + false + end + true + end + + def generate_directo_invoice(invoice:, client:, product_id:) + inv = client.invoices.new + inv = create_invoice_meta(directo_invoice: inv, invoice: invoice) + inv = create_invoice_line(invoice: invoice, directo_invoice: inv, product_id: product_id) + + inv + end + + def create_invoice_meta(directo_invoice:, invoice:) + directo_invoice.customer = create_invoice_customer(invoice: invoice) + directo_invoice.date = invoice.issue_date.strftime('%Y-%m-%d') # Mapped + directo_invoice.transaction_date = + invoice.account_activity.bank_transaction&.paid_at&.strftime('%Y-%m-%d') # Mapped + directo_invoice.number = invoice.number # Mapped + directo_invoice.currency = invoice.currency # Mapped + directo_invoice.language = 'ENG' # Hardcoded + + directo_invoice + end + + def create_invoice_line(invoice:, directo_invoice:, product_id:) + line = directo_invoice.lines.new + line.code = product_id # MAPPED + line.description = invoice.result.auction.domain_name # MAPPED + line.quantity = 1 # MAPPED + line.price = ActionController::Base.helpers. + number_with_precision(invoice.subtotal, precision: 2, separator: ".") # MAPPED + directo_invoice.lines.add(line) + + directo_invoice + end + + def create_invoice_customer(invoice:) + customer = Directo::Customer.new + customer.code = invoice.buyer.accounting_customer_code # MAPPED + + customer + end + + def sync_with_directo + res = @client.invoices.deliver(ssl_verify: false) + Rails.logger.info("[Directo] Directo responded with code: #{res.code}, body: #{res.body}") + update_invoice_directo_state(res.body) if res.code == '200' + rescue SocketError, Errno::ECONNREFUSED, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, + EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError + Rails.logger.info("[Directo] Failed. Responded with code: #{res.code}, body: #{res.body}") + end + + def update_invoice_directo_state(xml) + Nokogiri::XML(xml).css('Result').each do |res| + inv = Invoice.find_by(number: res.attributes['docid'].value.to_i) + mark_invoice_as_sent(invoice: inv, data: res) + end + end + + def mark_invoice_as_sent(invoice:, data:) + invoice.directo_records.create!(response: data.as_json.to_h, invoice_number: invoice.number) + invoice.update_columns(in_directo: true) + Rails.logger.info("[DIRECTO] Invoice #{invoice.number} was pushed and return is #{data.as_json.to_h.inspect}") + end +end From 3439c5f77afe9a431b7309fa89bbf6b7d20a8ddf Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 5 Feb 2020 19:39:01 +0500 Subject: [PATCH 348/757] Pump up lhv gem version --- Gemfile | 2 +- Gemfile.lock | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 82f07ed9e..cab5e0dd6 100644 --- a/Gemfile +++ b/Gemfile @@ -63,7 +63,7 @@ gem 'airbrake' gem 'company_register', github: 'internetee/company_register', branch: :master gem 'e_invoice', github: 'internetee/e_invoice', branch: :master -gem 'lhv', github: 'internetee/lhv', tag: 'v0.1.0' +gem 'lhv', github: 'internetee/lhv', branch: :master gem 'domain_name' gem 'haml', '~> 5.0' gem 'wkhtmltopdf-binary' diff --git a/Gemfile.lock b/Gemfile.lock index c922a04dd..fad531c26 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -36,11 +36,12 @@ GIT GIT remote: https://github.com/internetee/lhv.git - revision: e211516bc5fff2139584d4da41c17511863c229d - tag: v0.1.0 + revision: 145f66e21d65a4a7543f6b28a4124440d36fec98 + branch: master specs: lhv (0.1.0) keystores + logger nokogiri GIT @@ -236,6 +237,7 @@ GEM kaminari-core (1.2.0) keystores (0.4.0) libxml-ruby (3.1.0) + logger (1.4.2) loofah (2.4.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) From 5d8e78f3c657056b7c8c50855ce7b1cb3dc3229d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 5 Feb 2020 16:28:01 +0200 Subject: [PATCH 349/757] Rename #create_with_type to #new_with_type --- .../registrar/payments_controller.rb | 8 +++++--- app/models/bank_transaction.rb | 2 +- app/models/payment_order.rb | 2 +- test/models/payment_orders_test.rb | 18 +++++++++--------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/app/controllers/registrar/payments_controller.rb b/app/controllers/registrar/payments_controller.rb index c1944767f..598d13446 100644 --- a/app/controllers/registrar/payments_controller.rb +++ b/app/controllers/registrar/payments_controller.rb @@ -12,13 +12,15 @@ class Registrar invoice = Invoice.find(params[:invoice_id]) channel = params[:bank] - @payment_order = PaymentOrder.create_with_type(type: channel, invoice: invoice) - @payment_order.save && @payment_order.reload + @payment_order = PaymentOrder.new_with_type(type: channel, invoice: invoice) + @payment_order.save + @payment_order.reload @payment_order.return_url = registrar_return_payment_with_url(@payment_order) @payment_order.response_url = registrar_response_payment_with_url(@payment_order) - @payment_order.save && @payment_order.reload + @payment_order.save + @payment_order.reload end def back diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 105f7d14f..ca41e8840 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -53,7 +53,7 @@ class BankTransaction < ApplicationRecord return end - payment_order = PaymentOrder.create_with_type(type: channel, invoice: invoice) + payment_order = PaymentOrder.new_with_type(type: channel, invoice: invoice) payment_order.save! if create_activity(registrar, invoice) diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index 3d788913b..4317abb38 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -32,7 +32,7 @@ class PaymentOrder < ApplicationRecord supported end - def self.create_with_type(type:, invoice:) + def self.new_with_type(type:, invoice:) channel = ('PaymentOrders::' + type.camelize).constantize PaymentOrder.new(type: channel, invoice: invoice) diff --git a/test/models/payment_orders_test.rb b/test/models/payment_orders_test.rb index 67267fec0..43996c6bc 100644 --- a/test/models/payment_orders_test.rb +++ b/test/models/payment_orders_test.rb @@ -44,34 +44,34 @@ class PaymentOrdersTest < ActiveSupport::TestCase end def test_correct_channel_is_assigned - everypay_channel = PaymentOrder.create_with_type(type: 'every_pay', invoice: @invoice) + everypay_channel = PaymentOrder.new_with_type(type: 'every_pay', invoice: @invoice) assert_equal everypay_channel.channel, 'EveryPay' assert_equal everypay_channel.class.config_namespace_name, 'every_pay' - swed_channel = PaymentOrder.create_with_type(type: 'swed', invoice: @invoice) + swed_channel = PaymentOrder.new_with_type(type: 'swed', invoice: @invoice) assert_equal swed_channel.channel, 'Swed' assert_equal swed_channel.class.config_namespace_name, 'swed' - seb_channel = PaymentOrder.create_with_type(type: 'seb', invoice: @invoice) + seb_channel = PaymentOrder.new_with_type(type: 'seb', invoice: @invoice) assert_equal seb_channel.channel, 'Seb' assert_equal seb_channel.class.config_namespace_name, 'seb' - lhv_channel = PaymentOrder.create_with_type(type: 'lhv', invoice: @invoice) + lhv_channel = PaymentOrder.new_with_type(type: 'lhv', invoice: @invoice) assert_equal lhv_channel.channel, 'Lhv' assert_equal lhv_channel.class.config_namespace_name, 'lhv' - admin_channel = PaymentOrder.create_with_type(type: 'admin_payment', invoice: @invoice) + admin_channel = PaymentOrder.new_with_type(type: 'admin_payment', invoice: @invoice) assert_equal admin_channel.channel, 'AdminPayment' assert_equal admin_channel.class.config_namespace_name, 'admin_payment' - system_channel = PaymentOrder.create_with_type(type: 'system_payment', invoice: @invoice) + system_channel = PaymentOrder.new_with_type(type: 'system_payment', invoice: @invoice) assert_equal system_channel.channel, 'SystemPayment' assert_equal system_channel.class.config_namespace_name, 'system_payment' end def test_can_not_create_order_for_paid_invoice invoice = invoices(:one) - payment_order = PaymentOrder.create_with_type(type: 'every_pay', invoice: invoice) + payment_order = PaymentOrder.new_with_type(type: 'every_pay', invoice: invoice) assert payment_order.invalid? assert_includes payment_order.errors[:invoice], 'is already paid' end @@ -84,7 +84,7 @@ class PaymentOrdersTest < ActiveSupport::TestCase def test_can_not_create_order_with_invalid_type assert_raise NameError do - PaymentOrder.create_with_type(type: 'not_implemented', invoice: Invoice.new) + PaymentOrder.new_with_type(type: 'not_implemented', invoice: Invoice.new) end end @@ -97,7 +97,7 @@ class PaymentOrdersTest < ActiveSupport::TestCase end def test_can_create_with_correct_subclass - payment = PaymentOrder.create_with_type(type: 'seb', invoice: Invoice.new) + payment = PaymentOrder.new_with_type(type: 'seb', invoice: Invoice.new) assert_equal PaymentOrders::Seb, payment.class end end From f529a6c8ec453431857cca008a7cef4975986310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 5 Feb 2020 17:16:09 +0200 Subject: [PATCH 350/757] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bd0e3602..d4f4b72d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ 05.02.2020 * Ruby version upgrade to 2.6.3 [#846](https://github.com/internetee/registry/issues/846) +* Added retries & raise to connect api to handle timeouts [#1474](https://github.com/internetee/registry/issues/1474) +* Added logging of XML if there is NoMethodError#text on xml data fields [#1475](https://github.com/internetee/registry/issues/1475) 04.02.2020 * Fixed bug that allowed bypassing blocked domain validation using punycode [#1142](https://github.com/internetee/registry/issues/1142) From b725ddde77aa0a8a9853968ad912c7f97ae1d7a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 6 Feb 2020 15:30:46 +0200 Subject: [PATCH 351/757] Permit & turn ActiveController::Parameters to hash --- app/controllers/registrar/domains_controller.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index f533a874c..5bf1a51f5 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -85,7 +85,7 @@ class Registrar def create authorize! :create, Depp::Domain - @domain_params = params[:domain] + @domain_params = domain_params.to_h @data = @domain.create(@domain_params) if response_ok? @@ -187,5 +187,12 @@ class Registrar :valid_to_lteq, :s) end + + def domain_params + params.require(:domain).permit(:name, :period, :registrant, :registrant_helper, :reserved_pw, + :legal_document, contacts_attributes: {}, + nameservers_attributes: {}, + dnskeys_attributes: {}) + end end end From c7e3482aa3d892556333c92d7ec6f56b8c5136ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 6 Feb 2020 16:55:23 +0200 Subject: [PATCH 352/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4f4b72d6..2dda02b55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +06.02.2020 +* Permit & turn ActiveController::Parameters to hash on domain create [#1516](https://github.com/internetee/registry/issues/1516) + 05.02.2020 * Ruby version upgrade to 2.6.3 [#846](https://github.com/internetee/registry/issues/846) * Added retries & raise to connect api to handle timeouts [#1474](https://github.com/internetee/registry/issues/1474) From b7f8d3a0b07dbe0176f5da51c796e3143c8d8bda Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 7 Feb 2020 16:26:03 +0500 Subject: [PATCH 353/757] Save request data to the directo object Closes #344 --- app/models/directo.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index 789db64b2..99a0d9265 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -48,16 +48,18 @@ class Directo < ApplicationRecord Rails.logger.info("[Directo] XML request: #{data}") response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false) Rails.logger.info("[Directo] Directo responded with code: #{response.code}, body: #{response.body}") - dump_result_to_db(mappers, response.to_s) + dump_result_to_db(mappers: mappers, xml: response.to_s, data: data) end STDOUT << "#{Time.zone.now.utc} - Directo receipts sending finished. #{counter} of #{total} are sent\n" end - def self.dump_result_to_db mappers, xml + def self.dump_result_to_db(mappers:, xml:, data:) Nokogiri::XML(xml).css("Result").each do |res| obj = mappers[res.attributes["docid"].value.to_i] - obj.directo_records.create!(response: res.as_json.to_h, invoice_number: obj.number) + obj.directo_records.create!(request: data, + response: res.as_json.to_h, + invoice_number: obj.number) obj.update_columns(in_directo: true) Rails.logger.info("[DIRECTO] Invoice #{res.attributes["docid"].value} was pushed and return is #{res.as_json.to_h.inspect}") end From a89688154a335cf158e84a4132d42855a2f72e62 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 7 Feb 2020 18:21:42 +0500 Subject: [PATCH 354/757] Get rid of BigDecimal.new deprecation warning See #1521 --- app/models/bank_statement.rb | 2 +- app/models/payment_orders/bank_link.rb | 2 +- app/models/payment_orders/every_pay.rb | 2 +- test/models/deposit_test.rb | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/models/bank_statement.rb b/app/models/bank_statement.rb index 8d4608f64..942ae3907 100644 --- a/app/models/bank_statement.rb +++ b/app/models/bank_statement.rb @@ -45,7 +45,7 @@ class BankStatement < ApplicationRecord buyer_name: row[83, 35].strip, document_no: row[118, 8].strip, description: row[126, 140].strip, - sum: BigDecimal.new(row[268, 12].strip) / BigDecimal.new('100.0'), + sum: BigDecimal(row[268, 12].strip) / BigDecimal('100.0'), reference_no: row[280, 35].strip } end diff --git a/app/models/payment_orders/bank_link.rb b/app/models/payment_orders/bank_link.rb index 1e4c2785a..ffc570510 100644 --- a/app/models/payment_orders/bank_link.rb +++ b/app/models/payment_orders/bank_link.rb @@ -89,7 +89,7 @@ module PaymentOrders def valid_amount? source = number_with_precision( - BigDecimal.new(response["VK_AMOUNT"]), precision: 2, separator: "." + BigDecimal(response["VK_AMOUNT"]), precision: 2, separator: "." ) target = number_with_precision( invoice.total, precision: 2, separator: "." diff --git a/app/models/payment_orders/every_pay.rb b/app/models/payment_orders/every_pay.rb index a866ba972..560ee6e9e 100644 --- a/app/models/payment_orders/every_pay.rb +++ b/app/models/payment_orders/every_pay.rb @@ -76,7 +76,7 @@ module PaymentOrders end def valid_amount? - invoice.total == BigDecimal.new(response[:amount]) + invoice.total == BigDecimal(response[:amount]) end def valid_account? diff --git a/test/models/deposit_test.rb b/test/models/deposit_test.rb index d8fc2d02a..171316f65 100644 --- a/test/models/deposit_test.rb +++ b/test/models/deposit_test.rb @@ -36,22 +36,22 @@ class DepositTest < ActiveSupport::TestCase def test_amount_is_converted_from_string @deposit.amount = "12.00" - assert_equal(BigDecimal.new("12.00"), @deposit.amount) + assert_equal(BigDecimal("12.00"), @deposit.amount) @deposit.amount = "12,11" - assert_equal(BigDecimal.new("12.11"), @deposit.amount) + assert_equal(BigDecimal("12.11"), @deposit.amount) end def test_amount_is_converted_from_float @deposit.amount = 12.0044 - assert_equal(BigDecimal.new("12.0044"), @deposit.amount) + assert_equal(BigDecimal("12.0044"), @deposit.amount) @deposit.amount = 12.0144 - assert_equal(BigDecimal.new("12.0144"), @deposit.amount) + assert_equal(BigDecimal("12.0144"), @deposit.amount) end def test_amount_is_converted_from_nil @deposit.amount = nil - assert_equal(BigDecimal.new("0.00"), @deposit.amount) + assert_equal(BigDecimal("0.00"), @deposit.amount) end end From d2bc6cdd86527aa94933e6608aa2658e852a40c9 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 7 Feb 2020 18:34:39 +0500 Subject: [PATCH 355/757] Add tests for storing request in invoice's irecto records --- test/models/directo_test.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/test/models/directo_test.rb b/test/models/directo_test.rb index 9dbbf64d4..b1c461eb0 100644 --- a/test/models/directo_test.rb +++ b/test/models/directo_test.rb @@ -9,12 +9,21 @@ class DirectoTest < ActiveSupport::TestCase @invoice.update(total: @invoice.account_activity.bank_transaction.sum) @invoice.account_activity.bank_transaction.update(paid_at: Time.zone.now) + response = <<-XML + + + + + XML + stub_request(:post, ENV['directo_invoice_url']).with do |request| request.body.include? 'TransactionDate' - end + end.to_return(status: 200, body: response) assert_nothing_raised do Directo.send_receipts end + + assert_not_empty @invoice.directo_records.first.request end end From 8de9c1d7c66cb80e3d77c21c5561983fc7d449f4 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 7 Feb 2020 19:01:39 +0500 Subject: [PATCH 356/757] Silence deprecation warnings --- config/environments/test.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/environments/test.rb b/config/environments/test.rb index 6913ceb7e..f9d3552b4 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,3 +1,4 @@ + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -30,7 +31,7 @@ Rails.application.configure do config.action_mailer.raise_delivery_errors = false # Print deprecation notices to the stderr. - config.active_support.deprecation = :stderr + config.active_support.deprecation = :silence # Raises error for missing translations config.action_view.raise_on_missing_translations = true From ed98ca3ed8ed42511f3961d17deeda9af0da4ad5 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 7 Feb 2020 19:11:55 +0500 Subject: [PATCH 357/757] Remove verbose warinings from tests --- config/environments/test.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/environments/test.rb b/config/environments/test.rb index f9d3552b4..784b48f42 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,5 +1,6 @@ Rails.application.configure do + $VERBOSE = nil # Settings specified here will take precedence over those in config/application.rb. # The test environment is used exclusively to run your application's From d6dd4eccf57329349cada479f5168d80ac595181 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 10 Feb 2020 14:35:48 +0500 Subject: [PATCH 358/757] Check if Directo counter is in range See #277 --- app/models/directo.rb | 7 ++++--- test/models/directo_test.rb | 13 +++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index 789db64b2..5d57bef78 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -65,7 +65,7 @@ class Directo < ApplicationRecord def self.send_monthly_invoices(debug: false) - I18n.locale = :et + I18n.locale = :et unless Rails.env.test? month = Time.now - 1.month invoices_until = month.end_of_month date_format = "%Y-%m-%d" @@ -74,8 +74,9 @@ class Directo < ApplicationRecord min_directo = Setting.directo_monthly_number_min.presence.try(:to_i) max_directo = Setting.directo_monthly_number_max.presence.try(:to_i) last_directo = [Setting.directo_monthly_number_last.presence.try(:to_i), min_directo].compact.max || 0 - if max_directo && max_directo <= last_directo - raise "Directo counter is out of period (max allowed number is smaller than last counter number)" + if max_directo && (max_directo <= last_directo + Registrar.count) + raise 'Directo counter is out of period (max allowed number is smaller than last counter'\ + 'number plus Registrar\'s count)' end directo_next = last_directo diff --git a/test/models/directo_test.rb b/test/models/directo_test.rb index 9dbbf64d4..f1c5cce76 100644 --- a/test/models/directo_test.rb +++ b/test/models/directo_test.rb @@ -5,6 +5,19 @@ class DirectoTest < ActiveSupport::TestCase @invoice = invoices(:one) end + def test_monthly_invoices_max_range_raises_if_overlaps + + Setting.directo_monthly_number_max = Setting.directo_monthly_number_last.to_i + Registrar.count - 1 + error_message = 'Directo counter is out of period (max allowed number is smaller than last '\ + 'counternumber plus Registrar\'s count)' + + error = assert_raises RuntimeError do + Directo.send_monthly_invoices + end + + assert_equal error_message, error.message + end + def test_xml_is_include_transaction_date @invoice.update(total: @invoice.account_activity.bank_transaction.sum) @invoice.account_activity.bank_transaction.update(paid_at: Time.zone.now) From e05ea4d7444bf2e4b7f8002d316bb7224c894362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 10 Feb 2020 13:26:13 +0200 Subject: [PATCH 359/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dda02b55..49d6aa0a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +10.02.2020 +* Resolved Money gem deprecation warning and silenced all warnings due plan to replace papertrail [#1522](https://github.com/internetee/registry/pull/1522) + 06.02.2020 * Permit & turn ActiveController::Parameters to hash on domain create [#1516](https://github.com/internetee/registry/issues/1516) From e50cf7d2001b0d96a3a01af894b1601e20220fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Feb 2020 15:33:22 +0200 Subject: [PATCH 360/757] Registrar: Allow to view other contacts of domain --- app/controllers/registrant/contacts_controller.rb | 3 ++- app/models/contact.rb | 11 ++++++++--- app/views/registrant/contacts/show/_domains.html.erb | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/controllers/registrant/contacts_controller.rb b/app/controllers/registrant/contacts_controller.rb index af7136ce9..e690b50f4 100644 --- a/app/controllers/registrant/contacts_controller.rb +++ b/app/controllers/registrant/contacts_controller.rb @@ -5,7 +5,8 @@ class Registrant::ContactsController < RegistrantController skip_authorization_check only: %i[edit update] def show - @contact = current_user_contacts.find(params[:id]) + @contact = domain.contacts.find(params[:id]) + @requester_contact = domain.contacts.find_by(ident: current_registrant_user.ident).id authorize! :read, @contact end diff --git a/app/models/contact.rb b/app/models/contact.rb index 558292dbd..ddf39c9bb 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -415,7 +415,7 @@ class Contact < ApplicationRecord # if total is smaller than needed, the load more # we also need to sort by valid_to # todo: extract to drapper. Then we can remove Domain#roles - def all_domains(page: nil, per: nil, params:) + def all_domains(page: nil, per: nil, params:, requester:) # compose filter sql filter_sql = case params[:domain_filter] when "Registrant".freeze @@ -431,9 +431,14 @@ class Contact < ApplicationRecord sort = Domain.column_names.include?(sorts.first) ? sorts.first : "valid_to" order = {"asc"=>"desc", "desc"=>"asc"}[sorts.second] || "desc" - # fetch domains - domains = Domain.where("domains.id IN (#{filter_sql})") + if requester + requester_domains = Contact.find(requester).domains + domains = requester_domains.where("domains.id IN (#{filter_sql})") + else + domains = Domain.where("domains.id IN (#{filter_sql})") + end + domains = domains.includes(:registrar).page(page).per(per) if sorts.first == "registrar_name".freeze diff --git a/app/views/registrant/contacts/show/_domains.html.erb b/app/views/registrant/contacts/show/_domains.html.erb index 167ab1240..d783b55b2 100644 --- a/app/views/registrant/contacts/show/_domains.html.erb +++ b/app/views/registrant/contacts/show/_domains.html.erb @@ -1,5 +1,5 @@ <% domains = contact.all_domains(page: params[:domain_page], per: 20, - params: domain_filter_params.to_h) %> + params: domain_filter_params.to_h, requester: @requester_contact) %>
From a1651ca1b98512570a3c6b404769d37ee4302c23 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 12 Feb 2020 18:51:48 +0500 Subject: [PATCH 361/757] Fix double versioning on Domain & Contact models --- app/models/concerns/versions.rb | 8 +++++++- app/models/contact.rb | 2 -- app/models/domain.rb | 2 -- .../registrant_api_registry_locks_test.rb | 2 +- test/integration/contact/audit_log_test.rb | 2 +- test/integration/domain/audit_log_test.rb | 2 +- test/learning/paper_trail_test.rb | 19 +++++++++++++++++++ test/models/domain/domain_version_test.rb | 4 ++-- 8 files changed, 31 insertions(+), 10 deletions(-) diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index bd6580adf..c9735901b 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -4,7 +4,13 @@ module Versions included do attr_accessor :version_loader - has_paper_trail class_name: "#{model_name}Version" + WITH_CHILDREN = %w[Domain Contact].freeze + + if WITH_CHILDREN.include?(model_name.name) + has_paper_trail class_name: "#{model_name}Version", meta: { children: :children_log } + else + has_paper_trail class_name: "#{model_name}Version" + end # add creator and updator before_create :add_creator diff --git a/app/models/contact.rb b/app/models/contact.rb index 9cb954462..f5f41e2f7 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -14,8 +14,6 @@ class Contact < ApplicationRecord has_many :registrant_domains, class_name: 'Domain', foreign_key: 'registrant_id' has_many :actions, dependent: :destroy - has_paper_trail class_name: "ContactVersion", meta: { children: :children_log } - attr_accessor :legal_document_id alias_attribute :kind, :ident_type alias_attribute :copy_from_id, :original_id # Old attribute name; for PaperTrail diff --git a/app/models/domain.rb b/app/models/domain.rb index b37d31ea0..ceff9e810 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -10,8 +10,6 @@ class Domain < ApplicationRecord include Concerns::Domain::RegistryLockable include Concerns::Domain::Releasable - has_paper_trail class_name: "DomainVersion", meta: { children: :children_log } - attr_accessor :roles attr_accessor :legal_document_id diff --git a/test/integration/api/registrant/registrant_api_registry_locks_test.rb b/test/integration/api/registrant/registrant_api_registry_locks_test.rb index e4f551072..4babdf428 100644 --- a/test/integration/api/registrant/registrant_api_registry_locks_test.rb +++ b/test/integration/api/registrant/registrant_api_registry_locks_test.rb @@ -25,7 +25,7 @@ class RegistrantApiRegistryLocksTest < ApplicationIntegrationTest end def test_locking_a_domain_creates_a_version_record - assert_difference '@domain.versions.count', 2 do + assert_difference '@domain.versions.count', 1 do post '/api/v1/registrant/domains/2df2c1a1-8f6a-490a-81be-8bdf29866880/registry_lock', headers: @auth_headers end diff --git a/test/integration/contact/audit_log_test.rb b/test/integration/contact/audit_log_test.rb index 41eb74cdd..41699d595 100644 --- a/test/integration/contact/audit_log_test.rb +++ b/test/integration/contact/audit_log_test.rb @@ -5,7 +5,7 @@ class ContactAuditLogTest < ActionDispatch::IntegrationTest contact = contacts(:john) contact.legal_document_id = 1 - assert_difference 'contact.versions.count', 2 do + assert_difference 'contact.versions.count', 1 do contact.save! end diff --git a/test/integration/domain/audit_log_test.rb b/test/integration/domain/audit_log_test.rb index 244e55ff7..a17fded0d 100644 --- a/test/integration/domain/audit_log_test.rb +++ b/test/integration/domain/audit_log_test.rb @@ -14,7 +14,7 @@ class DomainAuditLogTest < ActionDispatch::IntegrationTest assert_equal registrant_id, domain.registrant_id domain.legal_document_id = legal_document_id - assert_difference 'domain.versions.count', 2 do + assert_difference 'domain.versions.count', 1 do domain.save! end diff --git a/test/learning/paper_trail_test.rb b/test/learning/paper_trail_test.rb index 1a46022e4..b7351c644 100644 --- a/test/learning/paper_trail_test.rb +++ b/test/learning/paper_trail_test.rb @@ -21,6 +21,25 @@ class PaperTrailLearningTest < ActiveSupport::TestCase assert_respond_to @record.versions.first, :item_id end + def test_returns_version_count_on_domains + @domain = domains(:airport) + @domain.save + + assert_equal 1, @domain.versions.count + + @domain.name = 'domain.test' + @domain.save! + assert_equal 2, @domain.versions.count + end + + def test_returns_version_count_on_users + @user = users(:registrant) + + @user.email = 'aaa@bbb.com' + @user.save! + assert_equal 1, @user.versions.count + end + def test_creates_new_version_upon_update @record = Post.create!(title: 'old title') original_record = @record.clone diff --git a/test/models/domain/domain_version_test.rb b/test/models/domain/domain_version_test.rb index 305f353fa..74844f3af 100644 --- a/test/models/domain/domain_version_test.rb +++ b/test/models/domain/domain_version_test.rb @@ -17,7 +17,7 @@ class DomainVersionTest < ActiveSupport::TestCase duplicate_domain = prepare_duplicate_domain PaperTrail.whodunnit = @user.id_role_username - assert_difference 'duplicate_domain.versions.count', 2 do + assert_difference 'duplicate_domain.versions.count', 1 do duplicate_domain.save! end @@ -30,7 +30,7 @@ class DomainVersionTest < ActiveSupport::TestCase def test_assigns_updator_to_paper_trail_whodunnit PaperTrail.whodunnit = @user.id_role_username - assert_difference '@domain.versions.count', 2 do + assert_difference '@domain.versions.count', 1 do @domain.apply_registry_lock end From 75850da35fcab165e37fcc0e3355d3e7eeef38e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 12 Feb 2020 16:31:03 +0200 Subject: [PATCH 362/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49d6aa0a6..37992b121 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +12.02.2020 +* Fixed papertrails double recording issue [#1526](https://github.com/internetee/registry/issues/1526) + 10.02.2020 * Resolved Money gem deprecation warning and silenced all warnings due plan to replace papertrail [#1522](https://github.com/internetee/registry/pull/1522) From 21fa2ba5b9e450460aa72438e1abe80fe5bd9451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 12 Feb 2020 16:37:50 +0200 Subject: [PATCH 363/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37992b121..62cf45866 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 12.02.2020 * Fixed papertrails double recording issue [#1526](https://github.com/internetee/registry/issues/1526) +* Requests to Directo are now saved for both credit and monthly invoices [#344](https://github.com/internetee/registry/issues/344) 10.02.2020 * Resolved Money gem deprecation warning and silenced all warnings due plan to replace papertrail [#1522](https://github.com/internetee/registry/pull/1522) From 101187687279abbc5d03e09fd991f9268088f0ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Feb 2020 17:49:41 +0200 Subject: [PATCH 364/757] Link bank transaction with AccountActivity --- app/models/bank_transaction.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index ca41e8840..f53a286ba 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -59,9 +59,7 @@ class BankTransaction < ApplicationRecord if create_activity(registrar, invoice) payment_order.paid! else - payment_order.failed! - payment_order.notes = 'Failed to create activity' - payment_order.save! + payment_order.update(notes: 'Failed to create activity', status: 'failed') end end @@ -95,10 +93,12 @@ class BankTransaction < ApplicationRecord end def create_activity(registrar, invoice) - activity = AccountActivity.new(account: registrar.cash_account, - invoice: invoice, sum: invoice.subtotal, - currency: currency, description: description, - activity_type: AccountActivity::ADD_CREDIT) + activity = AccountActivity.new( + account: registrar.cash_account, bank_transaction: self, + invoice: invoice, sum: invoice.subtotal, + currency: currency, description: description, + activity_type: AccountActivity::ADD_CREDIT + ) if activity.save reset_pending_registrar_balance_reload true From fc59d4a29df4042adc012f93e7be9b346a489e64 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Thu, 13 Feb 2020 20:26:42 +0500 Subject: [PATCH 365/757] Fix warnings on cron jobs --- app/models/concerns/versions.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index c9735901b..9ffd17e9a 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -1,10 +1,10 @@ # Papertrail concerns is mainly tested at country spec module Versions extend ActiveSupport::Concern + WITH_CHILDREN = %w[Domain Contact].freeze included do attr_accessor :version_loader - WITH_CHILDREN = %w[Domain Contact].freeze if WITH_CHILDREN.include?(model_name.name) has_paper_trail class_name: "#{model_name}Version", meta: { children: :children_log } From bc4176e84450c690ceb93444f36f9d3af92bbe00 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 14 Feb 2020 12:19:28 +0500 Subject: [PATCH 366/757] Modify application.yml to store strings only --- app/models/payment_orders.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/payment_orders.rb b/app/models/payment_orders.rb index 921af0cd4..50753548a 100644 --- a/app/models/payment_orders.rb +++ b/app/models/payment_orders.rb @@ -1,6 +1,6 @@ module PaymentOrders - PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].to_s.strip.split(', ').freeze - PAYMENT_BANKLINK_BANKS = ENV['payments_banks'].to_s.strip.split(', ').freeze + PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].strip.split(', ').freeze + PAYMENT_BANKLINK_BANKS = ENV['payments_banks'].strip.split(', ').freeze PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS].flatten.freeze def self.create_with_type(type, invoice, opts = {}) From 96d511aeae1afe3116fc1ec6e1eec5bb60cea76b Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 14 Feb 2020 13:50:36 +0500 Subject: [PATCH 367/757] Revert "Modify application.yml to store strings only" This reverts commit bc4176e84450c690ceb93444f36f9d3af92bbe00. --- app/models/payment_orders.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/payment_orders.rb b/app/models/payment_orders.rb index 50753548a..921af0cd4 100644 --- a/app/models/payment_orders.rb +++ b/app/models/payment_orders.rb @@ -1,6 +1,6 @@ module PaymentOrders - PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].strip.split(', ').freeze - PAYMENT_BANKLINK_BANKS = ENV['payments_banks'].strip.split(', ').freeze + PAYMENT_INTERMEDIARIES = ENV['payments_intermediaries'].to_s.strip.split(', ').freeze + PAYMENT_BANKLINK_BANKS = ENV['payments_banks'].to_s.strip.split(', ').freeze PAYMENT_METHODS = [PAYMENT_INTERMEDIARIES, PAYMENT_BANKLINK_BANKS].flatten.freeze def self.create_with_type(type, invoice, opts = {}) From bdc1f0c820cfe651fe0b2e176ede9f56ff669a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 14 Feb 2020 20:14:07 +0200 Subject: [PATCH 368/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62cf45866..b723101ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +14.02.2020 +* Fixed Papertrail warnings [#1530](https://github.com/internetee/registry/issues/1530) + 12.02.2020 * Fixed papertrails double recording issue [#1526](https://github.com/internetee/registry/issues/1526) * Requests to Directo are now saved for both credit and monthly invoices [#344](https://github.com/internetee/registry/issues/344) From adba253d01d04972e44b217669336d92723465f0 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 17 Feb 2020 15:55:46 +0500 Subject: [PATCH 369/757] Add client_hold action to xml console See #1481 --- .../epp_requests/domain/client_hold.xml | 15 +++++++++++++++ app/views/registrar/xml_consoles/show.haml | 3 +++ 2 files changed, 18 insertions(+) create mode 100644 app/views/registrar/xml_consoles/epp_requests/domain/client_hold.xml diff --git a/app/views/registrar/xml_consoles/epp_requests/domain/client_hold.xml b/app/views/registrar/xml_consoles/epp_requests/domain/client_hold.xml new file mode 100644 index 000000000..fcafec538 --- /dev/null +++ b/app/views/registrar/xml_consoles/epp_requests/domain/client_hold.xml @@ -0,0 +1,15 @@ + + + + + + example.ee + + + + + + timo-1579351654 + + diff --git a/app/views/registrar/xml_consoles/show.haml b/app/views/registrar/xml_consoles/show.haml index f96b67738..5ffcb5279 100644 --- a/app/views/registrar/xml_consoles/show.haml +++ b/app/views/registrar/xml_consoles/show.haml @@ -29,6 +29,9 @@ , %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'delete'}} Delete + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'client_hold'}} + Client Hold %h4 Poll %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'poll', epp_action: 'poll'}} From 2663c550fa1aee229679e9d407b12b5a2a5c0369 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 4 Feb 2020 16:00:24 +0500 Subject: [PATCH 370/757] Add idempotent Que job for e-invoice sending --- app/jobs/send_e_invoice_job.rb | 39 +++++++++++++++++++ ...103125_add_e_invoice_sent_at_to_invoice.rb | 5 +++ db/structure.sql | 4 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20200204103125_add_e_invoice_sent_at_to_invoice.rb diff --git a/app/jobs/send_e_invoice_job.rb b/app/jobs/send_e_invoice_job.rb index e69de29bb..9e8af7c65 100644 --- a/app/jobs/send_e_invoice_job.rb +++ b/app/jobs/send_e_invoice_job.rb @@ -0,0 +1,39 @@ +class SendEInvoiceJob < Que::Job + + def run(invoice) + return if invoice.e_invoice_sent_at + + e_invoice = invoice.to_e_invoice + e_invoice.deliver + + ActiveRecord::Base.transaction do + invoice.update(e_invoice_sent_at: Time.zone.now) + log_success(invoice) + destroy + end + + rescue Savon::Error => e + log_error(invoice: invoice, error: e) + end + + private + + def log_success(invoice) + message = "E-Invoice for an invoice with ID # #{invoice.id} was sent successfully" + logger.info message + end + + def log_error(invoice:, error:) + message = <<~TEXT.squish + There was an error sending e-invoice for invoice with ID # #{invoice.id}. + The error message was the following: #{error}. + This job will retry + TEXT + logger.error message + end + + def logger + Rails.logger + end + +end diff --git a/db/migrate/20200204103125_add_e_invoice_sent_at_to_invoice.rb b/db/migrate/20200204103125_add_e_invoice_sent_at_to_invoice.rb new file mode 100644 index 000000000..e0e5f2cd0 --- /dev/null +++ b/db/migrate/20200204103125_add_e_invoice_sent_at_to_invoice.rb @@ -0,0 +1,5 @@ +class AddEInvoiceSentAtToInvoice < ActiveRecord::Migration[5.0] + def change + add_column :invoices, :e_invoice_sent_at, :datetime + end +end diff --git a/db/structure.sql b/db/structure.sql index a23623bae..cd2998c07 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -886,6 +886,7 @@ CREATE TABLE public.invoices ( in_directo boolean DEFAULT false, buyer_vat_no character varying, issue_date date NOT NULL, + e_invoice_sent_at timestamp without time zone, CONSTRAINT invoices_due_date_is_not_before_issue_date CHECK ((due_date >= issue_date)) ); @@ -4339,6 +4340,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191212133136'), ('20191227110904'), ('20200113091254'), -('20200115102202'); +('20200115102202'), +('20200204103125'); From 47e601f3cdce75e1ce5e5f362cb9406c6a8cd33f Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 4 Feb 2020 16:20:07 +0500 Subject: [PATCH 371/757] Add test to check if job works --- app/jobs/send_e_invoice_job.rb | 9 ++---- app/models/registrar.rb | 3 +- test/jobs/send_e_invoice_job_test.rb | 45 ++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 test/jobs/send_e_invoice_job_test.rb diff --git a/app/jobs/send_e_invoice_job.rb b/app/jobs/send_e_invoice_job.rb index 9e8af7c65..36e024b1d 100644 --- a/app/jobs/send_e_invoice_job.rb +++ b/app/jobs/send_e_invoice_job.rb @@ -1,19 +1,17 @@ class SendEInvoiceJob < Que::Job - def run(invoice) return if invoice.e_invoice_sent_at - e_invoice = invoice.to_e_invoice - e_invoice.deliver + invoice.to_e_invoice.deliver ActiveRecord::Base.transaction do invoice.update(e_invoice_sent_at: Time.zone.now) log_success(invoice) destroy end - - rescue Savon::Error => e + rescue StandardError => e log_error(invoice: invoice, error: e) + raise e end private @@ -35,5 +33,4 @@ class SendEInvoiceJob < Que::Job def logger Rails.logger end - end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 88aa1c629..94b01517e 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -100,8 +100,7 @@ class Registrar < ApplicationRecord ] ) - e_invoice = invoice.to_e_invoice - e_invoice.deliver + SendEInvoiceJob.enqueue(invoice) invoice end diff --git a/test/jobs/send_e_invoice_job_test.rb b/test/jobs/send_e_invoice_job_test.rb new file mode 100644 index 000000000..5ea09e576 --- /dev/null +++ b/test/jobs/send_e_invoice_job_test.rb @@ -0,0 +1,45 @@ +require 'test_helper' + +class SendEInvoiceJobTest < ActiveSupport::TestCase + + def teardown + EInvoice.provider = EInvoice::Providers::TestProvider.new + EInvoice::Providers::TestProvider.deliveries.clear + end + + def test_if_invoice_is_sended + @invoice = invoices(:one) + EInvoice.provider = EInvoice::Providers::TestProvider.new + EInvoice::Providers::TestProvider.deliveries.clear + + assert_nothing_raised do + SendEInvoiceJob.enqueue(@invoice) + end + + assert_not @invoice.e_invoice_sent_at.blank? + assert_equal 1, EInvoice::Providers::TestProvider.deliveries.count + end + + def test_if_invoice_sending_retries + @invoice = invoices(:one) + provider_config = { password: nil, + test_mode: true } + EInvoice.provider = EInvoice::Providers::OmnivaProvider.new(provider_config) + stub_request(:get, "https://testfinance.post.ee/finance/erp/erpServices.wsdl").to_timeout + + assert_raise HTTPClient::TimeoutError do + SendEInvoiceJob.enqueue(@invoice) + end + assert @invoicee_invoice_sent_at.blank? + + EInvoice.provider = EInvoice::Providers::TestProvider.new + EInvoice::Providers::TestProvider.deliveries.clear + + assert_nothing_raised do + SendEInvoiceJob.enqueue(@invoice) + end + + assert_not @invoice.e_invoice_sent_at.blank? + assert_equal 1, EInvoice::Providers::TestProvider.deliveries.count + end +end From 187ce318a221681928e7fd3366253d134cc0803a Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 5 Feb 2020 14:24:09 +0500 Subject: [PATCH 372/757] Destroy e-invoice sending job if invoice sent, cancelled or paid --- app/jobs/send_e_invoice_job.rb | 10 ++++++---- app/models/invoice.rb | 10 +++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/jobs/send_e_invoice_job.rb b/app/jobs/send_e_invoice_job.rb index 36e024b1d..6e7b5edb8 100644 --- a/app/jobs/send_e_invoice_job.rb +++ b/app/jobs/send_e_invoice_job.rb @@ -1,6 +1,6 @@ class SendEInvoiceJob < Que::Job def run(invoice) - return if invoice.e_invoice_sent_at + destroy if invoice.do_not_send_e_invoice? invoice.to_e_invoice.deliver @@ -9,7 +9,7 @@ class SendEInvoiceJob < Que::Job log_success(invoice) destroy end - rescue StandardError => e + rescue Exception => e log_error(invoice: invoice, error: e) raise e end @@ -17,13 +17,15 @@ class SendEInvoiceJob < Que::Job private def log_success(invoice) - message = "E-Invoice for an invoice with ID # #{invoice.id} was sent successfully" + id = invoice.try(:id) || invoice + message = "E-Invoice for an invoice with ID # #{id} was sent successfully" logger.info message end def log_error(invoice:, error:) + id = invoice.try(:id) || invoice message = <<~TEXT.squish - There was an error sending e-invoice for invoice with ID # #{invoice.id}. + There was an error sending e-invoice for invoice with ID # #{id}. The error message was the following: #{error}. This job will retry TEXT diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 7f1dea825..4b35b71fb 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -102,6 +102,14 @@ class Invoice < ApplicationRecord generator.generate end + def do_not_send_e_invoice? + e_invoice_sent? || cancelled? || paid? + end + + def e_invoice_sent? + e_invoice_sent_at.present? + end + private def apply_default_buyer_vat_no @@ -111,4 +119,4 @@ class Invoice < ApplicationRecord def calculate_total self.total = subtotal + vat_amount end -end \ No newline at end of file +end From d5662f42b8617d0dd5b25e1e06257045db71143a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 12 Feb 2020 17:14:18 +0200 Subject: [PATCH 373/757] Fully implemented prepayment Directo invoice forwarding, WIP on proformas --- Gemfile.lock | 12 +- app/controllers/concerns/book_keeping.rb | 99 +++++++++ app/jobs/directo_invoice_forward_job.rb | 101 +++++++++ app/jobs/directo_invoice_forward_job_job.rb | 100 --------- app/models/counter.rb | 24 --- app/models/directo.rb | 195 ------------------ app/models/invoice.rb | 18 +- app/models/registrar.rb | 1 + test/jobs/directo_invoice_forward_job_test.rb | 20 ++ test/models/directo_test.rb | 16 -- 10 files changed, 249 insertions(+), 337 deletions(-) create mode 100644 app/controllers/concerns/book_keeping.rb create mode 100644 app/jobs/directo_invoice_forward_job.rb delete mode 100644 app/jobs/directo_invoice_forward_job_job.rb delete mode 100644 app/models/counter.rb create mode 100644 test/jobs/directo_invoice_forward_job_test.rb diff --git a/Gemfile.lock b/Gemfile.lock index 23aa90a51..71abcf70d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,6 +7,15 @@ GIT activesupport savon +GIT + remote: https://github.com/internetee/directo.git + revision: 6ac71939da589fcceb5ef3989ba982134679ec97 + branch: directo-api + specs: + directo (0.1.0) + money (~> 6.13) + nokogiri (~> 1.10) + GIT remote: https://github.com/internetee/e_invoice.git revision: 3a754974ed25569aa85d99a87ae9e131b7c10a24 @@ -457,6 +466,7 @@ DEPENDENCIES database_cleaner devise (~> 4.7) digidoc_client! + directo! domain_name e_invoice! epp! @@ -500,4 +510,4 @@ DEPENDENCIES wkhtmltopdf-binary BUNDLED WITH - 2.0.2 + 2.1.4 diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb new file mode 100644 index 000000000..4e25a466f --- /dev/null +++ b/app/controllers/concerns/book_keeping.rb @@ -0,0 +1,99 @@ +module BookKeeping + extend ActiveSupport::Concern + + DOMAIN_TO_PRODUCT = { 'ee': '01EE', 'com.ee': '02COM', 'pri.ee': '03PRI', + 'fie.ee': '04FIE', 'med.ee': '05MED' }.freeze + + def monthly_summary(month:) + activities = monthly_activites(month) + inv = { + 'number': 1, + 'customer_code': accounting_customer_code, + 'language': language, + 'currency': activities.first.currency, + 'date': month.end_of_month.strftime('%Y-%m-%d'), + }.as_json + + lines = [] + activities.each do |activity| + fetch_invoice_lines(activity, lines) + end + lines << prepayment_for_all(lines) + + inv['invoice_lines'] = lines.as_json + + inv + end + + def fetch_invoice_lines(activity, lines) + price = load_price(activity) + if price.duration.include? 'year' + price.duration.to_i.times do |duration| + lines << new_montly_invoice_line(activity: activity, duration: duration + 1).as_json + end + else + lines << new_monthly_invoice_line(activity: activity).as_json + end + end + + def monthly_activites(month) + AccountActivity.where(account_id: account_ids) + .where(created_at: month.beginning_of_month..month.end_of_month) + .where(activity_type: [AccountActivity::CREATE, AccountActivity::RENEW]) + end + + def new_montly_invoice_line(activity:, duration: nil) + price = DirectoInvoiceForwardJob.load_price(activity) + yearly = price.duration.include?('year') + line = { + 'product_id': DOMAIN_TO_PRODUCT[price.zone_name.to_sym], + 'quantity': 1, + 'price': yearly ? (price.price.amount / price.duration.to_i) : price.amount, + } + + line['description'] = description_in_language(price: price, yearly: yearly) + add_product_timeframe(line: line, activity: activity, duration: duration) if duration > 1 + + line + end + + def add_product_timeframe(line:, activity:, duration:) + create_time = activity.created_at + line['start_date'] = (create_time + (duration - 1).year).end_of_month.strftime('%Y-%m-%d') + line['end_date'] = (create_time + (duration - 1).year + 1).end_of_month.strftime('%Y-%m-%d') + end + + def description_in_language(price:, yearly:) + if language == 'en' + registration_length = yearly ? 'year' : 'month' + prefix = ".#{price.zone_name} registration: #{price.duration.to_i} #{registration_length}" + suffix = 's' + else + registration_length = yearly ? 'aasta' : 'kuu' + prefix = ".#{price.zone_name} registreerimine: #{price.duration.to_i} #{registration_length}" + suffix = yearly ? 't' : 'd' + end + + return "#{prefix}#{suffix}" if price.duration.to_i > 1 + + prefix + end + + def prepayment_for_all(lines) + total = 0 + lines.each { |l| total += l['quantity'].to_f * l['price'].to_f } + { + 'product_id': Setting.directo_receipt_product_name, + 'description': 'Domeenide ettemaks', + 'quantity': -1, + 'price': total + } + end + + def load_price(account_activity) + @pricelists ||= {} + return @pricelists[account_activity.price_id] if @pricelists.key? account_activity.price_id + + @pricelists[account_activity.price_id] = account_activity.price + end +end diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb new file mode 100644 index 000000000..6eca4c73c --- /dev/null +++ b/app/jobs/directo_invoice_forward_job.rb @@ -0,0 +1,101 @@ +class DirectoInvoiceForwardJob < Que::Job + def run(monthly: false, dry: false) + @dry = dry + api_url = ENV['directo_invoice_url'] + sales_agent = Setting.directo_sales_agent + payment_term = Setting.directo_receipt_payment_term + @prepayment_product_id = Setting.directo_receipt_product_name + + @client = DirectoApi::Client.new(api_url, sales_agent, payment_term) + monthly ? send_monthly_invoices : send_receipts + end + + def send_receipts + unsent_invoices = Invoice.where(in_directo: false).non_cancelled + + Rails.logger.info("[DIRECTO] Trying to send #{unsent_invoices.count} prepayment invoices") + unsent_invoices.each do |invoice| + unless valid_invoice_conditions?(invoice) + Rails.logger.info "[DIRECTO] Invoice #{invoice.number} has been skipped" + next + end + @client.invoices.add_with_schema(invoice: invoice.as_directo_json, schema: 'prepayment') + end + + sync_with_directo + end + + def send_monthly_invoices + month = Time.now - 1.month + + Registrar.where.not(test_registrar: true).find_each do |registrar| + next unless registrar.cash_account + + invoice = registrar.monthly_summary(month: month) + @client.invoices.add_with_schema(invoice: invoice, schema: 'summary') + end + + # TODO: Invoice number + sync_with_directo + end + + def valid_invoice_conditions?(invoice) + if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? || + invoice.account_activity.bank_transaction.sum.nil? || + invoice.account_activity.bank_transaction.sum != invoice.total + return false + + end + + true + end + + def sync_with_directo + Rails.logger.info('[Directo] - attempting to send following XML:') + puts @client.invoices.as_xml + + return if @dry + + res = @client.invoices.deliver(ssl_verify: false) + + update_invoice_directo_state(res.body) if res.code == '200' + rescue SocketError, Errno::ECONNREFUSED, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, + EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError + Rails.logger.info("[Directo] Failed. Responded with code: #{res.code}, body: #{res.body}") + end + + def update_invoice_directo_state(xml) + Nokogiri::XML(xml).css('Result').each do |res| + inv = Invoice.find_by(number: res.attributes['docid'].value.to_i) + mark_invoice_as_sent(invoice: inv, data: res) + end + end + + def mark_invoice_as_sent(invoice:, data:) + invoice.directo_records.create!(response: data.as_json.to_h, invoice_number: invoice.number) + invoice.update_columns(in_directo: true) + Rails.logger.info("[DIRECTO] Invoice #{invoice.number} was pushed and return is #{data.as_json.to_h.inspect}") + end + + def self.load_price(account_activity) + @pricelists ||= {} + if @pricelists.key? account_activity.price_id + return @pricelists[account_activity.price_id] + end + + @pricelists[account_activity.price_id] = account_activity.price + end + + def last_directo_monthly_number + min_directo = Setting.directo_monthly_number_min.presence.try(:to_i) + max_directo = Setting.directo_monthly_number_max.presence.try(:to_i) + last_directo = [Setting.directo_monthly_number_last.presence.try(:to_i), min_directo] + .compact.max || 0 + + if max_directo && max_directo <= last_directo + raise 'Directo counter is out of period' + end + + last_directo + end +end diff --git a/app/jobs/directo_invoice_forward_job_job.rb b/app/jobs/directo_invoice_forward_job_job.rb deleted file mode 100644 index 4c95bb366..000000000 --- a/app/jobs/directo_invoice_forward_job_job.rb +++ /dev/null @@ -1,100 +0,0 @@ -class DirectoInvoiceForwardJobJob < ApplicationJob - queue_as :default - - def perform(monthly: false, dry: false) - api_url = ENV['directo_invoice_url'] - sales_agent = Setting.directo_sales_agent - payment_term = Setting.directo_receipt_payment_term - @prepayment_product_id = Setting.directo_receipt_product_name - - @client = DirectoApi::Client.new(api_url, sales_agent, payment_term) - monthly ? send_monthly_invoices(dry: dry) : send_receipts(dry: dry) - end - - def send_receipts - unsent_invoices = Invoice.where(in_directo: false).non_cancelled - - Rails.logger.info("[DIRECTO] Trying to send #{unsent_invoices.count} prepayment invoices") - unsent_invoices.each do |invoice| - unless valid_invoice_conditions?(invoice) - Rails.logger.info("[DIRECTO] Invoice #{invoice.number} has been skipped") && next - end - - @client.invoices.add(generate_directo_invoice(invoice: invoice, client: @client, - product_id: @prepayment_product_id)) - end - sync_with_directo - end - - def send_monthly_invoices; end - - def valid_invoice_conditions?(invoice) - if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? || - invoice.account_activity.bank_transaction.sum.nil? || - invoice.account_activity.bank_transaction.sum != invoice.total - false - end - true - end - - def generate_directo_invoice(invoice:, client:, product_id:) - inv = client.invoices.new - inv = create_invoice_meta(directo_invoice: inv, invoice: invoice) - inv = create_invoice_line(invoice: invoice, directo_invoice: inv, product_id: product_id) - - inv - end - - def create_invoice_meta(directo_invoice:, invoice:) - directo_invoice.customer = create_invoice_customer(invoice: invoice) - directo_invoice.date = invoice.issue_date.strftime('%Y-%m-%d') # Mapped - directo_invoice.transaction_date = - invoice.account_activity.bank_transaction&.paid_at&.strftime('%Y-%m-%d') # Mapped - directo_invoice.number = invoice.number # Mapped - directo_invoice.currency = invoice.currency # Mapped - directo_invoice.language = 'ENG' # Hardcoded - - directo_invoice - end - - def create_invoice_line(invoice:, directo_invoice:, product_id:) - line = directo_invoice.lines.new - line.code = product_id # MAPPED - line.description = invoice.result.auction.domain_name # MAPPED - line.quantity = 1 # MAPPED - line.price = ActionController::Base.helpers. - number_with_precision(invoice.subtotal, precision: 2, separator: ".") # MAPPED - directo_invoice.lines.add(line) - - directo_invoice - end - - def create_invoice_customer(invoice:) - customer = Directo::Customer.new - customer.code = invoice.buyer.accounting_customer_code # MAPPED - - customer - end - - def sync_with_directo - res = @client.invoices.deliver(ssl_verify: false) - Rails.logger.info("[Directo] Directo responded with code: #{res.code}, body: #{res.body}") - update_invoice_directo_state(res.body) if res.code == '200' - rescue SocketError, Errno::ECONNREFUSED, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, - EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError - Rails.logger.info("[Directo] Failed. Responded with code: #{res.code}, body: #{res.body}") - end - - def update_invoice_directo_state(xml) - Nokogiri::XML(xml).css('Result').each do |res| - inv = Invoice.find_by(number: res.attributes['docid'].value.to_i) - mark_invoice_as_sent(invoice: inv, data: res) - end - end - - def mark_invoice_as_sent(invoice:, data:) - invoice.directo_records.create!(response: data.as_json.to_h, invoice_number: invoice.number) - invoice.update_columns(in_directo: true) - Rails.logger.info("[DIRECTO] Invoice #{invoice.number} was pushed and return is #{data.as_json.to_h.inspect}") - end -end diff --git a/app/models/counter.rb b/app/models/counter.rb deleted file mode 100644 index 7d1c2b926..000000000 --- a/app/models/counter.rb +++ /dev/null @@ -1,24 +0,0 @@ -class Counter - def initialize value = 0 - @value = value - end - attr_accessor :value - def method_missing *args, &blk - @value.send(*args, &blk) - end - def to_s - @value.to_s - end - - def now - @value - end - - # pre-increment ".+" when x not present - def next(x = 1) - @value += x - end - def prev(x = 1) - @value -= x - end -end \ No newline at end of file diff --git a/app/models/directo.rb b/app/models/directo.rb index 789db64b2..a4af6c134 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -1,198 +1,3 @@ class Directo < ApplicationRecord - DOMAIN_TO_PRODUCT = {"ee" => "01EE", "com.ee" => "02COM", "pri.ee" => "03PRI", "fie.ee"=>"04FIE", "med.ee" => "05MED"}.freeze belongs_to :item, polymorphic: true - - def self.send_receipts - new_trans = Invoice.where(in_directo: false).non_cancelled - total = new_trans.count - counter = 0 - Rails.logger.info("[DIRECTO] Will try to send #{total} invoices") - - new_trans.find_in_batches(batch_size: 10).each do |group| - mappers = {} # need them as no direct connection between invoice - builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml| - xml.invoices { - group.each do |invoice| - - if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? || - invoice.account_activity.bank_transaction.sum.nil? || invoice.account_activity.bank_transaction.sum != invoice.total - Rails.logger.info("[DIRECTO] Invoice #{invoice.number} has been skipped") - next - end - counter += 1 - - num = invoice.number - paid_at = invoice.account_activity.bank_transaction&.paid_at&.strftime("%Y-%m-%d") - mappers[num] = invoice - xml.invoice( - "SalesAgent" => Setting.directo_sales_agent, - "Number" => num, - "InvoiceDate" => invoice.issue_date.strftime("%Y-%m-%d"), - 'TransactionDate' => paid_at, - "PaymentTerm" => Setting.directo_receipt_payment_term, - "Currency" => invoice.currency, - "CustomerCode"=> invoice.buyer.accounting_customer_code - ){ - xml.line( - "ProductID" => Setting.directo_receipt_product_name, - "Quantity" => 1, - "UnitPriceWoVAT" => ActionController::Base.helpers.number_with_precision(invoice.subtotal, precision: 2, separator: "."), - "ProductName" => invoice.order - ) - } - end - } - end - - data = builder.to_xml.gsub("\n",'') - Rails.logger.info("[Directo] XML request: #{data}") - response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false) - Rails.logger.info("[Directo] Directo responded with code: #{response.code}, body: #{response.body}") - dump_result_to_db(mappers, response.to_s) - end - - STDOUT << "#{Time.zone.now.utc} - Directo receipts sending finished. #{counter} of #{total} are sent\n" - end - - def self.dump_result_to_db mappers, xml - Nokogiri::XML(xml).css("Result").each do |res| - obj = mappers[res.attributes["docid"].value.to_i] - obj.directo_records.create!(response: res.as_json.to_h, invoice_number: obj.number) - obj.update_columns(in_directo: true) - Rails.logger.info("[DIRECTO] Invoice #{res.attributes["docid"].value} was pushed and return is #{res.as_json.to_h.inspect}") - end - end - - - def self.send_monthly_invoices(debug: false) - I18n.locale = :et - month = Time.now - 1.month - invoices_until = month.end_of_month - date_format = "%Y-%m-%d" - invoice_counter= Counter.new - - min_directo = Setting.directo_monthly_number_min.presence.try(:to_i) - max_directo = Setting.directo_monthly_number_max.presence.try(:to_i) - last_directo = [Setting.directo_monthly_number_last.presence.try(:to_i), min_directo].compact.max || 0 - if max_directo && max_directo <= last_directo - raise "Directo counter is out of period (max allowed number is smaller than last counter number)" - end - - directo_next = last_directo - Registrar.where.not(test_registrar: true).find_each do |registrar| - unless registrar.cash_account - Rails.logger.info("[DIRECTO] Monthly invoice for registrar #{registrar.id} has been skipped as it doesn't has cash_account") - next - end - counter = Counter.new(1) - items = {} - registrar_activities = AccountActivity.where(account_id: registrar.account_ids).where("created_at BETWEEN ? AND ?",month.beginning_of_month, month.end_of_month) - - # adding domains items - registrar_activities.where(activity_type: [AccountActivity::CREATE, AccountActivity::RENEW]).each do |activity| - price = load_price(activity) - - if price.duration.include?('year') - price.duration.to_i.times do |i| - year = i+1 - hash = { - "ProductID" => DOMAIN_TO_PRODUCT[price.zone_name], - "Unit" => "tk", - "ProductName" => ".#{price.zone_name} registreerimine: #{price.duration.to_i} aasta#{price.duration.to_i > 1 ? 't' : ''}", - "UnitPriceWoVAT" => price.price.amount / price.duration.to_i - } - hash["StartDate"] = (activity.created_at + (year-1).year).end_of_month.strftime(date_format) if year > 1 - hash["EndDate"] = (activity.created_at + (year-1).year + 1).end_of_month.strftime(date_format) if year > 1 - - if items.has_key?(hash) - items[hash]["Quantity"] += 1 - else - items[hash] = { "RN" => counter.next, "RR" => counter.now - i, "Quantity" => 1 } - end - end - else - 1.times do |i| - quantity = price.account_activities - .where(account_id: registrar.account_ids) - .where(created_at: month.beginning_of_month..month.end_of_month) - .where(activity_type: [AccountActivity::CREATE, AccountActivity::RENEW]) - .count - - hash = { - "ProductID" => DOMAIN_TO_PRODUCT[price.zone_name], - "Unit" => "tk", - "ProductName" => ".#{price.zone_name} registreerimine: #{price.duration.to_i} kuud", - "UnitPriceWoVAT" => price.price.amount, - } - - if items.has_key?(hash) - #items[hash]["Quantity"] += 1 - else - items[hash] = { "RN" => counter.next, "RR" => counter.now - i, "Quantity" => quantity } - end - end - end - - - end - - #adding prepaiments - if items.any? - total = 0 - items.each{ |key, val| total += val["Quantity"] * key["UnitPriceWoVAT"] } - hash = {"ProductID" => Setting.directo_receipt_product_name, "Unit" => "tk", "ProductName" => "Domeenide ettemaks", "UnitPriceWoVAT"=>total} - items[hash] = {"RN"=>counter.next, "RR" => counter.now, "Quantity"=> -1} - end - - # generating XML - if items.any? - directo_next += 1 - invoice_counter.next - - builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml| - xml.invoices{ - xml.invoice("Number" =>directo_next, - "InvoiceDate" =>invoices_until.strftime(date_format), - "PaymentTerm" =>Setting.directo_receipt_payment_term, - "CustomerCode"=>registrar.accounting_customer_code, - "Language" =>"", - "Currency" =>registrar_activities.first.currency, - "SalesAgent" =>Setting.directo_sales_agent){ - xml.line("RN" => 1, "RR"=>1, "ProductName"=> "Domeenide registreerimine - #{I18n.l(invoices_until, format: "%B %Y").titleize}") - items.each do |line, val| - xml.line(val.merge(line)) - end - } - } - end - - data = builder.to_xml.gsub("\n",'') - Rails.logger.info("[Directo] XML request: #{data}") - - if debug - STDOUT << "#{Time.zone.now.utc} - Directo xml had to be sent #{data}\n" - else - response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false) - Rails.logger.info("[Directo] Directo responded with code: #{response.code}, body: #{response.body}") - response = response.to_s - - Setting.directo_monthly_number_last = directo_next - Nokogiri::XML(response).css("Result").each do |res| - Directo.create!(request: data, response: res.as_json.to_h, invoice_number: directo_next) - Rails.logger.info("[DIRECTO] Invoice #{res.attributes["docid"].value} was pushed and return is #{res.as_json.to_h.inspect}") - end - end - else - Rails.logger.info("[DIRECTO] Registrar #{registrar.id} has nothing to be sent to Directo") - end - - end - STDOUT << "#{Time.zone.now.utc} - Directo invoices sending finished. #{invoice_counter.now} are sent\n" - end - - def self.load_price(account_activity) - @pricelists ||= {} - return @pricelists[account_activity.price_id] if @pricelists.has_key?(account_activity.price_id) - @pricelists[account_activity.price_id] = account_activity.price - end end diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 7f1dea825..20d0c5091 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -102,6 +102,22 @@ class Invoice < ApplicationRecord generator.generate end + def as_directo_json + inv = ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(self)) + inv['customer_code'] = buyer.accounting_customer_code + inv['issue_date'] = issue_date.strftime('%Y-%m-%d') + inv['transaction_date'] = account_activity.bank_transaction&.paid_at&.strftime('%Y-%m-%d') + inv['language'] = buyer.language + inv['invoice_lines'] = [{ + 'product_id': Setting.directo_receipt_product_name, + 'description': order, + 'quantity': 1, + 'price': ActionController::Base.helpers.number_with_precision(subtotal, precision: 2, separator: ".") + }].as_json + + inv + end + private def apply_default_buyer_vat_no @@ -111,4 +127,4 @@ class Invoice < ApplicationRecord def calculate_total self.total = subtotal + vat_amount end -end \ No newline at end of file +end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 8f41d62ca..788d7857a 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -1,5 +1,6 @@ class Registrar < ApplicationRecord include Versions # version/registrar_version.rb + include BookKeeping has_many :domains, dependent: :restrict_with_error has_many :contacts, dependent: :restrict_with_error diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb new file mode 100644 index 000000000..47cf9e6fb --- /dev/null +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -0,0 +1,20 @@ +require "test_helper" + +class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase + setup do + @invoice = invoices(:one) + end + + def test_xml_is_include_transaction_date + @invoice.update(total: @invoice.account_activity.bank_transaction.sum) + @invoice.account_activity.bank_transaction.update(paid_at: Time.zone.now) + + stub_request(:post, ENV['directo_invoice_url']).with do |request| + request.body.include? 'TransactionDate' + end + + assert_nothing_raised do + DirectoInvoiceForwardJob.run(monthly: false) + end + end +end diff --git a/test/models/directo_test.rb b/test/models/directo_test.rb index 9dbbf64d4..603a38d15 100644 --- a/test/models/directo_test.rb +++ b/test/models/directo_test.rb @@ -1,20 +1,4 @@ require 'test_helper' class DirectoTest < ActiveSupport::TestCase - setup do - @invoice = invoices(:one) - end - - def test_xml_is_include_transaction_date - @invoice.update(total: @invoice.account_activity.bank_transaction.sum) - @invoice.account_activity.bank_transaction.update(paid_at: Time.zone.now) - - stub_request(:post, ENV['directo_invoice_url']).with do |request| - request.body.include? 'TransactionDate' - end - - assert_nothing_raised do - Directo.send_receipts - end - end end From a743c6c56f11e8c6f9cf6e0692a18c2ab8e4a396 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Wed, 19 Feb 2020 11:08:54 +0200 Subject: [PATCH 374/757] disable airbrake performance monitoring --- config/initializers/airbrake.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/initializers/airbrake.rb b/config/initializers/airbrake.rb index 917deb02a..5c1983369 100644 --- a/config/initializers/airbrake.rb +++ b/config/initializers/airbrake.rb @@ -3,6 +3,9 @@ Airbrake.configure do |config| config.project_id = ENV['airbrake_project_id'] config.project_key = ENV['airbrake_project_key'] config.root_directory = Rails.root + config.job_stats = false + config.query_stats = false + config.performance_stats = false config.logger = if ENV['RAILS_LOG_TO_STDOUT'].present? Logger.new(STDOUT, level: Rails.logger.level) From 3b332da0bb27160ac07414e5911f000eddbf6c82 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 19 Feb 2020 14:09:45 +0500 Subject: [PATCH 375/757] Add remove clientHold to registrar UI --- app/controllers/registrar/domains_controller.rb | 8 ++++++++ app/models/ability.rb | 1 + app/models/concerns/domain/force_delete.rb | 4 ++++ app/models/concerns/remove_hold.rb | 9 +++++++++ app/models/depp/domain.rb | 1 + app/views/registrar/domains/_domain.html.erb | 4 ++++ config/locales/en.yml | 1 + config/locales/registrar/domains.en.yml | 1 + config/routes.rb | 1 + 9 files changed, 30 insertions(+) create mode 100644 app/models/concerns/remove_hold.rb diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index 5bf1a51f5..8fdfd51fd 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -153,6 +153,14 @@ class Registrar render json: scope.pluck(:name, :code).map { |c| { display_key: "#{c.second} #{c.first}", value: c.second } } end + def remove_hold + authorize! :remove_hold, Depp::Domain + return unless params[:domain_name] + + @data = @domain.remove_hold(params) + redirect_to info_registrar_domains_url(domain_name: params[:domain_name]) + end + private def init_domain diff --git a/app/models/ability.rb b/app/models/ability.rb index 9a0676ac8..a727254ad 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -50,6 +50,7 @@ class Ability can(:check, Epp::Domain) can(:create, Epp::Domain) can(:renew, Epp::Domain) { |d| d.registrar_id == @user.registrar_id } + can(:remove_hold, Epp::Domain) { |d| d.registrar_id == @user.registrar_id } can(:update, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } can(:transfer, Epp::Domain) can(:delete, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index af3aaa7c7..89c121993 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -34,6 +34,10 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength force_delete_start.present? && force_delete_lte_today && force_delete_lte_valid_date end + def client_holded? + statuses.include?(DomainStatus::CLIENT_HOLD) + end + def force_delete_lte_today force_delete_start + Setting.expire_warning_period.days <= Time.zone.now end diff --git a/app/models/concerns/remove_hold.rb b/app/models/concerns/remove_hold.rb new file mode 100644 index 000000000..1da3b5a7f --- /dev/null +++ b/app/models/concerns/remove_hold.rb @@ -0,0 +1,9 @@ +module RemoveHold + extend ActiveSupport::Concern + + def remove_hold(params) + xml = epp_xml.update(name: { value: params[:domain_name] }, + rem: [status: { attrs: { s: 'clientHold' }, value: '' }]) + current_user.request(xml) + end +end diff --git a/app/models/depp/domain.rb b/app/models/depp/domain.rb index e2413a004..3bb3b7473 100644 --- a/app/models/depp/domain.rb +++ b/app/models/depp/domain.rb @@ -1,6 +1,7 @@ module Depp class Domain include ActiveModel::Conversion + include RemoveHold extend ActiveModel::Naming attr_accessor :name, :current_user, :epp_xml diff --git a/app/views/registrar/domains/_domain.html.erb b/app/views/registrar/domains/_domain.html.erb index 74f29dc15..d8910a490 100644 --- a/app/views/registrar/domains/_domain.html.erb +++ b/app/views/registrar/domains/_domain.html.erb @@ -9,5 +9,9 @@ class: 'btn btn-default btn-xs' %> <%= link_to t('.delete_btn'), delete_registrar_domains_path(domain_name: domain.name), class: 'btn btn-default btn-xs' %> + <% if domain.client_holded? %> + <%= link_to t('.client_hold_btn'), remove_hold_registrar_domains_path(domain_name: domain.name), + class: 'btn btn-default btn-xs' %> + <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 74040fe98..15deab604 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -580,6 +580,7 @@ en: tech: Tech contact valid: Valid object_is_not_eligible_for_renewal: 'Object is not eligible for renewal' + object_is_not_holded: 'Object is not holded' bank_statement_desc: 'Import file row will match only when matching following attributes:
ref number
payment amount
invoice number (the first numerical value in comment field)
.' create_bank_statement: 'Create bank statement' create_bank_transaction: 'Create bank transaction' diff --git a/config/locales/registrar/domains.en.yml b/config/locales/registrar/domains.en.yml index c98002b8f..2f5d83240 100644 --- a/config/locales/registrar/domains.en.yml +++ b/config/locales/registrar/domains.en.yml @@ -24,6 +24,7 @@ en: edit_btn: Edit renew_btn: Renew delete_btn: Delete + client_hold_btn: Remove Hold form: save_btn: Save diff --git a/config/routes.rb b/config/routes.rb index 135fe8eb0..8315e78ce 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -99,6 +99,7 @@ Rails.application.routes.draw do get 'check' get 'delete' get 'search_contacts' + get 'remove_hold' end end resources :domain_transfers, only: %i[new create] From 1d6040cd5bdf8c0a6ee02b4a686f42a01a6041a3 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 19 Feb 2020 17:47:13 +0500 Subject: [PATCH 376/757] Fix async que job calling --- app/jobs/send_e_invoice_job.rb | 17 +++++++++++------ app/models/registrar.rb | 3 +-- test/jobs/send_e_invoice_job_test.rb | 8 +++++--- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/app/jobs/send_e_invoice_job.rb b/app/jobs/send_e_invoice_job.rb index 6e7b5edb8..e281db14d 100644 --- a/app/jobs/send_e_invoice_job.rb +++ b/app/jobs/send_e_invoice_job.rb @@ -1,21 +1,26 @@ class SendEInvoiceJob < Que::Job - def run(invoice) - destroy if invoice.do_not_send_e_invoice? + def run(invoice_id) + invoice = run_condition(Invoice.find_by(id: invoice_id)) invoice.to_e_invoice.deliver - ActiveRecord::Base.transaction do invoice.update(e_invoice_sent_at: Time.zone.now) log_success(invoice) destroy end - rescue Exception => e + rescue StandardError => e log_error(invoice: invoice, error: e) raise e end private + def run_condition(invoice) + destroy unless invoice + destroy if invoice.do_not_send_e_invoice? + invoice + end + def log_success(invoice) id = invoice.try(:id) || invoice message = "E-Invoice for an invoice with ID # #{id} was sent successfully" @@ -26,8 +31,8 @@ class SendEInvoiceJob < Que::Job id = invoice.try(:id) || invoice message = <<~TEXT.squish There was an error sending e-invoice for invoice with ID # #{id}. - The error message was the following: #{error}. - This job will retry + The error message was the following: #{error} + This job will retry. TEXT logger.error message end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 94b01517e..f657cdc74 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -99,8 +99,7 @@ class Registrar < ApplicationRecord } ] ) - - SendEInvoiceJob.enqueue(invoice) + SendEInvoiceJob.enqueue(invoice.id) invoice end diff --git a/test/jobs/send_e_invoice_job_test.rb b/test/jobs/send_e_invoice_job_test.rb index 5ea09e576..384479e92 100644 --- a/test/jobs/send_e_invoice_job_test.rb +++ b/test/jobs/send_e_invoice_job_test.rb @@ -13,8 +13,9 @@ class SendEInvoiceJobTest < ActiveSupport::TestCase EInvoice::Providers::TestProvider.deliveries.clear assert_nothing_raised do - SendEInvoiceJob.enqueue(@invoice) + SendEInvoiceJob.enqueue(@invoice.id) end + @invoice.reload assert_not @invoice.e_invoice_sent_at.blank? assert_equal 1, EInvoice::Providers::TestProvider.deliveries.count @@ -28,7 +29,7 @@ class SendEInvoiceJobTest < ActiveSupport::TestCase stub_request(:get, "https://testfinance.post.ee/finance/erp/erpServices.wsdl").to_timeout assert_raise HTTPClient::TimeoutError do - SendEInvoiceJob.enqueue(@invoice) + SendEInvoiceJob.enqueue(@invoice.id) end assert @invoicee_invoice_sent_at.blank? @@ -36,8 +37,9 @@ class SendEInvoiceJobTest < ActiveSupport::TestCase EInvoice::Providers::TestProvider.deliveries.clear assert_nothing_raised do - SendEInvoiceJob.enqueue(@invoice) + SendEInvoiceJob.enqueue(@invoice.id) end + @invoice.reload assert_not @invoice.e_invoice_sent_at.blank? assert_equal 1, EInvoice::Providers::TestProvider.deliveries.count From 5ec2d25ec573e0feff982c9e244a99ebe18f01be Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 19 Feb 2020 18:39:18 +0500 Subject: [PATCH 377/757] Move Remove clientHold button to domain info --- app/controllers/registrar/domains_controller.rb | 7 +++++++ app/models/concerns/domain/force_delete.rb | 4 ---- app/views/registrar/domains/_domain.html.erb | 4 ---- app/views/registrar/domains/info.html.erb | 4 ++++ app/views/registrar/xml_consoles/show.haml | 2 +- config/locales/en.yml | 1 + config/locales/registrar/domains.en.yml | 1 - 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index 8fdfd51fd..3e721666b 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -59,6 +59,7 @@ class Registrar def info authorize! :info, Depp::Domain @data = @domain.info(params[:domain_name]) if params[:domain_name] + @client_holded = client_holded(@data) if response_ok? render 'info' else @@ -158,6 +159,8 @@ class Registrar return unless params[:domain_name] @data = @domain.remove_hold(params) + + flash[:alert] = @data.css('msg').text unless response_ok? redirect_to info_registrar_domains_url(domain_name: params[:domain_name]) end @@ -167,6 +170,10 @@ class Registrar @domain = Depp::Domain.new(current_user: depp_current_user) end + def client_holded(data) + data.css('status')&.map { |element| element.attribute('s').value } + &.any? { |status| status == DomainStatus::CLIENT_HOLD } + end def contacts current_registrar_user.registrar.contacts diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 89c121993..af3aaa7c7 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -34,10 +34,6 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength force_delete_start.present? && force_delete_lte_today && force_delete_lte_valid_date end - def client_holded? - statuses.include?(DomainStatus::CLIENT_HOLD) - end - def force_delete_lte_today force_delete_start + Setting.expire_warning_period.days <= Time.zone.now end diff --git a/app/views/registrar/domains/_domain.html.erb b/app/views/registrar/domains/_domain.html.erb index d8910a490..74f29dc15 100644 --- a/app/views/registrar/domains/_domain.html.erb +++ b/app/views/registrar/domains/_domain.html.erb @@ -9,9 +9,5 @@ class: 'btn btn-default btn-xs' %> <%= link_to t('.delete_btn'), delete_registrar_domains_path(domain_name: domain.name), class: 'btn btn-default btn-xs' %> - <% if domain.client_holded? %> - <%= link_to t('.client_hold_btn'), remove_hold_registrar_domains_path(domain_name: domain.name), - class: 'btn btn-default btn-xs' %> - <% end %> diff --git a/app/views/registrar/domains/info.html.erb b/app/views/registrar/domains/info.html.erb index 1fcfc23c3..e88882233 100644 --- a/app/views/registrar/domains/info.html.erb +++ b/app/views/registrar/domains/info.html.erb @@ -6,6 +6,10 @@ class: 'btn btn-default') %> <%= link_to(t(:delete), delete_registrar_domains_path(domain_name: params[:domain_name]), class: 'btn btn-default') %> + <% if @client_holded %> + <%= link_to(t(:remove_client_hold), remove_hold_registrar_domains_path(domain_name: params[:domain_name]), + class: 'btn btn-default') %> + <% end %> <% else %> <%= link_to t('.transfer_btn'), new_registrar_domain_transfer_path(domain_name: params[:domain_name]), class: 'btn btn-default' %> diff --git a/app/views/registrar/xml_consoles/show.haml b/app/views/registrar/xml_consoles/show.haml index 5ffcb5279..bb66116ee 100644 --- a/app/views/registrar/xml_consoles/show.haml +++ b/app/views/registrar/xml_consoles/show.haml @@ -31,7 +31,7 @@ Delete , %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'client_hold'}} - Client Hold + Remove Client Hold %h4 Poll %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'poll', epp_action: 'poll'}} diff --git a/config/locales/en.yml b/config/locales/en.yml index 15deab604..cf72b1027 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -206,6 +206,7 @@ en: statuses: 'Statuses' description: 'Description' delete: 'Delete' + remove_client_hold: 'Remove clientHold' are_you_sure: 'Are you sure?' back: 'Back' new_domain: 'New domain' diff --git a/config/locales/registrar/domains.en.yml b/config/locales/registrar/domains.en.yml index 2f5d83240..c98002b8f 100644 --- a/config/locales/registrar/domains.en.yml +++ b/config/locales/registrar/domains.en.yml @@ -24,7 +24,6 @@ en: edit_btn: Edit renew_btn: Renew delete_btn: Delete - client_hold_btn: Remove Hold form: save_btn: Save From 98683f3bcc8111c8533d1c9e56d1c0a6dbeb488f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 19 Feb 2020 11:53:15 +0200 Subject: [PATCH 378/757] Make sure that Directo monthly invoice number frame is not exceeded --- Gemfile.lock | 2 +- app/controllers/concerns/book_keeping.rb | 15 +++-- app/jobs/directo_invoice_forward_job.rb | 76 ++++++++++++++++-------- 3 files changed, 60 insertions(+), 33 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 71abcf70d..e6b82297c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/directo.git - revision: 6ac71939da589fcceb5ef3989ba982134679ec97 + revision: 41f4b49da2d4155a76ab57f1cb07bb1d0ba9cdef branch: directo-api specs: directo (0.1.0) diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb index 4e25a466f..284b6db71 100644 --- a/app/controllers/concerns/book_keeping.rb +++ b/app/controllers/concerns/book_keeping.rb @@ -11,7 +11,7 @@ module BookKeeping 'customer_code': accounting_customer_code, 'language': language, 'currency': activities.first.currency, - 'date': month.end_of_month.strftime('%Y-%m-%d'), + 'date': month.end_of_month.strftime('%Y-%m-%d') }.as_json lines = [] @@ -43,12 +43,13 @@ module BookKeeping end def new_montly_invoice_line(activity:, duration: nil) - price = DirectoInvoiceForwardJob.load_price(activity) + price = load_price(activity) yearly = price.duration.include?('year') line = { 'product_id': DOMAIN_TO_PRODUCT[price.zone_name.to_sym], 'quantity': 1, 'price': yearly ? (price.price.amount / price.duration.to_i) : price.amount, + 'unit': language == 'en' ? 'pc' : 'tk' } line['description'] = description_in_language(price: price, yearly: yearly) @@ -59,8 +60,9 @@ module BookKeeping def add_product_timeframe(line:, activity:, duration:) create_time = activity.created_at - line['start_date'] = (create_time + (duration - 1).year).end_of_month.strftime('%Y-%m-%d') - line['end_date'] = (create_time + (duration - 1).year + 1).end_of_month.strftime('%Y-%m-%d') + start_date = (create_time + (duration - 1).year).end_of_month + end_date = (create_time + (duration - 1).year + 1).end_of_month + line['period'] = start_date..end_date end def description_in_language(price:, yearly:) @@ -84,9 +86,10 @@ module BookKeeping lines.each { |l| total += l['quantity'].to_f * l['price'].to_f } { 'product_id': Setting.directo_receipt_product_name, - 'description': 'Domeenide ettemaks', + 'description': language == 'en' ? 'Domains prepayment' : 'Domeenide ettemaks', 'quantity': -1, - 'price': total + 'price': total, + 'unit': language == 'en' ? 'pc' : 'tk' } end diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index 6eca4c73c..ff584914d 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -1,6 +1,7 @@ class DirectoInvoiceForwardJob < Que::Job def run(monthly: false, dry: false) @dry = dry + @monthly = monthly api_url = ENV['directo_invoice_url'] sales_agent = Setting.directo_sales_agent payment_term = Setting.directo_receipt_payment_term @@ -26,7 +27,7 @@ class DirectoInvoiceForwardJob < Que::Job end def send_monthly_invoices - month = Time.now - 1.month + month = Time.now Registrar.where.not(test_registrar: true).find_each do |registrar| next unless registrar.cash_account @@ -35,10 +36,25 @@ class DirectoInvoiceForwardJob < Que::Job @client.invoices.add_with_schema(invoice: invoice, schema: 'summary') end - # TODO: Invoice number + assign_montly_numbers sync_with_directo end + def assign_montly_numbers + if directo_counter_exceedable?(@client.invoices.count) + raise 'Directo Counter is going to be out of period!' + end + + min_directo = Setting.directo_monthly_number_min.presence.try(:to_i) + directo_number = [Setting.directo_monthly_number_last.presence.try(:to_i), + min_directo].compact.max || 0 + + @client.invoices.each do |inv| + directo_number += 1 + inv.number = directo_number + end + end + def valid_invoice_conditions?(invoice) if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? || invoice.account_activity.bank_transaction.sum.nil? || @@ -57,45 +73,53 @@ class DirectoInvoiceForwardJob < Que::Job return if @dry res = @client.invoices.deliver(ssl_verify: false) - - update_invoice_directo_state(res.body) if res.code == '200' + update_invoice_directo_state(res.body, @client.invoices.as_xml) if res.code == '200' rescue SocketError, Errno::ECONNREFUSED, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError - Rails.logger.info("[Directo] Failed. Responded with code: #{res.code}, body: #{res.body}") + Rails.logger.info('[Directo] Failed to communicate via API') end - def update_invoice_directo_state(xml) + def update_invoice_directo_state(xml, req) + Rails.logger.info "[Directo] - Responded with body: #{xml}" Nokogiri::XML(xml).css('Result').each do |res| - inv = Invoice.find_by(number: res.attributes['docid'].value.to_i) - mark_invoice_as_sent(invoice: inv, data: res) + if @monthly + mark_invoice_as_sent(res: res, req: req) + else + inv = Invoice.find_by(number: res.attributes['docid'].value.to_i) + mark_invoice_as_sent(invoice: inv, res: res, req: req) + end end end - def mark_invoice_as_sent(invoice:, data:) - invoice.directo_records.create!(response: data.as_json.to_h, invoice_number: invoice.number) - invoice.update_columns(in_directo: true) - Rails.logger.info("[DIRECTO] Invoice #{invoice.number} was pushed and return is #{data.as_json.to_h.inspect}") - end - - def self.load_price(account_activity) - @pricelists ||= {} - if @pricelists.key? account_activity.price_id - return @pricelists[account_activity.price_id] + def mark_invoice_as_sent(invoice: nil, res:, req:) + directo_record = Directo.new(response: res.as_json.to_h, + request: req, invoice_number: res.attributes['docid'].value.to_i) + if invoice + directo_record.invoice = invoice + invoice.update_columns(in_directo: true) + else + update_directo_number(num: directo_record.invoice_number) end - @pricelists[account_activity.price_id] = account_activity.price + directo_record.save! end - def last_directo_monthly_number + def update_directo_number(num:) + return unless num.to_i > Setting.directo_monthly_number_last + + Setting.directo_monthly_number_last = num + end + + def directo_counter_exceedable?(invoice_count) min_directo = Setting.directo_monthly_number_min.presence.try(:to_i) max_directo = Setting.directo_monthly_number_max.presence.try(:to_i) - last_directo = [Setting.directo_monthly_number_last.presence.try(:to_i), min_directo] - .compact.max || 0 + last_directo = [Setting.directo_monthly_number_last.presence.try(:to_i), + min_directo].compact.max || 0 - if max_directo && max_directo <= last_directo - raise 'Directo counter is out of period' + if max_directo && max_directo < (last_directo + invoice_count) + true + else + false end - - last_directo end end From 26adaa974332fe34771c4ef1224cef1ccff5cbeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 20 Feb 2020 15:05:20 +0200 Subject: [PATCH 379/757] Fix invoice linking with directo record --- app/jobs/directo_invoice_forward_job.rb | 5 ++--- test/jobs/directo_invoice_forward_job_test.rb | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index ff584914d..3f0b11486 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -67,8 +67,7 @@ class DirectoInvoiceForwardJob < Que::Job end def sync_with_directo - Rails.logger.info('[Directo] - attempting to send following XML:') - puts @client.invoices.as_xml + Rails.logger.info("[Directo] - attempting to send following XML:\n #{@client.invoices.as_xml}") return if @dry @@ -95,7 +94,7 @@ class DirectoInvoiceForwardJob < Que::Job directo_record = Directo.new(response: res.as_json.to_h, request: req, invoice_number: res.attributes['docid'].value.to_i) if invoice - directo_record.invoice = invoice + directo_record.item = invoice invoice.update_columns(in_directo: true) else update_directo_number(num: directo_record.invoice_number) diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb index b50fe378b..ede17ce9e 100644 --- a/test/jobs/directo_invoice_forward_job_test.rb +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -21,7 +21,7 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase end.to_return(status: 200, body: response) assert_nothing_raised do - Directo.send_receipts + DirectoInvoiceForwardJob.run(monthly: false, dry: false) end assert_not_empty @invoice.directo_records.first.request From afa455988dce4a7776574e31cb0443b7d0a41ef7 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Thu, 20 Feb 2020 19:46:23 +0200 Subject: [PATCH 380/757] bump ruby version to 2.6.5 --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index ec1cf33c3..57cf282eb 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.6.3 +2.6.5 From 916546ad867aa909975bd33290a254830588a34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 20 Feb 2020 20:45:17 +0200 Subject: [PATCH 381/757] Update CHANGELOG.md [ci skip] --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b723101ec..b5409f2f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +20.02.2020 +* E-invoice sending to Que to manage resending in case of an error [#1509](https://github.com/internetee/registry/issues/1509) +* Check to make sure all monthly invoices fit in available invoice number range [#277](https://github.com/internetee/registry/issues/277) +* Disabled aurbreak performance monitoring [#1534](https://github.com/internetee/registry/pull/1534) + 14.02.2020 * Fixed Papertrail warnings [#1530](https://github.com/internetee/registry/issues/1530) From e81e24ff238f834cbe22b1a3c1c9c5ddb031fe67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2020 20:19:46 +0000 Subject: [PATCH 382/757] Bump nokogiri from 1.10.7 to 1.10.8 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.7 to 1.10.8. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.7...v1.10.8) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fad531c26..b67273812 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -269,7 +269,7 @@ GEM mustermann (>= 1.0.0) netrc (0.11.0) nio4r (2.5.2) - nokogiri (1.10.7) + nokogiri (1.10.8) mini_portile2 (~> 2.4.0) nori (2.6.0) open4 (1.3.4) From 4ddbb08e80879fcf365120b1ad897f9c97675ba7 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 25 Feb 2020 14:19:24 +0500 Subject: [PATCH 383/757] Move data migrations from rake tasks to gem See #1298 --- Gemfile | 2 +- Gemfile.lock | 2 +- .../20150601083516_add_cert_common_name.rb | 19 +++--- db/data/20150601083800_add_cert_md5.rb | 43 +++++++------ db/data/20150609093515_add_renew_setting.rb | 5 +- db/data/20150610111019_add_expire_settings.rb | 7 +-- ...20150612125720_refactor_domain_statuses.rb | 17 +++--- ...0150707103801_refactor_contact_statuses.rb | 17 +++--- ...200225085234_convert_domain_delete_date.rb | 19 ++++++ ...elete_orphaned_registrant_verifications.rb | 18 ++++++ ..._regenerate_registrar_reference_numbers.rb | 19 ++++++ db/data_schema.rb | 2 + lib/tasks/data_migrations/.keep | 0 .../convert_domain_delete_date.rake | 16 ----- ...ete_orphaned_registrant_verifications.rake | 15 ----- ...egenerate_registrar_reference_numbers.rake | 16 ----- ...nerate_registrar_reference_numbers_test.rb | 61 ------------------- .../convert_domain_delete_date_test.rb | 61 ------------------- ..._orphaned_registrant_verifications_test.rb | 43 ------------- 19 files changed, 111 insertions(+), 271 deletions(-) create mode 100644 db/data/20200225085234_convert_domain_delete_date.rb create mode 100644 db/data/20200225085433_delete_orphaned_registrant_verifications.rb create mode 100644 db/data/20200225085539_regenerate_registrar_reference_numbers.rb create mode 100644 db/data_schema.rb create mode 100644 lib/tasks/data_migrations/.keep delete mode 100644 lib/tasks/data_migrations/convert_domain_delete_date.rake delete mode 100644 lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake delete mode 100644 lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake delete mode 100644 test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb delete mode 100644 test/tasks/data_migrations/convert_domain_delete_date_test.rb delete mode 100644 test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb diff --git a/Gemfile b/Gemfile index cab5e0dd6..7b9ee143d 100644 --- a/Gemfile +++ b/Gemfile @@ -36,10 +36,10 @@ gem 'devise', '~> 4.7' gem 'grape' # registry specfic +gem 'data_migrate', '~> 6.1' gem 'isikukood' # for EE-id validation gem 'simpleidn', '0.0.9' # For punycode gem 'money-rails' -gem 'data_migrate' gem 'whenever', '0.9.4', require: false # country listing diff --git a/Gemfile.lock b/Gemfile.lock index b67273812..5053b9468 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -462,7 +462,7 @@ DEPENDENCIES company_register! countries daemons-rails (= 1.2.1) - data_migrate + data_migrate (~> 6.1) database_cleaner devise (~> 4.7) digidoc_client! diff --git a/db/data/20150601083516_add_cert_common_name.rb b/db/data/20150601083516_add_cert_common_name.rb index ef401b871..d0959e5b7 100644 --- a/db/data/20150601083516_add_cert_common_name.rb +++ b/db/data/20150601083516_add_cert_common_name.rb @@ -1,16 +1,15 @@ -class AddCertCommonName < ActiveRecord::Migration +class AddCertCommonName < ActiveRecord::Migration[5.1] def self.up - Certificate.all.each do |x| - if x.crt.blank? && x.csr.present? - pc = x.parsed_csr.try(:subject).try(:to_s) || '' - cn = pc.scan(/\/CN=(.+)/).flatten.first - x.common_name = cn.split('/').first - end - x.save - end + # Certificate.all.each do |x| + # if x.crt.blank? && x.csr.present? + # pc = x.parsed_csr.try(:subject).try(:to_s) || '' + # cn = pc.scan(/\/CN=(.+)/).flatten.first + # x.common_name = cn.split('/').first + # end + # x.save + # end end def self.down - raise ActiveRecord::IrreversibleMigration end end diff --git a/db/data/20150601083800_add_cert_md5.rb b/db/data/20150601083800_add_cert_md5.rb index 5efe4e596..4db005177 100644 --- a/db/data/20150601083800_add_cert_md5.rb +++ b/db/data/20150601083800_add_cert_md5.rb @@ -1,28 +1,27 @@ -class AddCertMd5 < ActiveRecord::Migration +class AddCertMd5 < ActiveRecord::Migration[5.1] def self.up - Certificate.all.each do |x| - if x.crt.present? && x.csr.present? - x.interface = Certificate::REGISTRAR - x.md5 = OpenSSL::Digest::MD5.new(x.parsed_crt.to_der).to_s - - pc = x.parsed_crt.try(:subject).try(:to_s) || '' - cn = pc.scan(/\/CN=(.+)/).flatten.first - x.common_name = cn.split('/').first - elsif x.crt.present? && x.csr.blank? - x.interface = Certificate::API - x.md5 = OpenSSL::Digest::MD5.new(x.parsed_crt.to_der).to_s - - pc = x.parsed_crt.try(:subject).try(:to_s) || '' - cn = pc.scan(/\/CN=(.+)/).flatten.first - x.common_name = cn.split('/').first - elsif x.crt.blank? && x.csr.present? - x.interface = Certificate::REGISTRAR - end - x.save - end + # Certificate.all.each do |x| + # if x.crt.present? && x.csr.present? + # x.interface = Certificate::REGISTRAR + # x.md5 = OpenSSL::Digest::MD5.new(x.parsed_crt.to_der).to_s + # + # pc = x.parsed_crt.try(:subject).try(:to_s) || '' + # cn = pc.scan(/\/CN=(.+)/).flatten.first + # x.common_name = cn.split('/').first + # elsif x.crt.present? && x.csr.blank? + # x.interface = Certificate::API + # x.md5 = OpenSSL::Digest::MD5.new(x.parsed_crt.to_der).to_s + # + # pc = x.parsed_crt.try(:subject).try(:to_s) || '' + # cn = pc.scan(/\/CN=(.+)/).flatten.first + # x.common_name = cn.split('/').first + # elsif x.crt.blank? && x.csr.present? + # x.interface = Certificate::REGISTRAR + # end + # x.save + # end end def self.down - raise ActiveRecord::IrreversibleMigration end end diff --git a/db/data/20150609093515_add_renew_setting.rb b/db/data/20150609093515_add_renew_setting.rb index f462c38cb..2d99aa448 100644 --- a/db/data/20150609093515_add_renew_setting.rb +++ b/db/data/20150609093515_add_renew_setting.rb @@ -1,9 +1,8 @@ -class AddRenewSetting < ActiveRecord::Migration +class AddRenewSetting < ActiveRecord::Migration[5.1] def self.up - Setting.days_to_renew_domain_before_expire = 90 + # Setting.days_to_renew_domain_before_expire = 90 end def self.down - raise ActiveRecord::IrreversibleMigration end end diff --git a/db/data/20150610111019_add_expire_settings.rb b/db/data/20150610111019_add_expire_settings.rb index 9f8b9cce8..6171536dd 100644 --- a/db/data/20150610111019_add_expire_settings.rb +++ b/db/data/20150610111019_add_expire_settings.rb @@ -1,10 +1,9 @@ -class AddExpireSettings < ActiveRecord::Migration +class AddExpireSettings < ActiveRecord::Migration[5.1] def self.up - Setting.expire_warning_period = 15 - Setting.redemption_grace_period = 30 + # Setting.expire_warning_period = 15 + # Setting.redemption_grace_period = 30 end def self.down - raise ActiveRecord::IrreversibleMigration end end diff --git a/db/data/20150612125720_refactor_domain_statuses.rb b/db/data/20150612125720_refactor_domain_statuses.rb index 00e87b4d0..de0733e3f 100644 --- a/db/data/20150612125720_refactor_domain_statuses.rb +++ b/db/data/20150612125720_refactor_domain_statuses.rb @@ -1,15 +1,14 @@ -class RefactorDomainStatuses < ActiveRecord::Migration +class RefactorDomainStatuses < ActiveRecord::Migration[5.1] def self.up - Domain.find_each do |x| - statuses = [] - x.domain_statuses.each do |ds| - statuses << ds.value - end - x.update_column('statuses', statuses) - end + # Domain.find_each do |x| + # statuses = [] + # x.domain_statuses.each do |ds| + # statuses << ds.value + # end + # x.update_column('statuses', statuses) if x.statuses.blank? + # end end def self.down - raise ActiveRecord::IrreversibleMigration end end diff --git a/db/data/20150707103801_refactor_contact_statuses.rb b/db/data/20150707103801_refactor_contact_statuses.rb index be6312016..e1833dd66 100644 --- a/db/data/20150707103801_refactor_contact_statuses.rb +++ b/db/data/20150707103801_refactor_contact_statuses.rb @@ -1,15 +1,14 @@ -class RefactorContactStatuses < ActiveRecord::Migration +class RefactorContactStatuses < ActiveRecord::Migration[5.1] def self.up - Contact.find_each do |contact| - statuses = [] - contact.depricated_statuses.each do |ds| - statuses << ds.value - end - contact.update_column('statuses', statuses) - end + # Contact.find_each do |contact| + # statuses = [] + # contact.depricated_statuses.each do |ds| + # statuses << ds.value + # end + # contact.update_column('statuses', statuses) + # end end def self.down - raise ActiveRecord::IrreversibleMigration end end diff --git a/db/data/20200225085234_convert_domain_delete_date.rb b/db/data/20200225085234_convert_domain_delete_date.rb new file mode 100644 index 000000000..81f070927 --- /dev/null +++ b/db/data/20200225085234_convert_domain_delete_date.rb @@ -0,0 +1,19 @@ +class ConvertDomainDeleteDate < ActiveRecord::Migration[5.1] + def up + # processed_domain_count = 0 + # + # Domain.transaction do + # Domain.find_each do |domain| + # next unless domain.delete_date + # + # domain.update_columns(delete_date: domain.delete_date + 1.day) + # processed_domain_count += 1 + # end + # end + # + # puts "Domains processed: #{processed_domain_count}" + end + + def down + end +end diff --git a/db/data/20200225085433_delete_orphaned_registrant_verifications.rb b/db/data/20200225085433_delete_orphaned_registrant_verifications.rb new file mode 100644 index 000000000..73c270a6a --- /dev/null +++ b/db/data/20200225085433_delete_orphaned_registrant_verifications.rb @@ -0,0 +1,18 @@ +class DeleteOrphanedRegistrantVerifications < ActiveRecord::Migration[5.1] + def up + # orphaned_registrant_verifications = RegistrantVerification.where.not(domain_id: Domain.ids) + # orphaned_registrant_verification_count = orphaned_registrant_verifications.count + # processed_registrant_verification_count = 0 + # + # orphaned_registrant_verifications.each do |registrant_verification| + # registrant_verification.destroy! + # processed_registrant_verification_count += 1 + # end + # + # puts "Processed: #{processed_registrant_verification_count} out of" \ + # " #{orphaned_registrant_verification_count}" + end + + def down + end +end diff --git a/db/data/20200225085539_regenerate_registrar_reference_numbers.rb b/db/data/20200225085539_regenerate_registrar_reference_numbers.rb new file mode 100644 index 000000000..fbd2a5c5f --- /dev/null +++ b/db/data/20200225085539_regenerate_registrar_reference_numbers.rb @@ -0,0 +1,19 @@ +class RegenerateRegistrarReferenceNumbers < ActiveRecord::Migration[5.1] + def up + # processed_registrar_count = 0 + # + # Registrar.transaction do + # Registrar.all.each do |registrar| + # next unless registrar.reference_no.start_with?('RF') + # + # registrar.update_columns(reference_no: Billing::ReferenceNo.generate) + # processed_registrar_count += 1 + # end + # end + # + # puts "Registrars processed: #{processed_registrar_count}" + end + + def down + end +end diff --git a/db/data_schema.rb b/db/data_schema.rb new file mode 100644 index 000000000..f4a3f5d8a --- /dev/null +++ b/db/data_schema.rb @@ -0,0 +1,2 @@ +# encoding: UTF-8 +DataMigrate::Data.define(version: 20150707103801) diff --git a/lib/tasks/data_migrations/.keep b/lib/tasks/data_migrations/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/lib/tasks/data_migrations/convert_domain_delete_date.rake b/lib/tasks/data_migrations/convert_domain_delete_date.rake deleted file mode 100644 index 7eeee5cf0..000000000 --- a/lib/tasks/data_migrations/convert_domain_delete_date.rake +++ /dev/null @@ -1,16 +0,0 @@ -namespace :data_migrations do - task convert_domain_delete_date: :environment do - processed_domain_count = 0 - - Domain.transaction do - Domain.find_each do |domain| - next unless domain.delete_date - - domain.update_columns(delete_date: domain.delete_date + 1.day) - processed_domain_count += 1 - end - end - - puts "Domains processed: #{processed_domain_count}" - end -end \ No newline at end of file diff --git a/lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake b/lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake deleted file mode 100644 index f65db547e..000000000 --- a/lib/tasks/data_migrations/delete_orphaned_registrant_verifications.rake +++ /dev/null @@ -1,15 +0,0 @@ -namespace :data_migrations do - task delete_orphaned_registrant_verifications: :environment do - orphaned_registrant_verifications = RegistrantVerification.where.not(domain_id: Domain.ids) - orphaned_registrant_verification_count = orphaned_registrant_verifications.count - processed_registrant_verification_count = 0 - - orphaned_registrant_verifications.each do |registrant_verification| - registrant_verification.destroy! - processed_registrant_verification_count += 1 - end - - puts "Processed: #{processed_registrant_verification_count} out of" \ - " #{orphaned_registrant_verification_count}" - end -end diff --git a/lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake b/lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake deleted file mode 100644 index 6f6aaebe2..000000000 --- a/lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake +++ /dev/null @@ -1,16 +0,0 @@ -namespace :data_migrations do - task regenerate_registrar_reference_numbers: [:environment] do - processed_registrar_count = 0 - - Registrar.transaction do - Registrar.all.each do |registrar| - next unless registrar.reference_no.start_with?('RF') - - registrar.update_columns(reference_no: Billing::ReferenceNo.generate) - processed_registrar_count += 1 - end - end - - puts "Registrars processed: #{processed_registrar_count}" - end -end diff --git a/test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb b/test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb deleted file mode 100644 index 946c6b898..000000000 --- a/test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb +++ /dev/null @@ -1,61 +0,0 @@ -require 'test_helper' - -class RegenerateRegistrarReferenceNumbersTaskTest < ActiveSupport::TestCase - def test_regenerates_registrar_reference_numbers_to_estonian_format - registrar = registrars(:bestnames) - registrar.update_column(:reference_no, 'RF1111') - - capture_io { run_task } - registrar.reload - - assert_not registrar.reference_no.start_with?('RF') - end - - def test_bypasses_registrar_validation - registrar = registrars(:invalid) - registrar.update_column(:reference_no, 'RF1111') - assert registrar.invalid? - - capture_io { run_task } - registrar.reload - - assert_not registrar.reference_no.start_with?('RF') - end - - def test_does_not_regenerate_when_the_task_is_run_again - registrar = registrars(:bestnames) - registrar.update!(reference_no: '1111') - - capture_io { run_task } - registrar.reload - - assert_equal '1111', registrar.reference_no - end - - def test_keeps_iso_reference_number_on_the_invoice_unchanged - registrar = registrars(:bestnames) - registrar.update_column(:reference_no, 'RF1111') - invoice = invoices(:one) - invoice.update!(reference_no: 'RF2222') - - capture_io { run_task } - invoice.reload - - assert_equal 'RF2222', invoice.reference_no - end - - def test_output - registrar = registrars(:bestnames) - registrar.update_column(:reference_no, 'RF1111') - - assert_output "Registrars processed: 1\n" do - run_task - end - end - - private - - def run_task - Rake::Task['data_migrations:regenerate_registrar_reference_numbers'].execute - end -end diff --git a/test/tasks/data_migrations/convert_domain_delete_date_test.rb b/test/tasks/data_migrations/convert_domain_delete_date_test.rb deleted file mode 100644 index 709334b52..000000000 --- a/test/tasks/data_migrations/convert_domain_delete_date_test.rb +++ /dev/null @@ -1,61 +0,0 @@ -require 'test_helper' - -class ConvertDomainDeleteDateTaskTest < ActiveSupport::TestCase - setup do - @domain = domains(:shop) - end - - def test_moves_domain_delete_date_one_day_ahead - @domain.update!(delete_date: '2010-07-05') - - capture_io do - run_task - end - @domain.reload - - assert_equal Date.parse('2010-07-06'), @domain.delete_date - end - - def test_processes_invalid_domains - @domain = domains(:invalid) - @domain.update_columns(delete_date: '2010-07-05') - - capture_io do - run_task - end - @domain.reload - - assert_equal Date.parse('2010-07-06'), @domain.delete_date - end - - def test_skips_non_expired_domains - @domain.update!(delete_date: nil) - - assert_nothing_raised do - capture_io do - run_task - end - end - end - - def test_output - eliminate_effect_of_all_domains_except(@domain) - @domain.update!(delete_date: '2010-07-05') - - assert_output "Domains processed: 1\n" do - run_task - end - end - - private - - def eliminate_effect_of_all_domains_except(domain) - Domain.connection.disable_referential_integrity do - Domain.where("id != #{domain.id}").delete_all - end - end - - def run_task - Rake::Task['data_migrations:convert_domain_delete_date'].execute - end -end \ No newline at end of file diff --git a/test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb b/test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb deleted file mode 100644 index df576332e..000000000 --- a/test/tasks/data_migrations/delete_orphaned_registrant_verifications_test.rb +++ /dev/null @@ -1,43 +0,0 @@ -require 'test_helper' - -class ArchiveOrphanedRegistrantVerificationsTest < ActiveSupport::TestCase - def test_deletes_orphaned_registrant_verifications - create_orphaned_registrant_verification - - assert_difference 'RegistrantVerification.count', -1 do - capture_io do - run_task - end - end - end - - def test_keeps_non_orphaned_registrant_verifications_intact - assert_no_difference 'RegistrantVerification.count' do - capture_io do - run_task - end - end - end - - def test_output - create_orphaned_registrant_verification - - assert_output "Processed: 1 out of 1\n" do - run_task - end - end - - private - - def create_orphaned_registrant_verification - non_existent_domain_id = 55 - assert_not_includes Domain.ids, non_existent_domain_id - - RegistrantVerification.connection.disable_referential_integrity do - registrant_verifications(:one).update_columns(domain_id: non_existent_domain_id) - end - end - - def run_task - Rake::Task['data_migrations:delete_orphaned_registrant_verifications'].execute end -end From 53168a6e2ac2f7f040207ece482f942423ceb226 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 26 Feb 2020 16:19:33 +0500 Subject: [PATCH 384/757] Add verified parameter to registrar domain controller strong params See #1540 --- app/controllers/registrar/domains_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index 5bf1a51f5..2b3b249e7 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -190,9 +190,9 @@ class Registrar def domain_params params.require(:domain).permit(:name, :period, :registrant, :registrant_helper, :reserved_pw, - :legal_document, contacts_attributes: {}, - nameservers_attributes: {}, - dnskeys_attributes: {}) + :verified, :legal_document, contacts_attributes: {}, + nameservers_attributes: {}, + dnskeys_attributes: {}) end end end From 99c0abc5a8dfafea4c87c2dc5c4c782e453053c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 26 Feb 2020 14:53:21 +0200 Subject: [PATCH 385/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5409f2f5..47f8baef1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +26.02.2020 +* Implemented consistent and automated data migrations [#1298](https://github.com/internetee/registry/issues/1298) + 20.02.2020 * E-invoice sending to Que to manage resending in case of an error [#1509](https://github.com/internetee/registry/issues/1509) * Check to make sure all monthly invoices fit in available invoice number range [#277](https://github.com/internetee/registry/issues/277) From b859cfc090d7c19f2197bf2664f5bd196afb180c Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 26 Feb 2020 19:30:38 +0500 Subject: [PATCH 386/757] Fix domain statuses removal Close #1543s --- app/models/domain.rb | 4 ++-- test/system/admin_area/domains_test.rb | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index ceff9e810..f21317b70 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -485,9 +485,9 @@ class Domain < ApplicationRecord self.delete_date = nil when DomainStatus::SERVER_MANUAL_INZONE # removal causes server hold to set self.outzone_at = Time.zone.now if force_delete_scheduled? - when DomainStatus::DomainStatus::EXPIRED # removal causes server hold to set + when DomainStatus::EXPIRED # removal causes server hold to set self.outzone_at = self.expire_time + 15.day - when DomainStatus::DomainStatus::SERVER_HOLD # removal causes server hold to set + when DomainStatus::SERVER_HOLD # removal causes server hold to set self.outzone_at = nil end end diff --git a/test/system/admin_area/domains_test.rb b/test/system/admin_area/domains_test.rb index abd1d93fb..05e7d60f3 100644 --- a/test/system/admin_area/domains_test.rb +++ b/test/system/admin_area/domains_test.rb @@ -35,4 +35,15 @@ class AdminDomainsTestTest < ApplicationSystemTestCase assert_text 'deleteCandidate status has been removed' assert_no_link 'Remove deleteCandidate status' end + + def test_remove_domain_status + @domain.update!(statuses: [DomainStatus::SERVER_REGISTRANT_CHANGE_PROHIBITED]) + + visit edit_admin_domain_url(@domain) + + click_link_or_button 'Delete' + click_link_or_button 'Save' + + assert_text 'Domain updated!' + end end From 3e2e84f3645d02875b98f4fa6dbe4e6c9b1712c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 26 Feb 2020 17:19:11 +0200 Subject: [PATCH 387/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47f8baef1..123ef72a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 26.02.2020 +* Registrar: added an option to remove clientHold status [#1481](https://github.com/internetee/registry/issues/1481) * Implemented consistent and automated data migrations [#1298](https://github.com/internetee/registry/issues/1298) 20.02.2020 From f4ea9cfeffd06c23ce097a96d1a7defa1fadae15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 26 Feb 2020 17:21:56 +0200 Subject: [PATCH 388/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 123ef72a1..94ecb8864 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ 26.02.2020 * Registrar: added an option to remove clientHold status [#1481](https://github.com/internetee/registry/issues/1481) +* Admin: fixed domain status removal issue [#1543](https://github.com/internetee/registry/issues/1543) * Implemented consistent and automated data migrations [#1298](https://github.com/internetee/registry/issues/1298) 20.02.2020 From ee332d8a7f080d9033aaecd63c5d67516c5c9213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 21 Feb 2020 14:20:04 +0200 Subject: [PATCH 389/757] Tests for DirectoInvoiceForwardJob --- Gemfile.lock | 2 +- app/controllers/concerns/book_keeping.rb | 31 +++-- app/jobs/directo_invoice_forward_job.rb | 6 +- test/fixtures/account_activities.yml | 2 +- test/jobs/directo_invoice_forward_job_test.rb | 114 ++++++++++++++++++ 5 files changed, 144 insertions(+), 11 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4bc35aafc..4ca0aeb22 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/directo.git - revision: 41f4b49da2d4155a76ab57f1cb07bb1d0ba9cdef + revision: c688c46134ce04f5a75b7a0563abc18cd9af030a branch: directo-api specs: directo (0.1.0) diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb index 284b6db71..e9d3e9ee9 100644 --- a/app/controllers/concerns/book_keeping.rb +++ b/app/controllers/concerns/book_keeping.rb @@ -6,6 +6,8 @@ module BookKeeping def monthly_summary(month:) activities = monthly_activites(month) + return unless activities.any? + inv = { 'number': 1, 'customer_code': accounting_customer_code, @@ -15,6 +17,8 @@ module BookKeeping }.as_json lines = [] + + lines << { 'description': title_for_summary(month) } activities.each do |activity| fetch_invoice_lines(activity, lines) end @@ -25,11 +29,23 @@ module BookKeeping inv end + def title_for_summary(date) + if language == 'en' + I18n.with_locale('en') do + "Domains registrations - #{I18n.l(date, format: '%B %Y')}" + end + else + I18n.with_locale('et') do + "Domeenide registreerimine - #{I18n.l(date, format: '%B %Y')}" + end + end + end + def fetch_invoice_lines(activity, lines) price = load_price(activity) if price.duration.include? 'year' price.duration.to_i.times do |duration| - lines << new_montly_invoice_line(activity: activity, duration: duration + 1).as_json + lines << new_monthly_invoice_line(activity: activity, duration: duration + 1).as_json end else lines << new_monthly_invoice_line(activity: activity).as_json @@ -42,27 +58,28 @@ module BookKeeping .where(activity_type: [AccountActivity::CREATE, AccountActivity::RENEW]) end - def new_montly_invoice_line(activity:, duration: nil) + def new_monthly_invoice_line(activity:, duration: nil) price = load_price(activity) yearly = price.duration.include?('year') line = { 'product_id': DOMAIN_TO_PRODUCT[price.zone_name.to_sym], 'quantity': 1, - 'price': yearly ? (price.price.amount / price.duration.to_i) : price.amount, + 'price': yearly ? (price.price.amount / price.duration.to_i) : price.price.amount, 'unit': language == 'en' ? 'pc' : 'tk' } line['description'] = description_in_language(price: price, yearly: yearly) - add_product_timeframe(line: line, activity: activity, duration: duration) if duration > 1 + if yearly && duration + add_product_timeframe(line: line, activity: activity, duration: duration) if duration > 1 + end line end def add_product_timeframe(line:, activity:, duration:) create_time = activity.created_at - start_date = (create_time + (duration - 1).year).end_of_month - end_date = (create_time + (duration - 1).year + 1).end_of_month - line['period'] = start_date..end_date + line['start_date'] = (create_time + (duration - 1).year).end_of_month.strftime('%Y-%m-%d') + line['end_date'] = (create_time + (duration - 1).year + 1).end_of_month.strftime('%Y-%m-%d') end def description_in_language(price:, yearly:) diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index 3f0b11486..cd228fdaf 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -33,6 +33,8 @@ class DirectoInvoiceForwardJob < Que::Job next unless registrar.cash_account invoice = registrar.monthly_summary(month: month) + next if invoice.nil? + @client.invoices.add_with_schema(invoice: invoice, schema: 'summary') end @@ -104,9 +106,9 @@ class DirectoInvoiceForwardJob < Que::Job end def update_directo_number(num:) - return unless num.to_i > Setting.directo_monthly_number_last + return unless num.to_i > Setting.directo_monthly_number_last.to_i - Setting.directo_monthly_number_last = num + Setting.directo_monthly_number_last = num.to_i end def directo_counter_exceedable?(invoice_count) diff --git a/test/fixtures/account_activities.yml b/test/fixtures/account_activities.yml index dbe1dc2aa..8f883e424 100644 --- a/test/fixtures/account_activities.yml +++ b/test/fixtures/account_activities.yml @@ -2,4 +2,4 @@ one: account: cash invoice: one bank_transaction: one - created_at: <%= Time.zone.parse('2010-07-05 10:00') %> \ No newline at end of file + created_at: <%= Time.zone.parse('2010-07-05 10:00') %> diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb index ede17ce9e..bf92d77c0 100644 --- a/test/jobs/directo_invoice_forward_job_test.rb +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -3,6 +3,15 @@ require "test_helper" class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase setup do @invoice = invoices(:one) + @user = registrars(:bestnames) + travel_to Time.zone.parse('2010-07-06') + end + + def teardown + Setting.clear_cache + Setting.directo_monthly_number_min = 309901 + Setting.directo_monthly_number_max = 309999 + Setting.directo_monthly_number_last = 309901 end def test_xml_is_include_transaction_date @@ -26,4 +35,109 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase assert_not_empty @invoice.directo_records.first.request end + + def test_fails_if_directo_bounds_exceedable + Setting.clear_cache + Setting.directo_monthly_number_max = 30990 + + assert_raises 'RuntimeError' do + DirectoInvoiceForwardJob.run(monthly: true, dry: false) + end + end + + def test_monthly_summary_is_delivered_in_estonian + activity = account_activities(:one) + price = billing_prices(:create_one_year) + activity.update!(activity_type: 'create', price: price) + @user.update(language: 'et') + + response = <<-XML + + + + + XML + + stub_request(:post, ENV['directo_invoice_url']).with do |request| + body = CGI.unescape(request.body) + + (body.include? '.test registreerimine: 1 aasta') && + (body.include? 'Domeenide ettemaks') && + (body.include? '309902') + end.to_return(status: 200, body: response) + + assert_difference 'Setting.directo_monthly_number_last' do + DirectoInvoiceForwardJob.run(monthly: true, dry: false) + end + end + + def test_monthly_summary_is_delivered_in_english + activity = account_activities(:one) + price = billing_prices(:create_one_year) + activity.update(activity_type: 'create', price: price) + @user.update(language: 'en') + + response = <<-XML + + + + + XML + + stub_request(:post, ENV['directo_invoice_url']).with do |request| + body = CGI.unescape(request.body) + (body.include? 'test registration') && + (body.include? 'Domains prepayment') && + (body.include? '309902') + end.to_return(status: 200, body: response) + + assert_difference 'Setting.directo_monthly_number_last' do + DirectoInvoiceForwardJob.run(monthly: true, dry: false) + end + end + + def test_multi_year_purchases_have_duration_assigned + activity = account_activities(:one) + price = billing_prices(:create_one_year) + price.update(duration: '3 years') + activity.update(activity_type: 'create', price: price) + + response = <<-XML + + + + + XML + + stub_request(:post, ENV['directo_invoice_url']).with do |request| + body = CGI.unescape(request.body) + (body.include? 'StartDate') && (body.include? 'EndDate') + end.to_return(status: 200, body: response) + + assert_difference 'Setting.directo_monthly_number_last' do + DirectoInvoiceForwardJob.run(monthly: true, dry: false) + end + end + + def test_monthly_duration_products_are_present_in_summary + activity = account_activities(:one) + price = billing_prices(:create_one_month) + activity.update(activity_type: 'create', price: price) + + response = <<-XML + + + + + XML + + stub_request(:post, ENV['directo_invoice_url']).with do |request| + body = CGI.unescape(request.body) + (body.include? 'months') + end.to_return(status: 200, body: response) + + assert_difference 'Setting.directo_monthly_number_last' do + DirectoInvoiceForwardJob.run(monthly: true, dry: false) + end + end end From a524a931b50fa34c3f781f52f66b1f6e01d95b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 27 Feb 2020 09:40:38 +0200 Subject: [PATCH 390/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94ecb8864..f2c6a28c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +27.02.2020 +* Ruby version update to 2.6.5 [#1545](https://github.com/internetee/registry/pull/1545) + 26.02.2020 * Registrar: added an option to remove clientHold status [#1481](https://github.com/internetee/registry/issues/1481) * Admin: fixed domain status removal issue [#1543](https://github.com/internetee/registry/issues/1543) From 5816ae16637c27d7dceaa216410e9a138df70187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 27 Feb 2020 11:32:29 +0200 Subject: [PATCH 391/757] Fix Rubocop styling issues --- app/controllers/concerns/book_keeping.rb | 6 +++--- app/jobs/directo_invoice_forward_job.rb | 2 +- app/models/invoice.rb | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb index e9d3e9ee9..486a3c82c 100644 --- a/app/controllers/concerns/book_keeping.rb +++ b/app/controllers/concerns/book_keeping.rb @@ -13,7 +13,7 @@ module BookKeeping 'customer_code': accounting_customer_code, 'language': language, 'currency': activities.first.currency, - 'date': month.end_of_month.strftime('%Y-%m-%d') + 'date': month.end_of_month.strftime('%Y-%m-%d'), }.as_json lines = [] @@ -65,7 +65,7 @@ module BookKeeping 'product_id': DOMAIN_TO_PRODUCT[price.zone_name.to_sym], 'quantity': 1, 'price': yearly ? (price.price.amount / price.duration.to_i) : price.price.amount, - 'unit': language == 'en' ? 'pc' : 'tk' + 'unit': language == 'en' ? 'pc' : 'tk', } line['description'] = description_in_language(price: price, yearly: yearly) @@ -106,7 +106,7 @@ module BookKeeping 'description': language == 'en' ? 'Domains prepayment' : 'Domeenide ettemaks', 'quantity': -1, 'price': total, - 'unit': language == 'en' ? 'pc' : 'tk' + 'unit': language == 'en' ? 'pc' : 'tk', } end diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index cd228fdaf..4daa65058 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -27,7 +27,7 @@ class DirectoInvoiceForwardJob < Que::Job end def send_monthly_invoices - month = Time.now + month = Time.zone.now - 1.month Registrar.where.not(test_registrar: true).find_each do |registrar| next unless registrar.cash_account diff --git a/app/models/invoice.rb b/app/models/invoice.rb index a1fb4cdb7..70053b59c 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -112,7 +112,8 @@ class Invoice < ApplicationRecord 'product_id': Setting.directo_receipt_product_name, 'description': order, 'quantity': 1, - 'price': ActionController::Base.helpers.number_with_precision(subtotal, precision: 2, separator: ".") + 'price': ActionController::Base.helpers + .number_with_precision(subtotal, precision: 2, separator: '.'), }].as_json inv From d30281c421796be63e791a3504a6428136afa1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 27 Feb 2020 11:59:46 +0200 Subject: [PATCH 392/757] Update structure.sql --- db/structure.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/db/structure.sql b/db/structure.sql index d694da536..9adad4a04 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -885,6 +885,7 @@ CREATE TABLE public.invoices ( in_directo boolean DEFAULT false, buyer_vat_no character varying, issue_date date NOT NULL, + e_invoice_sent_at timestamp without time zone, CONSTRAINT invoices_due_date_is_not_before_issue_date CHECK ((due_date >= issue_date)) ); @@ -4460,6 +4461,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200113091254'), ('20200115102202'), ('20200130092113'), -('20200203143458'); +('20200203143458'), +('20200204103125'); From bb787102e448718e13dc805df3a5cd80868763e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Thu, 27 Feb 2020 12:20:51 +0200 Subject: [PATCH 393/757] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2c6a28c2..2f7a888d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 27.02.2020 +* Registrar: fixed the verified checkbox bug that did not change the element value to yes in epp request [#1540](https://github.com/internetee/registry/issues/1540) * Ruby version update to 2.6.5 [#1545](https://github.com/internetee/registry/pull/1545) 26.02.2020 From 756a8b0c1cb9569b105846334739ef1b46005af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 27 Feb 2020 14:24:22 +0200 Subject: [PATCH 394/757] Travel 1 month forward to get last month summaries --- test/jobs/directo_invoice_forward_job_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb index bf92d77c0..fd483d621 100644 --- a/test/jobs/directo_invoice_forward_job_test.rb +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -4,7 +4,7 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase setup do @invoice = invoices(:one) @user = registrars(:bestnames) - travel_to Time.zone.parse('2010-07-06') + travel_to Time.zone.parse('2010-08-06') end def teardown From 6302462184ecc204d290cd09f8969bf878955220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 27 Feb 2020 16:10:07 +0200 Subject: [PATCH 395/757] Directo job styling fixes --- app/controllers/concerns/book_keeping.rb | 33 +++++++++---------- app/jobs/directo_invoice_forward_job.rb | 16 ++++----- test/jobs/directo_invoice_forward_job_test.rb | 4 +-- 3 files changed, 24 insertions(+), 29 deletions(-) diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb index 486a3c82c..24d6f5725 100644 --- a/app/controllers/concerns/book_keeping.rb +++ b/app/controllers/concerns/book_keeping.rb @@ -11,11 +11,16 @@ module BookKeeping inv = { 'number': 1, 'customer_code': accounting_customer_code, - 'language': language, - 'currency': activities.first.currency, + 'language': language, 'currency': activities.first.currency, 'date': month.end_of_month.strftime('%Y-%m-%d'), }.as_json + inv['invoice_lines'] = prepare_invoice_lines(month: month, activities: activities) + + inv + end + + def prepare_invoice_lines(month:, activities:) lines = [] lines << { 'description': title_for_summary(month) } @@ -24,9 +29,7 @@ module BookKeeping end lines << prepayment_for_all(lines) - inv['invoice_lines'] = lines.as_json - - inv + lines.as_json end def title_for_summary(date) @@ -83,19 +86,15 @@ module BookKeeping end def description_in_language(price:, yearly:) - if language == 'en' - registration_length = yearly ? 'year' : 'month' - prefix = ".#{price.zone_name} registration: #{price.duration.to_i} #{registration_length}" - suffix = 's' - else - registration_length = yearly ? 'aasta' : 'kuu' - prefix = ".#{price.zone_name} registreerimine: #{price.duration.to_i} #{registration_length}" - suffix = yearly ? 't' : 'd' - end + en = language == 'en' + registration_length = if yearly + en ? 'year(s)' : 'aasta(t)' + else + en ? 'month(s)' : 'kuu(d)' + end - return "#{prefix}#{suffix}" if price.duration.to_i > 1 - - prefix + registration = en ? 'registration' : 'registreerimine' + ".#{price.zone_name} #{registration}: #{price.duration.to_i} #{registration_length}" end def prepayment_for_all(lines) diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index 4daa65058..3dc92c460 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -1,7 +1,7 @@ class DirectoInvoiceForwardJob < Que::Job def run(monthly: false, dry: false) @dry = dry - @monthly = monthly + (@month = Time.zone.now - 1.month) if monthly api_url = ENV['directo_invoice_url'] sales_agent = Setting.directo_sales_agent payment_term = Setting.directo_receipt_payment_term @@ -27,15 +27,11 @@ class DirectoInvoiceForwardJob < Que::Job end def send_monthly_invoices - month = Time.zone.now - 1.month - - Registrar.where.not(test_registrar: true).find_each do |registrar| + Registrar.where(test_registrar: false).find_each do |registrar| next unless registrar.cash_account - invoice = registrar.monthly_summary(month: month) - next if invoice.nil? - - @client.invoices.add_with_schema(invoice: invoice, schema: 'summary') + invoice = registrar.monthly_summary(month: @month) + @client.invoices.add_with_schema(invoice: invoice, schema: 'summary') unless invoice.nil? end assign_montly_numbers @@ -83,7 +79,7 @@ class DirectoInvoiceForwardJob < Que::Job def update_invoice_directo_state(xml, req) Rails.logger.info "[Directo] - Responded with body: #{xml}" Nokogiri::XML(xml).css('Result').each do |res| - if @monthly + if @month mark_invoice_as_sent(res: res, req: req) else inv = Invoice.find_by(number: res.attributes['docid'].value.to_i) @@ -97,7 +93,7 @@ class DirectoInvoiceForwardJob < Que::Job request: req, invoice_number: res.attributes['docid'].value.to_i) if invoice directo_record.item = invoice - invoice.update_columns(in_directo: true) + invoice.update(in_directo: true) else update_directo_number(num: directo_record.invoice_number) end diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb index fd483d621..378dd7aec 100644 --- a/test/jobs/directo_invoice_forward_job_test.rb +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -61,7 +61,7 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase stub_request(:post, ENV['directo_invoice_url']).with do |request| body = CGI.unescape(request.body) - (body.include? '.test registreerimine: 1 aasta') && + (body.include? '.test registreerimine: 1 aasta(t)') && (body.include? 'Domeenide ettemaks') && (body.include? '309902') end.to_return(status: 200, body: response) @@ -133,7 +133,7 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase stub_request(:post, ENV['directo_invoice_url']).with do |request| body = CGI.unescape(request.body) - (body.include? 'months') + body.include? 'month(s)' end.to_return(status: 200, body: response) assert_difference 'Setting.directo_monthly_number_last' do From 8cc42cb170a3ec763d32c7769e53fda34274cf1e Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 28 Feb 2020 13:54:56 +0500 Subject: [PATCH 396/757] Fix redirect back Closes #1535 --- app/controllers/admin/zonefiles_controller.rb | 2 +- app/controllers/registrar/current_user_controller.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/zonefiles_controller.rb b/app/controllers/admin/zonefiles_controller.rb index 30b4b9a61..4fd84bb77 100644 --- a/app/controllers/admin/zonefiles_controller.rb +++ b/app/controllers/admin/zonefiles_controller.rb @@ -13,7 +13,7 @@ module Admin send_data @zonefile, filename: "#{params[:origin]}.txt" else flash[:alert] = 'Origin not supported' - redirect_to :back + redirect_back(fallback_location: root_path) end end end diff --git a/app/controllers/registrar/current_user_controller.rb b/app/controllers/registrar/current_user_controller.rb index 624ee294e..3a214322c 100644 --- a/app/controllers/registrar/current_user_controller.rb +++ b/app/controllers/registrar/current_user_controller.rb @@ -6,7 +6,7 @@ class Registrar raise 'Cannot switch to unlinked user' unless current_registrar_user.linked_with?(new_user) sign_in(:registrar_user, new_user) - redirect_to :back, notice: t('.switched', new_user: new_user) + redirect_back(fallback_location: root_path, notice: t('.switched', new_user: new_user)) end private From b1f90df1ab976c1cefc8b21562e7d922ca2ef350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 28 Feb 2020 15:25:23 +0200 Subject: [PATCH 397/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f7a888d0..f7fcf7b36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +28.02.2020 +* Registrara: fixed account switching [#1535](https://github.com/internetee/registry/issues/1535) + 27.02.2020 * Registrar: fixed the verified checkbox bug that did not change the element value to yes in epp request [#1540](https://github.com/internetee/registry/issues/1540) * Ruby version update to 2.6.5 [#1545](https://github.com/internetee/registry/pull/1545) From 6c328438e69a6c48a6611938c12b948904d98812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 27 Feb 2020 17:06:25 +0200 Subject: [PATCH 398/757] Reduce condition sizes for Directo job --- app/controllers/concerns/book_keeping.rb | 14 +++++++++---- app/jobs/directo_invoice_forward_job.rb | 21 ++++++++++++------- app/models/invoice.rb | 17 ++++++++------- test/jobs/directo_invoice_forward_job_test.rb | 7 +++++-- 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb index 24d6f5725..41cd4646e 100644 --- a/app/controllers/concerns/book_keeping.rb +++ b/app/controllers/concerns/book_keeping.rb @@ -12,7 +12,7 @@ module BookKeeping 'number': 1, 'customer_code': accounting_customer_code, 'language': language, 'currency': activities.first.currency, - 'date': month.end_of_month.strftime('%Y-%m-%d'), + 'date': month.end_of_month.strftime('%Y-%m-%d') }.as_json inv['invoice_lines'] = prepare_invoice_lines(month: month, activities: activities) @@ -63,16 +63,22 @@ module BookKeeping def new_monthly_invoice_line(activity:, duration: nil) price = load_price(activity) - yearly = price.duration.include?('year') line = { 'product_id': DOMAIN_TO_PRODUCT[price.zone_name.to_sym], 'quantity': 1, - 'price': yearly ? (price.price.amount / price.duration.to_i) : price.price.amount, 'unit': language == 'en' ? 'pc' : 'tk', } + finalize_invoice_line(line, price: price, duration: duration, activity: activity) + end + + def finalize_invoice_line(line, price:, activity:, duration:) + yearly = price.duration.include?('year') + + line['price'] = yearly ? (price.price.amount / price.duration.to_i) : price.price.amount line['description'] = description_in_language(price: price, yearly: yearly) - if yearly && duration + + if duration.present? add_product_timeframe(line: line, activity: activity, duration: duration) if duration > 1 end diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index 3dc92c460..768c7db0b 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -27,18 +27,23 @@ class DirectoInvoiceForwardJob < Que::Job end def send_monthly_invoices - Registrar.where(test_registrar: false).find_each do |registrar| - next unless registrar.cash_account - - invoice = registrar.monthly_summary(month: @month) - @client.invoices.add_with_schema(invoice: invoice, schema: 'summary') unless invoice.nil? + Registrar.where.not(test_registrar: true).find_each do |registrar| + fetch_monthly_summary(registrar: registrar) end - assign_montly_numbers + return unless @client.invoices.count.positive? + sync_with_directo end - def assign_montly_numbers + def fetch_monthly_summary(registrar:) + return unless registrar.cash_account + + summary = registrar.monthly_summary(month: @month) + @client.invoices.add_with_schema(invoice: summary, schema: 'summary') unless summary.nil? + end + + def assign_monthly_numbers if directo_counter_exceedable?(@client.invoices.count) raise 'Directo Counter is going to be out of period!' end @@ -66,9 +71,9 @@ class DirectoInvoiceForwardJob < Que::Job def sync_with_directo Rails.logger.info("[Directo] - attempting to send following XML:\n #{@client.invoices.as_xml}") - return if @dry + assign_monthly_numbers if @month res = @client.invoices.deliver(ssl_verify: false) update_invoice_directo_state(res.body, @client.invoices.as_xml) if res.code == '200' rescue SocketError, Errno::ECONNREFUSED, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 70053b59c..61b35ab98 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -70,7 +70,7 @@ class Invoice < ApplicationRecord Country.new(buyer_country_code) end -# order is used for directo/banklink description + # order is used for directo/banklink description def order "Order nr. #{number}" end @@ -108,17 +108,18 @@ class Invoice < ApplicationRecord inv['issue_date'] = issue_date.strftime('%Y-%m-%d') inv['transaction_date'] = account_activity.bank_transaction&.paid_at&.strftime('%Y-%m-%d') inv['language'] = buyer.language - inv['invoice_lines'] = [{ - 'product_id': Setting.directo_receipt_product_name, - 'description': order, - 'quantity': 1, - 'price': ActionController::Base.helpers - .number_with_precision(subtotal, precision: 2, separator: '.'), - }].as_json + inv['invoice_lines'] = compose_directo_product inv end + def compose_directo_product + [{ 'product_id': Setting.directo_receipt_product_name, 'description': order, + 'quantity': 1, 'price': ActionController::Base.helpers.number_with_precision( + subtotal, precision: 2, separator: '.' + ) }].as_json + end + def do_not_send_e_invoice? e_invoice_sent? || cancelled? || paid? end diff --git a/test/jobs/directo_invoice_forward_job_test.rb b/test/jobs/directo_invoice_forward_job_test.rb index 378dd7aec..8a4fb43aa 100644 --- a/test/jobs/directo_invoice_forward_job_test.rb +++ b/test/jobs/directo_invoice_forward_job_test.rb @@ -37,8 +37,11 @@ class DirectoInvoiceForwardJobTest < ActiveSupport::TestCase end def test_fails_if_directo_bounds_exceedable - Setting.clear_cache - Setting.directo_monthly_number_max = 30990 + activity = account_activities(:one) + price = billing_prices(:create_one_year) + activity.update!(activity_type: 'create', price: price) + + Setting.directo_monthly_number_max = 30991 assert_raises 'RuntimeError' do DirectoInvoiceForwardJob.run(monthly: true, dry: false) From 035bb14d9f1ade829273d65b98fd97e036eb3aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 2 Mar 2020 12:23:15 +0200 Subject: [PATCH 399/757] Move directo translations from logic to I18n --- app/controllers/concerns/book_keeping.rb | 13 +++++-------- app/jobs/directo_invoice_forward_job.rb | 8 +++----- config/locales/registrars.en.yml | 5 ++++- config/locales/registrars.et.yml | 4 ++++ 4 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 config/locales/registrars.et.yml diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb index 41cd4646e..f50393822 100644 --- a/app/controllers/concerns/book_keeping.rb +++ b/app/controllers/concerns/book_keeping.rb @@ -92,15 +92,12 @@ module BookKeeping end def description_in_language(price:, yearly:) - en = language == 'en' - registration_length = if yearly - en ? 'year(s)' : 'aasta(t)' - else - en ? 'month(s)' : 'kuu(d)' - end + timeframe_string = yearly ? 'yearly' : 'monthly' + locale_string = ".registrars.invoice_#{timeframe_string}_product_description" - registration = en ? 'registration' : 'registreerimine' - ".#{price.zone_name} #{registration}: #{price.duration.to_i} #{registration_length}" + I18n.with_locale(language == 'en' ? 'en' : 'et') do + I18n.t(locale_string, tld: ".#{price.zone_name}", length: price.duration.to_i) + end end def prepayment_for_all(lines) diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index 768c7db0b..a423ffc2e 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -118,10 +118,8 @@ class DirectoInvoiceForwardJob < Que::Job last_directo = [Setting.directo_monthly_number_last.presence.try(:to_i), min_directo].compact.max || 0 - if max_directo && max_directo < (last_directo + invoice_count) - true - else - false - end + return true if max_directo && max_directo < (last_directo + invoice_count) + + false end end diff --git a/config/locales/registrars.en.yml b/config/locales/registrars.en.yml index 609f9f94a..c5071c3f8 100644 --- a/config/locales/registrars.en.yml +++ b/config/locales/registrars.en.yml @@ -1,4 +1,7 @@ en: + registrars: + invoice_yearly_product_description: '%{tld} registration: %{length} year(s)' + invoice_monthly_product_description: '%{tld} registration: %{length} month(s)' activerecord: errors: models: @@ -8,4 +11,4 @@ en: forbidden: is forbidden vat_rate: present: >- - must be blank when a registrar is VAT-registered in the same country as registry \ No newline at end of file + must be blank when a registrar is VAT-registered in the same country as registry diff --git a/config/locales/registrars.et.yml b/config/locales/registrars.et.yml new file mode 100644 index 000000000..4151183ea --- /dev/null +++ b/config/locales/registrars.et.yml @@ -0,0 +1,4 @@ +et: + registrars: + invoice_yearly_product_description: '%{tld} registration: %{length} year(s)' + invoice_monthly_product_description: '%{tld} registration: %{length} month(s)' From 0efd35516c74fe8b18675a50c343c9aa7cc9f1c5 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 2 Mar 2020 12:43:20 +0200 Subject: [PATCH 400/757] Fix statuses filtering in registrar contacts index --- app/controllers/registrar/contacts_controller.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index bd1e29a7c..18af3a29f 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -17,12 +17,13 @@ class Registrar search_params[:registrant_domains_id_not_null] = 1 end - if params[:statuses_contains] - contacts = current_registrar_user.registrar.contacts.includes(:registrar).where( - "contacts.statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}" - ) - else - contacts = current_registrar_user.registrar.contacts.includes(:registrar) + contacts = current_registrar_user.registrar.contacts.includes(:registrar) + status_list = params[:statuses_contains] + + if status_list + contacts_ids = contacts.select { |c| (c.statuses & status_list.to_a) == status_list.to_a } + .map(&:id) + contacts = contacts.where(id: contacts_ids) end normalize_search_parameters do From a5207803faf02631068597e1e7c0ebced511cb8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Mon, 2 Mar 2020 15:19:04 +0200 Subject: [PATCH 401/757] Update CHANGELOG.md --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7fcf7b36..f02a959f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ +02.03.2020 +* Registrar: fixed statuses based contact filtering [#1004](https://github.com/internetee/registry/issues/1004) + 28.02.2020 -* Registrara: fixed account switching [#1535](https://github.com/internetee/registry/issues/1535) +* Registrar: fixed account switching [#1535](https://github.com/internetee/registry/issues/1535) 27.02.2020 * Registrar: fixed the verified checkbox bug that did not change the element value to yes in epp request [#1540](https://github.com/internetee/registry/issues/1540) From 3f92640ad2f24a92c8bf746afb4cf52e90e11e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 2 Mar 2020 13:54:46 +0200 Subject: [PATCH 402/757] Move registrar directo logic to concern, touch up translations --- app/controllers/concerns/book_keeping.rb | 121 ------------------ app/jobs/directo_invoice_forward_job.rb | 6 +- app/models/concerns/invoice/book_keeping.rb | 25 ++++ app/models/concerns/registrar/book_keeping.rb | 120 +++++++++++++++++ app/models/invoice.rb | 19 +-- app/models/registrar.rb | 2 +- config/locales/registrars.en.yml | 3 +- config/locales/registrars.et.yml | 7 +- 8 files changed, 156 insertions(+), 147 deletions(-) delete mode 100644 app/controllers/concerns/book_keeping.rb create mode 100644 app/models/concerns/invoice/book_keeping.rb create mode 100644 app/models/concerns/registrar/book_keeping.rb diff --git a/app/controllers/concerns/book_keeping.rb b/app/controllers/concerns/book_keeping.rb deleted file mode 100644 index f50393822..000000000 --- a/app/controllers/concerns/book_keeping.rb +++ /dev/null @@ -1,121 +0,0 @@ -module BookKeeping - extend ActiveSupport::Concern - - DOMAIN_TO_PRODUCT = { 'ee': '01EE', 'com.ee': '02COM', 'pri.ee': '03PRI', - 'fie.ee': '04FIE', 'med.ee': '05MED' }.freeze - - def monthly_summary(month:) - activities = monthly_activites(month) - return unless activities.any? - - inv = { - 'number': 1, - 'customer_code': accounting_customer_code, - 'language': language, 'currency': activities.first.currency, - 'date': month.end_of_month.strftime('%Y-%m-%d') - }.as_json - - inv['invoice_lines'] = prepare_invoice_lines(month: month, activities: activities) - - inv - end - - def prepare_invoice_lines(month:, activities:) - lines = [] - - lines << { 'description': title_for_summary(month) } - activities.each do |activity| - fetch_invoice_lines(activity, lines) - end - lines << prepayment_for_all(lines) - - lines.as_json - end - - def title_for_summary(date) - if language == 'en' - I18n.with_locale('en') do - "Domains registrations - #{I18n.l(date, format: '%B %Y')}" - end - else - I18n.with_locale('et') do - "Domeenide registreerimine - #{I18n.l(date, format: '%B %Y')}" - end - end - end - - def fetch_invoice_lines(activity, lines) - price = load_price(activity) - if price.duration.include? 'year' - price.duration.to_i.times do |duration| - lines << new_monthly_invoice_line(activity: activity, duration: duration + 1).as_json - end - else - lines << new_monthly_invoice_line(activity: activity).as_json - end - end - - def monthly_activites(month) - AccountActivity.where(account_id: account_ids) - .where(created_at: month.beginning_of_month..month.end_of_month) - .where(activity_type: [AccountActivity::CREATE, AccountActivity::RENEW]) - end - - def new_monthly_invoice_line(activity:, duration: nil) - price = load_price(activity) - line = { - 'product_id': DOMAIN_TO_PRODUCT[price.zone_name.to_sym], - 'quantity': 1, - 'unit': language == 'en' ? 'pc' : 'tk', - } - - finalize_invoice_line(line, price: price, duration: duration, activity: activity) - end - - def finalize_invoice_line(line, price:, activity:, duration:) - yearly = price.duration.include?('year') - - line['price'] = yearly ? (price.price.amount / price.duration.to_i) : price.price.amount - line['description'] = description_in_language(price: price, yearly: yearly) - - if duration.present? - add_product_timeframe(line: line, activity: activity, duration: duration) if duration > 1 - end - - line - end - - def add_product_timeframe(line:, activity:, duration:) - create_time = activity.created_at - line['start_date'] = (create_time + (duration - 1).year).end_of_month.strftime('%Y-%m-%d') - line['end_date'] = (create_time + (duration - 1).year + 1).end_of_month.strftime('%Y-%m-%d') - end - - def description_in_language(price:, yearly:) - timeframe_string = yearly ? 'yearly' : 'monthly' - locale_string = ".registrars.invoice_#{timeframe_string}_product_description" - - I18n.with_locale(language == 'en' ? 'en' : 'et') do - I18n.t(locale_string, tld: ".#{price.zone_name}", length: price.duration.to_i) - end - end - - def prepayment_for_all(lines) - total = 0 - lines.each { |l| total += l['quantity'].to_f * l['price'].to_f } - { - 'product_id': Setting.directo_receipt_product_name, - 'description': language == 'en' ? 'Domains prepayment' : 'Domeenide ettemaks', - 'quantity': -1, - 'price': total, - 'unit': language == 'en' ? 'pc' : 'tk', - } - end - - def load_price(account_activity) - @pricelists ||= {} - return @pricelists[account_activity.price_id] if @pricelists.key? account_activity.price_id - - @pricelists[account_activity.price_id] = account_activity.price - end -end diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index a423ffc2e..6c3eb034c 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -70,18 +70,18 @@ class DirectoInvoiceForwardJob < Que::Job end def sync_with_directo + assign_monthly_numbers if @month Rails.logger.info("[Directo] - attempting to send following XML:\n #{@client.invoices.as_xml}") return if @dry - assign_monthly_numbers if @month res = @client.invoices.deliver(ssl_verify: false) - update_invoice_directo_state(res.body, @client.invoices.as_xml) if res.code == '200' + process_directo_response(res.body, @client.invoices.as_xml) rescue SocketError, Errno::ECONNREFUSED, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError Rails.logger.info('[Directo] Failed to communicate via API') end - def update_invoice_directo_state(xml, req) + def process_directo_response(xml, req) Rails.logger.info "[Directo] - Responded with body: #{xml}" Nokogiri::XML(xml).css('Result').each do |res| if @month diff --git a/app/models/concerns/invoice/book_keeping.rb b/app/models/concerns/invoice/book_keeping.rb new file mode 100644 index 000000000..828ad7848 --- /dev/null +++ b/app/models/concerns/invoice/book_keeping.rb @@ -0,0 +1,25 @@ +module Concerns + module Invoice + module BookKeeping + extend ActiveSupport::Concern + + def as_directo_json + inv = ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(self)) + inv['customer_code'] = buyer.accounting_customer_code + inv['issue_date'] = issue_date.strftime('%Y-%m-%d') + inv['transaction_date'] = account_activity.bank_transaction&.paid_at&.strftime('%Y-%m-%d') + inv['language'] = buyer.language == 'en' ? 'ENG' : '' + inv['invoice_lines'] = compose_directo_product + + inv + end + + def compose_directo_product + [{ 'product_id': Setting.directo_receipt_product_name, 'description': order, + 'quantity': 1, 'price': ActionController::Base.helpers.number_with_precision( + subtotal, precision: 2, separator: '.' + ) }].as_json + end + end + end +end diff --git a/app/models/concerns/registrar/book_keeping.rb b/app/models/concerns/registrar/book_keeping.rb new file mode 100644 index 000000000..c85aac317 --- /dev/null +++ b/app/models/concerns/registrar/book_keeping.rb @@ -0,0 +1,120 @@ +module Concerns + module Registrar + module BookKeeping + extend ActiveSupport::Concern + + DOMAIN_TO_PRODUCT = { 'ee': '01EE', 'com.ee': '02COM', 'pri.ee': '03PRI', + 'fie.ee': '04FIE', 'med.ee': '05MED' }.freeze + + def monthly_summary(month:) + activities = monthly_activites(month) + return unless activities.any? + + inv = { + 'number': 1, + 'customer_code': accounting_customer_code, + 'language': language == 'en' ? 'ENG' : '', 'currency': activities.first.currency, + 'date': month.end_of_month.strftime('%Y-%m-%d') + }.as_json + + inv['invoice_lines'] = prepare_invoice_lines(month: month, activities: activities) + + inv + end + + def prepare_invoice_lines(month:, activities:) + lines = [] + + lines << { 'description': title_for_summary(month) } + activities.each do |activity| + fetch_invoice_lines(activity, lines) + end + lines << prepayment_for_all(lines) + + lines.as_json + end + + def title_for_summary(date) + I18n.with_locale(language == 'en' ? 'en' : 'et') do + I18n.t('registrar.monthly_summary_title', date: I18n.l(date, format: '%B %Y')) + end + end + + def fetch_invoice_lines(activity, lines) + price = load_price(activity) + if price.duration.include? 'year' + price.duration.to_i.times do |duration| + lines << new_monthly_invoice_line(activity: activity, duration: duration + 1).as_json + end + else + lines << new_monthly_invoice_line(activity: activity).as_json + end + end + + def monthly_activites(month) + AccountActivity.where(account_id: account_ids) + .where(created_at: month.beginning_of_month..month.end_of_month) + .where(activity_type: [AccountActivity::CREATE, AccountActivity::RENEW]) + end + + def new_monthly_invoice_line(activity:, duration: nil) + price = load_price(activity) + line = { + 'product_id': DOMAIN_TO_PRODUCT[price.zone_name.to_sym], + 'quantity': 1, + 'unit': language == 'en' ? 'pc' : 'tk', + } + + finalize_invoice_line(line, price: price, duration: duration, activity: activity) + end + + def finalize_invoice_line(line, price:, activity:, duration:) + yearly = price.duration.include?('year') + + line['price'] = yearly ? (price.price.amount / price.duration.to_i) : price.price.amount + line['description'] = description_in_language(price: price, yearly: yearly) + + if duration.present? + add_product_timeframe(line: line, activity: activity, duration: duration) if duration > 1 + end + + line + end + + def add_product_timeframe(line:, activity:, duration:) + create_time = activity.created_at + line['start_date'] = (create_time + (duration - 1).year).end_of_month.strftime('%Y-%m-%d') + line['end_date'] = (create_time + (duration - 1).year + 1).end_of_month.strftime('%Y-%m-%d') + end + + def description_in_language(price:, yearly:) + timeframe_string = yearly ? 'yearly' : 'monthly' + locale_string = "registrar.invoice_#{timeframe_string}_product_description" + + I18n.with_locale(language == 'en' ? 'en' : 'et') do + I18n.t(locale_string, tld: ".#{price.zone_name}", length: price.duration.to_i) + end + end + + def prepayment_for_all(lines) + total = 0 + en = language == 'en' + lines.each { |l| total += l['quantity'].to_f * l['price'].to_f } + { + 'product_id': Setting.directo_receipt_product_name, + 'description': en ? 'Domains prepayment' : 'Domeenide ettemaks', + 'quantity': -1, + 'price': total, + 'unit': en ? 'pc' : 'tk', + } + end + + def load_price(account_activity) + @pricelists ||= {} + return @pricelists[account_activity.price_id] if @pricelists.key? account_activity.price_id + + @pricelists[account_activity.price_id] = account_activity.price + end + end + end +end diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 61b35ab98..7e1fee91b 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -2,6 +2,7 @@ class Invoice < ApplicationRecord include Versions include Concerns::Invoice::Cancellable include Concerns::Invoice::Payable + include Concerns::Invoice::BookKeeping belongs_to :buyer, class_name: 'Registrar' has_one :account_activity @@ -102,24 +103,6 @@ class Invoice < ApplicationRecord generator.generate end - def as_directo_json - inv = ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(self)) - inv['customer_code'] = buyer.accounting_customer_code - inv['issue_date'] = issue_date.strftime('%Y-%m-%d') - inv['transaction_date'] = account_activity.bank_transaction&.paid_at&.strftime('%Y-%m-%d') - inv['language'] = buyer.language - inv['invoice_lines'] = compose_directo_product - - inv - end - - def compose_directo_product - [{ 'product_id': Setting.directo_receipt_product_name, 'description': order, - 'quantity': 1, 'price': ActionController::Base.helpers.number_with_precision( - subtotal, precision: 2, separator: '.' - ) }].as_json - end - def do_not_send_e_invoice? e_invoice_sent? || cancelled? || paid? end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 8aae1e89e..c3522859e 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -1,6 +1,6 @@ class Registrar < ApplicationRecord include Versions # version/registrar_version.rb - include BookKeeping + include Concerns::Registrar::BookKeeping has_many :domains, dependent: :restrict_with_error has_many :contacts, dependent: :restrict_with_error diff --git a/config/locales/registrars.en.yml b/config/locales/registrars.en.yml index c5071c3f8..c57f2e891 100644 --- a/config/locales/registrars.en.yml +++ b/config/locales/registrars.en.yml @@ -1,7 +1,8 @@ en: - registrars: + registrar: invoice_yearly_product_description: '%{tld} registration: %{length} year(s)' invoice_monthly_product_description: '%{tld} registration: %{length} month(s)' + monthly_summary_title: 'Domain registrations - %{date}' activerecord: errors: models: diff --git a/config/locales/registrars.et.yml b/config/locales/registrars.et.yml index 4151183ea..1001638c1 100644 --- a/config/locales/registrars.et.yml +++ b/config/locales/registrars.et.yml @@ -1,4 +1,5 @@ et: - registrars: - invoice_yearly_product_description: '%{tld} registration: %{length} year(s)' - invoice_monthly_product_description: '%{tld} registration: %{length} month(s)' + registrar: + invoice_yearly_product_description: '%{tld} registreerimine: %{length} aasta(t)' + invoice_monthly_product_description: '%{tld} registreerimine: %{length} kuu(d)' + monthly_summary_title: 'Domeenide registreerimine - %{date}' From 0c30e8b8ee353457b804411e85e1daebe4ce5f21 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 3 Mar 2020 10:43:20 +0200 Subject: [PATCH 403/757] Create bank statement export dir if not present Fixes #1551 --- app/models/bank_statement.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/models/bank_statement.rb b/app/models/bank_statement.rb index 942ae3907..e1d582f90 100644 --- a/app/models/bank_statement.rb +++ b/app/models/bank_statement.rb @@ -25,10 +25,16 @@ class BankStatement < ApplicationRecord bank_transactions.build(bt_params) end + prepare_dir self.import_file_path = "#{ENV['bank_statement_import_dir']}/#{Time.zone.now.to_formatted_s(:number)}.txt" File.open(import_file_path, 'w') { |f| f.write(th6_file.open.read) } end + def prepare_dir + dirname = ENV['bank_statement_import_dir'] + FileUtils.mkdir_p(dirname) unless File.directory?(dirname) + end + def parse_th6_row(row) return parse_th6_header(row) if row[4, 3].strip == '000' return if row[4, 3].strip == '999' # skip footer From 6655ac6354617b934a441fc6209af4f55452dc99 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 3 Mar 2020 11:15:52 +0200 Subject: [PATCH 404/757] Add bank statement import test --- test/fixtures/files/bank_statement_test.txt | 7 +++++++ test/system/admin_area/bank_statement_test.rb | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 test/fixtures/files/bank_statement_test.txt create mode 100644 test/system/admin_area/bank_statement_test.rb diff --git a/test/fixtures/files/bank_statement_test.txt b/test/fixtures/files/bank_statement_test.txt new file mode 100644 index 000000000..d3f561a7d --- /dev/null +++ b/test/fixtures/files/bank_statement_test.txt @@ -0,0 +1,7 @@ +VV 000689NL85RABO74981124931508051533 +VV 220150805 M NL85RABO7498112493EUR Algsaldo C 26397 +VV 12015080520890321MK NL85RABO7498112493EUR401NL93ABNA8027105943 Registrar Second Prepayment Invoice no.3131071 C 72055 +VV 12015080520890321MK NL85RABO7498112493EUR401NL93ABNA8027105943 eedirect Prepayment Invoice no. 13 C 480 +VV 12015080521042372MK NL85RABO7498112493EUR767EE021222121767323770 Line Suva 8 Arve nr 2015-01 D 55000 +VV 320150805 M NL85RABO7498112493EUR Lõppsaldo C 5417 +VV 999 176980 diff --git a/test/system/admin_area/bank_statement_test.rb b/test/system/admin_area/bank_statement_test.rb new file mode 100644 index 000000000..c95035a8d --- /dev/null +++ b/test/system/admin_area/bank_statement_test.rb @@ -0,0 +1,16 @@ +require 'application_system_test_case' + +class BankStatementTest < ApplicationSystemTestCase + setup do + sign_in users(:admin) + travel_to Time.zone.parse('2010-07-05 00:30:00') + end + + def test_import_statement + assert_difference 'BankStatement.count', 1 do + visit import_admin_bank_statements_path + attach_file 'Th6 file', Rails.root.join('test', 'fixtures', 'files', 'bank_statement_test.txt').to_s + click_link_or_button 'Save' + end + end +end From e1576b04a2dc6abf953c5b7b7deb9f864bb0039e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 3 Mar 2020 13:40:52 +0200 Subject: [PATCH 405/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f02a959f8..165176a9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +03.03.2020 +* Admin: fixed import of th6 bank statement [#1551](https://github.com/internetee/registry/issues/1551) + 02.03.2020 * Registrar: fixed statuses based contact filtering [#1004](https://github.com/internetee/registry/issues/1004) From 093bd7cf57b97a756e2a67ac21c030d689b1686b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2020 20:28:06 +0000 Subject: [PATCH 406/757] Bump puma from 4.3.1 to 4.3.3 Bumps [puma](https://github.com/puma/puma) from 4.3.1 to 4.3.3. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v4.3.1...v4.3.3) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5053b9468..b74c45a3e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -284,7 +284,7 @@ GEM method_source (~> 0.8.1) slop (~> 3.4) public_suffix (4.0.3) - puma (4.3.1) + puma (4.3.3) nio4r (~> 2.0) que (0.14.3) que-web (0.7.2) From 1b672b219d00993fabf41a00650384cb19d33407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 4 Mar 2020 10:52:56 +0200 Subject: [PATCH 407/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 165176a9a..9b9976d44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +04.03.2020 +* Bump Puma to 4.3.3 [#1557](https://github.com/internetee/registry/pull/1557) + 03.03.2020 * Admin: fixed import of th6 bank statement [#1551](https://github.com/internetee/registry/issues/1551) From ef04b6f87b2c4c26d0561eb467cebe1db778573e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Fri, 6 Mar 2020 14:12:36 +0200 Subject: [PATCH 408/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b9976d44..b5e11261f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +06.03.2020 +* Record payment method and failed payments [#1422](https://github.com/internetee/registry/issues/1422) + 04.03.2020 * Bump Puma to 4.3.3 [#1557](https://github.com/internetee/registry/pull/1557) From 21543d8416ad0586deade9ee163e1382e80703fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 3 Mar 2020 12:07:05 +0200 Subject: [PATCH 409/757] Better naming for variables --- Gemfile.lock | 2 +- app/models/concerns/invoice/book_keeping.rb | 15 ++++++++------- app/models/concerns/registrar/book_keeping.rb | 6 +++--- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8875293cf..3b36f1935 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/directo.git - revision: 6fb158c1589c609b2519d8e8658c11de52bd3d9d + revision: 7bac1d5ca413e3cce25a7adad3c0e8d7f8cd673e branch: directo-api specs: directo (0.1.0) diff --git a/app/models/concerns/invoice/book_keeping.rb b/app/models/concerns/invoice/book_keeping.rb index 828ad7848..2469f45eb 100644 --- a/app/models/concerns/invoice/book_keeping.rb +++ b/app/models/concerns/invoice/book_keeping.rb @@ -4,14 +4,15 @@ module Concerns extend ActiveSupport::Concern def as_directo_json - inv = ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(self)) - inv['customer_code'] = buyer.accounting_customer_code - inv['issue_date'] = issue_date.strftime('%Y-%m-%d') - inv['transaction_date'] = account_activity.bank_transaction&.paid_at&.strftime('%Y-%m-%d') - inv['language'] = buyer.language == 'en' ? 'ENG' : '' - inv['invoice_lines'] = compose_directo_product + invoice = ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(self)) + invoice['customer_code'] = buyer.accounting_customer_code + invoice['issue_date'] = issue_date.strftime('%Y-%m-%d') + invoice['transaction_date'] = account_activity + .bank_transaction&.paid_at&.strftime('%Y-%m-%d') + invoice['language'] = buyer.language == 'en' ? 'ENG' : '' + invoice['invoice_lines'] = compose_directo_product - inv + invoice end def compose_directo_product diff --git a/app/models/concerns/registrar/book_keeping.rb b/app/models/concerns/registrar/book_keeping.rb index c85aac317..27645d2cb 100644 --- a/app/models/concerns/registrar/book_keeping.rb +++ b/app/models/concerns/registrar/book_keeping.rb @@ -10,16 +10,16 @@ module Concerns activities = monthly_activites(month) return unless activities.any? - inv = { + invoice = { 'number': 1, 'customer_code': accounting_customer_code, 'language': language == 'en' ? 'ENG' : '', 'currency': activities.first.currency, 'date': month.end_of_month.strftime('%Y-%m-%d') }.as_json - inv['invoice_lines'] = prepare_invoice_lines(month: month, activities: activities) + invoice['invoice_lines'] = prepare_invoice_lines(month: month, activities: activities) - inv + invoice end def prepare_invoice_lines(month:, activities:) From 251ea0000d6354ab272550faa106291194877189 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 10 Mar 2020 17:35:52 +0500 Subject: [PATCH 410/757] Update lhv, e-invoice & corporate_register gem due to security updates --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b74c45a3e..31b48d360 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/internetee/company_register.git - revision: da7130542304fc543c90d54cd037d019a777c526 + revision: 86d691997aa7def9f86d88f6c92cabb86cd65487 branch: master specs: company_register (0.1.0) @@ -9,7 +9,7 @@ GIT GIT remote: https://github.com/internetee/e_invoice.git - revision: 3a754974ed25569aa85d99a87ae9e131b7c10a24 + revision: b374ffd7be77b559b30c7a0210dc0df5ac3ed723 branch: master specs: e_invoice (0.1.0) @@ -36,7 +36,7 @@ GIT GIT remote: https://github.com/internetee/lhv.git - revision: 145f66e21d65a4a7543f6b28a4124440d36fec98 + revision: cf0d30816ca9cd6a35d206aa1007c378f8acb502 branch: master specs: lhv (0.1.0) @@ -136,7 +136,7 @@ GEM coffee-script-source execjs coffee-script-source (1.12.2) - concurrent-ruby (1.1.5) + concurrent-ruby (1.1.6) countries (3.0.0) i18n_data (~> 0.8.0) sixarm_ruby_unaccent (~> 1.1) @@ -269,7 +269,7 @@ GEM mustermann (>= 1.0.0) netrc (0.11.0) nio4r (2.5.2) - nokogiri (1.10.8) + nokogiri (1.10.9) mini_portile2 (~> 2.4.0) nori (2.6.0) open4 (1.3.4) @@ -291,7 +291,7 @@ GEM erubis que (~> 0.8) sinatra - rack (2.1.2) + rack (2.2.2) rack-accept (0.4.5) rack (>= 0.4) rack-protection (2.0.8.1) From ef220cdf829ac2f1b423eaad80044da3cb916746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Tue, 10 Mar 2020 16:33:08 +0200 Subject: [PATCH 411/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5e11261f..28edf0157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +10.03.2020 +* Updated lhv, e-invoice & company_register gem due to security updates [#1564](https://github.com/internetee/registry/pull/1564) + 06.03.2020 * Record payment method and failed payments [#1422](https://github.com/internetee/registry/issues/1422) From 1728ccaa5abfd08511af1b0813b8049467e7e0c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 11 Mar 2020 13:49:52 +0200 Subject: [PATCH 412/757] Modify SQL function to create glue for 2-level domains --- ...114649_update_zone_generation_migration.rb | 247 ++++++++++++++++++ db/structure.sql | 8 +- 2 files changed, 251 insertions(+), 4 deletions(-) create mode 100644 db/migrate/20200311114649_update_zone_generation_migration.rb diff --git a/db/migrate/20200311114649_update_zone_generation_migration.rb b/db/migrate/20200311114649_update_zone_generation_migration.rb new file mode 100644 index 000000000..2c516474d --- /dev/null +++ b/db/migrate/20200311114649_update_zone_generation_migration.rb @@ -0,0 +1,247 @@ +class UpdateZoneGenerationMigration < ActiveRecord::Migration[5.1] + def up + execute <<-SQL + CREATE OR REPLACE FUNCTION generate_zonefile(i_origin character varying) RETURNS text + LANGUAGE plpgsql + AS $_$ + DECLARE + zone_header text := concat('$ORIGIN ', i_origin, '.'); + serial_num varchar; + include_filter varchar := ''; + exclude_filter varchar := ''; + tmp_var text; + ret text; + BEGIN + -- define filters + include_filter = '%.' || i_origin; + + -- for %.%.% + IF i_origin ~ '.' THEN + exclude_filter := ''; + -- for %.% + ELSE + exclude_filter := '%.%.' || i_origin; + END IF; + + SELECT ROUND(extract(epoch from now() at time zone 'utc')) INTO serial_num; + + -- zonefile header + SELECT concat( + format('%-10s', '$ORIGIN .'), chr(10), + format('%-10s', '$TTL'), zf.ttl, chr(10), chr(10), + format('%-10s', i_origin || '.'), 'IN SOA ', zf.master_nameserver, '. ', zf.email, '. (', chr(10), + format('%-17s', ''), format('%-12s', serial_num), '; serial number', chr(10), + format('%-17s', ''), format('%-12s', zf.refresh), '; refresh, seconds', chr(10), + format('%-17s', ''), format('%-12s', zf.retry), '; retry, seconds', chr(10), + format('%-17s', ''), format('%-12s', zf.expire), '; expire, seconds', chr(10), + format('%-17s', ''), format('%-12s', zf.minimum_ttl), '; minimum TTL, seconds', chr(10), + format('%-17s', ''), ')' + ) FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + + ret = concat(tmp_var, chr(10), chr(10)); + + -- origin ns records + SELECT ns_records FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + ret := concat(ret, '; Zone NS Records', chr(10), tmp_var, chr(10)); + + -- ns records + SELECT array_to_string( + array( + SELECT concat(d.name_puny, '. IN NS ', coalesce(ns.hostname_puny, ns.hostname), '.') + FROM domains d + JOIN nameservers ns ON ns.domain_id = d.id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ORDER BY d.name + ), + chr(10) + ) INTO tmp_var; + + ret := concat(ret, tmp_var, chr(10), chr(10)); + + -- origin a glue records + SELECT a_records FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + ret := concat(ret, '; Zone A Records', chr(10), tmp_var, chr(10)); + + -- a glue records for other nameservers + SELECT array_to_string( + array( + SELECT concat(coalesce(ns.hostname_puny, ns.hostname), '. IN A ', unnest(ns.ipv4)) + FROM nameservers ns + JOIN domains d ON d.id = ns.domain_id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter + AND (ns.hostname LIKE '%.' || d.name) OR (ns.hostname LIKE d.name) + AND d.name <> i_origin + AND ns.ipv4 IS NOT NULL AND ns.ipv4 <> '{}' + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ), chr(10) + ) INTO tmp_var; + + ret := concat(ret, tmp_var, chr(10), chr(10)); + + -- origin aaaa glue records + SELECT a4_records FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + ret := concat(ret, '; Zone AAAA Records', chr(10), tmp_var, chr(10)); + + -- aaaa glue records for other nameservers + SELECT array_to_string( + array( + SELECT concat(coalesce(ns.hostname_puny, ns.hostname), '. IN AAAA ', unnest(ns.ipv6)) + FROM nameservers ns + JOIN domains d ON d.id = ns.domain_id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter + AND (ns.hostname LIKE '%.' || d.name) OR (ns.hostname LIKE d.name) + AND d.name <> i_origin + AND ns.ipv6 IS NOT NULL AND ns.ipv6 <> '{}' + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ), chr(10) + ) INTO tmp_var; + + ret := concat(ret, tmp_var, chr(10), chr(10)); + + -- ds records + SELECT array_to_string( + array( + SELECT concat( + d.name_puny, '. 3600 IN DS ', dk.ds_key_tag, ' ', + dk.ds_alg, ' ', dk.ds_digest_type, ' ', dk.ds_digest + ) + FROM domains d + JOIN dnskeys dk ON dk.domain_id = d.id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter AND dk.flags = 257 + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ), + chr(10) + ) INTO tmp_var; + + ret := concat(ret, '; Zone DS Records', chr(10), tmp_var, chr(10)); + + RETURN ret; + END; + $_$; + SQL + end + + def down + execute <<-SQL + CREATE OR REPLACE FUNCTION generate_zonefile(i_origin character varying) RETURNS text + LANGUAGE plpgsql + AS $_$ + DECLARE + zone_header text := concat('$ORIGIN ', i_origin, '.'); + serial_num varchar; + include_filter varchar := ''; + exclude_filter varchar := ''; + tmp_var text; + ret text; + BEGIN + -- define filters + include_filter = '%.' || i_origin; + + -- for %.%.% + IF i_origin ~ '.' THEN + exclude_filter := ''; + -- for %.% + ELSE + exclude_filter := '%.%.' || i_origin; + END IF; + + SELECT ROUND(extract(epoch from now() at time zone 'utc')) INTO serial_num; + + -- zonefile header + SELECT concat( + format('%-10s', '$ORIGIN .'), chr(10), + format('%-10s', '$TTL'), zf.ttl, chr(10), chr(10), + format('%-10s', i_origin || '.'), 'IN SOA ', zf.master_nameserver, '. ', zf.email, '. (', chr(10), + format('%-17s', ''), format('%-12s', serial_num), '; serial number', chr(10), + format('%-17s', ''), format('%-12s', zf.refresh), '; refresh, seconds', chr(10), + format('%-17s', ''), format('%-12s', zf.retry), '; retry, seconds', chr(10), + format('%-17s', ''), format('%-12s', zf.expire), '; expire, seconds', chr(10), + format('%-17s', ''), format('%-12s', zf.minimum_ttl), '; minimum TTL, seconds', chr(10), + format('%-17s', ''), ')' + ) FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + + ret = concat(tmp_var, chr(10), chr(10)); + + -- origin ns records + SELECT ns_records FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + ret := concat(ret, '; Zone NS Records', chr(10), tmp_var, chr(10)); + + -- ns records + SELECT array_to_string( + array( + SELECT concat(d.name_puny, '. IN NS ', coalesce(ns.hostname_puny, ns.hostname), '.') + FROM domains d + JOIN nameservers ns ON ns.domain_id = d.id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ORDER BY d.name + ), + chr(10) + ) INTO tmp_var; + + ret := concat(ret, tmp_var, chr(10), chr(10)); + + -- origin a glue records + SELECT a_records FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + ret := concat(ret, '; Zone A Records', chr(10), tmp_var, chr(10)); + + -- a glue records for other nameservers + SELECT array_to_string( + array( + SELECT concat(coalesce(ns.hostname_puny, ns.hostname), '. IN A ', unnest(ns.ipv4)) + FROM nameservers ns + JOIN domains d ON d.id = ns.domain_id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter + AND ns.hostname LIKE '%.' || d.name + AND d.name <> i_origin + AND ns.ipv4 IS NOT NULL AND ns.ipv4 <> '{}' + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ), chr(10) + ) INTO tmp_var; + + ret := concat(ret, tmp_var, chr(10), chr(10)); + + -- origin aaaa glue records + SELECT a4_records FROM zones zf WHERE i_origin = zf.origin INTO tmp_var; + ret := concat(ret, '; Zone AAAA Records', chr(10), tmp_var, chr(10)); + + -- aaaa glue records for other nameservers + SELECT array_to_string( + array( + SELECT concat(coalesce(ns.hostname_puny, ns.hostname), '. IN AAAA ', unnest(ns.ipv6)) + FROM nameservers ns + JOIN domains d ON d.id = ns.domain_id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter + AND ns.hostname LIKE '%.' || d.name + AND d.name <> i_origin + AND ns.ipv6 IS NOT NULL AND ns.ipv6 <> '{}' + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ), chr(10) + ) INTO tmp_var; + + ret := concat(ret, tmp_var, chr(10), chr(10)); + + -- ds records + SELECT array_to_string( + array( + SELECT concat( + d.name_puny, '. 3600 IN DS ', dk.ds_key_tag, ' ', + dk.ds_alg, ' ', dk.ds_digest_type, ' ', dk.ds_digest + ) + FROM domains d + JOIN dnskeys dk ON dk.domain_id = d.id + WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter AND dk.flags = 257 + AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) + ), + chr(10) + ) INTO tmp_var; + + ret := concat(ret, '; Zone DS Records', chr(10), tmp_var, chr(10)); + + RETURN ret; + END; + $_$; + SQL + end +end diff --git a/db/structure.sql b/db/structure.sql index 4132266e7..604238d4c 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -140,7 +140,7 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex FROM nameservers ns JOIN domains d ON d.id = ns.domain_id WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter - AND ns.hostname LIKE '%.' || d.name + AND (ns.hostname LIKE '%.' || d.name) OR (ns.hostname LIKE d.name) AND d.name <> i_origin AND ns.ipv4 IS NOT NULL AND ns.ipv4 <> '{}' AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) @@ -160,7 +160,7 @@ CREATE FUNCTION public.generate_zonefile(i_origin character varying) RETURNS tex FROM nameservers ns JOIN domains d ON d.id = ns.domain_id WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter - AND ns.hostname LIKE '%.' || d.name + AND (ns.hostname LIKE '%.' || d.name) OR (ns.hostname LIKE d.name) AND d.name <> i_origin AND ns.ipv6 IS NOT NULL AND ns.ipv6 <> '{}' AND NOT ('{serverHold,clientHold,inactive}' && d.statuses) @@ -4462,6 +4462,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200115102202'), ('20200130092113'), ('20200203143458'), -('20200204103125'); - +('20200204103125'), +('20200311114649'); From ecbed47a68e51ed7ca2bf3deee276cc260df6867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 11 Mar 2020 16:24:42 +0200 Subject: [PATCH 413/757] Render EPP error when IP missing for glue record --- app/models/nameserver.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index bf76868dc..3ddf1d1c5 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -48,7 +48,7 @@ class Nameserver < ApplicationRecord [:ipv6, :invalid, { value: { obj: 'hostAddr', val: ipv6 } }] ], '2003' => [ - [:ipv4, :blank] + %i[base ip_required], ] } end @@ -83,6 +83,7 @@ class Nameserver < ApplicationRecord def glue_record_required? return unless hostname? && domain + DomainName(hostname).domain == domain.name end From a8a9092bdef771990c89b63998bf4a936fbe0abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 11 Mar 2020 17:21:11 +0200 Subject: [PATCH 414/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28edf0157..c55e4b03b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +11.03.2020 +* Fixed glue record issues when using 2nd level domain as host [#1562](https://github.com/internetee/registry/issues/1562) + 10.03.2020 * Updated lhv, e-invoice & company_register gem due to security updates [#1564](https://github.com/internetee/registry/pull/1564) From 3e01963b3eb2bd34952523ad70d96c1a4d7cd1ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 18 Mar 2020 19:02:28 +0200 Subject: [PATCH 415/757] Reference master branch of Directo gem --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 80375026d..9ed6b8090 100644 --- a/Gemfile +++ b/Gemfile @@ -68,7 +68,7 @@ gem 'domain_name' gem 'haml', '~> 5.0' gem 'wkhtmltopdf-binary' -gem 'directo', github: 'internetee/directo', branch: 'directo-api' +gem 'directo', github: 'internetee/directo', branch: 'master' group :development do # deploy diff --git a/Gemfile.lock b/Gemfile.lock index 3b36f1935..98f999311 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,10 +9,10 @@ GIT GIT remote: https://github.com/internetee/directo.git - revision: 7bac1d5ca413e3cce25a7adad3c0e8d7f8cd673e - branch: directo-api + revision: 8cb63d2fb91c640b264d5af05f4a6afbcfd46979 + branch: master specs: - directo (0.1.0) + directo (1.0.0) money (~> 6.13) nokogiri (~> 1.10) From d00450d67e1062e20b241217bbd2512f5138ed1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 25 Mar 2020 11:27:08 +0200 Subject: [PATCH 416/757] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c55e4b03b..48d173cfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +25.03.2020 +* Implemented Directo gem [#1547](https://github.com/internetee/registry/pull/1547) + 11.03.2020 * Fixed glue record issues when using 2nd level domain as host [#1562](https://github.com/internetee/registry/issues/1562) From 1747de8eb5542efaacb5e82628290858f9f33fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 14 Apr 2020 09:01:15 +0300 Subject: [PATCH 417/757] Pump dependencies to support Rails 5.2 --- Gemfile | 8 ++-- Gemfile.lock | 110 ++++++++++++++++++++++++++++----------------------- 2 files changed, 65 insertions(+), 53 deletions(-) diff --git a/Gemfile b/Gemfile index 9ed6b8090..c9516fa26 100644 --- a/Gemfile +++ b/Gemfile @@ -1,8 +1,8 @@ source 'https://rubygems.org' # core -gem 'iso8601', '0.12.1' # for dates and times -gem 'rails', '~> 5.1.7' +gem 'iso8601', '0.12.1' # for dates and times +gem 'rails', '~> 5.2.4.2' gem 'rest-client' gem 'uglifier' @@ -10,10 +10,10 @@ gem 'uglifier' gem 'figaro', '1.1.1' # model related -gem 'paper_trail', '~> 8.1' +gem 'paper_trail', '~> 9.2' gem 'pg', '1.2.2' # 1.8 is for Rails < 5.0 -gem 'ransack', '~> 1.8' +gem 'ransack', '~> 2.3' gem 'validates_email_format_of', '1.6.3' # validates email against RFC 2822 and RFC 3696 # 0.7.3 is the latest for Rails 4.2, however, it is absent on Rubygems server diff --git a/Gemfile.lock b/Gemfile.lock index f0871bf85..5aedfda95 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -68,39 +68,43 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (5.1.7) - actionpack (= 5.1.7) + actioncable (5.2.4.2) + actionpack (= 5.2.4.2) nio4r (~> 2.0) - websocket-driver (~> 0.6.1) - actionmailer (5.1.7) - actionpack (= 5.1.7) - actionview (= 5.1.7) - activejob (= 5.1.7) + websocket-driver (>= 0.6.1) + actionmailer (5.2.4.2) + actionpack (= 5.2.4.2) + actionview (= 5.2.4.2) + activejob (= 5.2.4.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.1.7) - actionview (= 5.1.7) - activesupport (= 5.1.7) - rack (~> 2.0) + actionpack (5.2.4.2) + actionview (= 5.2.4.2) + activesupport (= 5.2.4.2) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.1.7) - activesupport (= 5.1.7) + actionview (5.2.4.2) + activesupport (= 5.2.4.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.1.7) - activesupport (= 5.1.7) + activejob (5.2.4.2) + activesupport (= 5.2.4.2) globalid (>= 0.3.6) - activemodel (5.1.7) - activesupport (= 5.1.7) - activerecord (5.1.7) - activemodel (= 5.1.7) - activesupport (= 5.1.7) - arel (~> 8.0) - activesupport (5.1.7) + activemodel (5.2.4.2) + activesupport (= 5.2.4.2) + activerecord (5.2.4.2) + activemodel (= 5.2.4.2) + activesupport (= 5.2.4.2) + arel (>= 9.0) + activestorage (5.2.4.2) + actionpack (= 5.2.4.2) + activerecord (= 5.2.4.2) + marcel (~> 0.3.1) + activesupport (5.2.4.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -114,7 +118,7 @@ GEM akami (1.3.1) gyoku (>= 0.4.0) nokogiri - arel (8.0.0) + arel (9.0.0) autodoc (0.7.3) actionpack activesupport (>= 3.0.0) @@ -247,15 +251,18 @@ GEM keystores (0.4.0) libxml-ruby (3.1.0) logger (1.4.2) - loofah (2.4.0) + loofah (2.5.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) + marcel (0.3.3) + mimemagic (~> 0.3.2) method_source (0.8.2) mime-types (3.3.1) mime-types-data (~> 3.2015) mime-types-data (3.2019.1009) + mimemagic (0.3.4) mina (0.3.1) open4 (~> 1.3.4) rake @@ -283,11 +290,15 @@ GEM nori (2.6.0) open4 (1.3.4) orm_adapter (0.5.0) - paper_trail (8.1.2) - activerecord (>= 4.2, < 5.2) + paper_trail (9.2.0) + activerecord (>= 4.2, < 5.3) + paper_trail-association_tracking (< 2) request_store (~> 1.1) + paper_trail-association_tracking (1.1.1) pdfkit (0.8.4.1) pg (1.2.2) + polyamorous (2.3.2) + activerecord (>= 5.2.1) pry (0.10.1) coderay (~> 1.1.0) method_source (~> 0.8.1) @@ -308,17 +319,18 @@ GEM rack-test (1.1.0) rack (>= 1.0, < 3) railroady (1.3.0) - rails (5.1.7) - actioncable (= 5.1.7) - actionmailer (= 5.1.7) - actionpack (= 5.1.7) - actionview (= 5.1.7) - activejob (= 5.1.7) - activemodel (= 5.1.7) - activerecord (= 5.1.7) - activesupport (= 5.1.7) + rails (5.2.4.2) + actioncable (= 5.2.4.2) + actionmailer (= 5.2.4.2) + actionpack (= 5.2.4.2) + actionview (= 5.2.4.2) + activejob (= 5.2.4.2) + activemodel (= 5.2.4.2) + activerecord (= 5.2.4.2) + activestorage (= 5.2.4.2) + activesupport (= 5.2.4.2) bundler (>= 1.3.0) - railties (= 5.1.7) + railties (= 5.2.4.2) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -327,18 +339,18 @@ GEM loofah (~> 2.3) rails-settings-cached (0.7.2) rails (>= 4.2.0) - railties (5.1.7) - actionpack (= 5.1.7) - activesupport (= 5.1.7) + railties (5.2.4.2) + actionpack (= 5.2.4.2) + activesupport (= 5.2.4.2) method_source rake (>= 0.8.7) - thor (>= 0.18.1, < 2.0) + thor (>= 0.19.0, < 2.0) rake (13.0.1) - ransack (1.8.10) - actionpack (>= 3.0, < 5.2) - activerecord (>= 3.0, < 5.2) - activesupport (>= 3.0, < 5.2) + ransack (2.3.2) + activerecord (>= 5.2.1) + activesupport (>= 5.2.1) i18n + polyamorous (= 2.3.2) rb-fsevent (0.10.3) rb-inotify (0.10.1) ffi (~> 1.0) @@ -425,7 +437,7 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) - tzinfo (1.2.6) + tzinfo (1.2.7) thread_safe (~> 0.1) uglifier (4.2.0) execjs (>= 0.3.0, < 3) @@ -448,7 +460,7 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.6.5) + websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.4) whenever (0.9.4) @@ -493,7 +505,7 @@ DEPENDENCIES minitest (~> 5.14) money-rails nokogiri - paper_trail (~> 8.1) + paper_trail (~> 9.2) pdfkit pg (= 1.2.2) pry (= 0.10.1) @@ -501,9 +513,9 @@ DEPENDENCIES que que-web railroady (= 1.3.0) - rails (~> 5.1.7) + rails (~> 5.2.4.2) rails-settings-cached (= 0.7.2) - ransack (~> 1.8) + ransack (~> 2.3) rest-client sass-rails (= 5.0.6) sdoc (= 0.4.1) From 7c7bcf4b41e0740ec193447f519748ab3321887a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 15 Apr 2020 09:19:43 +0300 Subject: [PATCH 418/757] Binaries / New configs from Rails 5.2 app:update --- bin/bundle | 2 +- bin/setup | 12 +++--- bin/update | 6 ++- bin/yarn | 6 +-- .../initializers/content_security_policy.rb | 25 ++++++++++++ .../new_framework_defaults_5_2.rb | 38 +++++++++++++++++++ config/storage.yml | 34 +++++++++++++++++ 7 files changed, 111 insertions(+), 12 deletions(-) create mode 100644 config/initializers/content_security_policy.rb create mode 100644 config/initializers/new_framework_defaults_5_2.rb create mode 100644 config/storage.yml diff --git a/bin/bundle b/bin/bundle index 66e9889e8..f19acf5b5 100755 --- a/bin/bundle +++ b/bin/bundle @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) load Gem.bin_path('bundler', 'bundle') diff --git a/bin/setup b/bin/setup index b5ca43ac5..94fd4d797 100755 --- a/bin/setup +++ b/bin/setup @@ -1,9 +1,9 @@ #!/usr/bin/env ruby -require 'pathname' +require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = File.expand_path('..', __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") @@ -20,10 +20,10 @@ chdir APP_ROOT do # Install JavaScript dependencies if using Yarn # system('bin/yarn') - puts "\n== Copying sample files ==" - unless File.exist?('config/database.yml') - system! 'cp config/database.yml.sample config/database.yml' - end + # puts "\n== Copying sample files ==" + # unless File.exist?('config/database.yml') + # cp 'config/database.yml.sample', 'config/database.yml' + # end puts "\n== Preparing database ==" system! 'bin/rails db:setup' diff --git a/bin/update b/bin/update index a8e4462f2..58bfaed51 100755 --- a/bin/update +++ b/bin/update @@ -1,10 +1,9 @@ #!/usr/bin/env ruby -require 'pathname' require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = File.expand_path('..', __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") @@ -18,6 +17,9 @@ chdir APP_ROOT do system! 'gem install bundler --conservative' system('bundle check') || system!('bundle install') + # Install JavaScript dependencies if using Yarn + # system('bin/yarn') + puts "\n== Updating database ==" system! 'bin/rails db:migrate' diff --git a/bin/yarn b/bin/yarn index c2bacef83..460dd565b 100755 --- a/bin/yarn +++ b/bin/yarn @@ -1,8 +1,8 @@ #!/usr/bin/env ruby -VENDOR_PATH = File.expand_path('..', __dir__) -Dir.chdir(VENDOR_PATH) do +APP_ROOT = File.expand_path('..', __dir__) +Dir.chdir(APP_ROOT) do begin - exec "yarnpkg #{ARGV.join(" ")}" + exec "yarnpkg", *ARGV rescue Errno::ENOENT $stderr.puts "Yarn executable was not detected in the system." $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb new file mode 100644 index 000000000..d3bcaa5ec --- /dev/null +++ b/config/initializers/content_security_policy.rb @@ -0,0 +1,25 @@ +# Be sure to restart your server when you modify this file. + +# Define an application-wide content security policy +# For further information see the following documentation +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy + +# Rails.application.config.content_security_policy do |policy| +# policy.default_src :self, :https +# policy.font_src :self, :https, :data +# policy.img_src :self, :https, :data +# policy.object_src :none +# policy.script_src :self, :https +# policy.style_src :self, :https + +# # Specify URI for violation reports +# # policy.report_uri "/csp-violation-report-endpoint" +# end + +# If you are using UJS then enable automatic nonce generation +# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } + +# Report CSP violations to a specified URI +# For further information see the following documentation: +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only +# Rails.application.config.content_security_policy_report_only = true diff --git a/config/initializers/new_framework_defaults_5_2.rb b/config/initializers/new_framework_defaults_5_2.rb new file mode 100644 index 000000000..c383d072b --- /dev/null +++ b/config/initializers/new_framework_defaults_5_2.rb @@ -0,0 +1,38 @@ +# Be sure to restart your server when you modify this file. +# +# This file contains migration options to ease your Rails 5.2 upgrade. +# +# Once upgraded flip defaults one by one to migrate to the new default. +# +# Read the Guide for Upgrading Ruby on Rails for more info on each option. + +# Make Active Record use stable #cache_key alongside new #cache_version method. +# This is needed for recyclable cache keys. +# Rails.application.config.active_record.cache_versioning = true + +# Use AES-256-GCM authenticated encryption for encrypted cookies. +# Also, embed cookie expiry in signed or encrypted cookies for increased security. +# +# This option is not backwards compatible with earlier Rails versions. +# It's best enabled when your entire app is migrated and stable on 5.2. +# +# Existing cookies will be converted on read then written with the new scheme. +# Rails.application.config.action_dispatch.use_authenticated_cookie_encryption = true + +# Use AES-256-GCM authenticated encryption as default cipher for encrypting messages +# instead of AES-256-CBC, when use_authenticated_message_encryption is set to true. +# Rails.application.config.active_support.use_authenticated_message_encryption = true + +# Add default protection from forgery to ActionController::Base instead of in +# ApplicationController. +# Rails.application.config.action_controller.default_protect_from_forgery = true + +# Store boolean values are in sqlite3 databases as 1 and 0 instead of 't' and +# 'f' after migrating old data. +# Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true + +# Use SHA-1 instead of MD5 to generate non-sensitive digests, such as the ETag header. +# Rails.application.config.active_support.use_sha1_digests = true + +# Make `form_with` generate id attributes for any generated HTML tags. +# Rails.application.config.action_view.form_with_generates_ids = true diff --git a/config/storage.yml b/config/storage.yml new file mode 100644 index 000000000..d32f76e8f --- /dev/null +++ b/config/storage.yml @@ -0,0 +1,34 @@ +test: + service: Disk + root: <%= Rails.root.join("tmp/storage") %> + +local: + service: Disk + root: <%= Rails.root.join("storage") %> + +# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) +# amazon: +# service: S3 +# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> +# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> +# region: us-east-1 +# bucket: your_own_bucket + +# Remember not to checkin your GCS keyfile to a repository +# google: +# service: GCS +# project: your_project +# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> +# bucket: your_own_bucket + +# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) +# microsoft: +# service: AzureStorage +# storage_account_name: your_account_name +# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> +# container: your_container_name + +# mirror: +# service: Mirror +# primary: local +# mirrors: [ amazon, google, microsoft ] From e040ac6a45c5f69f73d3c22c5813014fe19f819e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 15 Apr 2020 10:01:35 +0300 Subject: [PATCH 419/757] Exclude DomainStatus static model from Papertrail --- app/models/domain_status.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index fba75737c..dc3032c74 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -1,5 +1,4 @@ class DomainStatus < ApplicationRecord - include Versions # version/domain_status_version.rb include EppErrors belongs_to :domain From 43200f68dec07b53ca3d926af2d00531d3f820b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Wed, 15 Apr 2020 12:25:28 +0300 Subject: [PATCH 420/757] Revert unnessecary updates to binaries --- app/models/domain_status.rb | 1 - bin/bundle | 2 +- bin/setup | 14 ++++++++------ bin/update | 6 ++---- bin/yarn | 12 +++++------- 5 files changed, 16 insertions(+), 19 deletions(-) diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index dc3032c74..4b1c49916 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -1,6 +1,5 @@ class DomainStatus < ApplicationRecord include EppErrors - belongs_to :domain # Requests to delete the object MUST be rejected. diff --git a/bin/bundle b/bin/bundle index f19acf5b5..8bfc37be6 100755 --- a/bin/bundle +++ b/bin/bundle @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __dir__) load Gem.bin_path('bundler', 'bundle') diff --git a/bin/setup b/bin/setup index 94fd4d797..ab3c84d9b 100755 --- a/bin/setup +++ b/bin/setup @@ -1,9 +1,11 @@ #!/usr/bin/env ruby -require 'fileutils' +# frozen_string_literal: true + +require 'pathname' include FileUtils # path to your application root. -APP_ROOT = File.expand_path('..', __dir__) +APP_ROOT = Pathname.new File.expand_path('../../', __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") @@ -20,10 +22,10 @@ chdir APP_ROOT do # Install JavaScript dependencies if using Yarn # system('bin/yarn') - # puts "\n== Copying sample files ==" - # unless File.exist?('config/database.yml') - # cp 'config/database.yml.sample', 'config/database.yml' - # end + puts "\n== Copying sample files ==" + unless File.exist?('config/database.yml') + system! 'cp config/database.yml.sample config/database.yml' + end puts "\n== Preparing database ==" system! 'bin/rails db:setup' diff --git a/bin/update b/bin/update index 58bfaed51..a8e4462f2 100755 --- a/bin/update +++ b/bin/update @@ -1,9 +1,10 @@ #!/usr/bin/env ruby +require 'pathname' require 'fileutils' include FileUtils # path to your application root. -APP_ROOT = File.expand_path('..', __dir__) +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") @@ -17,9 +18,6 @@ chdir APP_ROOT do system! 'gem install bundler --conservative' system('bundle check') || system!('bundle install') - # Install JavaScript dependencies if using Yarn - # system('bin/yarn') - puts "\n== Updating database ==" system! 'bin/rails db:migrate' diff --git a/bin/yarn b/bin/yarn index 460dd565b..adabdd976 100755 --- a/bin/yarn +++ b/bin/yarn @@ -1,11 +1,9 @@ #!/usr/bin/env ruby APP_ROOT = File.expand_path('..', __dir__) Dir.chdir(APP_ROOT) do - begin - exec "yarnpkg", *ARGV - rescue Errno::ENOENT - $stderr.puts "Yarn executable was not detected in the system." - $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" - exit 1 - end + exec 'yarnpkg', *ARGV +rescue Errno::ENOENT + $stderr.puts 'Yarn executable was not detected in the system.' + $stderr.puts 'Download Yarn at https://yarnpkg.com/en/docs/install' + exit 1 end From 7970f51353d0918b0a03851ae221025f8c998d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20V=C3=B5hmar?= Date: Wed, 15 Apr 2020 23:29:03 +0300 Subject: [PATCH 421/757] Update CHANGELOG.md Rails 5.2 update --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48d173cfc..81d4eb7fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +15.04.2020 +* Updated Rails to 5.2 and fixed acitionview security issue [#1568](https://github.com/internetee/registry/issues/1568) + 25.03.2020 * Implemented Directo gem [#1547](https://github.com/internetee/registry/pull/1547) From 8161d21f9837c0a8f3f2cffcb475c02987fb8bb2 Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Mon, 7 Oct 2019 23:01:30 +0300 Subject: [PATCH 422/757] clickable commit hash link --- app/views/layouts/admin/base.haml | 2 +- app/views/layouts/registrant/application.html.erb | 2 +- app/views/layouts/registrar/base.html.erb | 2 +- app/views/layouts/registrar/sessions.html.erb | 2 +- config/initializers/current_commit_hash.rb | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/views/layouts/admin/base.haml b/app/views/layouts/admin/base.haml index 792a8cc0b..b5194892d 100644 --- a/app/views/layouts/admin/base.haml +++ b/app/views/layouts/admin/base.haml @@ -32,5 +32,5 @@ .footer.text-right Version - = CURRENT_COMMIT_HASH + = link_to "#{CURRENT_COMMIT_HASH}", "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}" = javascript_include_tag 'admin-manifest', async: true diff --git a/app/views/layouts/registrant/application.html.erb b/app/views/layouts/registrant/application.html.erb index 66fdf3e16..a3b69a78a 100644 --- a/app/views/layouts/registrant/application.html.erb +++ b/app/views/layouts/registrant/application.html.erb @@ -76,7 +76,7 @@
Version - <%= CURRENT_COMMIT_HASH %> + <%= link_to(CURRENT_COMMIT_HASH, CURRENT_COMMIT_REPO/commits/CURRENT_COMMIT_HASH) %>
diff --git a/app/views/layouts/registrar/base.html.erb b/app/views/layouts/registrar/base.html.erb index 4d4f1b972..57fab3336 100644 --- a/app/views/layouts/registrar/base.html.erb +++ b/app/views/layouts/registrar/base.html.erb @@ -54,7 +54,7 @@
Version - <%= CURRENT_COMMIT_HASH %> + <%= link_to(CURRENT_COMMIT_HASH, CURRENT_COMMIT_REPO/commits/CURRENT_COMMIT_HASH) %>
diff --git a/app/views/layouts/registrar/sessions.html.erb b/app/views/layouts/registrar/sessions.html.erb index 3cb345ef9..004689ded 100644 --- a/app/views/layouts/registrar/sessions.html.erb +++ b/app/views/layouts/registrar/sessions.html.erb @@ -44,7 +44,7 @@
Version - <%= CURRENT_COMMIT_HASH %> + <%= link_to(CURRENT_COMMIT_HASH, CURRENT_COMMIT_REPO/commits/CURRENT_COMMIT_HASH) %>
diff --git a/config/initializers/current_commit_hash.rb b/config/initializers/current_commit_hash.rb index b018b46fd..3038fa33b 100644 --- a/config/initializers/current_commit_hash.rb +++ b/config/initializers/current_commit_hash.rb @@ -1 +1,2 @@ CURRENT_COMMIT_HASH = `git rev-parse --short HEAD` +CURRENT_COMMIT_REPO = `git remote get-url origin` \ No newline at end of file From 700967b58dd79d6e47f070d246f38efb9a16189d Mon Sep 17 00:00:00 2001 From: Georg Kahest Date: Mon, 7 Oct 2019 23:41:07 +0300 Subject: [PATCH 423/757] fix strings, use better colours --- app/views/layouts/admin/base.haml | 2 +- app/views/layouts/registrant/application.html.erb | 2 +- app/views/layouts/registrar/base.html.erb | 2 +- app/views/layouts/registrar/sessions.html.erb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/layouts/admin/base.haml b/app/views/layouts/admin/base.haml index b5194892d..d893da853 100644 --- a/app/views/layouts/admin/base.haml +++ b/app/views/layouts/admin/base.haml @@ -32,5 +32,5 @@ .footer.text-right Version - = link_to "#{CURRENT_COMMIT_HASH}", "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}" + = link_to "#{CURRENT_COMMIT_HASH}", "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#000000;' = javascript_include_tag 'admin-manifest', async: true diff --git a/app/views/layouts/registrant/application.html.erb b/app/views/layouts/registrant/application.html.erb index a3b69a78a..5e6820246 100644 --- a/app/views/layouts/registrant/application.html.erb +++ b/app/views/layouts/registrant/application.html.erb @@ -76,7 +76,7 @@
Version - <%= link_to(CURRENT_COMMIT_HASH, CURRENT_COMMIT_REPO/commits/CURRENT_COMMIT_HASH) %> + <%= link_to(CURRENT_COMMIT_HASH, "#{CURRENT_COMMIT_REPO}/commits/#{CURRENT_COMMIT_HASH}", style: 'color:#FFFFFF;') %>