mirror of
https://github.com/internetee/registry.git
synced 2025-08-04 08:52:04 +02:00
Merge branch 'master' into registry-790
# Conflicts: # app/models/domain_cron.rb # lib/tasks/dev.rake
This commit is contained in:
commit
5b821f4074
77 changed files with 278 additions and 496 deletions
|
@ -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)
|
||||
|
|
|
@ -4,9 +4,6 @@ module Admin
|
|||
authorize_resource
|
||||
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
|
||||
# Validation is needed to warn users
|
||||
@domain.validate
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
class EppController < ApplicationController
|
||||
include Iptable
|
||||
layout false
|
||||
protect_from_forgery with: :null_session
|
||||
skip_before_action :verify_authenticity_token
|
||||
|
@ -59,11 +58,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 +75,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 +319,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,14 +347,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'
|
||||
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
|
||||
|
@ -407,4 +390,26 @@ class EppController < ApplicationController
|
|||
timeout = 5.minutes
|
||||
epp_session.updated_at < (Time.zone.now - timeout)
|
||||
end
|
||||
|
||||
def iptables_counter_update
|
||||
return if ENV['iptables_counter_enabled'].blank? && ENV['iptables_counter_enabled'] != 'true'
|
||||
return if current_user.blank?
|
||||
counter_update(current_user.registrar_code, ENV['iptables_server_ip'])
|
||||
end
|
||||
|
||||
def counter_update(registrar_code, ip)
|
||||
counter_proc = "/proc/net/xt_recent/#{registrar_code}"
|
||||
|
||||
begin
|
||||
File.open(counter_proc, 'a') do |f|
|
||||
f.puts "+#{ip}"
|
||||
end
|
||||
rescue Errno::ENOENT => e
|
||||
logger.error "IPTABLES COUNTER UPDATE: cannot open #{counter_proc}: #{e}"
|
||||
rescue Errno::EACCES => e
|
||||
logger.error "IPTABLES COUNTER UPDATE: no permission #{counter_proc}: #{e}"
|
||||
rescue IOError => e
|
||||
logger.error "IPTABLES COUNTER UPDATE: cannot write #{ip} to #{counter_proc}: #{e}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
||||
|
@ -372,8 +370,6 @@ class Contact < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def related_domain_descriptions
|
||||
ActiveSupport::Deprecation.warn('Use #domain_names_with_roles')
|
||||
|
||||
@desc = {}
|
||||
|
||||
registrant_domains.each do |dom|
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
)
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
# rubocop: disable Metrics/ClassLength
|
||||
class Domain < ActiveRecord::Base
|
||||
include UserEvents
|
||||
include Versions # version/domain_version.rb
|
||||
|
@ -200,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
|
||||
|
@ -367,7 +351,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?
|
||||
|
@ -382,7 +365,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?
|
||||
|
@ -553,8 +535,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?
|
||||
|
@ -571,8 +551,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
|
||||
|
@ -666,4 +644,3 @@ class Domain < ActiveRecord::Base
|
|||
exists?(["name ILIKE ?", "%.#{zone.origin}"])
|
||||
end
|
||||
end
|
||||
# rubocop: enable Metrics/ClassLength
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
40
app/models/sorted_country.rb
Normal file
40
app/models/sorted_country.rb
Normal file
|
@ -0,0 +1,40 @@
|
|||
class SortedCountry
|
||||
class << self
|
||||
include ActionView::Helpers
|
||||
|
||||
def all_options(selected = nil)
|
||||
quick_options = options_for_select(quick_list, selected: selected)
|
||||
|
||||
# no double select
|
||||
selected = quick_list.map(&:second).include?(selected) ? '' : selected
|
||||
|
||||
all_options = options_for_select([['---', '---']] + all_sorted_truncated,
|
||||
selected: selected, disabled: ['---'])
|
||||
quick_options + all_options
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def quick_list
|
||||
@quick_list ||=
|
||||
[
|
||||
%w[Estonia' EE],
|
||||
%w[Finland FI],
|
||||
%w[Latvia LV],
|
||||
%w[Lithuania LT],
|
||||
['Russian Federation', 'RU'],
|
||||
%w[Sweden SE],
|
||||
['United States', 'US']
|
||||
]
|
||||
end
|
||||
|
||||
def all_sorted
|
||||
@all_sorted ||= Country.all.sort_by(&:name)
|
||||
end
|
||||
|
||||
def all_sorted_truncated
|
||||
@all_sorted_truncated ||=
|
||||
all_sorted.map { |country| [country.name.truncate(26), country.alpha2] }
|
||||
end
|
||||
end
|
||||
end
|
|
@ -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?
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -41,10 +41,10 @@
|
|||
|
||||
<div class="col-sm-6">
|
||||
<div class="input-group">
|
||||
<%= 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' %>
|
||||
<span class="input-group-addon">-</span>
|
||||
<%= 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' %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,84 +1,86 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="<%= I18n.locale.to_s %>">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<% if content_for? :head_title %>
|
||||
<%= yield :head_title %>
|
||||
<% else %>
|
||||
<title>
|
||||
<%= t(:registrant_head_title) %>
|
||||
</title>
|
||||
<% end %>
|
||||
<%= csrf_meta_tags %>
|
||||
<%= stylesheet_link_tag 'registrant-manifest', media: 'all' %>
|
||||
<%= favicon_link_tag 'favicon.ico' %>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Fixed navbar
|
||||
-->
|
||||
<nav class="navbar navbar-default navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button aria-expanded="false" class="navbar-toggle collapsed" data-target="#navbar" data-toggle="collapse" type="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<%= link_to registrant_root_path, class: 'navbar-brand' do %>
|
||||
<%= t(:registrant_head_title) %>
|
||||
<% if unstable_env.present? %>
|
||||
<div class="text-center">
|
||||
<small style="color: #0074B3;">
|
||||
<%= unstable_env %>
|
||||
</small>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% if current_user %>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav public-nav">
|
||||
<% if can? :view, Depp::Domain %>
|
||||
<% active_class = %w(registrant/domains registrant/check registrant/renew registrant/tranfer registrant/keyrelays).include?(params[:controller]) ? 'active' :nil %>
|
||||
<li class="<%= active_class %>">
|
||||
<%= link_to t(:domains), registrant_domains_path %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% active_class = %w(registrant/whois).include?(params[:controller]) ? 'active' :nil %>
|
||||
<li class="<%= active_class %>">
|
||||
<%= link_to 'Internet.ee', 'https://internet.ee' %>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<% if user_signed_in? %>
|
||||
<li>
|
||||
<%= link_to t(:log_out, user: current_user), '/registrant/logout' %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<% if content_for? :head_title %>
|
||||
<%= yield :head_title %>
|
||||
<% else %>
|
||||
<title>
|
||||
<%= t(:registrant_head_title) %>
|
||||
</title>
|
||||
<% end %>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="container">
|
||||
<%= render 'shared/flash' %>
|
||||
<%= yield %>
|
||||
</div>
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<%= image_tag 'eis-logo-et.png' %>
|
||||
</div>
|
||||
<div class="col-md-6 text-right">
|
||||
Version
|
||||
<%= CURRENT_COMMIT_HASH %>
|
||||
</div>
|
||||
<%= csrf_meta_tags %>
|
||||
<%= stylesheet_link_tag 'registrant-manifest', media: 'all' %>
|
||||
<%= favicon_link_tag 'favicon.ico' %>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Fixed navbar
|
||||
-->
|
||||
<nav class="navbar navbar-default navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button aria-expanded="false" class="navbar-toggle collapsed" data-target="#navbar" data-toggle="collapse" type="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<%= link_to registrant_root_path, class: 'navbar-brand' do %>
|
||||
<%= t(:registrant_head_title) %>
|
||||
<% if unstable_env.present? %>
|
||||
<div class="text-center">
|
||||
<small style="color: #0074B3;">
|
||||
<%= unstable_env %>
|
||||
</small>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% if current_user %>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav public-nav">
|
||||
<% if can? :view, Depp::Domain %>
|
||||
<% active_class = %w(registrant/domains registrant/check registrant/renew registrant/tranfer registrant/keyrelays).include?(params[:controller]) ? 'active' :nil %>
|
||||
<li class="<%= active_class %>">
|
||||
<%= link_to t(:domains), registrant_domains_path %>
|
||||
</li>
|
||||
<li class="<%= active_class %>">
|
||||
<%= link_to 'WHOIS', 'https://whois.internet.ee' %>
|
||||
</li>
|
||||
<li class="<%= active_class %>">
|
||||
<%= link_to 'Internet.ee', 'https://internet.ee' %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<% if user_signed_in? %>
|
||||
<li>
|
||||
<%= link_to t(:log_out, user: current_user), '/registrant/logout' %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="container">
|
||||
<%= render 'shared/flash' %>
|
||||
<%= yield %>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<%= javascript_include_tag 'registrant-manifest', async: true %>
|
||||
</body>
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<%= image_tag 'eis-logo-et.png' %>
|
||||
</div>
|
||||
<div class="col-md-6 text-right">
|
||||
Version
|
||||
<%= CURRENT_COMMIT_HASH %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<%= javascript_include_tag 'registrant-manifest', async: true %>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -25,13 +25,13 @@
|
|||
<dt><%= t(:valid_to) %></dt>
|
||||
<dd><%= l(@domain.valid_to) %></dd>
|
||||
|
||||
<dt><%= t(:outzone_at) %></dt>
|
||||
<dt><%= Domain.human_attribute_name :outzone_at %></dt>
|
||||
<dd><%= l(@domain.outzone_at) %></dd>
|
||||
|
||||
<dt><%= t(:delete_at) %></dt>
|
||||
<dt><%= Domain.human_attribute_name :delete_at %></dt>
|
||||
<dd><%= l(@domain.delete_at) %></dd>
|
||||
|
||||
<dt><%= t(:force_delete_at) %></dt>
|
||||
<dt><%= Domain.human_attribute_name :force_delete_at %></dt>
|
||||
<dd><%= l(@domain.force_delete_at) %></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue