diff --git a/.codeclimate.yml b/.codeclimate.yml index fbc9eb7dd..111d405df 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/adding-new-rules/.rubocop-ruby.yml" + - url: "https://raw.githubusercontent.com/internetee/style-guide/adding-new-rules/.rubocop-rails.yml" + path: ".rubocop.yml" plugins: brakeman: enabled: true diff --git a/Gemfile b/Gemfile index 046c5dd92..0a9208904 100644 --- a/Gemfile +++ b/Gemfile @@ -5,8 +5,8 @@ gem 'active_interaction', '~> 4.0' gem 'apipie-rails', '~> 0.5.19' gem 'bootsnap', '>= 1.1.0', require: false gem 'iso8601', '0.13.0' # for dates and times -gem 'mime-types-data' gem 'mimemagic', '0.4.3' +gem 'mime-types-data' gem 'puma' gem 'rails', '~> 6.1.4' gem 'rest-client' @@ -29,22 +29,22 @@ gem 'nokogiri', '~> 1.12.4' # style gem 'bootstrap-sass', '~> 3.4' +gem 'cancancan' gem 'coderay', '1.1.3' # xml console visualize gem 'coffee-rails', '>= 5.0' +gem 'devise', '~> 4.8' gem 'jquery-rails' -gem 'selectize-rails', '0.12.6' # include selectize.js for select gem 'kaminari' gem 'sass-rails' gem 'select2-rails', '4.0.13' # for autocomplete -gem 'cancancan' -gem 'devise', '~> 4.8' +gem 'selectize-rails', '0.12.6' # include selectize.js for select # registry specfic gem 'data_migrate', '~> 7.0' gem 'dnsruby', '~> 1.61' gem 'isikukood' # for EE-id validation -gem 'simpleidn', '0.2.1' # For punycode gem 'money-rails' +gem 'simpleidn', '0.2.1' # For punycode gem 'whenever', '1.0.0', require: false # country listing @@ -62,22 +62,22 @@ gem 'omniauth-rails_csrf_protection' gem 'omniauth-tara', github: 'internetee/omniauth-tara' +gem 'airbrake' +gem 'daemons-rails', '1.2.1' gem 'epp', github: 'internetee/epp', branch: :master gem 'epp-xml', '1.2.0', github: 'internetee/epp-xml', branch: :master +gem 'jquery-ui-rails', '6.0.1' +gem 'pdfkit' gem 'que' -gem 'daemons-rails', '1.2.1' gem 'que-web' gem 'sidekiq' -gem 'pdfkit' -gem 'jquery-ui-rails', '6.0.1' -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 'domain_name' +gem 'e_invoice', github: 'internetee/e_invoice', branch: :master gem 'haml', '~> 5.2' +gem 'lhv', github: 'internetee/lhv', branch: 'master' gem 'rexml' gem 'wkhtmltopdf-binary', '~> 0.12.5.1' diff --git a/app/controllers/admin/admin_users_controller.rb b/app/controllers/admin/admin_users_controller.rb index 39a177342..b1855671b 100644 --- a/app/controllers/admin/admin_users_controller.rb +++ b/app/controllers/admin/admin_users_controller.rb @@ -63,7 +63,12 @@ module Admin def admin_user_params params.require(:admin_user).permit(:username, - :password, :password_confirmation, :identity_code, :email, :country_code, { roles: [] }) + :password, + :password_confirmation, + :identity_code, + :email, + :country_code, + { roles: [] }) end end end diff --git a/app/controllers/admin/bank_statements_controller.rb b/app/controllers/admin/bank_statements_controller.rb index 227af994b..9154ae790 100644 --- a/app/controllers/admin/bank_statements_controller.rb +++ b/app/controllers/admin/bank_statements_controller.rb @@ -61,9 +61,9 @@ module Admin end def bank_statement_params - params.require(:bank_statement).permit(:bank_code, :iban, bank_transactions_attributes: [ - :description, :sum, :currency, :reference_no, :paid_at - ]) + params.require(:bank_statement).permit(:bank_code, :iban, bank_transactions_attributes: %i[ + description sum currency reference_no paid_at + ]) end end end diff --git a/app/controllers/admin/blocked_domains_controller.rb b/app/controllers/admin/blocked_domains_controller.rb index d9bcb4f0f..18d83297d 100644 --- a/app/controllers/admin/blocked_domains_controller.rb +++ b/app/controllers/admin/blocked_domains_controller.rb @@ -43,7 +43,6 @@ module Admin end end - def blocked_domain_params params.require(:blocked_domain).permit(:name) end diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index b720290d8..25033e927 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -11,19 +11,20 @@ module Admin @versions = @q.result.page(params[:page]) search_params = params[:q].deep_dup - whereS = "1=1" + where_s = "1=1" search_params.each do |key, value| next if value.empty? - case key - when 'event' - whereS += " AND event = '#{value}'" - else - whereS += create_where_string(key, value) - end + + where_s += case key + when 'event' + " AND event = '#{value}'" + else + create_where_string(key, value) + end end - versions = Version::ContactVersion.includes(:item).where(whereS).order(created_at: :desc, id: :desc) + versions = Version::ContactVersion.includes(:item).where(where_s).order(created_at: :desc, id: :desc) @q = versions.search(params[:q]) @versions = @q.result.page(params[:page]) @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index ea6ba066a..7bee3c698 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -9,7 +9,8 @@ module Admin params[:q] ||= {} search_params = params[:q].deep_dup - if search_params[:domain_contacts_type_in].is_a?(Array) && search_params[:domain_contacts_type_in].delete('registrant') + if search_params[:domain_contacts_type_in].is_a?(Array) && + search_params[:domain_contacts_type_in].delete('registrant') search_params[:registrant_domains_id_not_null] = 1 end diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb index f48698780..69ed33431 100644 --- a/app/controllers/admin/dashboard_controller.rb +++ b/app/controllers/admin/dashboard_controller.rb @@ -4,4 +4,4 @@ module Admin def show; end end -end \ No newline at end of file +end diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 511da6a0b..ebb36c119 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -21,26 +21,31 @@ module Admin search_params.delete(:registrar) end - whereS = "1=1" + where_s = "1=1" search_params.each do |key, value| next if value.empty? - case key - when 'event' - whereS += " AND event = '#{value}'" - when 'name' - whereS += " AND (object->>'name' ~* '#{value}' OR object_changes->>'name' ~* '#{value}')" - else - whereS += create_where_string(key, value) - end + + where_s += case key + when 'event' + " AND event = '#{value}'" + when 'name' + " AND (object->>'name' ~* '#{value}' OR object_changes->>'name' ~* '#{value}')" + else + create_where_string(key, value) + end end - whereS += " AND object->>'registrant_id' IN (#{registrants.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrants.present? - whereS += " AND 1=0" if registrants == [] - whereS += " AND object->>'registrar_id' IN (#{registrars.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrars.present? - whereS += " AND 1=0" if registrars == [] + if registrants.present? + where_s += " AND object->>'registrant_id' IN (#{registrants.map { |r| "'#{r.id}'" }.join ','})" + end + where_s += " AND 1=0" if registrants == [] + if registrars.present? + where_s += " AND object->>'registrar_id' IN (#{registrars.map { |r| "'#{r.id}'" }.join ','})" + end + where_s += " AND 1=0" if registrars == [] - versions = Version::DomainVersion.includes(:item).where(whereS).order(created_at: :desc, id: :desc) + versions = Version::DomainVersion.includes(:item).where(where_s).order(created_at: :desc, id: :desc) @q = versions.search(params[:q]) @versions = @q.result.page(params[:page]) @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 5d3bd82da..93f80317e 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -5,20 +5,19 @@ module Admin def index params[:q] ||= {} - if params[:statuses_contains] - domains = Domain.includes(:registrar, :registrant).where( - "domains.statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}" - ) - else - domains = Domain.includes(:registrar, :registrant) - end + domains = if params[:statuses_contains] + Domain.includes(:registrar, :registrant).where( + "domains.statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}" + ) + else + Domain.includes(:registrar, :registrant) + end normalize_search_parameters do @q = domains.search(params[:q]) @domains = @q.result.page(params[:page]) - if @domains.count == 1 && params[:q][:name_matches].present? - redirect_to [:admin, @domains.first] and return - elsif @domains.count == 0 && params[:q][:name_matches] !~ /^%.+%$/ + (redirect_to [:admin, @domains.first] and return if @domains.count == 1 && params[:q][:name_matches].present?) + if @domains.count.zero? && 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]}%" @@ -51,7 +50,7 @@ module Admin redirect_to [:admin, @domain] else build_associations - flash.now[:alert] = I18n.t('failed_to_update_domain') + ' ' + @domain.errors.full_messages.join(", ") + flash.now[:alert] = "#{I18n.t('failed_to_update_domain')} #{@domain.errors.full_messages.join(', ')}" render 'edit' end end diff --git a/app/controllers/admin/epp_logs_controller.rb b/app/controllers/admin/epp_logs_controller.rb index 96e9851dc..5aea411e2 100644 --- a/app/controllers/admin/epp_logs_controller.rb +++ b/app/controllers/admin/epp_logs_controller.rb @@ -8,8 +8,14 @@ module Admin @q.sorts = 'id desc' if @q.sorts.empty? @epp_logs = @q.result - @epp_logs = @epp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq].present? - @epp_logs = @epp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq].present? + if params[:q][:created_at_gteq].present? + @epp_logs = @epp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", + Time.parse(params[:q][:created_at_gteq])) + end + if params[:q][:created_at_lteq].present? + @epp_logs = @epp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", + Time.parse(params[:q][:created_at_lteq])) + end @epp_logs = @epp_logs.page(params[:page]) render_by_format('admin/epp_logs/index', 'epp_logs') diff --git a/app/controllers/admin/invoices/delivery_controller.rb b/app/controllers/admin/invoices/delivery_controller.rb index b53f80269..f9edc952f 100644 --- a/app/controllers/admin/invoices/delivery_controller.rb +++ b/app/controllers/admin/invoices/delivery_controller.rb @@ -10,4 +10,4 @@ module Admin end end end -end \ No newline at end of file +end diff --git a/app/controllers/admin/repp_logs_controller.rb b/app/controllers/admin/repp_logs_controller.rb index b26236e77..3a8ee6c4a 100644 --- a/app/controllers/admin/repp_logs_controller.rb +++ b/app/controllers/admin/repp_logs_controller.rb @@ -8,8 +8,14 @@ module Admin @q.sorts = 'id desc' if @q.sorts.empty? @repp_logs = @q.result - @repp_logs = @repp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq].present? - @repp_logs = @repp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq].present? + if params[:q][:created_at_gteq].present? + @repp_logs = @repp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", + Time.parse(params[:q][:created_at_gteq])) + end + if params[:q][:created_at_lteq].present? + @repp_logs = @repp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", + Time.parse(params[:q][:created_at_lteq])) + end @repp_logs = @repp_logs.page(params[:page]) @count = @q.result.count @repp_logs = @repp_logs.per(params[:results_per_page]) if paginate? diff --git a/app/controllers/admin/sessions_controller.rb b/app/controllers/admin/sessions_controller.rb index 57d702059..114022675 100644 --- a/app/controllers/admin/sessions_controller.rb +++ b/app/controllers/admin/sessions_controller.rb @@ -14,4 +14,4 @@ module Admin current_admin_user ? current_admin_user.id_role_username : 'anonymous' end end -end \ No newline at end of file +end diff --git a/app/controllers/api/v1/registrant/auth_controller.rb b/app/controllers/api/v1/registrant/auth_controller.rb index 728ef696d..f508ceb49 100644 --- a/app/controllers/api/v1/registrant/auth_controller.rb +++ b/app/controllers/api/v1/registrant/auth_controller.rb @@ -45,8 +45,7 @@ module Api def create_token(user) token_creator = AuthTokenCreator.create_with_defaults(user) - hash = token_creator.token_in_hash - hash + token_creator.token_in_hash end def check_ip_whitelist diff --git a/app/controllers/api/v1/registrant/confirms_controller.rb b/app/controllers/api/v1/registrant/confirms_controller.rb index 057400c8e..a1750f47a 100644 --- a/app/controllers/api/v1/registrant/confirms_controller.rb +++ b/app/controllers/api/v1/registrant/confirms_controller.rb @@ -103,9 +103,10 @@ module Api end def verify_action - action = if params[:template] == 'change' + action = case params[:template] + when 'change' @domain.registrant_update_confirmable?(verify_params[:token]) - elsif params[:template] == 'delete' + when 'delete' @domain.registrant_delete_confirmable?(verify_params[:token]) end diff --git a/app/controllers/api/v1/registrant/contacts_controller.rb b/app/controllers/api/v1/registrant/contacts_controller.rb index 73bd98cba..30096ab8a 100644 --- a/app/controllers/api/v1/registrant/contacts_controller.rb +++ b/app/controllers/api/v1/registrant/contacts_controller.rb @@ -77,9 +77,7 @@ module Api render json: { errors: [{ address: [error_msg] }] }, status: :bad_request and return end - if ENV['fax_enabled'] == 'true' - contact.fax = params[:fax] if params[:fax].present? - end + contact.fax = params[:fax] if ENV['fax_enabled'] == 'true' && params[:fax].present? logger.debug "ENV['fax_enabled'] is set to #{ENV['fax_enabled']}" if ENV['fax_enabled'] != 'true' && params[:fax] diff --git a/app/controllers/epp/base_controller.rb b/app/controllers/epp/base_controller.rb index 4e9c7e9cf..3ce5486f3 100644 --- a/app/controllers/epp/base_controller.rb +++ b/app/controllers/epp/base_controller.rb @@ -303,7 +303,10 @@ module Epp if request_command == 'login' && frame.present? frame.gsub!(/pw>.+<\//, 'pw>[FILTERED]]+)>([^<])+<\/eis:legalDocument>/, "[FILTERED]") if frame.present? + if frame.present? + trimmed_request = frame.gsub(/]+)>([^<])+<\/eis:legalDocument>/, + "[FILTERED]") + end ApiLog::EppLog.create({ request: trimmed_request, @@ -312,7 +315,8 @@ module Epp 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), + api_user_registrar: @api_user.try(:registrar).try(:to_s) || + current_user.try(:registrar).try(:to_s), ip: request.ip, uuid: request.uuid }) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index d017fbcce..3ffa4482a 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -155,8 +155,8 @@ module Epp end def validate_update - if element_count('update > chg > registrant') > 0 - requires 'extension > extdata > legalDocument' if current_user.legaldoc_mandatory? + if element_count('update > chg > registrant').positive? && current_user.legaldoc_mandatory? + requires 'extension > extdata > legalDocument' end @prefix = 'update > update >' diff --git a/app/controllers/epp/polls_controller.rb b/app/controllers/epp/polls_controller.rb index 3886d2382..a674bcd45 100644 --- a/app/controllers/epp/polls_controller.rb +++ b/app/controllers/epp/polls_controller.rb @@ -51,6 +51,7 @@ module Epp end handle_errors(@notification) and return unless @notification.mark_as_read + render_epp_response 'epp/poll/poll_ack' end diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index 7e540bb89..c7eddeecf 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -29,23 +29,19 @@ module Epp end end - if !Rails.env.development? && (!webclient_request && @api_user) - unless @api_user.pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], - request.env['HTTP_SSL_CLIENT_S_DN_CN']) - msg = 'Authentication error; server closing connection (certificate is not valid)' - epp_errors.add(:epp_errors, - msg: msg, - code: '2501') + if !Rails.env.development? && (!webclient_request && @api_user) && + !@api_user.pki_ok?(request.env['HTTP_SSL_CLIENT_CERT'], request.env['HTTP_SSL_CLIENT_S_DN_CN']) + msg = 'Authentication error; server closing connection (certificate is not valid)' + epp_errors.add(:epp_errors, + msg: msg,code: '2501') - success = false + success = false end - end if success && !@api_user msg = 'Authentication error; server closing connection (API user not found)' epp_errors.add(:epp_errors, - msg: msg, - code: '2501') + msg: msg, code: '2501') success = false end @@ -53,8 +49,7 @@ module Epp if success && !@api_user.try(:active) msg = 'Authentication error; server closing connection (API user is not active)' epp_errors.add(:epp_errors, - msg: msg, - code: '2501') + msg: msg, code: '2501') success = false end @@ -62,8 +57,7 @@ module Epp if success && @api_user.cannot?(:create, :epp_login) msg = 'Authentication error; server closing connection (API user does not have epp role)' epp_errors.add(:epp_errors, - msg: msg, - code: '2501') + msg: msg, code: '2501') success = false end @@ -71,8 +65,7 @@ module Epp if success && !ip_white? msg = 'Authentication error; server closing connection (IP is not whitelisted)' epp_errors.add(:epp_errors, - msg: msg, - code: '2501') + msg: msg, code: '2501') success = false end @@ -80,8 +73,7 @@ module Epp if success && EppSession.limit_reached?(@api_user.registrar) msg = 'Session limit exceeded; server closing connection (connection limit reached)' epp_errors.add(:epp_errors, - msg: msg, - code: '2502') + msg: msg, code: '2502') success = false end @@ -99,8 +91,7 @@ module Epp if already_authenticated epp_errors.add(:epp_errors, - msg: 'Command use error; Already authenticated', - code: 2002) + msg: 'Command use error; Already authenticated', code: 2002) handle_errors return end @@ -118,8 +109,8 @@ module Epp 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) + if @api_user && !@api_user.registrar.api_ip_white?(request.ip) + return false end true end @@ -127,8 +118,7 @@ module Epp def logout unless signed_in? epp_errors.add(:epp_errors, - code: 2201, - msg: 'Authorization error') + code: 2201, msg: 'Authorization error') handle_errors return end diff --git a/app/controllers/registrar/account_controller.rb b/app/controllers/registrar/account_controller.rb index 2f486dccc..a7d135659 100644 --- a/app/controllers/registrar/account_controller.rb +++ b/app/controllers/registrar/account_controller.rb @@ -31,4 +31,4 @@ class Registrar current_registrar_user.registrar.settings['balance_auto_reload'] end end -end \ No newline at end of file +end diff --git a/app/controllers/registrar/bulk_change_controller.rb b/app/controllers/registrar/bulk_change_controller.rb index af35c2d97..9cd00e6cc 100644 --- a/app/controllers/registrar/bulk_change_controller.rb +++ b/app/controllers/registrar/bulk_change_controller.rb @@ -89,7 +89,7 @@ class Registrar end def domain_ids_for_bulk_renew - params.dig('domain_ids')&.reject { |id| id.blank? } + params['domain_ids']&.reject { |id| id.blank? } end def renew_task(domains) diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index 756495457..b0210dd52 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -13,7 +13,8 @@ class Registrar search_params = params[:q].deep_dup - if search_params[:domain_contacts_type_in].is_a?(Array) && search_params[:domain_contacts_type_in].delete('registrant') + if search_params[:domain_contacts_type_in].is_a?(Array) && + search_params[:domain_contacts_type_in].delete('registrant') search_params[:registrant_domains_id_not_null] = 1 end diff --git a/app/controllers/registrar/invoices/delivery_controller.rb b/app/controllers/registrar/invoices/delivery_controller.rb index bdee23799..8cdbb9196 100644 --- a/app/controllers/registrar/invoices/delivery_controller.rb +++ b/app/controllers/registrar/invoices/delivery_controller.rb @@ -10,4 +10,4 @@ class Registrar end end end -end \ No newline at end of file +end diff --git a/app/controllers/registrar/polls_controller.rb b/app/controllers/registrar/polls_controller.rb index 3e17bf2b7..dde4bb8ea 100644 --- a/app/controllers/registrar/polls_controller.rb +++ b/app/controllers/registrar/polls_controller.rb @@ -16,9 +16,7 @@ class Registrar end def destroy - @data = depp_current_user.request(@ex.poll(poll: { - value: '', attrs: { op: 'ack', msgID: params[:id] } - })) + @data = depp_current_user.request(@ex.poll(poll: { value: '', attrs: { op: 'ack', msgID: params[:id] } })) @results = @data.css('result') diff --git a/app/controllers/registrar/sessions_controller.rb b/app/controllers/registrar/sessions_controller.rb index ec7cda148..44366cd64 100644 --- a/app/controllers/registrar/sessions_controller.rb +++ b/app/controllers/registrar/sessions_controller.rb @@ -30,11 +30,9 @@ class Registrar show_error and return end - if @depp_user.pki - 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 + if @depp_user.pki && !@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 if @depp_user.errors.none? diff --git a/app/controllers/registrar/settings/balance_auto_reload_controller.rb b/app/controllers/registrar/settings/balance_auto_reload_controller.rb index ad970855a..d6ace12ef 100644 --- a/app/controllers/registrar/settings/balance_auto_reload_controller.rb +++ b/app/controllers/registrar/settings/balance_auto_reload_controller.rb @@ -49,4 +49,4 @@ class Registrar end end end -end \ No newline at end of file +end diff --git a/app/controllers/registrar/xml_consoles_controller.rb b/app/controllers/registrar/xml_consoles_controller.rb index fd6804159..60406b539 100644 --- a/app/controllers/registrar/xml_consoles_controller.rb +++ b/app/controllers/registrar/xml_consoles_controller.rb @@ -22,7 +22,7 @@ class Registrar def load_xml cl_trid = "#{depp_current_user.tag}-#{Time.zone.now.to_i}" - xml_dir_path = Rails.root + 'app/views/registrar/xml_consoles/epp_requests' + 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 = prepare_payload(xml, cl_trid) @@ -54,7 +54,7 @@ class Registrar end def insert_prefix_and_version(xml, pref, version) - xml.gsub!('"' + pref.to_s + '"', + xml.gsub!("\"#{pref.to_s}\"", "\"#{Xsd::Schema.filename(for_prefix: pref.to_s, for_version: version)}\"") xml end diff --git a/app/controllers/repp/v1/contacts_controller.rb b/app/controllers/repp/v1/contacts_controller.rb index cc4dc7561..c19ca3967 100644 --- a/app/controllers/repp/v1/contacts_controller.rb +++ b/app/controllers/repp/v1/contacts_controller.rb @@ -89,13 +89,11 @@ module Repp return contacts.pluck(:code) unless details - contacts = contacts.map do |contact| + contacts.map do |contact| serializer = ::Serializers::Repp::Contact.new(contact, show_address: Contact.address_processing?) serializer.to_json end - - contacts end def opt_addr? diff --git a/app/controllers/repp/v1/domains/nameservers_controller.rb b/app/controllers/repp/v1/domains/nameservers_controller.rb index 044e36a20..6f76f9e99 100644 --- a/app/controllers/repp/v1/domains/nameservers_controller.rb +++ b/app/controllers/repp/v1/domains/nameservers_controller.rb @@ -53,7 +53,7 @@ module Repp end def nameserver_params - params.permit(:domain_id, nameservers: [[:hostname, :action, ipv4: [], ipv6: []]]) + params.permit(:domain_id, nameservers: [[:hostname, :action, { ipv4: [], ipv6: [] }]]) end end end diff --git a/app/controllers/repp/v1/domains_controller.rb b/app/controllers/repp/v1/domains_controller.rb index c228bd328..ea00a5561 100644 --- a/app/controllers/repp/v1/domains_controller.rb +++ b/app/controllers/repp/v1/domains_controller.rb @@ -223,7 +223,7 @@ module Repp params.require(:domain).permit(:name, :registrant, :period, :period_unit, :registrar, :transfer_code, :reserved_pw, dnskeys_attributes: [%i[flags alg protocol public_key]], - nameservers_attributes: [[:hostname, ipv4: [], ipv6: []]], + nameservers_attributes: [[:hostname, { ipv4: [], ipv6: [] }]], admin_contacts: [], tech_contacts: []) end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 80c16a5a4..6ecb4fa42 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -6,7 +6,7 @@ module ApplicationHelper def env_style return '' if unstable_env.nil? - "background-image: url(#{image_path(unstable_env.to_s + '.png')});" + "background-image: url(#{image_path("#{unstable_env.to_s}.png")});" end def ident_for(contact) diff --git a/app/interactions/actions/contact_delete.rb b/app/interactions/actions/contact_delete.rb index 69f803f6e..0b104f076 100644 --- a/app/interactions/actions/contact_delete.rb +++ b/app/interactions/actions/contact_delete.rb @@ -1,10 +1,6 @@ module Actions class ContactDelete - attr_reader :contact - attr_reader :new_attributes - attr_reader :legal_document - attr_reader :ident - attr_reader :user + attr_reader :contact, :new_attributes, :legal_document, :ident, :user def initialize(contact, legal_document = nil) @legal_document = legal_document diff --git a/app/interactions/actions/contact_update.rb b/app/interactions/actions/contact_update.rb index e96ea8afb..f66aae805 100644 --- a/app/interactions/actions/contact_update.rb +++ b/app/interactions/actions/contact_update.rb @@ -1,10 +1,6 @@ module Actions class ContactUpdate - attr_reader :contact - attr_reader :new_attributes - attr_reader :legal_document - attr_reader :ident - attr_reader :user + attr_reader :contact, :new_attributes, :legal_document, :ident, :user def initialize(contact, new_attributes, legal_document, ident, user) @contact = contact diff --git a/app/interactions/actions/do_request.rb b/app/interactions/actions/do_request.rb index 5784beee3..ca38140f1 100644 --- a/app/interactions/actions/do_request.rb +++ b/app/interactions/actions/do_request.rb @@ -6,14 +6,14 @@ module Actions end def call - response = if Rails.env.test? - do_test_request(@request, @uri) - elsif Rails.env.development? - do_dev_request(@request, @uri) - else - do_live_request(@request, @uri) - end - response + if Rails.env.test? + do_test_request(@request, @uri) + elsif Rails.env.development? + do_dev_request(@request, @uri) + else + do_live_request(@request, @uri) + end + rescue StandardError, OpenURI::HTTPError => e Rails.logger.debug e.message end diff --git a/app/interactions/actions/domain_delete.rb b/app/interactions/actions/domain_delete.rb index d7fd3496a..7790c25a9 100644 --- a/app/interactions/actions/domain_delete.rb +++ b/app/interactions/actions/domain_delete.rb @@ -1,8 +1,6 @@ module Actions class DomainDelete - attr_reader :domain - attr_reader :params - attr_reader :user + attr_reader :domain, :params, :user def initialize(domain, params, user) @domain = domain diff --git a/app/interactions/actions/domain_renew.rb b/app/interactions/actions/domain_renew.rb index 66e29c940..b829de188 100644 --- a/app/interactions/actions/domain_renew.rb +++ b/app/interactions/actions/domain_renew.rb @@ -1,8 +1,6 @@ module Actions class DomainRenew - attr_reader :domain - attr_reader :params - attr_reader :user + attr_reader :domain, :params, :user def initialize(domain, params, user) @domain = domain diff --git a/app/interactions/actions/domain_transfer.rb b/app/interactions/actions/domain_transfer.rb index 4da078d78..f72f7b5d7 100644 --- a/app/interactions/actions/domain_transfer.rb +++ b/app/interactions/actions/domain_transfer.rb @@ -1,10 +1,6 @@ module Actions class DomainTransfer - attr_reader :domain - attr_reader :transfer_code - attr_reader :legal_document - attr_reader :ident - attr_reader :user + attr_reader :domain, :transfer_code, :legal_document, :ident, :user def initialize(domain, transfer_code, user) @domain = domain diff --git a/app/interactions/domains/bulk_renew/single_domain_renew.rb b/app/interactions/domains/bulk_renew/single_domain_renew.rb index a0df129b6..7ab4f928c 100644 --- a/app/interactions/domains/bulk_renew/single_domain_renew.rb +++ b/app/interactions/domains/bulk_renew/single_domain_renew.rb @@ -70,8 +70,9 @@ module Domains max_reg_time = 11.years.from_now if renewed_expire_time >= max_reg_time - domain.add_epp_error('2105', nil, nil, I18n.t('epp.domains.object_is_not_eligible_for_renewal', - max_date: max_reg_time.to_date.to_s(:db))) + domain.add_epp_error('2105', nil, nil, + I18n.t('epp.domains.object_is_not_eligible_for_renewal', + max_date: max_reg_time.to_date.to_s(:db))) end renewed_expire_time end diff --git a/app/interactions/domains/client_hold/base.rb b/app/interactions/domains/client_hold/base.rb index c3c626b79..30c6532c6 100644 --- a/app/interactions/domains/client_hold/base.rb +++ b/app/interactions/domains/client_hold/base.rb @@ -3,7 +3,7 @@ module Domains class Base < ActiveInteraction::Base def to_stdout(message) time = Time.zone.now.utc - STDOUT << "#{time} - #{message}\n" unless Rails.env.test? + $stdout << "#{time} - #{message}\n" unless Rails.env.test? end end end diff --git a/app/interactions/domains/expire_period/base.rb b/app/interactions/domains/expire_period/base.rb index 609196488..aa42f5ffa 100644 --- a/app/interactions/domains/expire_period/base.rb +++ b/app/interactions/domains/expire_period/base.rb @@ -3,7 +3,7 @@ module Domains class Base < ActiveInteraction::Base def to_stdout(message) time = Time.zone.now.utc - STDOUT << "#{time} - #{message}\n" unless Rails.env.test? + $stdout << "#{time} - #{message}\n" unless Rails.env.test? end def logger diff --git a/app/interactions/domains/expired_pendings/base.rb b/app/interactions/domains/expired_pendings/base.rb index 7faa32050..a13459586 100644 --- a/app/interactions/domains/expired_pendings/base.rb +++ b/app/interactions/domains/expired_pendings/base.rb @@ -3,7 +3,7 @@ module Domains class Base < ActiveInteraction::Base def to_stdout(message) time = Time.zone.now.utc - STDOUT << "#{time} - #{message}\n" unless Rails.env.test? + $stdout << "#{time} - #{message}\n" unless Rails.env.test? end end end diff --git a/app/interactions/domains/expired_pendings/clean_all.rb b/app/interactions/domains/expired_pendings/clean_all.rb index 1dbab266c..e5e8ec046 100644 --- a/app/interactions/domains/expired_pendings/clean_all.rb +++ b/app/interactions/domains/expired_pendings/clean_all.rb @@ -9,6 +9,7 @@ module Domains count = 0 expired_pending_domains.each do |domain| log_error(domain) && next unless need_to_be_cleared?(domain) + count += 1 Domains::ExpiredPendings::ProcessClean.run(domain: domain) end diff --git a/app/interactions/domains/force_delete_email/base.rb b/app/interactions/domains/force_delete_email/base.rb index 291dcd136..4078a7b3d 100644 --- a/app/interactions/domains/force_delete_email/base.rb +++ b/app/interactions/domains/force_delete_email/base.rb @@ -37,7 +37,7 @@ module Domains def added_additional_email_into_notes(domain) return if domain.status_notes[DomainStatus::FORCE_DELETE].include? email - domain.status_notes[DomainStatus::FORCE_DELETE].concat(' ' + email) + domain.status_notes[DomainStatus::FORCE_DELETE].concat(" #{email}") domain.save(validate: false) end diff --git a/app/interactions/domains/redemption_grace_period/base.rb b/app/interactions/domains/redemption_grace_period/base.rb index 5d1ede289..42c691fc5 100644 --- a/app/interactions/domains/redemption_grace_period/base.rb +++ b/app/interactions/domains/redemption_grace_period/base.rb @@ -3,7 +3,7 @@ module Domains class Base < ActiveInteraction::Base def to_stdout(message) time = Time.zone.now.utc - STDOUT << "#{time} - #{message}\n" unless Rails.env.test? + $stdout << "#{time} - #{message}\n" unless Rails.env.test? end end end diff --git a/app/jobs/csync_job.rb b/app/jobs/csync_job.rb index 12a34c551..a8a4bcea9 100644 --- a/app/jobs/csync_job.rb +++ b/app/jobs/csync_job.rb @@ -5,7 +5,7 @@ class CsyncJob < ApplicationJob @store = {} @input_store = { secure: {}, insecure: {} } @results = {} - @logger = Rails.env.test? ? Rails.logger : Logger.new(STDOUT) + @logger = Rails.env.test? ? Rails.logger : Logger.new($stdout) generate ? generate_scanner_input : process_scanner_results @logger.info 'CsyncJob: Finished.' @@ -121,7 +121,7 @@ class CsyncJob < ApplicationJob end out_file.close - @logger.info 'CsyncJob Generate: Finished writing output to ' + ENV['cdns_scanner_input_file'] + @logger.info "CsyncJob Generate: Finished writing output to #{ENV['cdns_scanner_input_file']}" end def check_directory diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index a1596aecb..5e42f29e1 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -1,5 +1,5 @@ class DisputeStatusUpdateJob < ApplicationJob - def perform(logger: Logger.new(STDOUT)) + def perform(logger: Logger.new($stdout)) @logger = logger @backlog = { 'activated': 0, 'closed': 0, 'activate_fail': [], 'close_fail': [] } diff --git a/app/jobs/registrant_change_confirm_email_job.rb b/app/jobs/registrant_change_confirm_email_job.rb index 09cf0caa4..e92b11c22 100644 --- a/app/jobs/registrant_change_confirm_email_job.rb +++ b/app/jobs/registrant_change_confirm_email_job.rb @@ -13,7 +13,8 @@ class RegistrantChangeConfirmEmailJob < ApplicationJob private def log(domain) - message = "Send RegistrantChangeMailer#confirm email for domain #{domain.name} (##{domain.id}) to #{domain.registrant.email}" + message = 'Send RegistrantChangeMailer#confirm email for domain '\ + "#{domain.name} (##{domain.id}) to #{domain.registrant.email}" logger.info(message) end diff --git a/app/jobs/registrant_change_notice_email_job.rb b/app/jobs/registrant_change_notice_email_job.rb index cb0da5d06..545b0dfed 100644 --- a/app/jobs/registrant_change_notice_email_job.rb +++ b/app/jobs/registrant_change_notice_email_job.rb @@ -12,7 +12,8 @@ class RegistrantChangeNoticeEmailJob < ApplicationJob private def log(domain, new_registrant) - message = "Send RegistrantChangeMailer#notice email for domain #{domain.name} (##{domain.id}) to #{new_registrant.email}" + message = 'Send RegistrantChangeMailer#notice email for domain '\ + "#{domain.name} (##{domain.id}) to #{new_registrant.email}" logger.info(message) end diff --git a/app/lib/to_stdout.rb b/app/lib/to_stdout.rb index eeab82c15..2a47a1677 100644 --- a/app/lib/to_stdout.rb +++ b/app/lib/to_stdout.rb @@ -1,6 +1,6 @@ class ToStdout def self.msg(message) time = Time.zone.now.utc - STDOUT << "#{time} - #{message}\n" unless Rails.env.test? + $stdout << "#{time} - #{message}\n" unless Rails.env.test? end end diff --git a/app/models/ability.rb b/app/models/ability.rb index febde4e8b..baa26e4cb 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -58,7 +58,7 @@ class Ability can(:delete, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } # Epp::Contact - can(:info, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || pw.blank? ? true : c.auth_info == pw } + can(:info, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || pw.blank? ? true : c.auth_info == pw } can(:view_full_info, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || c.auth_info == pw } can(:check, Epp::Contact) can(:create, Epp::Contact) diff --git a/app/models/account_activity.rb b/app/models/account_activity.rb index 432d444d8..05873a2a6 100644 --- a/app/models/account_activity.rb +++ b/app/models/account_activity.rb @@ -39,4 +39,3 @@ class AccountActivity < ApplicationRecord end end end - diff --git a/app/models/actions/contact_delete.rb b/app/models/actions/contact_delete.rb index 60d3252c4..6543cd191 100644 --- a/app/models/actions/contact_delete.rb +++ b/app/models/actions/contact_delete.rb @@ -1,10 +1,6 @@ module Actions class ContactDelete - attr_reader :contact - attr_reader :new_attributes - attr_reader :legal_document - attr_reader :ident - attr_reader :user + attr_reader :contact, :new_attributes, :legal_document, :ident, :user def initialize(contact, legal_document = nil) @legal_document = legal_document diff --git a/app/models/actions/contact_update.rb b/app/models/actions/contact_update.rb index 7ca7b6b04..929235c69 100644 --- a/app/models/actions/contact_update.rb +++ b/app/models/actions/contact_update.rb @@ -1,10 +1,6 @@ module Actions class ContactUpdate - attr_reader :contact - attr_reader :new_attributes - attr_reader :legal_document - attr_reader :ident - attr_reader :user + attr_reader :contact, :new_attributes, :legal_document, :ident, :user def initialize(contact, new_attributes, legal_document, ident, user) @contact = contact diff --git a/app/models/actions/domain_transfer.rb b/app/models/actions/domain_transfer.rb index 1ff9aafe9..75bb251c4 100644 --- a/app/models/actions/domain_transfer.rb +++ b/app/models/actions/domain_transfer.rb @@ -1,10 +1,6 @@ module Actions class DomainTransfer - attr_reader :domain - attr_reader :transfer_code - attr_reader :legal_document - attr_reader :ident - attr_reader :user + attr_reader :domain, :transfer_code, :legal_document, :ident, :user def initialize(domain, transfer_code, user) @domain = domain diff --git a/app/models/balance_auto_reload_types/threshold.rb b/app/models/balance_auto_reload_types/threshold.rb index e14f8886b..d55cb977a 100644 --- a/app/models/balance_auto_reload_types/threshold.rb +++ b/app/models/balance_auto_reload_types/threshold.rb @@ -2,8 +2,7 @@ module BalanceAutoReloadTypes class Threshold include ActiveModel::Model - attr_accessor :amount - attr_accessor :threshold + attr_accessor :amount, :threshold validates :amount, numericality: { greater_than_or_equal_to: :min_amount } validates :threshold, numericality: { greater_than_or_equal_to: 0 } @@ -22,4 +21,4 @@ module BalanceAutoReloadTypes self.class.name.demodulize.underscore end end -end \ No newline at end of file +end diff --git a/app/models/billing/price.rb b/app/models/billing/price.rb index cc42d643b..519d53001 100644 --- a/app/models/billing/price.rb +++ b/app/models/billing/price.rb @@ -9,7 +9,8 @@ module Billing validates :price, :valid_from, :operation_category, :duration, presence: true validates :operation_category, inclusion: { in: Proc.new { |price| price.class.operation_categories } } - validates :duration, inclusion: { in: Proc.new { |price| price.class.durations.values } }, if: :should_validate_duration? + validates :duration, inclusion: { in: Proc.new { |price| price.class.durations.values } }, + if: :should_validate_duration? alias_attribute :effect_time, :valid_from alias_attribute :expire_time, :valid_to diff --git a/app/models/certificate.rb b/app/models/certificate.rb index 3bea9e9fc..e646999c9 100644 --- a/app/models/certificate.rb +++ b/app/models/certificate.rb @@ -83,10 +83,11 @@ class Certificate < ApplicationRecord csr_file.rewind crt_file = Tempfile.new('client_crt') - _out, err, _st = Open3.capture3("openssl ca -config #{ENV['openssl_config_path']} -keyfile #{ENV['ca_key_path']} \ - -cert #{ENV['ca_cert_path']} \ - -extensions usr_cert -notext -md sha256 \ - -in #{csr_file.path} -out #{crt_file.path} -key '#{ENV['ca_key_password']}' -batch") + _out, err, _st = Open3.capture3("openssl ca -config #{ENV['openssl_config_path']} \ + -keyfile #{ENV['ca_key_path']} \ + -cert #{ENV['ca_cert_path']} \ + -extensions usr_cert -notext -md sha256 \ + -in #{csr_file.path} -out #{crt_file.path} -key '#{ENV['ca_key_password']}' -batch") if err.match?(/Data Base Updated/) crt_file.rewind @@ -112,7 +113,8 @@ class Certificate < ApplicationRecord crt_file.write(crt) crt_file.rewind - _out, err, _st = Open3.capture3("openssl ca -config #{ENV['openssl_config_path']} -keyfile #{ENV['ca_key_path']} \ + _out, err, _st = Open3.capture3("openssl ca -config #{ENV['openssl_config_path']} \ + -keyfile #{ENV['ca_key_path']} \ -cert #{ENV['ca_cert_path']} \ -revoke #{crt_file.path} -key '#{ENV['ca_key_password']}' -batch") @@ -134,7 +136,7 @@ class Certificate < ApplicationRecord class << self def tostdout(message) time = Time.zone.now.utc - STDOUT << "#{time} - #{message}\n" unless Rails.env.test? + $stdout << "#{time} - #{message}\n" unless Rails.env.test? end def update_crl diff --git a/app/models/concerns/contact/archivable.rb b/app/models/concerns/contact/archivable.rb index ca2d19b1b..6c9581175 100644 --- a/app/models/concerns/contact/archivable.rb +++ b/app/models/concerns/contact/archivable.rb @@ -47,7 +47,7 @@ module Contact::Archivable end def log(msg) - @log ||= Logger.new(STDOUT) + @log ||= Logger.new($stdout) @log.info(msg) end diff --git a/app/models/concerns/registrar/book_keeping.rb b/app/models/concerns/registrar/book_keeping.rb index 710f48e3c..76535ce12 100644 --- a/app/models/concerns/registrar/book_keeping.rb +++ b/app/models/concerns/registrar/book_keeping.rb @@ -68,13 +68,10 @@ module Registrar::BookKeeping def finalize_invoice_line(line, price:, activity:, duration:) yearly = price.duration.in_years.to_i >= 1 - line['price'] = yearly ? (price.price.amount / price.duration.in_years.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 + add_product_timeframe(line: line, activity: activity, duration: duration) if duration.present? && (duration > 1) line end diff --git a/app/models/contact.rb b/app/models/contact.rb index ea422041e..cd7eb4add 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -43,9 +43,9 @@ class Contact < ApplicationRecord validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? } validates :code, - uniqueness: { message: :epp_id_taken }, - format: { with: /\A[\w\-\:\.\_]*\z/i, message: :invalid }, - length: { maximum: 100, message: :too_long_contact_code } + uniqueness: { message: :epp_id_taken }, + format: { with: /\A[\w\-\:\.\_]*\z/i, message: :invalid }, + length: { maximum: 100, message: :too_long_contact_code } validates_associated :identifier validate :validate_html @@ -164,7 +164,9 @@ class Contact < ApplicationRecord scope = all # all contacts has state ok, so no need to filter by it - scope = scope.where("NOT contacts.statuses && ?::varchar[]", "{#{(STATUSES - [OK, LINKED]).join(',')}}") if states.delete(OK) + if states.delete(OK) + scope = scope.where("NOT contacts.statuses && ?::varchar[]", "{#{(STATUSES - [OK, LINKED]).join(',')}}") + end scope = scope.linked if states.delete(LINKED) scope = scope.where("contacts.statuses @> ?::varchar[]", "{#{states.join(',')}}") if states.any? scope @@ -385,7 +387,6 @@ class Contact < ApplicationRecord self.email = email.to_s.strip end - # what we can do load firstly by registrant # if total is smaller than needed, the load more # we also need to sort by valid_to diff --git a/app/models/contact/address.rb b/app/models/contact/address.rb index f7a6cfdab..ca736c045 100644 --- a/app/models/contact/address.rb +++ b/app/models/contact/address.rb @@ -1,10 +1,6 @@ class Contact class Address - attr_reader :street - attr_reader :zip - attr_reader :city - attr_reader :state - attr_reader :country_code + attr_reader :street, :zip, :city, :state, :country_code def initialize(street, zip, city, state, country_code) @street = street @@ -22,4 +18,4 @@ class Contact (country_code == other.country_code) end end -end \ No newline at end of file +end diff --git a/app/models/contact/ident.rb b/app/models/contact/ident.rb index c2e1790f7..71d73f3b6 100644 --- a/app/models/contact/ident.rb +++ b/app/models/contact/ident.rb @@ -1,9 +1,7 @@ class Contact::Ident include ActiveModel::Model - attr_accessor :code - attr_accessor :type - attr_accessor :country_code + attr_accessor :code, :type, :country_code validates :code, presence: true validates :code, national_id: true, if: :national_id? diff --git a/app/models/csync_record.rb b/app/models/csync_record.rb index c31418364..0ce389e5c 100644 --- a/app/models/csync_record.rb +++ b/app/models/csync_record.rb @@ -122,7 +122,7 @@ class CsyncRecord < ApplicationRecord end def self.log - Rails.env.test? ? logger : Logger.new(STDOUT) + Rails.env.test? ? logger : Logger.new($stdout) end def validate_csync_action diff --git a/app/models/depp/contact.rb b/app/models/depp/contact.rb index 33b7545b7..e32b08fae 100644 --- a/app/models/depp/contact.rb +++ b/app/models/depp/contact.rb @@ -34,10 +34,10 @@ module Depp org_name: params[:org_name], # address - street: params[:street], - city: params[:city], - zip: params[:zip], - state: params[:state], + street: params[:street], + city: params[:city], + zip: params[:zip], + state: params[:state], country_code: params[:country_code] ) end @@ -61,10 +61,10 @@ module Depp org_name: res.css('postalInfo org').text, # address - street: res.css('postalInfo addr street').text, - city: res.css('postalInfo addr city').text, - zip: res.css('postalInfo addr pc').text, - state: res.css('postalInfo addr sp').text, + street: res.css('postalInfo addr street').text, + city: res.css('postalInfo addr city').text, + zip: res.css('postalInfo addr pc').text, + state: res.css('postalInfo addr sp').text, country_code: res.css('postalInfo addr cc').text, # authInfo @@ -116,10 +116,11 @@ module Depp xml.with_indifferent_access end - def extract_disclosure_hash(cpd) # cpd = contact_params[:disclose] + # cpd = contact_params[:disclose] + def extract_disclosure_hash(cpd) return {} unless cpd - cpd = cpd.delete_if { |k, v| v if v != '1' && k == 'flag' } - cpd + + cpd.delete_if { |k, v| v if v != '1' && k == 'flag' } end def extract_info_disclosure(data) @@ -147,7 +148,7 @@ module Depp id: { value: code }, postalInfo: { name: { value: name }, - org: { value: org_name }, + org: { value: org_name }, }, voice: { value: phone }, email: { value: email } @@ -195,7 +196,7 @@ module Depp chg: { postalInfo: { name: { value: name }, - org: { value: org_name }, + org: { value: org_name }, }, voice: { value: phone }, email: { value: email }, @@ -240,7 +241,7 @@ module Depp ident = ident_xml[:_anonymus].try(:first) when :update # detect if any ident has changed, nb! ident and self.ident is not always same - if !(ident == self.ident && ident == self.ident_type && ident_country_code == self.ident_country_code) + unless ident == self.ident && ident == self.ident_type && ident_country_code == self.ident_country_code ident = ident_xml[:_anonymus].try(:first) end end diff --git a/app/models/depp/domain.rb b/app/models/depp/domain.rb index 398839f80..0df6ae2b1 100644 --- a/app/models/depp/domain.rb +++ b/app/models/depp/domain.rb @@ -109,11 +109,9 @@ module Depp period = params[:period].to_i.to_s period_unit = params[:period][-1].to_s - current_user.request(epp_xml.renew( - name: { value: params[:domain_name] }, - curExpDate: { value: params[:cur_exp_date] }, - period: { value: period, attrs: { unit: period_unit } } - )) + current_user.request(epp_xml.renew(name: { value: params[:domain_name] }, + curExpDate: { value: params[:cur_exp_date] }, + period: { value: period, attrs: { unit: period_unit } })) end def transfer(params) diff --git a/app/models/depp/user.rb b/app/models/depp/user.rb index babbd2868..e1d71091c 100644 --- a/app/models/depp/user.rb +++ b/app/models/depp/user.rb @@ -11,7 +11,7 @@ module Depp validate :validate_existance_in_server def initialize(args = {}) - args.each { |k, v| send(k.to_s + '=', v) } + args.each { |k, v| send("#{k.to_s}=", v) } end def server @@ -20,13 +20,13 @@ module Depp port = ENV['epp_port'] || '700' @server_cache ||= Epp::Server.new({ - server: ENV['epp_hostname'], - tag: tag, - password: password, - port: port, - cert: OpenSSL::X509::Certificate.new(client_cert), - key: OpenSSL::PKey::RSA.new(client_key) - }) + server: ENV['epp_hostname'], + tag: tag, + password: password, + port: port, + cert: OpenSSL::X509::Certificate.new(client_cert), + key: OpenSSL::PKey::RSA.new(client_key) + }) end def request(xml) diff --git a/app/models/dns/zone.rb b/app/models/dns/zone.rb index 6e18b84bb..fb54abd02 100644 --- a/app/models/dns/zone.rb +++ b/app/models/dns/zone.rb @@ -20,7 +20,7 @@ module DNS def self.generate_zonefile(origin) filename = "#{origin}.zone" - STDOUT << "#{Time.zone.now.utc} - Generating zonefile #{filename}\n" + $stdout << "#{Time.zone.now.utc} - Generating zonefile #{filename}\n" zf = ActiveRecord::Base.connection.execute( "select generate_zonefile('#{origin}')" @@ -28,7 +28,7 @@ module DNS File.open("#{ENV['zonefile_export_dir']}/#{filename}", 'w') { |f| f.write(zf) } - STDOUT << "#{Time.zone.now.utc} - Successfully generated zonefile #{filename}\n" + $stdout << "#{Time.zone.now.utc} - Successfully generated zonefile #{filename}\n" end def self.origins diff --git a/app/models/dnskey.rb b/app/models/dnskey.rb index 348bddde7..0f98dc162 100644 --- a/app/models/dnskey.rb +++ b/app/models/dnskey.rb @@ -24,7 +24,8 @@ class Dnskey < ApplicationRecord end } - ALGORITHMS = Depp::Dnskey::ALGORITHMS.map {|pair| pair[1].to_s}.freeze # IANA numbers, single authority list + # IANA numbers, single authority list + ALGORITHMS = Depp::Dnskey::ALGORITHMS.map {|pair| pair[1].to_s}.freeze PROTOCOLS = %w(3) FLAGS = %w(0 256 257) # 256 = ZSK, 257 = KSK DS_DIGEST_TYPE = [1,2] @@ -81,7 +82,9 @@ class Dnskey < ApplicationRecord def generate_digest return unless flags == 257 || flags == 256 # require ZoneFlag, but optional SecureEntryPoint self.ds_alg = alg - self.ds_digest_type = Setting.ds_digest_type if self.ds_digest_type.blank? || !DS_DIGEST_TYPE.include?(ds_digest_type) + if self.ds_digest_type.blank? || !DS_DIGEST_TYPE.include?(ds_digest_type) + self.ds_digest_type = Setting.ds_digest_type + end flags_hex = self.class.int_to_hex(flags) protocol_hex = self.class.int_to_hex(protocol) @@ -90,9 +93,10 @@ class Dnskey < ApplicationRecord hex = [domain.name_in_wire_format, flags_hex, protocol_hex, alg_hex, public_key_hex].join bin = self.class.hex_to_bin(hex) - if self.ds_digest_type == 1 + case self.ds_digest_type + when 1 self.ds_digest = Digest::SHA1.hexdigest(bin).upcase - elsif self.ds_digest_type == 2 + when 2 self.ds_digest = Digest::SHA256.hexdigest(bin).upcase end end diff --git a/app/models/domain.rb b/app/models/domain.rb index 4686e270f..c0893e07f 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -13,9 +13,14 @@ class Domain < ApplicationRecord include Domain::Disputable include Domain::BulkUpdatable - attr_accessor :roles - - attr_accessor :legal_document_id + attr_accessor :roles, + :legal_document_id, + :is_admin, + :registrant_typeahead, + :update_me, + :epp_pending_update, + :epp_pending_delete, + :reserved_pw alias_attribute :on_hold_time, :outzone_at alias_attribute :outzone_time, :outzone_at @@ -27,16 +32,18 @@ class Domain < ApplicationRecord :admin_store_statuses_history # TODO: whois requests ip whitelist for full info for own domains and partial info for other domains - # TODO: most inputs should be trimmed before validatation, probably some global logic? + # TODO: most inputs should be trimmed before validation, probably some global logic? belongs_to :registrar, required: true belongs_to :registrant, required: true # TODO: should we user validates_associated :registrant here? has_many :admin_domain_contacts - accepts_nested_attributes_for :admin_domain_contacts, allow_destroy: true, reject_if: :admin_change_prohibited? + accepts_nested_attributes_for :admin_domain_contacts, + allow_destroy: true, reject_if: :admin_change_prohibited? has_many :tech_domain_contacts - accepts_nested_attributes_for :tech_domain_contacts, allow_destroy: true, reject_if: :tech_change_prohibited? + accepts_nested_attributes_for :tech_domain_contacts, + allow_destroy: true, reject_if: :tech_change_prohibited? def registrant_change_prohibited? statuses.include? DomainStatus::SERVER_REGISTRANT_CHANGE_PROHIBITED @@ -122,8 +129,6 @@ class Domain < ApplicationRecord errors.add(:domains, I18n.t(:object_status_prohibits_operation)) if has_error end - attr_accessor :is_admin - # Removed to comply new ForceDelete procedure # at https://github.com/internetee/registry/issues/1428#issuecomment-570561967 # @@ -204,12 +209,10 @@ class Domain < ApplicationRecord def statuses_uniqueness return if statuses.uniq == statuses + errors.add(:statuses, :taken) end - 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 @@ -423,9 +426,11 @@ class Domain < ApplicationRecord def pending_update! return true if pending_update? + self.epp_pending_update = true # for epp return true unless registrant_verification_asked? + pending_json_cache = pending_json token = registrant_verification_token asked_at = registrant_verification_asked_at @@ -582,7 +587,6 @@ class Domain < ApplicationRecord # special handling for admin changing status def admin_status_update(update) update_unless_locked_by_registrant(update) - update_not_by_locked_statuses(update) # check for deleted status statuses.each do |s| diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index 6210da2fa..06ec32fd6 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -80,9 +80,10 @@ class DomainStatus < ApplicationRecord CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD, CLIENT_RENEW_PROHIBITED, SERVER_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED, SERVER_TRANSFER_PROHIBITED, CLIENT_UPDATE_PROHIBITED, SERVER_UPDATE_PROHIBITED, - 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, + 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, DISPUTED, SERVER_RELEASE_PROHIBITED ].freeze @@ -98,24 +99,24 @@ class DomainStatus < ApplicationRecord ].freeze UPDATE_PROHIBIT_STATES = [ - DomainStatus::PENDING_DELETE_CONFIRMATION, - DomainStatus::CLIENT_UPDATE_PROHIBITED, - DomainStatus::SERVER_UPDATE_PROHIBITED, - DomainStatus::PENDING_CREATE, - DomainStatus::PENDING_UPDATE, - DomainStatus::PENDING_DELETE, - DomainStatus::PENDING_RENEW, - DomainStatus::PENDING_TRANSFER - ] + DomainStatus::PENDING_DELETE_CONFIRMATION, + DomainStatus::CLIENT_UPDATE_PROHIBITED, + DomainStatus::SERVER_UPDATE_PROHIBITED, + DomainStatus::PENDING_CREATE, + DomainStatus::PENDING_UPDATE, + DomainStatus::PENDING_DELETE, + DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_TRANSFER + ].freeze DELETE_PROHIBIT_STATES = [ - DomainStatus::CLIENT_DELETE_PROHIBITED, - DomainStatus::SERVER_DELETE_PROHIBITED, - DomainStatus::PENDING_CREATE, - DomainStatus::PENDING_RENEW, - DomainStatus::PENDING_TRANSFER, - DomainStatus::PENDING_UPDATE, - DomainStatus::PENDING_DELETE + DomainStatus::CLIENT_DELETE_PROHIBITED, + DomainStatus::SERVER_DELETE_PROHIBITED, + DomainStatus::PENDING_CREATE, + DomainStatus::PENDING_RENEW, + DomainStatus::PENDING_TRANSFER, + DomainStatus::PENDING_UPDATE, + DomainStatus::PENDING_DELETE ].freeze def epp_code_map @@ -148,7 +149,6 @@ class DomainStatus < ApplicationRecord admin_statuses_map.map(&:second) end - def admin_statuses_map [ ['Hold', SERVER_HOLD], diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index ad4e3c34e..d0949e35b 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -15,7 +15,8 @@ class Epp::Domain < Domain return true if is_transfer || is_renewal return unless update_prohibited? - stat = (statuses & (DomainStatus::UPDATE_PROHIBIT_STATES + DomainStatus::DELETE_PROHIBIT_STATES)).first + 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) end @@ -307,10 +308,12 @@ class Epp::Domain < Domain begin return if cur_exp_date.to_date == valid_to.to_date rescue - add_epp_error('2306', 'curExpDate', cur_exp_date, I18n.t('errors.messages.epp_exp_dates_do_not_match')) + add_epp_error('2306', 'curExpDate', cur_exp_date, + I18n.t('errors.messages.epp_exp_dates_do_not_match')) return end - add_epp_error('2306', 'curExpDate', cur_exp_date, I18n.t('errors.messages.epp_exp_dates_do_not_match')) + add_epp_error('2306', 'curExpDate', cur_exp_date, + I18n.t('errors.messages.epp_exp_dates_do_not_match')) end ### ABILITIES ### @@ -325,7 +328,8 @@ class Epp::Domain < Domain begin errors.add(:base, :domain_status_prohibits_operation) return false - end if (statuses & [DomainStatus::CLIENT_DELETE_PROHIBITED, DomainStatus::SERVER_DELETE_PROHIBITED]).any? + end if (statuses & + [DomainStatus::CLIENT_DELETE_PROHIBITED, DomainStatus::SERVER_DELETE_PROHIBITED]).any? true end diff --git a/app/models/inactive_contacts.rb b/app/models/inactive_contacts.rb index c7888e7d9..ddc8374cb 100644 --- a/app/models/inactive_contacts.rb +++ b/app/models/inactive_contacts.rb @@ -14,7 +14,7 @@ class InactiveContacts end def log(msg) - @log ||= Logger.new(STDOUT) + @log ||= Logger.new($stdout) @log.info(msg) end end diff --git a/app/models/invoice.rb b/app/models/invoice.rb index bb82d0fcb..48d4def33 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -12,22 +12,22 @@ class Invoice < ApplicationRecord has_many :payment_orders accepts_nested_attributes_for :items - - scope :all_columns, ->{select("invoices.*")} - scope :sort_due_date_column, ->{all_columns.select("CASE WHEN invoices.cancelled_at is not null THEN + # rubocop:disable Layout/LineLength + scope :all_columns, -> { select("invoices.*") } + scope :sort_due_date_column, -> { all_columns.select("CASE WHEN invoices.cancelled_at is not null THEN (invoices.cancelled_at + interval '100 year') ELSE invoices.due_date END AS sort_due_date")} - scope :sort_by_sort_due_date_asc, ->{sort_due_date_column.order("sort_due_date ASC")} - scope :sort_by_sort_due_date_desc, ->{sort_due_date_column.order("sort_due_date DESC")} - scope :sort_receipt_date_column, ->{all_columns.includes(:account_activity).references(:account_activity).select(%Q{ + scope :sort_by_sort_due_date_asc, -> { sort_due_date_column.order("sort_due_date ASC") } + scope :sort_by_sort_due_date_desc, -> { sort_due_date_column.order("sort_due_date DESC") } + scope :sort_receipt_date_column, -> { all_columns.includes(:account_activity).references(:account_activity).select(%Q{ CASE WHEN account_activities.created_at is not null THEN account_activities.created_at WHEN invoices.cancelled_at is not null THEN invoices.cancelled_at + interval '100 year' ELSE NULL END AS sort_receipt_date })} - scope :sort_by_sort_receipt_date_asc, ->{sort_receipt_date_column.order("sort_receipt_date ASC")} - scope :sort_by_sort_receipt_date_desc, ->{sort_receipt_date_column.order("sort_receipt_date DESC")} + scope :sort_by_sort_receipt_date_asc, -> { sort_receipt_date_column.order("sort_receipt_date ASC") } + scope :sort_by_sort_receipt_date_desc, -> { sort_receipt_date_column.order("sort_receipt_date DESC") } scope :overdue, -> { unpaid.non_cancelled.where('due_date < ?', Time.zone.today) } - + # rubocop:enable Layout/LineLength validates :due_date, :currency, :seller_name, :seller_iban, :buyer_name, :items, presence: true diff --git a/app/models/invoice/e_invoice_generator.rb b/app/models/invoice/e_invoice_generator.rb index d2963b93e..2361656a7 100644 --- a/app/models/invoice/e_invoice_generator.rb +++ b/app/models/invoice/e_invoice_generator.rb @@ -1,7 +1,6 @@ class Invoice class EInvoiceGenerator - attr_reader :invoice - attr_reader :payable + attr_reader :invoice, :payable def initialize(invoice, payable) @invoice = invoice diff --git a/app/models/invoice/vat_rate_calculator.rb b/app/models/invoice/vat_rate_calculator.rb index a1339e762..e09dcad0c 100644 --- a/app/models/invoice/vat_rate_calculator.rb +++ b/app/models/invoice/vat_rate_calculator.rb @@ -1,7 +1,6 @@ class Invoice class VatRateCalculator - attr_reader :registry - attr_reader :registrar + attr_reader :registry, :registrar def initialize(registry: Registry.current, registrar:) @registry = registry @@ -16,4 +15,4 @@ class Invoice end end end -end \ No newline at end of file +end diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 07c50c5dc..cafd04af7 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -65,7 +65,6 @@ class LegalDocument < ApplicationRecord true end - def self.remove_duplicates start = Time.zone.now.to_f Rails.logger.info '-----> Removing legal documents duplicates' @@ -84,7 +83,8 @@ class LegalDocument < ApplicationRecord File.delete(new_legal.path) if File.exist?(new_legal.path) new_legal.update(path: orig_legal.path) count += 1 - Rails.logger.info "File #{new_legal.path} has been removed by Domain #{new_legal.documentable_id}. Document id: #{new_legal.id}" + Rails.logger.info "File #{new_legal.path} has been removed by Domain "\ + "#{new_legal.documentable_id}. Document id: #{new_legal.id}" end end @@ -107,7 +107,8 @@ class LegalDocument < ApplicationRecord File.delete(new_legal.path) if File.exist?(new_legal.path) new_legal.update(path: orig_legal.path) count += 1 - Rails.logger.info "File #{new_legal.path} has been removed by Contact #{new_legal.documentable_id}. Document id: #{new_legal.id}" + Rails.logger.info "File #{new_legal.path} has been removed by Contact "\ + "#{new_legal.documentable_id}. Document id: #{new_legal.id}" end end end diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index d19e1d548..75255eb89 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -38,18 +38,18 @@ class Nameserver < ApplicationRecord def epp_code_map { - '2302' => [ - [:hostname, :taken, { value: { obj: 'hostAttr', val: {'hostName': hostname} } }] - ], - '2005' => [ - [:hostname, :invalid, { value: { obj: 'hostAttr', val: hostname } }], - [:hostname, :puny_to_long, { value: { obj: 'hostAttr', val: hostname } }], - [:ipv4, :invalid, { value: { obj: 'hostAddr', val: ipv4 } }], - [:ipv6, :invalid, { value: { obj: 'hostAddr', val: ipv6 } }] - ], - '2003' => [ - %i[base ip_required], - ] + '2302' => [ + [:hostname, :taken, { value: { obj: 'hostAttr', val: { 'hostName': hostname } } }] + ], + '2005' => [ + [:hostname, :invalid, { value: { obj: 'hostAttr', val: hostname } }], + [:hostname, :puny_to_long, { value: { obj: 'hostAttr', val: hostname } }], + [:ipv4, :invalid, { value: { obj: 'hostAddr', val: ipv4 } }], + [:ipv6, :invalid, { value: { obj: 'hostAddr', val: ipv6 } }] + ], + '2003' => [ + %i[base ip_required], + ] } end @@ -63,11 +63,10 @@ class Nameserver < ApplicationRecord end class << self - def from_hash_params params + def from_hash_params(params) params = params.with_indifferent_access rel = all - rel = rel.where(hostname: params[:hostname]) - rel + rel.where(hostname: params[:hostname]) end def hostnames diff --git a/app/models/payment_order.rb b/app/models/payment_order.rb index 4317abb38..fd6684347 100644 --- a/app/models/payment_order.rb +++ b/app/models/payment_order.rb @@ -23,7 +23,7 @@ class PaymentOrder < ApplicationRecord supported = [] PAYMENT_METHODS.each do |method| - class_name = ('PaymentOrders::' + method.camelize).constantize + class_name = "PaymentOrders::#{method.camelize}".constantize raise(NoMethodError, class_name) unless class_name < PaymentOrder supported << class_name @@ -33,7 +33,7 @@ class PaymentOrder < ApplicationRecord end def self.new_with_type(type:, invoice:) - channel = ('PaymentOrders::' + type.camelize).constantize + channel = "PaymentOrders::#{type.camelize}".constantize PaymentOrder.new(type: channel, invoice: invoice) end @@ -55,7 +55,7 @@ class PaymentOrder < ApplicationRecord def self.supported_method?(name, shortname: false) some_class = if shortname - ('PaymentOrders::' + name.camelize).constantize + "PaymentOrders::#{name.camelize}".constantize else name.constantize end diff --git a/app/models/payment_orders/bank_link.rb b/app/models/payment_orders/bank_link.rb index c8714d245..5195c3604 100644 --- a/app/models/payment_orders/bank_link.rb +++ b/app/models/payment_orders/bank_link.rb @@ -104,9 +104,8 @@ module PaymentOrders def sign(data) private_key = OpenSSL::PKey::RSA.new(File.read(seller_certificate)) - signed_data = private_key.sign(OpenSSL::Digest::SHA1.new, data) - signed_data = Base64.encode64(signed_data).gsub(/\n|\r/, '') - signed_data + signed_data = private_key.sign(OpenSSL::Digest.new('SHA1'), data) + Base64.encode64(signed_data).gsub(/\n|\r/, '') end def calc_mac(fields) @@ -122,7 +121,7 @@ module PaymentOrders def verify_mac(data, mac) bank_public_key = OpenSSL::X509::Certificate.new(File.read(bank_certificate)).public_key - bank_public_key.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(mac), data) + bank_public_key.verify(OpenSSL::Digest.new('SHA1'), Base64.decode64(mac), data) end def prepend_size(value) diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 62c824f4f..2401e20fb 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -28,7 +28,7 @@ class Registrar < ApplicationRecord 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, numericality: { greater_than_or_equal_to: 0, less_than: 100 }, - allow_nil: true + allow_nil: true attribute :vat_rate, ::Type::VatRate.new after_initialize :set_defaults diff --git a/app/models/registry.rb b/app/models/registry.rb index 38037c01b..68422a028 100644 --- a/app/models/registry.rb +++ b/app/models/registry.rb @@ -1,8 +1,7 @@ class Registry include ActiveModel::Model - attr_accessor :vat_rate - attr_accessor :vat_country + attr_accessor :vat_rate, :vat_country def self.current vat_rate = Setting.registry_vat_prc.to_d * 100 @@ -10,4 +9,4 @@ class Registry new(vat_rate: vat_rate, vat_country: vat_country) end -end \ No newline at end of file +end diff --git a/app/models/whois_record.rb b/app/models/whois_record.rb index 9a6229fcb..8d30110b4 100644 --- a/app/models/whois_record.rb +++ b/app/models/whois_record.rb @@ -28,7 +28,7 @@ class WhoisRecord < ApplicationRecord end status_map = { - 'ok' => 'ok (paid and in zone)' + 'ok' => 'ok (paid and in zone)' } registrant = domain.registrant @@ -75,7 +75,7 @@ class WhoisRecord < ApplicationRecord h[:nameservers] = domain.nameservers.hostnames.uniq.select(&:present?) h[:nameservers_changed] = domain.nameservers.pluck(:updated_at).max.try(:to_s, :iso8601) - h[:dnssec_keys] = domain.dnskeys.map{|key| "#{key.flags} #{key.protocol} #{key.alg} #{key.public_key}" } + h[:dnssec_keys] = domain.dnskeys.map { |key| "#{key.flags} #{key.protocol} #{key.alg} #{key.public_key}" } h[:dnssec_changed] = domain.dnskeys.pluck(:updated_at).max.try(:to_s, :iso8601) rescue nil diff --git a/app/presenters/domain_presenter.rb b/app/presenters/domain_presenter.rb index 6ded9a30b..21f4ba182 100644 --- a/app/presenters/domain_presenter.rb +++ b/app/presenters/domain_presenter.rb @@ -81,8 +81,8 @@ class DomainPresenter view.content_tag(:a, view.t('admin.domains.force_delete_toggle_btn.schedule'), class: 'dropdown-item', data: { - toggle: 'modal', - target: '.domain-edit-force-delete-dialog', + toggle: 'modal', + target: '.domain-edit-force-delete-dialog', }) end @@ -91,7 +91,7 @@ class DomainPresenter view.admin_domain_force_delete_path(domain), method: :delete, data: { - confirm: view.t('admin.domains.force_delete_toggle_btn.cancel_confirm'), + confirm: view.t('admin.domains.force_delete_toggle_btn.cancel_confirm'), }, class: 'dropdown-item' end @@ -103,6 +103,5 @@ class DomainPresenter class: 'dropdown-item' end - attr_reader :domain - attr_reader :view + attr_reader :domain, :view end diff --git a/app/presenters/registrant_presenter.rb b/app/presenters/registrant_presenter.rb index 4adf698e6..e3ef9ba12 100644 --- a/app/presenters/registrant_presenter.rb +++ b/app/presenters/registrant_presenter.rb @@ -37,6 +37,5 @@ class RegistrantPresenter private - attr_reader :registrant - attr_reader :view + attr_reader :registrant, :view end diff --git a/app/presenters/registrar/domain_list_csv_presenter.rb b/app/presenters/registrar/domain_list_csv_presenter.rb index 5f32bd022..e38f3f54e 100644 --- a/app/presenters/registrar/domain_list_csv_presenter.rb +++ b/app/presenters/registrar/domain_list_csv_presenter.rb @@ -42,6 +42,5 @@ class Registrar::DomainListCsvPresenter CSV::Row.new([], row) end - attr_reader :domains - attr_reader :view + attr_reader :domains, :view end diff --git a/app/presenters/registrar_presenter.rb b/app/presenters/registrar_presenter.rb index 40d26f063..c349ea74b 100644 --- a/app/presenters/registrar_presenter.rb +++ b/app/presenters/registrar_presenter.rb @@ -26,6 +26,5 @@ class RegistrarPresenter private - attr_reader :registrar - attr_reader :view + attr_reader :registrar, :view end diff --git a/app/presenters/user_presenter.rb b/app/presenters/user_presenter.rb index 29aeaa187..809c9f78c 100644 --- a/app/presenters/user_presenter.rb +++ b/app/presenters/user_presenter.rb @@ -14,6 +14,5 @@ class UserPresenter user.roles.first end - attr_reader :user - attr_reader :view + attr_reader :user, :view end diff --git a/app/services/overdue_invoice_canceller.rb b/app/services/overdue_invoice_canceller.rb index 17401c9dd..b7fcfb7c4 100644 --- a/app/services/overdue_invoice_canceller.rb +++ b/app/services/overdue_invoice_canceller.rb @@ -1,6 +1,5 @@ class OverdueInvoiceCanceller - attr_reader :invoices - attr_reader :delay + attr_reader :invoices, :delay def initialize(invoices: Invoice.overdue, delay: self.class.delay) @invoices = invoices @@ -30,4 +29,4 @@ class OverdueInvoiceCanceller due_date_with_delay = invoice.due_date + delay due_date_with_delay.past? end -end \ No newline at end of file +end diff --git a/app/services/registrant_change.rb b/app/services/registrant_change.rb index fdee7654a..d9d298e97 100644 --- a/app/services/registrant_change.rb +++ b/app/services/registrant_change.rb @@ -15,6 +15,5 @@ class RegistrantChange RegistrantChangeMailer.accepted(domain: domain, old_registrant: old_registrant).deliver_now end - attr_reader :domain - attr_reader :old_registrant + attr_reader :domain, :old_registrant end diff --git a/app/views/epp/contacts/info.xml.builder b/app/views/epp/contacts/info.xml.builder index 053565c09..ba7acd632 100644 --- a/app/views/epp/contacts/info.xml.builder +++ b/app/views/epp/contacts/info.xml.builder @@ -65,9 +65,9 @@ xml.epp_head do xml.tag!('contact:crDate', @contact.created_at.try(:iso8601)) if @contact.updated_at > @contact.created_at - upID = @contact.updator.try(:registrar) - upID = upID.code if upID.present? # Did updator return a kind of User that has a registrar? - xml.tag!('contact:upID', upID) if upID.present? # optional upID + up_id = @contact.updator.try(:registrar) + up_id = up_id.code if up_id.present? # Did updator return a kind of User that has a registrar? + xml.tag!('contact:upID', up_id) if up_id.present? # optional upID xml.tag!('contact:upDate', @contact.updated_at.try(:iso8601)) end if can? :view_password, @contact, @password diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index 609c323ff..72dd83e7d 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -7,7 +7,7 @@ xml.epp_head do xml.result('code' => x[:code]) do xml.msg(x[:msg], 'lang' => 'en') model_name = resource ? resource.model_name.singular.sub('epp_','') : controller.controller_name.singularize - prefix = model_name == 'poll' ? 'changePoll' : model_name + '-ee' + prefix = model_name == 'poll' ? 'changePoll' : "#{model_name}-ee" xml.value("xmlns:#{model_name}" => Xsd::Schema.filename(for_prefix: prefix)) do value = x[:value][:val] diff --git a/app/views/epp/poll/poll_req.xml.builder b/app/views/epp/poll/poll_req.xml.builder index 9f8173dea..a1f12fd65 100644 --- a/app/views/epp/poll/poll_req.xml.builder +++ b/app/views/epp/poll/poll_req.xml.builder @@ -9,10 +9,10 @@ xml.epp_head do xml.msg @notification.text end - if @notification.attached_obj_type == 'DomainTransfer' + if @notification.attached_obj_type == 'DomainTransfer' && @object xml.resData do xml << render('epp/domains/partials/transfer', builder: xml, dt: @object) - end if @object + end end if @notification.action&.contact || @notification.registry_lock? diff --git a/lib/auth_token/auth_token_creator.rb b/lib/auth_token/auth_token_creator.rb index 741cc3e8a..0c10b3fa8 100644 --- a/lib/auth_token/auth_token_creator.rb +++ b/lib/auth_token/auth_token_creator.rb @@ -1,9 +1,7 @@ class AuthTokenCreator DEFAULT_VALIDITY = 2.hours - attr_reader :user - attr_reader :key - attr_reader :expires_at + attr_reader :user, :key, :expires_at def self.create_with_defaults(user) new(user, Rails.application.config.secret_key_base, Time.now + DEFAULT_VALIDITY) @@ -24,7 +22,7 @@ class AuthTokenCreator end def encrypted_token - encryptor = OpenSSL::Cipher::AES.new(256, :CBC) + encryptor = OpenSSL::Cipher.new('aes-256-cbc') encryptor.encrypt # OpenSSL used to automatically shrink oversized keys, it does not do that any longer. diff --git a/lib/auth_token/auth_token_decryptor.rb b/lib/auth_token/auth_token_decryptor.rb index acd67be99..04a48fc18 100644 --- a/lib/auth_token/auth_token_decryptor.rb +++ b/lib/auth_token/auth_token_decryptor.rb @@ -1,8 +1,5 @@ class AuthTokenDecryptor - attr_reader :decrypted_data - attr_reader :token - attr_reader :key - attr_reader :user + attr_reader :decrypted_data, :token, :key, :user def self.create_with_defaults(token) new(token, Rails.application.config.secret_key_base) @@ -14,7 +11,7 @@ class AuthTokenDecryptor end def decrypt_token - decipher = OpenSSL::Cipher::AES.new(256, :CBC) + decipher = OpenSSL::Cipher.new('aes-256-cbc') decipher.decrypt # OpenSSL used to automatically shrink oversized keys, it does not do that any longer. diff --git a/lib/deserializers/xml/domain_create.rb b/lib/deserializers/xml/domain_create.rb index 78642d892..2eef5240a 100644 --- a/lib/deserializers/xml/domain_create.rb +++ b/lib/deserializers/xml/domain_create.rb @@ -5,8 +5,7 @@ require 'deserializers/xml/dnssec' module Deserializers module Xml class DomainCreate - attr_reader :frame - attr_reader :registrar + attr_reader :frame, :registrar def initialize(frame, registrar) @frame = frame diff --git a/lib/serializers/registrant_api/domain.rb b/lib/serializers/registrant_api/domain.rb index b087a3a88..8d7e765f2 100644 --- a/lib/serializers/registrant_api/domain.rb +++ b/lib/serializers/registrant_api/domain.rb @@ -81,12 +81,11 @@ module Serializers end def contacts(type) - contact_pool = begin - if type == :tech - domain.tech_contacts - elsif type == :admin - domain.admin_contacts - end + contact_pool = case type + when :tech + domain.tech_contacts + when :admin + domain.admin_contacts end array_of_contacts = [] diff --git a/lib/tasks/contacts/archive.rake b/lib/tasks/contacts/archive.rake index 9e9568f56..9dfc0f38a 100644 --- a/lib/tasks/contacts/archive.rake +++ b/lib/tasks/contacts/archive.rake @@ -26,7 +26,7 @@ namespace :contacts do end def log(msg) - @log ||= Logger.new(STDOUT) + @log ||= Logger.new($stdout) @log.info(msg) end end 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 17b7586e2..5bc3aa65d 100644 --- a/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake +++ b/lib/tasks/dev/create_bank_transactions/create_bank_transactions.rake @@ -26,7 +26,7 @@ namespace :dev do http.ca_file = ENV['lhv_ca_file'] http.start do - response = http.post(api_base_uri.path + '/payment', request_body, request_headers) + response = http.post("#{api_base_uri.path}/payment", request_body, request_headers) if response.is_a?(Net::HTTPSuccess) puts 'Success' diff --git a/lib/tasks/invoices/cancel_overdue.rake b/lib/tasks/invoices/cancel_overdue.rake index 5b049d853..d3872ddeb 100644 --- a/lib/tasks/invoices/cancel_overdue.rake +++ b/lib/tasks/invoices/cancel_overdue.rake @@ -10,4 +10,4 @@ namespace :invoices do puts "Cancelled total: #{cancelled_invoice_count}" 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 0d8f7c7d4..74646eae4 100644 --- a/lib/tasks/invoices/process_payments.rake +++ b/lib/tasks/invoices/process_payments.rake @@ -41,7 +41,7 @@ namespace :invoices do end def log(msg) - @log ||= Logger.new(STDOUT) + @log ||= Logger.new($stdout) @log.info(msg) end diff --git a/lib/validators/iso8601_validator.rb b/lib/validators/iso8601_validator.rb index bbcf63798..37d82d5d0 100644 --- a/lib/validators/iso8601_validator.rb +++ b/lib/validators/iso8601_validator.rb @@ -1,8 +1,6 @@ class Iso8601Validator < ActiveModel::EachValidator def validate_each(record, attribute, value) - if options[:date_only] - record.errors.add(attribute, :invalid_iso8601_date) unless value =~ date_format - end + record.errors.add(attribute, :invalid_iso8601_date) if options[:date_only] && value !~ date_format end private