From e6793d66b0fead9659a3e2d6255303859d299e61 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 4 Jun 2018 03:56:02 +0300 Subject: [PATCH 01/26] Remove "rubocop" gem It can be run via CLI --- Gemfile | 1 - Gemfile.lock | 17 ----------------- 2 files changed, 18 deletions(-) diff --git a/Gemfile b/Gemfile index 0af80fddf..fe2aa68c4 100644 --- a/Gemfile +++ b/Gemfile @@ -103,7 +103,6 @@ gem 'active_model-errors_details' # Backport from Rails 5, https://github.com/ra group :development do gem 'spring' gem 'spring-commands-rspec' - gem 'rubocop' # deploy gem 'mina', '0.3.1' # for fast deployment diff --git a/Gemfile.lock b/Gemfile.lock index b12b28a2d..dfb350e8b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -108,7 +108,6 @@ GEM gyoku (>= 0.4.0) nokogiri arel (6.0.4) - ast (2.3.0) autodoc (0.6.0) actionpack activesupport (>= 3.0.0) @@ -279,9 +278,6 @@ GEM nori (2.6.0) open4 (1.3.4) orm_adapter (0.5.0) - parallel (1.12.0) - parser (2.4.0.0) - ast (~> 2.2) pdfkit (0.6.2) pg (0.19.0) poltergeist (1.14.0) @@ -290,7 +286,6 @@ GEM websocket-driver (>= 0.2.0) polyamorous (1.3.1) activerecord (>= 3.0) - powerpack (0.1.1) pry (0.10.1) coderay (~> 1.1.0) method_source (~> 0.8.1) @@ -338,8 +333,6 @@ GEM activesupport (= 4.2.10) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) - rainbow (2.2.2) - rake rake (12.3.1) ransack (1.5.1) actionpack (>= 3.0) @@ -377,14 +370,6 @@ GEM rspec-mocks (~> 3.6.0) rspec-support (~> 3.6.0) rspec-support (3.6.0) - rubocop (0.49.1) - parallel (~> 1.10) - parser (>= 2.3.3.1, < 3.0) - powerpack (~> 0.1) - rainbow (>= 1.99.1, < 3.0) - ruby-progressbar (~> 1.7) - unicode-display_width (~> 1.0, >= 1.0.1) - ruby-progressbar (1.8.1) ruby_parser (3.8.4) sexp_processor (~> 4.1) safe_yaml (1.0.4) @@ -442,7 +427,6 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.2) - unicode-display_width (1.3.0) unicode_utils (1.4.0) uniform_notifier (1.9.0) uuidtools (2.1.5) @@ -527,7 +511,6 @@ DEPENDENCIES ransack (= 1.5.1) rest-client rspec-rails (~> 3.6) - rubocop sass-rails (= 5.0.6) sdoc (= 0.4.1) select2-rails (= 3.5.9.3) From 30ac973f9610e685dc58790ee2dbfa9b1a15f351 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Jun 2018 17:26:14 +0300 Subject: [PATCH 02/26] Remove `lib` folder from autoload path - Load extensions explicitly --- app/controllers/epp_controller.rb | 17 ++++++++++++++++- {lib => app/models}/sorted_country.rb | 3 --- config/application.rb | 2 +- config/initializers/devise.rb | 2 ++ config/initializers/ext.rb | 4 ++++ config/initializers/load_class_extensions.rb | 1 - config/routes.rb | 2 +- {config/initializers => lib/core_ext}/array.rb | 0 lib/{ext/xml_builder.rb => gem_ext/builder.rb} | 0 .../relaxed_i18n.rb => lib/gem_ext/i18n.rb | 2 +- .../gem_ext/paper_trail.rb | 0 lib/iptable.rb | 17 ----------------- 12 files changed, 25 insertions(+), 25 deletions(-) rename {lib => app/models}/sorted_country.rb (96%) create mode 100644 config/initializers/ext.rb delete mode 100644 config/initializers/load_class_extensions.rb rename {config/initializers => lib/core_ext}/array.rb (100%) rename lib/{ext/xml_builder.rb => gem_ext/builder.rb} (100%) rename config/initializers/relaxed_i18n.rb => lib/gem_ext/i18n.rb (86%) rename config/initializers/001_paper_trail.rb => lib/gem_ext/paper_trail.rb (100%) delete mode 100644 lib/iptable.rb diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 3eba05777..5cc006eda 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -1,5 +1,4 @@ class EppController < ApplicationController - include Iptable layout false protect_from_forgery with: :null_session skip_before_action :verify_authenticity_token @@ -407,4 +406,20 @@ class EppController < ApplicationController timeout = 5.minutes epp_session.updated_at < (Time.zone.now - timeout) 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/lib/sorted_country.rb b/app/models/sorted_country.rb similarity index 96% rename from lib/sorted_country.rb rename to app/models/sorted_country.rb index 8b69d951a..4eb5750f5 100644 --- a/lib/sorted_country.rb +++ b/app/models/sorted_country.rb @@ -1,6 +1,3 @@ -require 'countries' -require 'action_view' - class SortedCountry class << self include ActionView::Helpers diff --git a/config/application.rb b/config/application.rb index 0d043fa5e..400e72124 100644 --- a/config/application.rb +++ b/config/application.rb @@ -40,8 +40,8 @@ module DomainNameRegistry # Autoload all model subdirs config.autoload_paths += Dir[Rails.root.join('app', 'models', '**/')] - config.autoload_paths << Rails.root.join('lib') 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') diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 3fe74cba6..eceb6d5f2 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -1,3 +1,5 @@ +require 'devise_custom_failure' + # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. Devise.setup do |config| diff --git a/config/initializers/ext.rb b/config/initializers/ext.rb new file mode 100644 index 000000000..50b8b2791 --- /dev/null +++ b/config/initializers/ext.rb @@ -0,0 +1,4 @@ +require 'core_ext/array' +require 'gem_ext/builder' +require 'gem_ext/i18n' +require 'gem_ext/paper_trail' \ No newline at end of file diff --git a/config/initializers/load_class_extensions.rb b/config/initializers/load_class_extensions.rb deleted file mode 100644 index f9fb4625c..000000000 --- a/config/initializers/load_class_extensions.rb +++ /dev/null @@ -1 +0,0 @@ -Dir[File.join(Rails.root, 'lib', 'ext', '*.rb')].each { |x| require x } diff --git a/config/routes.rb b/config/routes.rb index 5ef26a195..ab6369775 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,4 @@ -require 'epp_constraint' +require_dependency 'epp_constraint' Rails.application.routes.draw do namespace(:epp, defaults: { format: :xml }) do diff --git a/config/initializers/array.rb b/lib/core_ext/array.rb similarity index 100% rename from config/initializers/array.rb rename to lib/core_ext/array.rb diff --git a/lib/ext/xml_builder.rb b/lib/gem_ext/builder.rb similarity index 100% rename from lib/ext/xml_builder.rb rename to lib/gem_ext/builder.rb diff --git a/config/initializers/relaxed_i18n.rb b/lib/gem_ext/i18n.rb similarity index 86% rename from config/initializers/relaxed_i18n.rb rename to lib/gem_ext/i18n.rb index fc9b94983..2f7fceff7 100644 --- a/config/initializers/relaxed_i18n.rb +++ b/lib/gem_ext/i18n.rb @@ -1,5 +1,5 @@ # Don't raise error when nil -# http://stackoverflow.com/questions/9467034/rails-i18n-how-to-handle-case-of-a-nil-date-being-passed-ie-lnil +# http://stackoverflow.com/questions/9467034/rails-i18n-how-to-handle-case-of-a-nil-date-being-passed-ie-lnil module I18n class << self alias_method :original_localize, :localize diff --git a/config/initializers/001_paper_trail.rb b/lib/gem_ext/paper_trail.rb similarity index 100% rename from config/initializers/001_paper_trail.rb rename to lib/gem_ext/paper_trail.rb diff --git a/lib/iptable.rb b/lib/iptable.rb deleted file mode 100644 index c41bc37f4..000000000 --- a/lib/iptable.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Iptable - 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 From 9b316b6a49871bf8242f29ec399067abe91a3cf2 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Jun 2018 17:32:49 +0300 Subject: [PATCH 03/26] Remove deprecation message - Then setting `config.active_support.deprecation` to `raise` does not clutter test results --- app/models/contact.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index 3bd8bb2ce..e553f2fbf 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -372,8 +372,6 @@ class Contact < ActiveRecord::Base end def related_domain_descriptions - ActiveSupport::Deprecation.warn('Use #domain_names_with_roles') - @desc = {} registrant_domains.each do |dom| From 9f61dfdae71439f6a21d203fe8b31020ffbe22b5 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Jun 2018 17:33:30 +0300 Subject: [PATCH 04/26] Improve test env config --- config/environments/test.rb | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/config/environments/test.rb b/config/environments/test.rb index 9b22ad426..595a6a05d 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -12,7 +12,7 @@ Rails.application.configure do # preloads Rails for running tests, you may have to set it to true. config.eager_load = true - # Configure static asset server for tests with Cache-Control for performance. + # Configure static file server for tests with Cache-Control for performance. config.serve_static_files = true config.static_cache_control = 'public, max-age=3600' @@ -31,22 +31,16 @@ Rails.application.configure do # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test - ActiveSupport::Deprecation.silenced = true + # Randomize the order test cases are executed. + config.active_support.test_order = :random - # For rails-settings-cached conflict - config.cache_store = :file_store, 'tmp/cache_test' + # Print deprecation notices to the stderr. + config.active_support.deprecation = :raise + # Raises error for missing translations config.action_view.raise_on_missing_translations = true - # The available log levels are: :debug, :info, :warn, :error, :fatal, and :unknown, - # corresponding to the log level numbers from 0 up to 5 respectively - config.log_level = :debug - config.active_job.queue_adapter = :test - config.logger = ActiveSupport::Logger.new(nil) - config.active_support.test_order = :random # :random is the default in Rails 5 + config.cache_store = :null_store end -# In this mode, any jobs you queue will be run in the same thread, synchronously -# (that is, MyJob.enqueue runs the job and won't return until it's completed). -# This makes your application's behavior easier to test -Que.mode = :sync +Que.mode = :sync \ No newline at end of file From 132ba8c6e2d1f7638c67ba910c26605ba9bd3f62 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 03:11:28 +0300 Subject: [PATCH 05/26] Hide method --- app/controllers/epp_controller.rb | 12 ++++++------ doc/controllers_complete.svg | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 5cc006eda..4250e0e84 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -358,12 +358,6 @@ class EppController < ApplicationController # rubocop: enable Metrics/CyclomaticComplexity # rubocop: enable Metrics/PerceivedComplexity - 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 resource name = self.class.to_s.sub("Epp::","").sub("Controller","").underscore.singularize instance_variable_get("@#{name}") @@ -407,6 +401,12 @@ class EppController < ApplicationController 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}" diff --git a/doc/controllers_complete.svg b/doc/controllers_complete.svg index dcf736019..7f3644dd3 100644 --- a/doc/controllers_complete.svg +++ b/doc/controllers_complete.svg @@ -668,7 +668,6 @@ generate_svtrid handle_errors has_attribute -iptables_counter_update latin_only mutually_exclusive optional From d87f4992948bc3962978821ba53a0ae710e529b6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 03:15:58 +0300 Subject: [PATCH 06/26] Remove unneeded require --- lib/gem_ext/builder.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/gem_ext/builder.rb b/lib/gem_ext/builder.rb index 2c933c480..e5038592a 100644 --- a/lib/gem_ext/builder.rb +++ b/lib/gem_ext/builder.rb @@ -1,5 +1,3 @@ -require 'builder' - class Builder::XmlMarkup def epp_head self.instruct! From 3400a1bd3edecf657344cace670c371414c78bb7 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 03:20:25 +0300 Subject: [PATCH 07/26] Fix code style issues from CodeClimate --- app/models/sorted_country.rb | 10 +++++----- lib/core_ext/array.rb | 2 +- lib/gem_ext/builder.rb | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/models/sorted_country.rb b/app/models/sorted_country.rb index 4eb5750f5..e4f2ad330 100644 --- a/app/models/sorted_country.rb +++ b/app/models/sorted_country.rb @@ -18,12 +18,12 @@ class SortedCountry def quick_list @quick_list ||= [ - ['Estonia', 'EE'], - ['Finland', 'FI'], - ['Latvia', 'LV'], - ['Lithuania', 'LT'], + %w[Estonia' EE], + %w[Finland FI], + %w[Latvia LV], + %w[Lithuania LT], ['Russian Federation', 'RU'], - ['Sweden', 'SE'], + %w[Sweden SE], ['United States', 'US'] ] end diff --git a/lib/core_ext/array.rb b/lib/core_ext/array.rb index b48249d27..ec280ab81 100644 --- a/lib/core_ext/array.rb +++ b/lib/core_ext/array.rb @@ -1,5 +1,5 @@ class Array - def include_any? *args + def include_any?(*args) (self & args).any? end end \ No newline at end of file diff --git a/lib/gem_ext/builder.rb b/lib/gem_ext/builder.rb index e5038592a..8f2945040 100644 --- a/lib/gem_ext/builder.rb +++ b/lib/gem_ext/builder.rb @@ -1,6 +1,6 @@ class Builder::XmlMarkup def epp_head - self.instruct! + instruct! epp( 'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', From 76d10b94c545fbb1fd356442e4df8c86a3695d82 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 04:55:36 +0300 Subject: [PATCH 08/26] Turn off settings by default - `registrar_ip_whitelist_enabled` - `api_ip_whitelist_enabled` --- config/initializers/initial_settings.rb | 4 ++-- lib/tasks/dev.rake | 2 -- spec/features/registrar/contacts/delete_spec.rb | 2 -- spec/features/registrar/ip_restriction_spec.rb | 9 +++++++-- spec/features/registrar/linked_users_spec.rb | 1 - spec/features/registrar/profile_spec.rb | 1 - .../features/registrar/sign_in/mobile_id_spec.rb | 1 - spec/features/registrar/sign_in/password_spec.rb | 4 ---- spec/features/registrar/sign_out_spec.rb | 1 - spec/models/authorization/restricted_ip_spec.rb | 12 ++++++++---- spec/requests/registrar/ip_restriction_spec.rb | 16 ++++++++-------- spec/requests/registrar/sign_in/password_spec.rb | 4 ---- spec/requests/registrar/sign_out_spec.rb | 1 - 13 files changed, 25 insertions(+), 33 deletions(-) diff --git a/config/initializers/initial_settings.rb b/config/initializers/initial_settings.rb index b6efea6eb..4f4e30057 100644 --- a/config/initializers/initial_settings.rb +++ b/config/initializers/initial_settings.rb @@ -51,8 +51,8 @@ if con.present? && con.table_exists?('settings') Setting.save_default(:redemption_grace_period, 30) Setting.save_default(:expiration_reminder_mail, 2) - Setting.save_default(:registrar_ip_whitelist_enabled, true) - Setting.save_default(:api_ip_whitelist_enabled, true) + Setting.save_default(:registrar_ip_whitelist_enabled, false) + Setting.save_default(:api_ip_whitelist_enabled, false) Setting.save_default(:registry_juridical_name, 'Eesti Interneti SA') Setting.save_default(:registry_reg_no, '90010019') diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake index e4c120a8d..163e3ad1f 100644 --- a/lib/tasks/dev.rake +++ b/lib/tasks/dev.rake @@ -171,9 +171,7 @@ namespace :dev do end end - Setting.api_ip_whitelist_enabled = false Setting.address_processing = false - Setting.registrar_ip_whitelist_enabled = false ActiveRecord::Base.transaction do generate_default_data diff --git a/spec/features/registrar/contacts/delete_spec.rb b/spec/features/registrar/contacts/delete_spec.rb index dd6305a10..d0169ad54 100644 --- a/spec/features/registrar/contacts/delete_spec.rb +++ b/spec/features/registrar/contacts/delete_spec.rb @@ -31,8 +31,6 @@ RSpec.feature 'Contact deletion in registrar area' do background do allow(Depp::Contact).to receive(:find_by_id).and_return(FakeDeppContact.new) allow(Depp::Contact).to receive(:new).and_return(FakeDeppContact.new) - Setting.api_ip_whitelist_enabled = false - Setting.registrar_ip_whitelist_enabled = false sign_in_to_registrar_area(user: create(:api_user_with_unlimited_balance, registrar: registrar)) end diff --git a/spec/features/registrar/ip_restriction_spec.rb b/spec/features/registrar/ip_restriction_spec.rb index dc9631057..264c45283 100644 --- a/spec/features/registrar/ip_restriction_spec.rb +++ b/spec/features/registrar/ip_restriction_spec.rb @@ -1,11 +1,16 @@ require 'rails_helper' RSpec.feature 'Registrar area IP restriction', settings: false do - background do - Setting.registrar_ip_whitelist_enabled = true + 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 diff --git a/spec/features/registrar/linked_users_spec.rb b/spec/features/registrar/linked_users_spec.rb index 2f5fbbd28..f7731a168 100644 --- a/spec/features/registrar/linked_users_spec.rb +++ b/spec/features/registrar/linked_users_spec.rb @@ -6,7 +6,6 @@ RSpec.feature 'Registrar area linked users', settings: false do username: 'new-user-name') } background do - Setting.registrar_ip_whitelist_enabled = false sign_in_to_registrar_area(user: current_user) end diff --git a/spec/features/registrar/profile_spec.rb b/spec/features/registrar/profile_spec.rb index 195458576..745542b58 100644 --- a/spec/features/registrar/profile_spec.rb +++ b/spec/features/registrar/profile_spec.rb @@ -2,7 +2,6 @@ require 'rails_helper' RSpec.feature 'Registrar area profile', settings: false do background do - Setting.registrar_ip_whitelist_enabled = false sign_in_to_registrar_area(user: create(:api_user_with_unlimited_balance)) end diff --git a/spec/features/registrar/sign_in/mobile_id_spec.rb b/spec/features/registrar/sign_in/mobile_id_spec.rb index 5373be4ec..bc26daff5 100644 --- a/spec/features/registrar/sign_in/mobile_id_spec.rb +++ b/spec/features/registrar/sign_in/mobile_id_spec.rb @@ -4,7 +4,6 @@ RSpec.feature 'Mobile ID login', db: true do given!(:api_user) { create(:api_user, identity_code: 1234) } background do - Setting.registrar_ip_whitelist_enabled = false digidoc_client = instance_double(Digidoc::Client, authenticate: OpenStruct.new(user_id_code: 1234), session_code: 1234) allow(Digidoc::Client).to receive(:new).and_return(digidoc_client) end diff --git a/spec/features/registrar/sign_in/password_spec.rb b/spec/features/registrar/sign_in/password_spec.rb index f0cc3ed49..64e22b8f4 100644 --- a/spec/features/registrar/sign_in/password_spec.rb +++ b/spec/features/registrar/sign_in/password_spec.rb @@ -1,10 +1,6 @@ require 'rails_helper' RSpec.feature 'Registrar area password sign-in' do - background do - Setting.registrar_ip_whitelist_enabled = false - end - scenario 'signs in the user with valid credentials' do create(:api_user_with_unlimited_balance, active: true, diff --git a/spec/features/registrar/sign_out_spec.rb b/spec/features/registrar/sign_out_spec.rb index 33acc52ab..09ae011cd 100644 --- a/spec/features/registrar/sign_out_spec.rb +++ b/spec/features/registrar/sign_out_spec.rb @@ -2,7 +2,6 @@ require 'rails_helper' RSpec.feature 'Registrar area sign-out', settings: false do background do - Setting.registrar_ip_whitelist_enabled = false sign_in_to_registrar_area(user: create(:api_user_with_unlimited_balance)) end diff --git a/spec/models/authorization/restricted_ip_spec.rb b/spec/models/authorization/restricted_ip_spec.rb index e64a1739f..b432d46e4 100644 --- a/spec/models/authorization/restricted_ip_spec.rb +++ b/spec/models/authorization/restricted_ip_spec.rb @@ -2,6 +2,14 @@ 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 @@ -13,10 +21,6 @@ RSpec.describe Authorization::RestrictedIP do end context 'when "registrar_ip_whitelist_enabled" is false' do - before do - Setting.registrar_ip_whitelist_enabled = false - end - specify do expect(described_class).to_not be_enabled end diff --git a/spec/requests/registrar/ip_restriction_spec.rb b/spec/requests/registrar/ip_restriction_spec.rb index 3effb72a6..69ba33602 100644 --- a/spec/requests/registrar/ip_restriction_spec.rb +++ b/spec/requests/registrar/ip_restriction_spec.rb @@ -1,6 +1,14 @@ require 'rails_helper' RSpec.describe '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 + context 'when authenticated' do before do sign_in_to_registrar_area @@ -39,10 +47,6 @@ RSpec.describe 'Registrar area IP restriction', settings: false do end context 'when IP restriction is disabled' do - before do - Setting.registrar_ip_whitelist_enabled = false - end - specify do get registrar_root_url follow_redirect! @@ -77,10 +81,6 @@ RSpec.describe 'Registrar area IP restriction', settings: false do end context 'when IP restriction is disabled' do - before do - Setting.registrar_ip_whitelist_enabled = false - end - specify do get registrar_login_path expect(response).to be_success diff --git a/spec/requests/registrar/sign_in/password_spec.rb b/spec/requests/registrar/sign_in/password_spec.rb index f419ffa01..b875de98a 100644 --- a/spec/requests/registrar/sign_in/password_spec.rb +++ b/spec/requests/registrar/sign_in/password_spec.rb @@ -3,10 +3,6 @@ require 'rails_helper' RSpec.describe 'Registrar area password sign-in', settings: false do let!(:user) { create(:api_user, active: true, login: 'test', password: 'testtest') } - before do - Setting.registrar_ip_whitelist_enabled = false - end - it 'signs the user in' do post registrar_sessions_path, depp_user: { tag: 'test', password: 'testtest' } follow_redirect! diff --git a/spec/requests/registrar/sign_out_spec.rb b/spec/requests/registrar/sign_out_spec.rb index 086b95f64..4f5b099c0 100644 --- a/spec/requests/registrar/sign_out_spec.rb +++ b/spec/requests/registrar/sign_out_spec.rb @@ -2,7 +2,6 @@ require 'rails_helper' RSpec.describe 'Registrar area sign-out', settings: false do before do - Setting.registrar_ip_whitelist_enabled = false sign_in_to_registrar_area end From 73a96141b6b31c593fa4be60cf2736639141145c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 05:38:17 +0300 Subject: [PATCH 09/26] Update registrar factory --- spec/factories/registrar.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/factories/registrar.rb b/spec/factories/registrar.rb index 3b2a3e730..c77e8dc66 100644 --- a/spec/factories/registrar.rb +++ b/spec/factories/registrar.rb @@ -10,6 +10,7 @@ FactoryBot.define do email 'test@test.com' country_code 'US' accounting_customer_code 'test' + language 'en' factory :registrar_with_unlimited_balance do after :create do |registrar| From 19e0e7c8f81d130a4020979811dd48e7706786fa Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 06:27:29 +0300 Subject: [PATCH 10/26] Improve test env config --- config/environments/test.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/environments/test.rb b/config/environments/test.rb index 595a6a05d..3da6a0d68 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -40,7 +40,9 @@ Rails.application.configure do # Raises error for missing translations config.action_view.raise_on_missing_translations = true - config.cache_store = :null_store + # If set to :null_store, Setting.x returns nil after first spec runs (database is emptied) + config.cache_store = :memory_store + config.logger = ActiveSupport::Logger.new(nil) end Que.mode = :sync \ No newline at end of file From d83e11a85db68bdaf0ae99c438fe064dd845398f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 07:21:30 +0300 Subject: [PATCH 11/26] Remove unused methods --- app/models/domain.rb | 15 --------------- app/models/domain_cron.rb | 2 +- spec/models/domain_spec.rb | 32 -------------------------------- 3 files changed, 1 insertion(+), 48 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 55596aedf..1486bf5e5 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -199,21 +199,6 @@ class Domain < ActiveRecord::Base statuses.include? DomainStatus::SERVER_TECH_CHANGE_PROHIBITED end - def self.clean_expired_pendings - ActiveSupport::Deprecation.instance.deprecation_warning(DomainCron, __method__) - DomainCron.send(__method__) - end - - def self.start_redemption_grace_period - ActiveSupport::Deprecation.instance.deprecation_warning(DomainCron, __method__) - DomainCron.send(__method__) - end - - def self.destroy_delete_candidates - ActiveSupport::Deprecation.instance.deprecation_warning(DomainCron, __method__) - DomainCron.send(__method__) - end - class << self def nameserver_required? Setting.nameserver_required diff --git a/app/models/domain_cron.rb b/app/models/domain_cron.rb index fb3b7644d..80bf32c5a 100644 --- a/app/models/domain_cron.rb +++ b/app/models/domain_cron.rb @@ -92,7 +92,7 @@ class DomainCron if domain.save(validate: false) ::PaperTrail.whodunnit = "cron - #{__method__}" DomainDeleteJob.enqueue(domain.id, run_at: rand(((24*60) - (DateTime.now.hour * 60 + DateTime.now.minute))).minutes.from_now) - STDOUT << "#{Time.zone.now.utc} Domain.destroy_delete_candidates: job added by deleteCandidate status ##{domain.id} (#{domain.name})\n" unless Rails.env.test? + STDOUT << "#{Time.zone.now.utc} DomainCron.destroy_delete_candidates: job added by deleteCandidate status ##{domain.id} (#{domain.name})\n" unless Rails.env.test? c += 1 end end diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb index cc1fe52a2..6b282d651 100644 --- a/spec/models/domain_spec.rb +++ b/spec/models/domain_spec.rb @@ -108,30 +108,6 @@ RSpec.describe Domain do @domain.registrant_update_confirmable?('123').should == false end - it 'should not find any domain pendings to clean' do - Domain.clean_expired_pendings.should == 0 - end - - it 'should not find any domains with wrong pendings' do - domain = create(:domain) - domain.registrant_verification_asked!('frame-str', '1') - domain.registrant_verification_asked_at = 30.days.ago - domain.save - - Domain.clean_expired_pendings.should == 0 - end - - it 'should clean domain pendings' do - domain = create(:domain) - domain.registrant_verification_asked!('frame-str', '1') - domain.registrant_verification_asked_at = 30.days.ago - domain.pending_delete! - - DomainCron.clean_expired_pendings.should == 1 - domain.reload.pending_delete?.should == false - domain.pending_json.should == {} - end - it 'should expire domains' do Setting.expire_warning_period = 1 Setting.redemption_grace_period = 1 @@ -164,14 +140,6 @@ RSpec.describe Domain do @domain.statuses.include?(DomainStatus::EXPIRED).should == true end - it 'should start redemption grace period' do - domain = create(:domain) - - DomainCron.start_redemption_grace_period - domain.reload - domain.statuses.include?(DomainStatus::SERVER_HOLD).should == false - end - context 'with time period settings' do before :example do @save_days_to_renew = Setting.days_to_renew_domain_before_expire From eb0d799207713313223021ba6cc2492847296326 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 07:23:39 +0300 Subject: [PATCH 12/26] Specify view extensions explicitly --- spec/views/admin/billing/prices/_form.html.erb_spec.rb | 2 +- spec/views/admin/dns/zones/index.html.erb_spec.rb | 2 +- spec/views/admin/domains/edit.html.erb_spec.rb | 4 ++-- spec/views/registrar/contacts/_form.haml_spec.rb | 10 +++++----- spec/views/registrar/contacts/show.haml_spec.rb | 10 +++++----- spec/views/registrar/domains/_form.haml_spec.rb | 8 ++++---- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/spec/views/admin/billing/prices/_form.html.erb_spec.rb b/spec/views/admin/billing/prices/_form.html.erb_spec.rb index 9f4ba785c..2349a5d1e 100644 --- a/spec/views/admin/billing/prices/_form.html.erb_spec.rb +++ b/spec/views/admin/billing/prices/_form.html.erb_spec.rb @@ -12,7 +12,7 @@ RSpec.describe 'admin/billing/prices/_form' do allow(view).to receive(:durations).and_return([]) end - stub_template '_form_errors' => '' + stub_template '_form_errors.html.erb' => '' end describe 'price' do diff --git a/spec/views/admin/dns/zones/index.html.erb_spec.rb b/spec/views/admin/dns/zones/index.html.erb_spec.rb index 3ebbc468d..e066ce79b 100644 --- a/spec/views/admin/dns/zones/index.html.erb_spec.rb +++ b/spec/views/admin/dns/zones/index.html.erb_spec.rb @@ -5,7 +5,7 @@ RSpec.describe 'admin/dns/zones/index' do before :example do assign(:zones, zones) - stub_template '_zone' => 'zone-row' + stub_template '_zone.html.erb' => 'zone-row' end it 'has title' do diff --git a/spec/views/admin/domains/edit.html.erb_spec.rb b/spec/views/admin/domains/edit.html.erb_spec.rb index 212b8091b..3f74a1f2e 100644 --- a/spec/views/admin/domains/edit.html.erb_spec.rb +++ b/spec/views/admin/domains/edit.html.erb_spec.rb @@ -13,8 +13,8 @@ RSpec.describe 'admin/domains/edit' do assign(:domain, domain) - stub_template '_form' => '' - stub_template '_force_delete_dialog' => '' + stub_template '_form.html.erb' => '' + stub_template '_force_delete_dialog.html.erb' => '' end it 'has force_delete_toggle_btn' do diff --git a/spec/views/registrar/contacts/_form.haml_spec.rb b/spec/views/registrar/contacts/_form.haml_spec.rb index c1588f0ec..4feead879 100644 --- a/spec/views/registrar/contacts/_form.haml_spec.rb +++ b/spec/views/registrar/contacts/_form.haml_spec.rb @@ -10,11 +10,11 @@ RSpec.describe 'registrar/contacts/_form' do assign(:contact, contact) - stub_template 'registrar/shared/_error_messages' => '' - stub_template 'registrar/contacts/form/_general' => '' - stub_template 'registrar/contacts/form/_address' => 'address info' - stub_template 'registrar/contacts/form/_code' => '' - stub_template 'registrar/contacts/form/_legal_document' => '' + 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 diff --git a/spec/views/registrar/contacts/show.haml_spec.rb b/spec/views/registrar/contacts/show.haml_spec.rb index 65fca2863..666d151ff 100644 --- a/spec/views/registrar/contacts/show.haml_spec.rb +++ b/spec/views/registrar/contacts/show.haml_spec.rb @@ -5,11 +5,11 @@ RSpec.describe 'registrar/contacts/show' do before do assign(:contact, contact) - stub_template 'shared/_title' => '' - stub_template 'registrar/contacts/partials/_general' => '' - stub_template 'registrar/contacts/partials/_statuses' => '' - stub_template 'registrar/contacts/partials/_domains' => '' - stub_template 'registrar/contacts/partials/_address' => 'address info' + 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 diff --git a/spec/views/registrar/domains/_form.haml_spec.rb b/spec/views/registrar/domains/_form.haml_spec.rb index f0e646fb8..723ab081b 100644 --- a/spec/views/registrar/domains/_form.haml_spec.rb +++ b/spec/views/registrar/domains/_form.haml_spec.rb @@ -10,10 +10,10 @@ RSpec.describe 'registrar/domains/_form' do assign(:domain, domain) - stub_template 'registrar/domains/form/_general' => '' - stub_template 'registrar/domains/form/_contacts' => '' - stub_template 'registrar/domains/form/_nameservers' => '' - stub_template 'registrar/domains/form/_dnskeys' => '' + 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 From b62158ae8d263ede848b59f521a386595245e5e0 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 07:28:39 +0300 Subject: [PATCH 13/26] Remove unneeded setup step --- test/integration/registrar/domain_transfers_test.rb | 1 - test/integration/registrar/nameserver_replacement_test.rb | 1 - 2 files changed, 2 deletions(-) diff --git a/test/integration/registrar/domain_transfers_test.rb b/test/integration/registrar/domain_transfers_test.rb index 4cd6fc66c..59202c624 100644 --- a/test/integration/registrar/domain_transfers_test.rb +++ b/test/integration/registrar/domain_transfers_test.rb @@ -2,7 +2,6 @@ require 'test_helper' class RegistrarDomainTransfersTest < ActionDispatch::IntegrationTest setup do - WebMock.reset! login_as users(:api_goodnames) end diff --git a/test/integration/registrar/nameserver_replacement_test.rb b/test/integration/registrar/nameserver_replacement_test.rb index 8ed0f9419..8469fb5bf 100644 --- a/test/integration/registrar/nameserver_replacement_test.rb +++ b/test/integration/registrar/nameserver_replacement_test.rb @@ -2,7 +2,6 @@ require 'test_helper' class RegistrarNameserverReplacementTest < ActionDispatch::IntegrationTest setup do - WebMock.reset! login_as users(:api_goodnames) end From 0863b4ca25acf0fdeab9acb93972691f151c347f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 11:30:47 +0300 Subject: [PATCH 14/26] Remove default comments --- config/environments/test.rb | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/config/environments/test.rb b/config/environments/test.rb index 3da6a0d68..3b82ee748 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,48 +1,28 @@ 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 - - # 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 = true - # Configure static file server for tests with Cache-Control for performance. config.serve_static_files = true config.static_cache_control = 'public, max-age=3600' - # Show full error reports and disable caching. 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 - - # 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 - - # Randomize the order test cases are executed. config.active_support.test_order = :random - # Print deprecation notices to the stderr. config.active_support.deprecation = :raise + 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) config.cache_store = :memory_store - config.logger = ActiveSupport::Logger.new(nil) end Que.mode = :sync \ No newline at end of file From 7a5a46b158dcd1cb2597606711e0a202fa1ded65 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 22:04:26 +0300 Subject: [PATCH 15/26] Fix CodeClimate issues --- app/models/sorted_country.rb | 8 ++++---- lib/core_ext/array.rb | 2 +- lib/gem_ext/builder.rb | 20 +++++++++++--------- lib/gem_ext/paper_trail.rb | 2 +- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/app/models/sorted_country.rb b/app/models/sorted_country.rb index e4f2ad330..19ad5f4f3 100644 --- a/app/models/sorted_country.rb +++ b/app/models/sorted_country.rb @@ -3,13 +3,13 @@ class SortedCountry include ActionView::Helpers def all_options(selected = nil) - quick_options = options_for_select(quick_list, { selected: selected }) + quick_options = options_for_select(quick_list, selected: selected) # no double select - selected = quick_list.map(&:second).include?(selected) ? '' : selected + selected = quick_list.map(&:second).include?(selected) ? '' : selected - all_options = options_for_select([['---', '---']] + all_sorted_truncated, - { selected: selected, disabled: ['---'] }) + all_options = options_for_select([['---', '---']] + all_sorted_truncated, + selected: selected, disabled: ['---']) quick_options + all_options end diff --git a/lib/core_ext/array.rb b/lib/core_ext/array.rb index ec280ab81..2dee1d56a 100644 --- a/lib/core_ext/array.rb +++ b/lib/core_ext/array.rb @@ -2,4 +2,4 @@ class Array def include_any?(*args) (self & args).any? end -end \ No newline at end of file +end diff --git a/lib/gem_ext/builder.rb b/lib/gem_ext/builder.rb index 8f2945040..d4ebe2efd 100644 --- a/lib/gem_ext/builder.rb +++ b/lib/gem_ext/builder.rb @@ -1,12 +1,14 @@ -class Builder::XmlMarkup - def epp_head - instruct! - epp( - 'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd', - 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', - 'xsi:schemaLocation' => 'lib/schemas/epp-ee-1.0.xsd' - ) do - yield +module Builder + class XmlMarkup + def epp_head + instruct! + epp( + 'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd', + 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', + 'xsi:schemaLocation' => 'lib/schemas/epp-ee-1.0.xsd' + ) do + yield + end end end end diff --git a/lib/gem_ext/paper_trail.rb b/lib/gem_ext/paper_trail.rb index 9dec5fb12..200e71d48 100644 --- a/lib/gem_ext/paper_trail.rb +++ b/lib/gem_ext/paper_trail.rb @@ -8,7 +8,7 @@ end # Store console and rake changes in versions if defined?(::Rails::Console) || File.basename($PROGRAM_NAME).split(' ').first == 'spring' PaperTrail.whodunnit = "console-#{`whoami`.strip}" -elsif File.basename($PROGRAM_NAME) == "rake" +elsif File.basename($PROGRAM_NAME) == 'rake' # rake username does not work when spring enabled PaperTrail.whodunnit = "rake-#{`whoami`.strip} #{ARGV.join ' '}" end From f1294508d1671c13422daa01d7d204e0441f4e28 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Thu, 7 Jun 2018 14:36:21 +0300 Subject: [PATCH 16/26] Improve setup of a locally failing test --- .../registrar/invoices/new_invoice_payment_test.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/integration/registrar/invoices/new_invoice_payment_test.rb b/test/integration/registrar/invoices/new_invoice_payment_test.rb index 995379edc..557b0161f 100644 --- a/test/integration/registrar/invoices/new_invoice_payment_test.rb +++ b/test/integration/registrar/invoices/new_invoice_payment_test.rb @@ -4,10 +4,18 @@ class NewInvoicePaymentTest < ActionDispatch::IntegrationTest def setup super + @original_vat_prc = Setting.registry_vat_prc + Setting.registry_vat_prc = 0.2 @user = users(:api_bestnames) login_as @user end + def teardown + super + + Setting.registry_vat_prc = @original_vat_prc + end + def create_invoice_and_visit_its_page visit registrar_invoices_path click_link_or_button 'Add deposit' From c44f3df7f5d91f96b67ccd1a9e8e95eac76877ab Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 7 Jun 2018 19:17:16 +0300 Subject: [PATCH 17/26] Remove Rubocop inline directives --- .../admin/account_activities_controller.rb | 3 +- app/controllers/admin/domains_controller.rb | 7 ----- app/controllers/epp/domains_controller.rb | 4 --- app/controllers/epp/keyrelays_controller.rb | 2 -- app/controllers/epp/sessions_controller.rb | 8 ----- app/controllers/epp_controller.rb | 10 ------ .../domain_delete_confirms_controller.rb | 4 --- .../domain_update_confirms_controller.rb | 4 --- .../registrant/sessions_controller.rb | 12 +------ .../account_activities_controller.rb | 2 +- .../registrar/domains_controller.rb | 8 ----- app/models/ability.rb | 8 ----- app/models/account_activity.rb | 2 +- app/models/bank_statement.rb | 2 -- app/models/bank_transaction.rb | 4 --- app/models/certificate.rb | 4 --- app/models/contact.rb | 2 -- app/models/depp/contact.rb | 12 ------- app/models/depp/domain.rb | 8 ----- app/models/depp/user.rb | 2 -- app/models/domain.rb | 8 ----- app/models/epp/contact.rb | 6 ---- app/models/epp/domain.rb | 31 +------------------ app/models/registrar.rb | 4 --- app/models/whois_record.rb | 5 --- app/validators/domain_name_validator.rb | 4 --- config/initializers/eis_custom_rack.rb | 2 -- lib/tasks/import.rake | 6 ---- 28 files changed, 5 insertions(+), 169 deletions(-) diff --git a/app/controllers/admin/account_activities_controller.rb b/app/controllers/admin/account_activities_controller.rb index 23435ee5c..6a37e36dc 100644 --- a/app/controllers/admin/account_activities_controller.rb +++ b/app/controllers/admin/account_activities_controller.rb @@ -3,8 +3,7 @@ module Admin load_and_authorize_resource before_action :set_default_dates, only: [:index] - def index # rubocop: disable Metrics/AbcSize - + def index ca_cache = params[:q][:created_at_lteq] begin end_time = params[:q][:created_at_lteq].try(:to_date) diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 71d49a2ab..1a525a72c 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -4,9 +4,6 @@ module Admin before_action :set_domain, only: [:show, :edit, :update, :zonefile] helper_method :force_delete_templates - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/AbcSize def index params[:q] ||= {} if params[:statuses_contains] @@ -35,10 +32,6 @@ module Admin @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/AbcSize - def show @domain.valid? end diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 3b8b94155..12b2277ef 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -18,8 +18,6 @@ class Epp::DomainsController < EppController render_epp_response '/epp/domains/info' end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity def create authorize! :create, Epp::Domain @domain = Epp::Domain.new_from_epp(params[:parsed_frame], current_user) @@ -46,8 +44,6 @@ class Epp::DomainsController < EppController end end end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity def update authorize! :update, @domain, @password diff --git a/app/controllers/epp/keyrelays_controller.rb b/app/controllers/epp/keyrelays_controller.rb index 81ff3dd32..c4d7ef395 100644 --- a/app/controllers/epp/keyrelays_controller.rb +++ b/app/controllers/epp/keyrelays_controller.rb @@ -1,7 +1,6 @@ class Epp::KeyrelaysController < EppController skip_authorization_check # TODO: move authorization under ability - # rubocop: disable Metrics/CyclomaticComplexity def keyrelay # keyrelay temp turned off @domain = find_domain @@ -29,7 +28,6 @@ class Epp::KeyrelaysController < EppController exactly_one_of 'expiry > relative', 'expiry > absolute' end - # rubocop: enable Metrics/CyclomaticComplexity def find_domain domain_name = params[:parsed_frame].css('name').text.strip.downcase diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index d5844500e..e3e9f3114 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -5,10 +5,6 @@ class Epp::SessionsController < EppController render_epp_response('greeting') end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/MethodLength - # rubocop: disable Metrics/AbcSize def login success = true @api_user = ApiUser.find_by(login_params) @@ -101,10 +97,6 @@ class Epp::SessionsController < EppController handle_errors end end - # rubocop: enable Metrics/MethodLength - # rubocop: enable Metrics/AbcSize - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity def ip_white? webclient_request = ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 3eba05777..c951dbabf 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -59,11 +59,9 @@ class EppController < ApplicationController end if Rails.env.test? || Rails.env.development? - # rubocop:disable Rails/Output puts e.backtrace.reverse.join("\n") puts "\n BACKTRACE REVERSED!\n" puts "\n FROM-EPP-RESCUE: #{e.message}\n\n\n" - # rubocop:enable Rails/Output else logger.error "FROM-EPP-RESCUE: #{e.message}" logger.error e.backtrace.join("\n") @@ -78,9 +76,7 @@ class EppController < ApplicationController end def generate_svtrid - # rubocop: disable Style/VariableName @svTRID = "ccReg-#{format('%010d', rand(10**10))}" - # rubocop: enable Style/VariableName end def params_hash # TODO: THIS IS DEPRECATED AND WILL BE REMOVED IN FUTURE @@ -324,16 +320,12 @@ class EppController < ApplicationController epp_errors.empty? end - # rubocop: disable Style/PredicateName 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 - # rubocop: enable Style/PredicateName - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/PerceivedComplexity def write_to_epp_log request_command = params[:command] || params[:action] # error receives :command, other methods receive :action frame = params[:raw_frame] || params[:frame] @@ -356,8 +348,6 @@ class EppController < ApplicationController uuid: request.uuid }) end - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/PerceivedComplexity def iptables_counter_update return if ENV['iptables_counter_enabled'].blank? && ENV['iptables_counter_enabled'] != 'true' diff --git a/app/controllers/registrant/domain_delete_confirms_controller.rb b/app/controllers/registrant/domain_delete_confirms_controller.rb index abef63174..af8516462 100644 --- a/app/controllers/registrant/domain_delete_confirms_controller.rb +++ b/app/controllers/registrant/domain_delete_confirms_controller.rb @@ -8,8 +8,6 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController @domain = nil unless @domain.registrant_delete_confirmable?(params[:token]) end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/AbcSize def update @domain = Domain.find(params[:id]) unless @domain.registrant_delete_confirmable?(params[:token]) @@ -41,6 +39,4 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController end end end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/AbcSize end diff --git a/app/controllers/registrant/domain_update_confirms_controller.rb b/app/controllers/registrant/domain_update_confirms_controller.rb index 471a35ee3..ca91f0192 100644 --- a/app/controllers/registrant/domain_update_confirms_controller.rb +++ b/app/controllers/registrant/domain_update_confirms_controller.rb @@ -8,8 +8,6 @@ class Registrant::DomainUpdateConfirmsController < RegistrantController @domain = nil unless @domain.registrant_update_confirmable?(params[:token]) end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/AbcSize def update @domain = Domain.find(params[:id]) unless @domain.registrant_update_confirmable?(params[:token]) @@ -41,6 +39,4 @@ class Registrant::DomainUpdateConfirmsController < RegistrantController end end end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/AbcSize end diff --git a/app/controllers/registrant/sessions_controller.rb b/app/controllers/registrant/sessions_controller.rb index 2ab7e0dde..80a23eb0a 100644 --- a/app/controllers/registrant/sessions_controller.rb +++ b/app/controllers/registrant/sessions_controller.rb @@ -4,7 +4,6 @@ class Registrant::SessionsController < Devise::SessionsController def login end - # rubocop: disable Metrics/AbcSize def id id_code, id_issuer = request.env['SSL_CLIENT_S_DN'], request.env['SSL_CLIENT_I_DN_O'] id_code, id_issuer = 'test', RegistrantUser::ACCEPTED_ISSUER if Rails.env.development? @@ -18,14 +17,12 @@ class Registrant::SessionsController < Devise::SessionsController redirect_to registrant_login_url end end - # rubocop: enable Metrics/AbcSize def login_mid @user = User.new end - # rubocop: disable Metrics/MethodLength - def mid + def mid phone = params[:user][:phone] endpoint = "#{ENV['sk_digi_doc_service_endpoint']}" client = Digidoc::Client.new(endpoint) @@ -57,11 +54,7 @@ class Registrant::SessionsController < Devise::SessionsController render json: { message: t(:no_such_user) }, status: :unauthorized end end - # rubocop: enable Metrics/MethodLength - # rubocop: disable Metrics/AbcSize - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/MethodLength def mid_status endpoint = "#{ENV['sk_digi_doc_service_endpoint']}" client = Digidoc::Client.new(endpoint) @@ -99,9 +92,6 @@ class Registrant::SessionsController < Devise::SessionsController render json: { message: t(:internal_error) }, status: :bad_request end end - # rubocop: enable Metrics/AbcSize - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/MethodLength def find_user_by_idc(idc) return User.new unless idc diff --git a/app/controllers/registrar/account_activities_controller.rb b/app/controllers/registrar/account_activities_controller.rb index 17ac16e6c..0b95d0122 100644 --- a/app/controllers/registrar/account_activities_controller.rb +++ b/app/controllers/registrar/account_activities_controller.rb @@ -2,7 +2,7 @@ class Registrar class AccountActivitiesController < BaseController load_and_authorize_resource - def index # rubocop: disable Metrics/AbcSize + def index params[:q] ||= {} account = current_user.registrar.cash_account diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index 774ec2e44..7cb8fdfbe 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -3,10 +3,6 @@ class Registrar before_action :init_domain, except: :new helper_method :contacts - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/AbcSize - # rubocop: disable Metrics/MethodLength def index authorize! :view, Depp::Domain @@ -58,10 +54,6 @@ class Registrar end end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/AbcSize - def info authorize! :info, Depp::Domain @data = @domain.info(params[:domain_name]) if params[:domain_name] diff --git a/app/models/ability.rb b/app/models/ability.rb index 6083d700f..97086110b 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -1,9 +1,5 @@ class Ability include CanCan::Ability - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/LineLength - # rubocop: disable Metrics/AbcSize def initialize(user, ip = nil) @ip = ip alias_action :show, to: :view @@ -128,8 +124,4 @@ class Ability def user can :show, :dashboard end - - # rubocop: enable Metrics/LineLength - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/PerceivedComplexity end diff --git a/app/models/account_activity.rb b/app/models/account_activity.rb index 3bc21a0d8..b014ea5b8 100644 --- a/app/models/account_activity.rb +++ b/app/models/account_activity.rb @@ -28,7 +28,7 @@ class AccountActivity < ActiveRecord::Base CSV.generate(headers: true) do |csv| csv << %w(registrar description activity_type receipt_date sum) - all.each do |x| # rubocop:disable Rails/FindEach + all.each do |x| attrs = [x.account.registrar.try(:code)] attrs += attributes.map { |attr| x.send(attr) } csv << attrs diff --git a/app/models/bank_statement.rb b/app/models/bank_statement.rb index 89a5c7d69..5997927cf 100644 --- a/app/models/bank_statement.rb +++ b/app/models/bank_statement.rb @@ -29,7 +29,6 @@ class BankStatement < ActiveRecord::Base File.open(import_file_path, 'w') { |f| f.write(th6_file.open.read) } end - # rubocop: disable Metrics/AbcSize 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 @@ -50,7 +49,6 @@ class BankStatement < ActiveRecord::Base reference_no: row[280, 35].strip } end - # rubocop: enable Metrics/AbcSize def parse_th6_header(row) self.bank_code = row[7, 3].strip diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 3749f92b5..3b22d3a2f 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -36,8 +36,6 @@ class BankTransaction < ActiveRecord::Base # For successful binding, reference number, invoice id and sum must match with the invoice - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity def autobind_invoice return if binded? return unless registrar @@ -50,8 +48,6 @@ class BankTransaction < ActiveRecord::Base return if invoice.total != sum create_activity(registrar, invoice) end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity def bind_invoice(invoice_no) if binded? diff --git a/app/models/certificate.rb b/app/models/certificate.rb index bc7c7c093..50976a73e 100644 --- a/app/models/certificate.rb +++ b/app/models/certificate.rb @@ -76,7 +76,6 @@ class Certificate < ActiveRecord::Base @cached_status = REVOKED end - # rubocop: disable Metrics/AbcSize def sign! csr_file = Tempfile.new('client_csr') csr_file.write(csr) @@ -102,13 +101,10 @@ class Certificate < ActiveRecord::Base errors.add(:base, I18n.t('failed_to_create_certificate')) end logger.error(err) - # rubocop:disable Rails/Output puts "Certificate sign issue: #{err.inspect}" if Rails.env.test? - # rubocop:enable Rails/Output return false end end - # rubocop: enable Metrics/AbcSize def revoke! crt_file = Tempfile.new('client_crt') diff --git a/app/models/contact.rb b/app/models/contact.rb index 3bd8bb2ce..a70e8c45b 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -311,7 +311,6 @@ class Contact < ActiveRecord::Base self[:code] = code if new_record? # cannot change code later end - # rubocop:disable Metrics/CyclomaticComplexity def generate_code return nil unless new_record? return nil if registrar.blank? @@ -328,7 +327,6 @@ class Contact < ActiveRecord::Base self[:code] = "#{registrar.code}:#{code}".upcase end - # rubocop:enable Metrics/CyclomaticComplexity alias_method :regenerate_code, :generate_code diff --git a/app/models/depp/contact.rb b/app/models/depp/contact.rb index 7ba0606b3..e9cd4d3c9 100644 --- a/app/models/depp/contact.rb +++ b/app/models/depp/contact.rb @@ -43,7 +43,6 @@ module Depp ) end - # rubocop:disable Metrics/AbcSize def find_by_id(id) data = info_xml(id) @@ -76,7 +75,6 @@ module Depp statuses: data.css('status').map { |s| [s['s'], s.text] } ) end - # rubocop:enable Metrics/AbcSize def user=(user) @user = user @@ -173,8 +171,6 @@ module Depp handle_errors(data) end - # rubocop:disable Metrics/MethodLength - # rubocop:disable Metrics/AbcSize def update_attributes(params) self.ident_country_code = params[:ident_country_code] self.ident_type = params[:ident_type] @@ -223,8 +219,6 @@ module Depp data = Depp::Contact.user.request(update_xml) handle_errors(data) end - # rubocop:enbale Metrics/AbcSize - # rubocop:enable Metrics/MethodLength def delete delete_xml = Contact.epp_xml.delete( @@ -238,9 +232,6 @@ module Depp handle_errors(data) end - # rubocop:disable Metrics/CyclomaticComplexity - # rubocop:disable Style/NegatedIf - # rubocop:disable Style/RedundantSelf def extension_xml(action) xml = { _anonymus: [] } @@ -259,9 +250,6 @@ module Depp xml[:_anonymus] << legal if legal.present? xml end - # rubocop:enable Metrics/CyclomaticComplexity - # rubocop:enable Style/NegatedIf - # rubocop:enable Style/RedundantSelf def ident_xml { diff --git a/app/models/depp/domain.rb b/app/models/depp/domain.rb index 0032fd958..fb5f61923 100644 --- a/app/models/depp/domain.rb +++ b/app/models/depp/domain.rb @@ -167,8 +167,6 @@ module Depp ret.with_indifferent_access end - # rubocop:disable Metrics/MethodLength - # rubocop:disable Metrics/AbcSize def construct_params_from_server_data(data) ret = default_params ret[:name] = data.css('name').text @@ -209,8 +207,6 @@ module Depp ret end - # rubocop:enable Metrics/MethodLength - # rubocop:enable Metrics/AbcSize def construct_custom_params_hash(domain_params) custom_params = { _anonymus: [] } @@ -228,8 +224,6 @@ module Depp custom_params end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity def construct_edit_hash(domain_params, old_domain_params) contacts = array_difference(create_contacts_hash(domain_params), create_contacts_hash(old_domain_params)) add_anon = contacts @@ -262,8 +256,6 @@ module Depp chg: chg } end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity def construct_ext_edit_hash(domain_params, old_domain_params) rem_keys = create_dnskeys_hash(old_domain_params) - create_dnskeys_hash(domain_params) diff --git a/app/models/depp/user.rb b/app/models/depp/user.rb index b40d910e4..482c32462 100644 --- a/app/models/depp/user.rb +++ b/app/models/depp/user.rb @@ -38,7 +38,6 @@ module Depp private - # rubocop:disable Metrics/AbcSize def validate_existance_in_server return if errors.any? res = server.open_connection @@ -64,6 +63,5 @@ module Depp "port: #{ENV['epp_port']}, cert_path: #{ENV['cert_path']}, key_path: #{ENV['key_path']}" errors.add(:base, :invalid_cert) end - # rubocop:enable Metrics/AbcSize end end diff --git a/app/models/domain.rb b/app/models/domain.rb index 55596aedf..485fc7b97 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -1,4 +1,3 @@ -# rubocop: disable Metrics/ClassLength class Domain < ActiveRecord::Base include UserEvents include Versions # version/domain_version.rb @@ -373,7 +372,6 @@ class Domain < ActiveRecord::Base manage_automatic_statuses end - # rubocop: disable Metrics/CyclomaticComplexity def registrant_update_confirmable?(token) return false if (statuses & [DomainStatus::FORCE_DELETE, DomainStatus::DELETE_CANDIDATE]).any? return false unless pending_update? @@ -388,7 +386,6 @@ class Domain < ActiveRecord::Base return false unless registrant_verification_token == token true end - # rubocop: enable Metrics/CyclomaticComplexity def registrant_verification_asked? registrant_verification_asked_at.present? && registrant_verification_token.present? @@ -559,8 +556,6 @@ class Domain < ActiveRecord::Base self.outzone_at = Time.current end - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/PerceivedComplexity def manage_automatic_statuses if !self.class.nameserver_required? deactivate if nameservers.reject(&:marked_for_destruction?).empty? @@ -577,8 +572,6 @@ class Domain < ActiveRecord::Base s_h = (statuses & [DomainStatus::SERVER_MANUAL_INZONE, DomainStatus::SERVER_HOLD]).empty? statuses << DomainStatus::SERVER_HOLD if p_d && s_h end - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/PerceivedComplexity def children_log log = HashWithIndifferentAccess.new @@ -676,4 +669,3 @@ class Domain < ActiveRecord::Base exists?(["name ILIKE ?", "%.#{zone.origin}"]) end end -# rubocop: enable Metrics/ClassLength diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index 699c07ab0..3803b3e25 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -19,9 +19,6 @@ class Epp::Contact < Contact find_by(code: code) end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/AbcSize def attrs_from(frame, new_record: false) f = frame at = {}.with_indifferent_access @@ -45,9 +42,6 @@ class Epp::Contact < Contact at.merge!(ident_attrs(f.css('ident').first)) if new_record at end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/AbcSize def new(frame, registrar) return super if frame.blank? diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index dcf61ddcf..749f5310c 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -1,4 +1,3 @@ -# rubocop: disable Metrics/ClassLength class Epp::Domain < Domain include EppErrors @@ -54,7 +53,7 @@ class Epp::Domain < Domain end end - def epp_code_map # rubocop:disable Metrics/MethodLength + def epp_code_map { '2002' => [ # Command use error [:base, :domain_already_belongs_to_the_querying_registrar] @@ -129,10 +128,6 @@ class Epp::Domain < Domain admin_contacts << regt if admin_domain_contacts.blank? && !regt.org? end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/MethodLength - # rubocop: disable Metrics/AbcSize def attrs_from(frame, current_user, action = nil) at = {}.with_indifferent_access @@ -200,10 +195,6 @@ class Epp::Domain < Domain frame.css("legalDocument").first.content = doc.path if doc&.persisted? self.legal_document_id = doc.id end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: enable Metrics/MethodLength - # rubocop: enable Metrics/AbcSize def nameservers_attrs(frame, action) ns_list = nameservers_from(frame) @@ -321,8 +312,6 @@ class Epp::Domain < Domain attrs end - # rubocop: disable Metrics/PerceivedComplexity - # rubocop: disable Metrics/CyclomaticComplexity def dnskeys_attrs(frame, action) keys = [] return keys if frame.blank? @@ -347,8 +336,6 @@ class Epp::Domain < Domain end errors.any? ? [] : keys end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity class DnsSecKeys def initialize(frame) @@ -460,8 +447,6 @@ class Epp::Domain < Domain end - # rubocop: disable Metrics/AbcSize - # rubocop: disable Metrics/CyclomaticComplexity def update(frame, current_user, verify = true) return super if frame.blank? @@ -502,8 +487,6 @@ class Epp::Domain < Domain errors.empty? && super(at) end - # rubocop: enable Metrics/AbcSize - # rubocop: enable Metrics/CyclomaticComplexity def apply_pending_update! preclean_pendings @@ -608,7 +591,6 @@ class Epp::Domain < Domain ### TRANSFER ### - # rubocop: disable Metrics/CyclomaticComplexity def transfer(frame, action, current_user) check_discarded @@ -627,10 +609,6 @@ class Epp::Domain < Domain end end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity - # rubocop: disable Metrics/MethodLength - # rubocop: disable Metrics/AbcSize def query_transfer(frame, current_user) if current_user.registrar == registrar throw :epp_error, { @@ -667,8 +645,6 @@ class Epp::Domain < Domain return dt end end - # rubocop: enable Metrics/AbcSize - # rubocop: enable Metrics/MethodLength def approve_transfer(frame, current_user) pt = pending_transfer @@ -717,8 +693,6 @@ class Epp::Domain < Domain pt end - # rubocop:disable Metrics/MethodLength - # rubocop:disable Metrics/AbcSize def keyrelay(parsed_frame, requester) if registrar == requester errors.add(:base, :domain_already_belongs_to_the_querying_registrar) and return false @@ -762,8 +736,6 @@ class Epp::Domain < Domain true end - # rubocop:enable Metrics/AbcSize - # rubocop:enable Metrics/MethodLength ### VALIDATIONS ### @@ -855,4 +827,3 @@ class Epp::Domain < Domain end end end -# rubocop: enable Metrics/ClassLength diff --git a/app/models/registrar.rb b/app/models/registrar.rb index d539e01f2..05a5ad380 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -54,8 +54,6 @@ class Registrar < ActiveRecord::Base end end - # rubocop:disable Metrics/MethodLength - # rubocop:disable Metrics/AbcSize def issue_prepayment_invoice(amount, description = nil) invoices.create( due_date: (Time.zone.now.to_date + Setting.days_to_keep_invoices_active.days).end_of_day, @@ -99,8 +97,6 @@ class Registrar < ActiveRecord::Base ] ) end - # rubocop:enable Metrics/AbcSize - # rubocop:enable Metrics/MethodLength def cash_account accounts.find_by(account_type: Account::CASH) diff --git a/app/models/whois_record.rb b/app/models/whois_record.rb index e4ccec22f..5be696ff8 100644 --- a/app/models/whois_record.rb +++ b/app/models/whois_record.rb @@ -17,8 +17,6 @@ class WhoisRecord < ActiveRecord::Base @generated_json ||= generate_json end - # rubocop:disable Metrics/MethodLength - # rubocop:disable Metrics/AbcSize def generate_json h = HashWithIndifferentAccess.new return h if domain.blank? @@ -99,9 +97,6 @@ class WhoisRecord < ActiveRecord::Base template = Rails.root.join("app/views/for_models/#{template_name}".freeze) ERB.new(template.read, nil, "-").result(binding) end - # rubocop:enable Metrics/MethodLength - # rubocop:enable Metrics/AbcSize - def populate return if domain_id.blank? diff --git a/app/validators/domain_name_validator.rb b/app/validators/domain_name_validator.rb index 26db4dda9..22fe0cb34 100644 --- a/app/validators/domain_name_validator.rb +++ b/app/validators/domain_name_validator.rb @@ -26,13 +26,9 @@ class DomainNameValidator < ActiveModel::EachValidator value = SimpleIDN.to_unicode(value).mb_chars.downcase.strip end - # rubocop: disable Metrics/LineLength 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/ - # rubocop: enable Metrics/LineLength - # rubocop: disable Style/DoubleNegation !!(value =~ regexp) - # rubocop: enable Style/DoubleNegation end def validate_blocked(value) diff --git a/config/initializers/eis_custom_rack.rb b/config/initializers/eis_custom_rack.rb index 52dbd8244..9ddf40cde 100644 --- a/config/initializers/eis_custom_rack.rb +++ b/config/initializers/eis_custom_rack.rb @@ -1,5 +1,4 @@ # EIS custom rack hack in order to enable test external interfaces EPP/REPP inside webserver network -# rubocop:disable Metrics/LineLength module Rack class Request def trusted_proxy?(ip) @@ -11,4 +10,3 @@ module Rack end end end -# rubocop:enable Metrics/LineLength diff --git a/lib/tasks/import.rake b/lib/tasks/import.rake index d953c72c9..2fa67a827 100644 --- a/lib/tasks/import.rake +++ b/lib/tasks/import.rake @@ -1,5 +1,3 @@ -# rubocop: disable Style/SymbolProc -# rubocop: disable Performance/Detect namespace :import do # README # @@ -360,7 +358,6 @@ namespace :import do legacy_contact_id ) - # rubocop: disable Lint/UselessAssignment domain_status_columns = %w( description value @@ -368,7 +365,6 @@ namespace :import do updator_str legacy_domain_id ) - # rubocop: enable Lint/UselessAssignment nameserver_columns = %w( hostname @@ -786,5 +782,3 @@ def parse_zone_ns_data(domain, zone) end [ns_records.strip, a_records.strip, a4_records.strip] end -# rubocop: enable Performance/Detect -# rubocop: enable Style/SymbolProc From abef25dd19964622461d10ae718a3c60c163c70d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 8 Jun 2018 02:16:25 +0300 Subject: [PATCH 18/26] Add "uglifier" gem for es6 compression --- Gemfile | 1 + Gemfile.lock | 3 +++ config/environments/production.rb | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 0af80fddf..6a5b53522 100644 --- a/Gemfile +++ b/Gemfile @@ -13,6 +13,7 @@ gem 'SyslogLogger', '2.0', require: 'syslog/logger' gem 'iso8601', '0.8.6' # for dates and times gem 'rails', '4.2.10' # when update, all initializers eis_custom files needs check/update gem 'rest-client' +gem 'uglifier' # load env gem 'figaro', '1.1.1' diff --git a/Gemfile.lock b/Gemfile.lock index b12b28a2d..b819c245b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -439,6 +439,8 @@ GEM tilt (1.4.1) tzinfo (1.2.5) thread_safe (~> 0.1) + uglifier (4.1.11) + execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext unf_ext (0.0.7.2) @@ -536,6 +538,7 @@ DEPENDENCIES simpleidn (= 0.0.7) spring spring-commands-rspec + uglifier uuidtools (= 2.1.5) validates_email_format_of (= 1.6.3) webmock diff --git a/config/environments/production.rb b/config/environments/production.rb index 7d77b7220..b0c13f491 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -23,7 +23,7 @@ Rails.application.configure do config.serve_static_files = false # Compress JavaScripts and CSS. - # config.assets.js_compressor = :uglifier + config.assets.js_compressor = Uglifier.new(harmony: true) # config.assets.css_compressor = :sass # Do not fallback to assets pipeline if a precompiled asset is missed. From ff5b2c1c48eee38c5c7b771b84dc04a5a340e11a Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 8 Jun 2018 03:11:53 +0300 Subject: [PATCH 19/26] Fix translations --- app/views/registrant/contacts/partials/_domains.haml | 2 +- app/views/registrant/contacts/partials/_general.haml | 4 ++-- app/views/registrant/domains/partials/_general.html.erb | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/registrant/contacts/partials/_domains.haml b/app/views/registrant/contacts/partials/_domains.haml index 8787f088a..011b9c404 100644 --- a/app/views/registrant/contacts/partials/_domains.haml +++ b/app/views/registrant/contacts/partials/_domains.haml @@ -18,7 +18,7 @@ %th{class: 'col-xs-3'}=custom_sort_link t(:domain_name), :name %th{class: 'col-xs-3'}=custom_sort_link t(:registrar_name), :registrar_name %th{class: 'col-xs-3'}=custom_sort_link t(:valid_to), :valid_to - %th{class: 'col-xs-3'}=custom_sort_link t(:roles), :roles + %th{class: 'col-xs-3'}=custom_sort_link Domain.human_attribute_name(:roles), :roles %tbody - domains.each do |x| %tr diff --git a/app/views/registrant/contacts/partials/_general.haml b/app/views/registrant/contacts/partials/_general.haml index 4b221714a..6a59cdfef 100644 --- a/app/views/registrant/contacts/partials/_general.haml +++ b/app/views/registrant/contacts/partials/_general.haml @@ -30,13 +30,13 @@ %br - %dt= t(:created) + %dt= Contact.human_attribute_name :created_at %dd = l(@contact.created_at, format: :short) by = @contact.name - %dt= t(:updated) + %dt= Contact.human_attribute_name :updated_at %dd = l(@contact.updated_at, format: :short) by diff --git a/app/views/registrant/domains/partials/_general.html.erb b/app/views/registrant/domains/partials/_general.html.erb index eed058437..5dff93331 100644 --- a/app/views/registrant/domains/partials/_general.html.erb +++ b/app/views/registrant/domains/partials/_general.html.erb @@ -25,13 +25,13 @@
<%= t(:valid_to) %>
<%= l(@domain.valid_to) %>
-
<%= t(:outzone_at) %>
+
<%= Domain.human_attribute_name :outzone_at %>
<%= l(@domain.outzone_at) %>
-
<%= t(:delete_at) %>
+
<%= Domain.human_attribute_name :delete_at %>
<%= l(@domain.delete_at) %>
-
<%= t(:force_delete_at) %>
+
<%= Domain.human_attribute_name :force_delete_at %>
<%= l(@domain.force_delete_at) %>
From 4554fc4ec9734d6b4ca50c32870f88e1a9cd7515 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 8 Jun 2018 03:18:47 +0300 Subject: [PATCH 20/26] Remove unneded .agignore --- .agignore | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 .agignore diff --git a/.agignore b/.agignore deleted file mode 100644 index 8958ac74d..000000000 --- a/.agignore +++ /dev/null @@ -1,4 +0,0 @@ -tmp -public/assets -*.svg -import From f5e19d2c1e071fece161b45e0b7505c3c9c71c92 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 9 Jun 2018 04:37:03 +0300 Subject: [PATCH 21/26] Copy "puma" gem config from Rails 5 --- config/puma.rb | 64 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/config/puma.rb b/config/puma.rb index 53c3cead5..1e19380dc 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,14 +1,56 @@ -preload_app! +# Puma can serve each request in a thread from an internal thread pool. +# 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. +# +threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } +threads threads_count, threads_count -threads 1, 4 -workers 2 +# Specifies the `port` that Puma will listen on to receive requests; default is 3000. +# +port ENV.fetch("PORT") { 3000 } -on_worker_boot do - ActiveSupport.on_load(:active_record) do - ActiveRecord::Base.establish_connection - end -end +# Specifies the `environment` that Puma will run in. +# +environment ENV.fetch("RAILS_ENV") { "development" } -before_fork do - ActiveRecord::Base.connection_pool.disconnect! -end +# Specifies the number of `workers` to boot in clustered mode. +# Workers are forked webserver processes. If using threads and workers together +# the concurrency of the application would be max `threads` * `workers`. +# Workers do not work on JRuby or Windows (both of which do not support +# processes). +# +# workers ENV.fetch("WEB_CONCURRENCY") { 2 } + +# Use the `preload_app!` method when specifying a `workers` number. +# This directive tells Puma to first boot the application and load code +# before forking the application. This takes advantage of Copy On Write +# process behavior so workers use less memory. If you use this option +# you need to make sure to reconnect any threads in the `on_worker_boot` +# block. +# +# 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 +# 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 From ec76a6bbc00c45f7969b377dde43a35ecd1353da Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 9 Jun 2018 07:57:38 +0300 Subject: [PATCH 22/26] Remove monkey patch --- app/views/admin/billing/prices/_form.html.erb | 4 ++-- config/initializers/datetime.rb | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 config/initializers/datetime.rb diff --git a/app/views/admin/billing/prices/_form.html.erb b/app/views/admin/billing/prices/_form.html.erb index e1a65280a..44bf00484 100644 --- a/app/views/admin/billing/prices/_form.html.erb +++ b/app/views/admin/billing/prices/_form.html.erb @@ -41,10 +41,10 @@
- <%= f.text_field :valid_from, value: f.object.valid_from.try(:to_s, :dshort), + <%= f.text_field :valid_from, value: f.object.valid_from.try(:to_date), class: 'form-control js-datepicker' %> - - <%= f.text_field :valid_to, value: f.object.valid_to.try(:to_s, :dshort), + <%= f.text_field :valid_to, value: f.object.valid_to.try(:to_date), class: 'form-control js-datepicker' %>
diff --git a/config/initializers/datetime.rb b/config/initializers/datetime.rb deleted file mode 100644 index cf4f747e2..000000000 --- a/config/initializers/datetime.rb +++ /dev/null @@ -1,3 +0,0 @@ -# Some handy day formats -Date::DATE_FORMATS[:dshort] = "%d.%m.%Y" -Time::DATE_FORMATS[:dshort] = "%d.%m.%Y" From ccf1ea198cf3be8ccbc07dd71a74255d58deb525 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 15 Jun 2018 08:42:32 +0300 Subject: [PATCH 23/26] Do not send `TotalVAT` and `VATCode` params to Directo Partly reverts 169c67839e37a77e6a8dc584f31ab54e6bd46647 --- app/models/directo.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index 3e4e93e2c..1269e7033 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -29,14 +29,12 @@ class Directo < ActiveRecord::Base "InvoiceDate" => invoice.created_at.strftime("%Y-%m-%dT%H:%M:%S"), "PaymentTerm" => Setting.directo_receipt_payment_term, "Currency" => invoice.currency, - "CustomerCode"=> invoice.buyer.accounting_customer_code, - 'TotalVAT' => ActionController::Base.helpers.number_with_precision(invoice.vat_amount, precision: 2, separator: '.') + "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: '.'), - 'VATCode' => invoice.buyer_vat_no, + "UnitPriceWoVAT" => ActionController::Base.helpers.number_with_precision(invoice.subtotal, precision: 2, separator: "."), "ProductName" => invoice.order ) } From 843dc8edcbaabae87dd040f6715352ca3ee92f21 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Mon, 18 Jun 2018 10:30:23 +0300 Subject: [PATCH 24/26] Add new links to registrant page layout --- app/controllers/registrant/whois_controller.rb | 11 ----------- .../layouts/registrant/application.html.erb | 16 +++++++++------- test/integration/registrant/layout_test.rb | 5 +++-- 3 files changed, 12 insertions(+), 20 deletions(-) delete mode 100644 app/controllers/registrant/whois_controller.rb diff --git a/app/controllers/registrant/whois_controller.rb b/app/controllers/registrant/whois_controller.rb deleted file mode 100644 index 2936477eb..000000000 --- a/app/controllers/registrant/whois_controller.rb +++ /dev/null @@ -1,11 +0,0 @@ -# As non-GDPR compliant, this controller is deprecated. Needs to be replaced with one that relies -# on the REST WHOIS API. -class Registrant::WhoisController < RegistrantController - def index - authorize! :view, :registrant_whois - - if params[:domain_name].present? - @domain = WhoisRecord.find_by(name: params[:domain_name]); - end - end -end diff --git a/app/views/layouts/registrant/application.html.erb b/app/views/layouts/registrant/application.html.erb index f38f8fcea..f8108d0e0 100644 --- a/app/views/layouts/registrant/application.html.erb +++ b/app/views/layouts/registrant/application.html.erb @@ -42,14 +42,16 @@