mirror of
https://github.com/internetee/registry.git
synced 2025-07-25 03:58:27 +02:00
Merge branch 'master' into 117806281-clickable_actions
This commit is contained in:
commit
8b15f0d0d1
112 changed files with 1479 additions and 658 deletions
52
CHANGELOG.md
52
CHANGELOG.md
|
@ -1,3 +1,55 @@
|
|||
14.07.2016
|
||||
* Registry:
|
||||
* whois records generation fix in contact.rb model (#117612931)
|
||||
* english translation fix for pending_update_notification_for_new_registrant automated registrant message
|
||||
|
||||
16.06.2016
|
||||
* EPP
|
||||
* BUG: XML syntax error for poll and logout if optional clTRID is missing (#121580929)
|
||||
* support for glue records with ipv6 addresses only (#120095555)
|
||||
|
||||
15.06.2016
|
||||
* Portal for registrants
|
||||
* Notice on login screen on limited access to Estonian electronic IDs (#120182999)
|
||||
* Admin interface:
|
||||
* epp log view has now reference to the object name for better usability (#118912395)
|
||||
* BUG: dnssec data missing from domain history view (#115762063)
|
||||
* BUG: internal error in doamin history view in case some contact has been deleted (#118300251)
|
||||
* Registry:
|
||||
* all values sent over epp are now trimmed of beginning and trailing spaces (#117690107)
|
||||
* typo and form fixes for automated e-mail messages sent to domain contacts
|
||||
* EPP:
|
||||
* BUG: error 2005 on adding IDN nameservers (#114677695)
|
||||
* BUG: nameserver lable maximum 63 char length validation handled inproperly (#114677695) - support currently limited to Estonian IDN characters.
|
||||
* BUG: validation passes out of range ident_type values - now limited to org, priv and birthday (#111601356)
|
||||
* BUG: internal error on hello (#120828283)
|
||||
* BUG: internal error broken incoming frame (#121580929)
|
||||
* Deploy:
|
||||
* BUG: incorrect version in commit message on deploy - config/deploy-example.rb (#120259603)
|
||||
|
||||
20.05.2016
|
||||
* Portal for registrars
|
||||
* domain details view new displays contact name in addition to ID (#117226457)
|
||||
* added an option to set veryfied = "yes" parameter to GUI for registrant change and domain delete opertions (#116209751)
|
||||
* Admin interface
|
||||
* BUG: fixed number of sorting issues on different views (#117350717)
|
||||
* BUG: internal error on filtered list sorting (#115043065)
|
||||
* BUG: account activities csv export messes up registrars (#117702653)
|
||||
* usability fixes to history view (#115762063)
|
||||
* Registry
|
||||
* epp-xml gem reference updated to v 1.0.5 (#116209751)
|
||||
* epp-xml gem is now taken from local repo https://github.com/internetee/epp-xml/blob/master, the version in RubyGems is not updated any more (#116209751)
|
||||
* BUG: domains set to force delete were deleted a day ahead of time (#117131083)
|
||||
* BUG: QUE - undefined method `code' for nil:NilClass - if contact is removed before Que gets to it (#117612061)
|
||||
* BUG: Que - uninitialized constant RegenerateWhoisRecordJob (#117986917)
|
||||
* EPP
|
||||
* BUG: poll message on domain delete does not validate against .ee xml schemas (#118827261)
|
||||
* BUG: internal error on domain delete (#118159567)
|
||||
* RestWHOIS
|
||||
* BUG: statuses not in array for not registered reserved and blocked domains (#118911315)
|
||||
|
||||
...
|
||||
|
||||
21.09.2015
|
||||
* eis-1.0.xsd schema file updated without a new version, please publish a new updated schema file to public.
|
||||
|
||||
|
|
4
Gemfile
4
Gemfile
|
@ -31,7 +31,7 @@ gem 'rails-settings-cached', '0.4.1' # for settings
|
|||
|
||||
# html-xml
|
||||
gem 'haml-rails', '0.9.0' # haml for views
|
||||
gem 'nokogiri', '1.6.7.2' # For XML parsing
|
||||
gem 'nokogiri', '1.6.8' # For XML parsing
|
||||
|
||||
# style
|
||||
gem 'sass-rails', '5.0.3' # sass style
|
||||
|
@ -88,7 +88,7 @@ gem 'digidoc_client', '0.2.1'
|
|||
|
||||
# epp
|
||||
gem 'epp', '1.4.2', github: 'internetee/epp'
|
||||
gem 'epp-xml', '1.0.4' # EIS EPP XMLs
|
||||
gem 'epp-xml', '1.0.5', github: 'internetee/epp-xml' # EIS EPP XMLs
|
||||
gem 'uuidtools', '2.1.5' # For unique IDs (used by the epp gem)
|
||||
|
||||
# que
|
||||
|
|
23
Gemfile.lock
23
Gemfile.lock
|
@ -16,6 +16,14 @@ GIT
|
|||
data_migrate (1.3.0)
|
||||
rails (>= 4.1.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/internetee/epp-xml.git
|
||||
revision: 475f650951f2cf5015e00d48f408a2194ecc1662
|
||||
specs:
|
||||
epp-xml (1.0.5)
|
||||
activesupport (~> 4.1)
|
||||
builder (~> 3.2)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/internetee/epp.git
|
||||
revision: 505c3f2739eb1da918e54111aecfb138a822739d
|
||||
|
@ -191,9 +199,6 @@ GEM
|
|||
docile (1.1.5)
|
||||
domain_name (0.5.25)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
epp-xml (1.0.4)
|
||||
activesupport (~> 4.1)
|
||||
builder (~> 3.2)
|
||||
equalizer (0.0.11)
|
||||
erubis (2.7.0)
|
||||
execjs (2.6.0)
|
||||
|
@ -311,7 +316,7 @@ GEM
|
|||
mina (0.3.1)
|
||||
open4 (~> 1.3.4)
|
||||
rake
|
||||
mini_portile2 (2.0.0)
|
||||
mini_portile2 (2.1.0)
|
||||
minitest (5.8.4)
|
||||
monetize (1.1.0)
|
||||
money (~> 6.5.0)
|
||||
|
@ -327,8 +332,9 @@ GEM
|
|||
nenv (0.2.0)
|
||||
netrc (0.11.0)
|
||||
newrelic_rpm (3.12.0.288)
|
||||
nokogiri (1.6.7.2)
|
||||
mini_portile2 (~> 2.0.0.rc2)
|
||||
nokogiri (1.6.8)
|
||||
mini_portile2 (~> 2.1.0)
|
||||
pkg-config (~> 1.1.7)
|
||||
nori (2.6.0)
|
||||
notiffany (0.0.7)
|
||||
nenv (~> 0.1)
|
||||
|
@ -343,6 +349,7 @@ GEM
|
|||
phantomjs (1.9.8.0)
|
||||
phantomjs-binaries (1.9.2.4)
|
||||
sys-uname (= 0.9.0)
|
||||
pkg-config (1.1.7)
|
||||
poltergeist (1.6.0)
|
||||
capybara (~> 2.1)
|
||||
cliver (~> 0.3.1)
|
||||
|
@ -589,7 +596,7 @@ DEPENDENCIES
|
|||
devise (= 3.5.4)
|
||||
digidoc_client (= 0.2.1)
|
||||
epp (= 1.4.2)!
|
||||
epp-xml (= 1.0.4)
|
||||
epp-xml (= 1.0.5)!
|
||||
fabrication (= 2.13.2)
|
||||
faker (= 1.4.3)
|
||||
figaro (= 1.1.1)
|
||||
|
@ -614,7 +621,7 @@ DEPENDENCIES
|
|||
mina (= 0.3.1)
|
||||
money-rails (= 1.4.1)
|
||||
newrelic_rpm (= 3.12.0.288)
|
||||
nokogiri (= 1.6.7.2)
|
||||
nokogiri (= 1.6.8)
|
||||
nprogress-rails (= 0.1.6.7)
|
||||
paper_trail!
|
||||
pdfkit (= 0.6.2)
|
||||
|
|
|
@ -49,7 +49,8 @@ module Repp
|
|||
response_code: status,
|
||||
api_user_name: current_user.try(:username),
|
||||
api_user_registrar: current_user.try(:registrar).try(:to_s),
|
||||
ip: request.ip
|
||||
ip: request.ip,
|
||||
uuid: request.try(:uuid)
|
||||
})
|
||||
end
|
||||
|
||||
|
|
|
@ -2,6 +2,9 @@ $(document).on 'page:change', ->
|
|||
$('.selectize').selectize({
|
||||
allowEmptyOption: true
|
||||
})
|
||||
$('.selectize_create').selectize({
|
||||
allowEmptyOption: true, create: true
|
||||
})
|
||||
|
||||
$('.js-datepicker').datepicker({
|
||||
showAnim: "",
|
||||
|
|
|
@ -29,13 +29,13 @@ $(document).on 'page:change', ->
|
|||
$('.js-contact-form').trigger('restoreDefault')
|
||||
|
||||
$('[data-legal-document]').each (i, fileInput)->
|
||||
minSize = 8 * 1024 # 8kB
|
||||
minSize = 3 * 1024 # 3kB
|
||||
maxSize = 8 * 1024 * 1024; # 8 MB
|
||||
$(fileInput).closest('form').submit (e) ->
|
||||
if (files = fileInput.files).length
|
||||
fileSize = files[0].size
|
||||
if fileSize < minSize
|
||||
alert 'Document size should be more than 8kB'
|
||||
alert 'Document size should be more than 3kB'
|
||||
return false
|
||||
else if fileSize > maxSize
|
||||
alert 'Document size should be less than 8MB'
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
class Admin::AccountActivitiesController < AdminController
|
||||
load_and_authorize_resource
|
||||
before_action :set_default_dates, only: [:index]
|
||||
|
||||
def index # rubocop: disable Metrics/AbcSize
|
||||
params[:q] ||= {}
|
||||
|
||||
ca_cache = params[:q][:created_at_lteq]
|
||||
begin
|
||||
|
@ -41,4 +41,20 @@ class Admin::AccountActivitiesController < AdminController
|
|||
|
||||
params[:q][:created_at_lteq] = ca_cache
|
||||
end
|
||||
|
||||
def set_default_dates
|
||||
params[:q] ||= {}
|
||||
|
||||
if params[:q][:created_at_gteq].nil? && params[:q][:created_at_lteq].nil? && params[:created_after].present?
|
||||
|
||||
default_date = params[:created_after]
|
||||
|
||||
if !['today', 'tomorrow', 'yesterday'].include?(default_date)
|
||||
default_date = 'today'
|
||||
end
|
||||
|
||||
params[:q][:created_at_gteq] = Date.send(default_date).strftime("%Y-%m-%d")
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -10,22 +10,22 @@ class Admin::ContactsController < AdminController
|
|||
search_params[:registrant_domains_id_not_null] = 1
|
||||
end
|
||||
|
||||
@q = Contact.includes(:registrar).search(search_params)
|
||||
@q = Contact.includes(:registrar).joins(:registrar).select('contacts.*, registrars.name').search(search_params)
|
||||
@contacts = @q.result(distinct: :true).page(params[:page])
|
||||
|
||||
if params[:statuses_contains]
|
||||
contacts = Contact.includes(:registrar).where(
|
||||
contacts = Contact.includes(:registrar).joins(:registrar).select('contacts.*, registrars.name').where(
|
||||
"contacts.statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}"
|
||||
)
|
||||
else
|
||||
contacts = Contact.includes(:registrar)
|
||||
contacts = Contact.includes(:registrar).joins(:registrar).select('contacts.*, registrars.name')
|
||||
end
|
||||
contacts = contacts.where("ident_country_code is null or ident_country_code=''") if params[:only_no_country_code].eql?('1')
|
||||
|
||||
|
||||
normalize_search_parameters do
|
||||
@q = contacts.search(search_params)
|
||||
@contacts = @q.result(distinct: :true).page(params[:page])
|
||||
@q = contacts.includes(:registrar).joins(:registrar).select('contacts.*, registrars.name').search(search_params)
|
||||
@contacts = @q.result.uniq.page(params[:page])
|
||||
end
|
||||
|
||||
@contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
|
||||
|
|
|
@ -9,7 +9,7 @@ class Admin::DomainsController < AdminController
|
|||
params[:q] ||= {}
|
||||
if params[:statuses_contains]
|
||||
domains = Domain.includes(:registrar, :registrant).where(
|
||||
"statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}"
|
||||
"domains.statuses @> ?::varchar[]", "{#{params[:statuses_contains].join(',')}}"
|
||||
)
|
||||
else
|
||||
domains = Domain.includes(:registrar, :registrant)
|
||||
|
|
|
@ -1,13 +1,33 @@
|
|||
class Admin::EppLogsController < AdminController
|
||||
load_and_authorize_resource class: ApiLog::EppLog
|
||||
before_action :set_default_dates, only: [:index]
|
||||
|
||||
def index
|
||||
@q = ApiLog::EppLog.search(params[:q])
|
||||
@q.sorts = 'id desc' if @q.sorts.empty?
|
||||
@epp_logs = @q.result.page(params[:page])
|
||||
|
||||
@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?
|
||||
@epp_logs = @epp_logs.page(params[:page])
|
||||
end
|
||||
|
||||
def show
|
||||
@epp_log = ApiLog::EppLog.find(params[:id])
|
||||
end
|
||||
|
||||
def set_default_dates
|
||||
params[:q] ||= {}
|
||||
|
||||
if params[:q][:created_at_gteq].nil? && params[:q][:created_at_lteq].nil? && params[:created_after].present?
|
||||
default_date = params[:created_after]
|
||||
|
||||
if !['today', 'tomorrow', 'yesterday'].include?(default_date)
|
||||
default_date = 'today'
|
||||
end
|
||||
|
||||
params[:q][:created_at_gteq] = Date.send(default_date).strftime("%Y-%m-%d")
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -57,7 +57,7 @@ class Admin::RegistrarsController < AdminController
|
|||
def registrar_params
|
||||
params.require(:registrar).permit(
|
||||
:name, :reg_no, :vat_no, :street, :city, :state, :zip, :billing_address,
|
||||
:country_code, :email, :phone, :billing_email, :code
|
||||
:country_code, :email, :phone, :billing_email, :code, :test_registrar
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,13 +1,34 @@
|
|||
class Admin::ReppLogsController < AdminController
|
||||
load_and_authorize_resource class: ApiLog::ReppLog
|
||||
before_action :set_default_dates, only: [:index]
|
||||
|
||||
def index
|
||||
@q = ApiLog::ReppLog.search(params[:q])
|
||||
@q.sorts = 'id desc' if @q.sorts.empty?
|
||||
@repp_logs = @q.result.page(params[:page])
|
||||
|
||||
@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?
|
||||
@repp_logs = @repp_logs.page(params[:page])
|
||||
end
|
||||
|
||||
def show
|
||||
@repp_log = ApiLog::ReppLog.find(params[:id])
|
||||
end
|
||||
|
||||
def set_default_dates
|
||||
params[:q] ||= {}
|
||||
|
||||
if params[:q][:created_at_gteq].nil? && params[:q][:created_at_lteq].nil? && params[:created_after].present?
|
||||
|
||||
default_date = params[:created_after]
|
||||
|
||||
if !['today', 'tomorrow', 'yesterday'].include?(default_date)
|
||||
default_date = 'today'
|
||||
end
|
||||
|
||||
params[:q][:created_at_gteq] = Date.send(default_date).strftime("%Y-%m-%d")
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -55,6 +55,10 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
end
|
||||
|
||||
def info_for_paper_trail
|
||||
{ uuid: request.uuid }
|
||||
end
|
||||
|
||||
def user_for_paper_trail
|
||||
user_log_str(current_user)
|
||||
end
|
||||
|
|
|
@ -19,6 +19,8 @@ class Epp::ContactsController < EppController
|
|||
authorize! :create, Epp::Contact
|
||||
@contact = Epp::Contact.new(params[:parsed_frame], current_user.registrar)
|
||||
|
||||
@contact.add_legal_file_to_new(params[:parsed_frame])
|
||||
|
||||
if @contact.save
|
||||
render_epp_response '/epp/contacts/create'
|
||||
else
|
||||
|
@ -29,7 +31,7 @@ class Epp::ContactsController < EppController
|
|||
def update
|
||||
authorize! :update, @contact, @password
|
||||
|
||||
if @contact.update_attributes(params[:parsed_frame])
|
||||
if @contact.update_attributes(params[:parsed_frame], current_user)
|
||||
render_epp_response 'epp/contacts/update'
|
||||
else
|
||||
handle_errors(@contact)
|
||||
|
@ -39,7 +41,7 @@ class Epp::ContactsController < EppController
|
|||
def delete
|
||||
authorize! :delete, @contact, @password
|
||||
|
||||
if @contact.destroy_and_clean
|
||||
if @contact.destroy_and_clean(params[:parsed_frame])
|
||||
render_epp_response '/epp/contacts/delete'
|
||||
else
|
||||
handle_errors(@contact)
|
||||
|
|
|
@ -30,6 +30,8 @@ class Epp::DomainsController < EppController
|
|||
handle_errors and return unless balance_ok?('create') # loads pricelist in this method
|
||||
|
||||
ActiveRecord::Base.transaction do
|
||||
@domain.add_legal_file_to_new(params[:parsed_frame])
|
||||
|
||||
if @domain.save # TODO: Maybe use validate: false here because we have already validated the domain?
|
||||
current_user.registrar.debit!({
|
||||
sum: @domain_pricelist.price.amount,
|
||||
|
|
|
@ -56,4 +56,8 @@ class Epp::KeyrelaysController < EppController
|
|||
|
||||
# domain
|
||||
end
|
||||
|
||||
def resource
|
||||
@domain
|
||||
end
|
||||
end
|
||||
|
|
|
@ -54,4 +54,8 @@ class Epp::PollsController < EppController
|
|||
def validate_poll
|
||||
requires_attribute 'poll', 'op', values: %(ack req), allow_blank: true
|
||||
end
|
||||
|
||||
def resource
|
||||
@message
|
||||
end
|
||||
end
|
||||
|
|
|
@ -137,4 +137,9 @@ class Epp::SessionsController < EppController
|
|||
pw = params[:parsed_frame].css('pw').first.text
|
||||
{ username: user, password: pw }
|
||||
end
|
||||
|
||||
private
|
||||
def resource
|
||||
@api_user
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,8 +6,15 @@ class EppController < ApplicationController
|
|||
|
||||
before_action :generate_svtrid
|
||||
before_action :latin_only
|
||||
|
||||
before_action :validate_against_schema
|
||||
before_action :validate_request
|
||||
before_action :update_epp_session
|
||||
|
||||
around_action :catch_epp_errors
|
||||
|
||||
helper_method :current_user
|
||||
helper_method :resource
|
||||
|
||||
def validate_against_schema
|
||||
return if ['hello', 'error', 'keyrelay'].include?(params[:action])
|
||||
schema.validate(params[:nokogiri_frame]).each do |error|
|
||||
|
@ -20,10 +27,7 @@ class EppController < ApplicationController
|
|||
handle_errors and return if epp_errors.any?
|
||||
end
|
||||
|
||||
before_action :validate_request
|
||||
before_action :update_epp_session
|
||||
|
||||
around_action :catch_epp_errors
|
||||
def catch_epp_errors
|
||||
err = catch(:epp_error) do
|
||||
yield
|
||||
|
@ -34,7 +38,6 @@ class EppController < ApplicationController
|
|||
handle_errors
|
||||
end
|
||||
|
||||
helper_method :current_user
|
||||
|
||||
rescue_from StandardError do |e|
|
||||
@errors ||= []
|
||||
|
@ -361,17 +364,18 @@ class EppController < ApplicationController
|
|||
if request_command == 'login' && frame.present?
|
||||
frame.gsub!(/pw>.+<\//, 'pw>[FILTERED]</')
|
||||
end
|
||||
trimmed_request = frame.gsub(/<eis:legalDocument([^>]+)>([^<])+<\/eis:legalDocument>/, "<eis:legalDocument>[FILTERED]</eis:legalDocument>")
|
||||
trimmed_request = frame.gsub(/<eis:legalDocument([^>]+)>([^<])+<\/eis:legalDocument>/, "<eis:legalDocument>[FILTERED]</eis:legalDocument>") if frame.present?
|
||||
|
||||
ApiLog::EppLog.create({
|
||||
request: trimmed_request,
|
||||
request_command: request_command,
|
||||
request_successful: epp_errors.empty?,
|
||||
request_object: params[:epp_object_type],
|
||||
request_object: resource ? "#{params[:epp_object_type]}: #{resource.class} - #{resource.id} - #{resource.name}" : params[:epp_object_type],
|
||||
response: @response,
|
||||
api_user_name: @api_user.try(:username) || current_user.try(:username) || 'api-public',
|
||||
api_user_registrar: @api_user.try(:registrar).try(:to_s) || current_user.try(:registrar).try(:to_s),
|
||||
ip: request.ip
|
||||
ip: request.ip,
|
||||
uuid: request.uuid
|
||||
})
|
||||
end
|
||||
# rubocop: enable Metrics/CyclomaticComplexity
|
||||
|
@ -382,4 +386,9 @@ class EppController < ApplicationController
|
|||
return if current_user.blank?
|
||||
counter_update(current_user.registrar_code, ENV['iptables_server_ip'])
|
||||
end
|
||||
|
||||
def resource
|
||||
name = self.class.to_s.sub("Epp::","").sub("Controller","").underscore.singularize
|
||||
instance_variable_get("@#{name}")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,18 +22,18 @@ class Registrant::DomainDeleteConfirmsController < RegistrantController
|
|||
verification_token: params[:token])
|
||||
if params[:rejected]
|
||||
if @registrant_verification.domain_registrant_delete_reject!
|
||||
flash[:notice] = t(:registrant_domain_verification_rejected)
|
||||
flash[:notice] = t(:registrant_domain_delete_rejected)
|
||||
redirect_to registrant_domain_delete_confirm_path(@domain.id, rejected: true)
|
||||
else
|
||||
flash[:alert] = t(:registrant_domain_verification_rejected_failed)
|
||||
flash[:alert] = t(:registrant_domain_delete_rejected_failed)
|
||||
return render 'show'
|
||||
end
|
||||
elsif params[:confirmed]
|
||||
if @registrant_verification.domain_registrant_delete_confirm!
|
||||
flash[:notice] = t(:registrant_domain_verification_confirmed)
|
||||
flash[:notice] = t(:registrant_domain_delete_confirmed)
|
||||
redirect_to registrant_domain_delete_confirm_path(@domain.id, confirmed: true)
|
||||
else
|
||||
flash[:alert] = t(:registrant_domain_verification_confirmed_failed)
|
||||
flash[:alert] = t(:registrant_domain_delete_confirmed_failed)
|
||||
return render 'show'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,17 +3,30 @@ class DomainDeleteConfirmJob < Que::Job
|
|||
# it's recommended to keep transaction against job table as short as possible.
|
||||
ActiveRecord::Base.transaction do
|
||||
domain = Epp::Domain.find(domain_id)
|
||||
|
||||
case action
|
||||
when RegistrantVerification::CONFIRMED
|
||||
domain.poll_message!(:poll_pending_delete_confirmed_by_registrant)
|
||||
domain.apply_pending_delete!
|
||||
raise_errors!(domain)
|
||||
|
||||
when RegistrantVerification::REJECTED
|
||||
DomainMailer.pending_delete_rejected_notification(domain_id, true).deliver
|
||||
domain.statuses.delete(DomainStatus::PENDING_DELETE_CONFIRMATION)
|
||||
domain.poll_message!(:poll_pending_delete_rejected_by_registrant)
|
||||
|
||||
domain.cancel_pending_delete
|
||||
domain.save(validate: false)
|
||||
raise_errors!(domain)
|
||||
|
||||
DomainMailer.pending_delete_rejected_notification(domain_id, true).deliver
|
||||
end
|
||||
|
||||
destroy # it's best to destroy the job in the same transaction
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def raise_errors!(domain)
|
||||
throw "domain #{domain.name} failed with errors #{domain.errors.full_messages}" if domain.errors.any?
|
||||
end
|
||||
end
|
||||
|
|
17
app/jobs/domain_delete_job.rb
Normal file
17
app/jobs/domain_delete_job.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
class DomainDeleteJob < Que::Job
|
||||
|
||||
def run(domain_id)
|
||||
domain = Domain.find(domain_id)
|
||||
|
||||
::PaperTrail.whodunnit = "job - #{self.class.name}"
|
||||
WhoisRecord.where(domain_id: domain.id).destroy_all
|
||||
|
||||
domain.destroy
|
||||
bye_bye = domain.versions.last
|
||||
domain.registrar.messages.create!(
|
||||
body: "#{I18n.t(:domain_deleted)}: #{domain.name}",
|
||||
attached_obj_id: bye_bye.id,
|
||||
attached_obj_type: bye_bye.class.to_s
|
||||
)
|
||||
end
|
||||
end
|
10
app/jobs/domain_set_delete_candidate_job.rb
Normal file
10
app/jobs/domain_set_delete_candidate_job.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
class DomainSetDeleteCandidateJob < Que::Job
|
||||
|
||||
def run(domain_id)
|
||||
domain = Domain.find(domain_id)
|
||||
domain.statuses << DomainStatus::DELETE_CANDIDATE
|
||||
::PaperTrail.whodunnit = "job - #{self.class.name}"
|
||||
domain.save(validate: false)
|
||||
DomainDeleteJob.enqueue(domain.id, run_at: rand(((24*60) - (DateTime.now.hour * 60 + DateTime.now.minute))).minutes.from_now)
|
||||
end
|
||||
end
|
|
@ -7,8 +7,13 @@ class DomainUpdateConfirmJob < Que::Job
|
|||
case action
|
||||
when RegistrantVerification::CONFIRMED
|
||||
domain.poll_message!(:poll_pending_update_confirmed_by_registrant)
|
||||
raise_errors!(domain)
|
||||
|
||||
domain.apply_pending_update!
|
||||
raise_errors!(domain)
|
||||
|
||||
domain.clean_pendings!
|
||||
raise_errors!(domain)
|
||||
when RegistrantVerification::REJECTED
|
||||
domain.send_mail :pending_update_rejected_notification_for_new_registrant
|
||||
domain.poll_message!(:poll_pending_update_rejected_by_registrant)
|
||||
|
@ -17,4 +22,8 @@ class DomainUpdateConfirmJob < Que::Job
|
|||
destroy # it's best to destroy the job in the same transaction
|
||||
end
|
||||
end
|
||||
|
||||
def raise_errors!(domain)
|
||||
throw "domain #{domain.name} failed with errors #{domain.errors.full_messages}" if domain.errors.any?
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,11 @@ class ContactMailer < ApplicationMailer
|
|||
def email_updated(old_email, email, contact_id, should_deliver)
|
||||
@contact = Contact.find_by(id: contact_id)
|
||||
@old_email = old_email
|
||||
unless @contact
|
||||
Rails.logger.info "Cannot send email in #{self.class.name}##{__method__} with contact_id #{contact_id}. It cannot be found"
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
return unless email || @contact
|
||||
return if delivery_off?(@contact, should_deliver)
|
||||
|
|
|
@ -9,12 +9,34 @@ class DomainMailer < ApplicationMailer
|
|||
compose_from(params)
|
||||
end
|
||||
|
||||
def registrant_updated_notification_for_new_registrant(params)
|
||||
compose_from(params)
|
||||
|
||||
def registrant_updated_notification_for_new_registrant(domain_id, old_registrant_id, new_registrant_id, should_deliver)
|
||||
@domain = Domain.find_by(id: domain_id)
|
||||
return unless @domain
|
||||
return if delivery_off?(@domain, should_deliver)
|
||||
|
||||
@old_registrant = Registrant.find(old_registrant_id)
|
||||
@new_registrant = Registrant.find(new_registrant_id)
|
||||
|
||||
return if whitelist_blocked?(@new_registrant.email)
|
||||
mail(to: format(@new_registrant.email),
|
||||
subject: "#{I18n.t(:registrant_updated_notification_for_new_registrant_subject,
|
||||
name: @domain.name)} [#{@domain.name}]")
|
||||
end
|
||||
|
||||
def registrant_updated_notification_for_old_registrant(params)
|
||||
compose_from(params)
|
||||
|
||||
def registrant_updated_notification_for_old_registrant(domain_id, old_registrant_id, new_registrant_id, should_deliver)
|
||||
@domain = Domain.find_by(id: domain_id)
|
||||
return unless @domain
|
||||
return if delivery_off?(@domain, should_deliver)
|
||||
|
||||
@old_registrant = Registrant.find(old_registrant_id)
|
||||
@new_registrant = Registrant.find(new_registrant_id)
|
||||
|
||||
return if whitelist_blocked?(@old_registrant.email)
|
||||
mail(to: format(@old_registrant.email),
|
||||
subject: "#{I18n.t(:registrant_updated_notification_for_old_registrant_subject,
|
||||
name: @domain.name)} [#{@domain.name}]")
|
||||
end
|
||||
|
||||
def pending_update_rejected_notification_for_new_registrant(params)
|
||||
|
|
|
@ -6,7 +6,6 @@ class AccountActivity < ActiveRecord::Base
|
|||
belongs_to :bank_transaction
|
||||
belongs_to :invoice
|
||||
|
||||
attr_accessor :registrar
|
||||
|
||||
CREATE = 'create'
|
||||
RENEW = 'renew'
|
||||
|
@ -24,14 +23,15 @@ class AccountActivity < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def to_csv
|
||||
attributes = %w(registrar description activity_type created_at sum)
|
||||
attributes = %w(description activity_type created_at sum)
|
||||
|
||||
CSV.generate(headers: true) do |csv|
|
||||
csv << %w(registrar description activity_type receipt_date sum)
|
||||
|
||||
all.each do |x| # rubocop:disable Rails/FindEach
|
||||
x.registrar = Registrar.find(x.account_id).try(:code)
|
||||
csv << attributes.map { |attr| x.send(attr) }
|
||||
attrs = [x.account.registrar.try(:code)]
|
||||
attrs += attributes.map { |attr| x.send(attr) }
|
||||
csv << attrs
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -62,6 +62,10 @@ class ApiUser < User
|
|||
username
|
||||
end
|
||||
|
||||
def name
|
||||
username
|
||||
end
|
||||
|
||||
def queued_messages
|
||||
registrar.messages.queued
|
||||
end
|
||||
|
|
|
@ -2,7 +2,6 @@ class BankTransaction < ActiveRecord::Base
|
|||
include Versions
|
||||
belongs_to :bank_statement
|
||||
has_one :account_activity
|
||||
has_many :directo_records, as: :item, class_name: 'Directo'# Deprecated
|
||||
|
||||
scope :unbinded, lambda {
|
||||
where('id NOT IN (SELECT bank_transaction_id FROM account_activities where bank_transaction_id IS NOT NULL)')
|
||||
|
|
|
@ -40,7 +40,7 @@ class BlockedDomain < ActiveRecord::Base
|
|||
def generate_json
|
||||
h = HashWithIndifferentAccess.new
|
||||
h[:name] = self.name
|
||||
h[:status] = 'Blocked'
|
||||
h[:status] = ['Blocked']
|
||||
h
|
||||
end
|
||||
|
||||
|
|
|
@ -12,6 +12,10 @@ class Contact < ActiveRecord::Base
|
|||
# TODO: remove later
|
||||
has_many :depricated_statuses, class_name: 'DepricatedContactStatus', dependent: :destroy
|
||||
|
||||
has_paper_trail class_name: "ContactVersion", meta: { children: :children_log }
|
||||
|
||||
attr_accessor :legal_document_id
|
||||
|
||||
accepts_nested_attributes_for :legal_documents
|
||||
|
||||
validates :name, :phone, :email, :ident, :ident_type,
|
||||
|
@ -29,9 +33,12 @@ class Contact < ActiveRecord::Base
|
|||
uniqueness: { message: :epp_id_taken },
|
||||
format: { with: /\A[\w\-\:\.\_]*\z/i, message: :invalid },
|
||||
length: { maximum: 100, message: :too_long_contact_code }
|
||||
|
||||
validate :val_ident_type
|
||||
validate :val_ident_valid_format?
|
||||
validate :uniq_statuses?
|
||||
validate :validate_html
|
||||
validate :val_country_code
|
||||
|
||||
after_initialize do
|
||||
self.statuses = [] if statuses.nil?
|
||||
|
@ -39,8 +46,9 @@ class Contact < ActiveRecord::Base
|
|||
self.ident_updated_at = Time.zone.now if new_record? && ident_updated_at.blank?
|
||||
end
|
||||
|
||||
before_validation :set_ident_country_code
|
||||
before_validation :to_upcase_country_code
|
||||
before_validation :prefix_code
|
||||
before_validation :strip_email
|
||||
before_create :generate_auth_info
|
||||
|
||||
before_update :manage_emails
|
||||
|
@ -76,7 +84,7 @@ class Contact < ActiveRecord::Base
|
|||
|
||||
ORG = 'org'
|
||||
PRIV = 'priv'
|
||||
BIRTHDAY = 'birthday'
|
||||
BIRTHDAY = 'birthday'.freeze
|
||||
PASSPORT = 'passport'
|
||||
|
||||
IDENT_TYPES = [
|
||||
|
@ -235,6 +243,10 @@ class Contact < ActiveRecord::Base
|
|||
name || '[no name]'
|
||||
end
|
||||
|
||||
def val_ident_type
|
||||
errors.add(:ident_type, :epp_ident_type_invalid, code: code) if !%w(org priv birthday).include?(ident_type)
|
||||
end
|
||||
|
||||
def val_ident_valid_format?
|
||||
case ident_country_code
|
||||
when 'EE'.freeze
|
||||
|
@ -247,6 +259,8 @@ class Contact < ActiveRecord::Base
|
|||
if ident.size != 8 || !(ident =~/\A[0-9]{8}\z/)
|
||||
errors.add(:ident, err_msg)
|
||||
end
|
||||
when BIRTHDAY
|
||||
errors.add(:ident, err_msg) if id.blank? # only for create action right now. Later for all of them
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -279,6 +293,10 @@ class Contact < ActiveRecord::Base
|
|||
!org?
|
||||
end
|
||||
|
||||
def birthday?
|
||||
ident_type == BIRTHDAY
|
||||
end
|
||||
|
||||
def generate_auth_info
|
||||
return if @generate_auth_info_disabled
|
||||
return if auth_info.present?
|
||||
|
@ -330,22 +348,36 @@ class Contact < ActiveRecord::Base
|
|||
# TODO: refactor, it should not allow to destroy with normal destroy,
|
||||
# no need separate method
|
||||
# should use only in transaction
|
||||
def destroy_and_clean
|
||||
def destroy_and_clean frame
|
||||
if domains_present?
|
||||
errors.add(:domains, :exist)
|
||||
return false
|
||||
end
|
||||
|
||||
legal_document_data = Epp::Domain.parse_legal_document_from_frame(frame)
|
||||
|
||||
if legal_document_data
|
||||
|
||||
doc = LegalDocument.create(
|
||||
documentable_type: Contact,
|
||||
document_type: legal_document_data[:type],
|
||||
body: legal_document_data[:body]
|
||||
)
|
||||
self.legal_documents = [doc]
|
||||
self.legal_document_id = doc.id
|
||||
self.save
|
||||
end
|
||||
destroy
|
||||
end
|
||||
|
||||
def set_ident_country_code
|
||||
return true unless ident_country_code_changed? && ident_country_code.present?
|
||||
code = Country.new(ident_country_code)
|
||||
if code
|
||||
self.ident_country_code = code.alpha2
|
||||
else
|
||||
errors.add(:ident, :invalid_country_code)
|
||||
end
|
||||
def to_upcase_country_code
|
||||
self.ident_country_code = ident_country_code.upcase if ident_country_code
|
||||
self.country_code = country_code.upcase if country_code
|
||||
end
|
||||
|
||||
def val_country_code
|
||||
errors.add(:ident, :invalid_country_code) unless Country.new(ident_country_code)
|
||||
errors.add(:ident, :invalid_country_code) unless Country.new(country_code)
|
||||
end
|
||||
|
||||
def related_domain_descriptions
|
||||
|
@ -392,6 +424,10 @@ class Contact < ActiveRecord::Base
|
|||
"#{code} #{name}"
|
||||
end
|
||||
|
||||
def strip_email
|
||||
self.email = email.to_s.strip
|
||||
end
|
||||
|
||||
|
||||
# what we can do load firstly by registrant
|
||||
# if total is smaller than needed, the load more
|
||||
|
@ -525,9 +561,18 @@ class Contact < ActiveRecord::Base
|
|||
]).present?
|
||||
end
|
||||
|
||||
def update_related_whois_records
|
||||
names = related_domain_descriptions.keys
|
||||
UpdateWhoisRecordJob.enqueue(names, :domain) if names.present?
|
||||
end
|
||||
def update_related_whois_records
|
||||
# not doing anything if no real changes
|
||||
return if changes.slice(*(self.class.column_names - ["updated_at", "created_at", "statuses", "status_notes"])).empty?
|
||||
|
||||
names = related_domain_descriptions.keys
|
||||
UpdateWhoisRecordJob.enqueue(names, :domain) if names.present?
|
||||
end
|
||||
|
||||
def children_log
|
||||
log = HashWithIndifferentAccess.new
|
||||
log[:legal_documents]= [legal_document_id]
|
||||
log
|
||||
end
|
||||
|
||||
end
|
||||
|
|
24
app/models/counter.rb
Normal file
24
app/models/counter.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
class Counter
|
||||
def initialize value = 0
|
||||
@value = value
|
||||
end
|
||||
attr_accessor :value
|
||||
def method_missing *args, &blk
|
||||
@value.send(*args, &blk)
|
||||
end
|
||||
def to_s
|
||||
@value.to_s
|
||||
end
|
||||
|
||||
def now
|
||||
@value
|
||||
end
|
||||
|
||||
# pre-increment ".+" when x not present
|
||||
def next(x = 1)
|
||||
@value += x
|
||||
end
|
||||
def prev(x = 1)
|
||||
@value -= x
|
||||
end
|
||||
end
|
|
@ -66,8 +66,9 @@ module Depp
|
|||
|
||||
def delete(domain_params)
|
||||
xml = epp_xml.delete({
|
||||
name: { value: domain_params[:name] }
|
||||
}, Depp::Domain.construct_custom_params_hash(domain_params))
|
||||
name: { value: domain_params[:name] }},
|
||||
Depp::Domain.construct_custom_params_hash(domain_params),
|
||||
(domain_params[:verified].present? && 'yes'))
|
||||
|
||||
current_user.request(xml)
|
||||
end
|
||||
|
@ -214,7 +215,8 @@ module Depp
|
|||
rem_arr << { _anonymus: rem_anon } if rem_anon.any?
|
||||
|
||||
if domain_params[:registrant] != old_domain_params[:registrant]
|
||||
chg = [{ registrant: { value: domain_params[:registrant] } }]
|
||||
chg = [{ registrant: { value: domain_params[:registrant] } }] if !domain_params[:verified].present?
|
||||
chg = [{ registrant: { value: domain_params[:registrant], attrs: { verified: 'yes' } } }] if domain_params[:verified]
|
||||
end
|
||||
|
||||
add_arr = nil if add_arr.none?
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
class Directo < ActiveRecord::Base
|
||||
DOMAIN_TO_PRODUCT = {"ee" => "01EE", "com.ee" => "02COM", "pri.ee" => "03PRI", "fie.ee"=>"04FIE", "med.ee" => "05MED"}.freeze
|
||||
belongs_to :item, polymorphic: true
|
||||
|
||||
def self.send_receipts
|
||||
|
@ -52,9 +53,127 @@ class Directo < ActiveRecord::Base
|
|||
def self.dump_result_to_db mappers, xml
|
||||
Nokogiri::XML(xml).css("Result").each do |res|
|
||||
obj = mappers[res.attributes["docid"].value.to_i]
|
||||
obj.directo_records.create!(response: res.as_json.to_h)
|
||||
obj.directo_records.create!(response: res.as_json.to_h, invoice_number: obj.number)
|
||||
obj.update_columns(in_directo: true)
|
||||
Rails.logger.info("[DIRECTO] Invoice #{res.attributes["docid"].value} was pushed and return is #{res.as_json.to_h.inspect}")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def self.send_monthly_invoices(debug: false)
|
||||
@debug = debug
|
||||
I18n.locale = :et
|
||||
month = Time.now - 1.month
|
||||
invoices_until = month.end_of_month
|
||||
date_format = "%Y-%m-%d"
|
||||
invoice_counter= Counter.new
|
||||
|
||||
min_directo = Setting.directo_monthly_number_min.presence.try(:to_i)
|
||||
max_directo = Setting.directo_monthly_number_max.presence.try(:to_i)
|
||||
last_directo = [Setting.directo_monthly_number_last.presence.try(:to_i), min_directo].compact.max || 0
|
||||
if max_directo && max_directo <= last_directo
|
||||
raise "Directo counter is out of period (max allowed number is smaller than last counter number)"
|
||||
end
|
||||
|
||||
directo_next = last_directo
|
||||
Registrar.where.not(test_registrar: true).find_each do |registrar|
|
||||
unless registrar.cash_account
|
||||
Rails.logger.info("[DIRECTO] Monthly invoice for registrar #{registrar.id} has been skipped as it doesn't has cash_account")
|
||||
next
|
||||
end
|
||||
counter = Counter.new(1)
|
||||
items = {}
|
||||
registrar_activities = AccountActivity.where(account_id: registrar.account_ids).where("created_at BETWEEN ? AND ?",month.beginning_of_month, month.end_of_month)
|
||||
|
||||
# adding domains items
|
||||
registrar_activities.where(activity_type: [AccountActivity::CREATE, AccountActivity::RENEW]).each do |activity|
|
||||
pricelist = load_activity_pricelist(activity)
|
||||
unless pricelist
|
||||
Rails.logger.error("[DIRECTO] Skipping activity #{activity.id} as pricelist not found")
|
||||
next
|
||||
end
|
||||
|
||||
pricelist.years_amount.times do |i|
|
||||
year = i+1
|
||||
hash = {
|
||||
"ProductID" => DOMAIN_TO_PRODUCT[pricelist.category],
|
||||
"Unit" => "tk",
|
||||
"ProductName" => ".#{pricelist.category} registreerimine: #{pricelist.years_amount} aasta",
|
||||
"UnitPriceWoVAT" => pricelist.price_decimal/pricelist.years_amount
|
||||
}
|
||||
hash["StartDate"] = (activity.created_at + (year-1).year).end_of_month.strftime(date_format) if year > 1
|
||||
hash["EndDate"] = (activity.created_at + (year-1).year + 1).end_of_month.strftime(date_format) if year > 1
|
||||
|
||||
if items.has_key?(hash)
|
||||
items[hash]["Quantity"] += 1
|
||||
else
|
||||
items[hash] = {"RN"=>counter.next, "RR" => counter.now - i, "Quantity"=> 1}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#adding prepaiments
|
||||
if items.any?
|
||||
total = 0
|
||||
items.each{ |key, val| total += val["Quantity"] * key["UnitPriceWoVAT"] }
|
||||
hash = {"ProductID" => Setting.directo_receipt_product_name, "Unit" => "tk", "ProductName" => "Domeenide ettemaks", "UnitPriceWoVAT"=>total}
|
||||
items[hash] = {"RN"=>counter.next, "RR" => counter.now, "Quantity"=> -1}
|
||||
end
|
||||
|
||||
# generating XML
|
||||
if items.any?
|
||||
directo_next += 1
|
||||
invoice_counter.next
|
||||
|
||||
builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|
|
||||
xml.invoices{
|
||||
xml.invoice("Number" =>directo_next,
|
||||
"InvoiceDate" =>invoices_until.strftime(date_format),
|
||||
"PaymentTerm" =>Setting.directo_receipt_payment_term,
|
||||
"CustomerCode"=>registrar.directo_handle,
|
||||
"Language" =>"",
|
||||
"Currency" =>registrar_activities.first.currency,
|
||||
"SalesAgent" =>Setting.directo_sales_agent){
|
||||
xml.line("RN" => 1, "RR"=>1, "ProductName"=> "Domeenide registreerimine - #{I18n.l(invoices_until, format: "%B %Y").titleize}")
|
||||
items.each do |line, val|
|
||||
xml.line(val.merge(line))
|
||||
end
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
data = builder.to_xml.gsub("\n",'')
|
||||
response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false).to_s
|
||||
if @debug
|
||||
STDOUT << "#{Time.zone.now.utc} - Directo xml had to be sent #{data}\n"
|
||||
else
|
||||
Setting.directo_monthly_number_last = directo_next
|
||||
Nokogiri::XML(response).css("Result").each do |res|
|
||||
Directo.create!(request: data, response: res.as_json.to_h, invoice_number: directo_next)
|
||||
Rails.logger.info("[DIRECTO] Invoice #{res.attributes["docid"].value} was pushed and return is #{res.as_json.to_h.inspect}")
|
||||
end
|
||||
end
|
||||
else
|
||||
Rails.logger.info("[DIRECTO] Registrar #{registrar.id} has nothing to be sent to Directo")
|
||||
end
|
||||
|
||||
end
|
||||
STDOUT << "#{Time.zone.now.utc} - Directo invoices sending finished. #{invoice_counter.now} are sent\n"
|
||||
end
|
||||
|
||||
|
||||
def self.load_activity_pricelist activity
|
||||
@pricelists ||= {}
|
||||
return @pricelists[activity.log_pricelist_id] if @pricelists.has_key?(activity.log_pricelist_id)
|
||||
|
||||
pricelist = Pricelist.find_by(id: activity.log_pricelist_id) || PricelistVersion.find_by(item_id: activity.log_pricelist_id).try(:reify)
|
||||
unless pricelist
|
||||
@pricelists[activity.log_pricelist_id] = nil
|
||||
Rails.logger.info("[DIRECTO] AccountActivity #{activity.id} cannot be sent as pricelist wasn't found #{activity.log_pricelist_id}")
|
||||
return
|
||||
end
|
||||
|
||||
@pricelists[activity.log_pricelist_id] = pricelist.version_at(activity.created_at) || pricelist
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@ class Domain < ActiveRecord::Base
|
|||
|
||||
attr_accessor :roles
|
||||
|
||||
attr_accessor :legal_document_id
|
||||
|
||||
# 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?
|
||||
|
||||
|
@ -345,7 +347,8 @@ class Domain < ActiveRecord::Base
|
|||
end
|
||||
|
||||
|
||||
# state change shouln't be
|
||||
# state changes may be done low-level - no validation
|
||||
# in this metod we still save PaperTrail log.
|
||||
def clean_pendings_lowlevel
|
||||
statuses.delete(DomainStatus::PENDING_DELETE_CONFIRMATION)
|
||||
statuses.delete(DomainStatus::PENDING_UPDATE)
|
||||
|
@ -354,13 +357,23 @@ class Domain < ActiveRecord::Base
|
|||
status_notes[DomainStatus::PENDING_UPDATE] = ''
|
||||
status_notes[DomainStatus::PENDING_DELETE] = ''
|
||||
|
||||
update_columns(
|
||||
hash = {
|
||||
registrant_verification_token: nil,
|
||||
registrant_verification_asked_at: nil,
|
||||
pending_json: {},
|
||||
status_notes: status_notes,
|
||||
statuses: statuses.presence || [DomainStatus::OK]
|
||||
)
|
||||
statuses: statuses.presence || [DomainStatus::OK],
|
||||
# need this column in order to update PaperTrail version properly
|
||||
updated_at: Time.now.utc
|
||||
}
|
||||
|
||||
# PaperTrail
|
||||
self.attributes = hash
|
||||
record_update
|
||||
clear_version_instance!
|
||||
reset_transaction_id
|
||||
|
||||
update_columns(hash)
|
||||
end
|
||||
|
||||
def pending_update!
|
||||
|
@ -384,6 +397,7 @@ class Domain < ActiveRecord::Base
|
|||
self.registrant_verification_token = token
|
||||
self.registrant_verification_asked_at = asked_at
|
||||
set_pending_update
|
||||
touch_always_version
|
||||
pending_json['new_registrant_id'] = new_registrant_id
|
||||
pending_json['new_registrant_email'] = new_registrant_email
|
||||
pending_json['new_registrant_name'] = new_registrant_name
|
||||
|
@ -449,19 +463,14 @@ class Domain < ActiveRecord::Base
|
|||
period_i ||= period
|
||||
unit ||= period_unit
|
||||
|
||||
# TODO: test if name.scan(/\.(.+)\z/).first.first is faster
|
||||
zone = name.split('.').drop(1).join('.')
|
||||
|
||||
p = period_i / 365 if unit == 'd'
|
||||
p = period_i / 12 if unit == 'm'
|
||||
p = period_i if unit == 'y'
|
||||
|
||||
if p > 1
|
||||
p = "#{p}years"
|
||||
else
|
||||
p = "#{p}year"
|
||||
end
|
||||
|
||||
Pricelist.pricelist_for(zone, operation, p)
|
||||
Pricelist.pricelist_for(zone, operation, "#{p}year".pluralize(p))
|
||||
end
|
||||
|
||||
### VALIDATIONS ###
|
||||
|
@ -469,7 +478,8 @@ class Domain < ActiveRecord::Base
|
|||
def validate_nameserver_ips
|
||||
nameservers.to_a.reject(&:marked_for_destruction?).each do |ns|
|
||||
next unless ns.hostname.end_with?(".#{name}")
|
||||
next if ns.ipv4.present?
|
||||
next if ns.ipv4.present? || ns.ipv6.present?
|
||||
|
||||
errors.add(:nameservers, :invalid) if errors[:nameservers].blank?
|
||||
ns.errors.add(:ipv4, :blank)
|
||||
end
|
||||
|
@ -566,7 +576,7 @@ class Domain < ActiveRecord::Base
|
|||
statuses << DomainStatus::SERVER_MANUAL_INZONE
|
||||
end
|
||||
|
||||
self.force_delete_at = Time.zone.now + Setting.redemption_grace_period.days unless force_delete_at
|
||||
self.force_delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day unless force_delete_at
|
||||
transaction do
|
||||
save!(validate: false)
|
||||
registrar.messages.create!(
|
||||
|
@ -595,7 +605,7 @@ class Domain < ActiveRecord::Base
|
|||
|
||||
def set_graceful_expired
|
||||
self.outzone_at = valid_to + Setting.expire_warning_period.days
|
||||
self.delete_at = outzone_at + Setting.redemption_grace_period.days
|
||||
self.delete_at = (outzone_at + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day
|
||||
self.statuses |= [DomainStatus::EXPIRED]
|
||||
end
|
||||
|
||||
|
@ -603,7 +613,7 @@ class Domain < ActiveRecord::Base
|
|||
# TODO: currently valid_to attribute update logic is open
|
||||
# self.valid_to = valid_from + self.class.convert_period_to_time(period, period_unit)
|
||||
self.outzone_at = Time.zone.now + Setting.expire_warning_period.days
|
||||
self.delete_at = Time.zone.now + Setting.redemption_grace_period.days
|
||||
self.delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day
|
||||
statuses << DomainStatus::EXPIRED
|
||||
end
|
||||
|
||||
|
@ -725,16 +735,14 @@ class Domain < ActiveRecord::Base
|
|||
# rubocop: enable Metrics/CyclomaticComplexity
|
||||
# rubocop: enable Metrics/PerceivedComplexity
|
||||
|
||||
|
||||
# small optimization that we'are using to_a if it was done already
|
||||
# otherwise just getting ids
|
||||
def children_log
|
||||
log = HashWithIndifferentAccess.new
|
||||
log[:admin_contacts] = admin_contact_ids
|
||||
log[:tech_contacts] = tech_contact_ids
|
||||
log[:nameservers] = nameserver_ids
|
||||
log[:domain_statuses]= domain_status_ids
|
||||
log[:dnskeys] = dnskey_ids
|
||||
log[:domain_statuses]= domain_status_ids
|
||||
log[:legal_documents]= [legal_document_id]
|
||||
log[:registrant] = [registrant_id]
|
||||
log
|
||||
end
|
||||
|
|
|
@ -65,46 +65,55 @@ class DomainCron
|
|||
marked
|
||||
end
|
||||
|
||||
def self.start_delete_period
|
||||
begin
|
||||
STDOUT << "#{Time.zone.now.utc} - Setting delete_candidate to domains\n" unless Rails.env.test?
|
||||
#doing nothing, deprecated
|
||||
|
||||
d = Domain.where('delete_at <= ?', Time.zone.now)
|
||||
marked = 0
|
||||
real = 0
|
||||
d.each do |domain|
|
||||
next unless domain.delete_candidateable?
|
||||
real += 1
|
||||
domain.statuses << DomainStatus::DELETE_CANDIDATE
|
||||
STDOUT << "#{Time.zone.now.utc} DomainCron.start_delete_period: ##{domain.id} (#{domain.name}) #{domain.changes}\n" unless Rails.env.test?
|
||||
domain.save(validate: false) and marked += 1
|
||||
end
|
||||
ensure # the operator should see what was accomplished
|
||||
STDOUT << "#{Time.zone.now.utc} - Finished setting delete_candidate - #{marked} out of #{real} successfully set\n" unless Rails.env.test?
|
||||
end
|
||||
marked
|
||||
def self.start_delete_period
|
||||
# begin
|
||||
# STDOUT << "#{Time.zone.now.utc} - Setting delete_candidate to domains\n" unless Rails.env.test?
|
||||
#
|
||||
# d = Domain.where('delete_at <= ?', Time.zone.now)
|
||||
# marked = 0
|
||||
# real = 0
|
||||
# d.each do |domain|
|
||||
# next unless domain.delete_candidateable?
|
||||
# real += 1
|
||||
# domain.statuses << DomainStatus::DELETE_CANDIDATE
|
||||
# STDOUT << "#{Time.zone.now.utc} DomainCron.start_delete_period: ##{domain.id} (#{domain.name})\n" unless Rails.env.test?
|
||||
# ::PaperTrail.whodunnit = "cron - #{__method__}"
|
||||
# domain.save(validate: false) and marked += 1
|
||||
# end
|
||||
# ensure # the operator should see what was accomplished
|
||||
# STDOUT << "#{Time.zone.now.utc} - Finished setting delete_candidate - #{marked} out of #{real} successfully set\n" unless Rails.env.test?
|
||||
# end
|
||||
# marked
|
||||
end
|
||||
|
||||
def self.destroy_delete_candidates
|
||||
STDOUT << "#{Time.zone.now.utc} - Destroying domains\n" unless Rails.env.test?
|
||||
|
||||
c = 0
|
||||
Domain.where("statuses @> '{deleteCandidate}'::varchar[]").each do |x|
|
||||
WhoisRecord.where(domain_id: x.id).destroy_all
|
||||
destroy_with_message x
|
||||
STDOUT << "#{Time.zone.now.utc} Domain.destroy_delete_candidates: by deleteCandidate ##{x.id} (#{x.name})\n" unless Rails.env.test?
|
||||
|
||||
c += 1
|
||||
Domain.where('delete_at <= ?', Time.zone.now).each do |x|
|
||||
next unless x.delete_candidateable?
|
||||
|
||||
x.statuses << DomainStatus::DELETE_CANDIDATE
|
||||
|
||||
# If domain successfully saved, add it to delete schedule
|
||||
if x.save(validate: false)
|
||||
::PaperTrail.whodunnit = "cron - #{__method__}"
|
||||
DomainDeleteJob.enqueue(x.id, run_at: rand(((24*60) - (DateTime.now.hour * 60 + DateTime.now.minute))).minutes.from_now)
|
||||
STDOUT << "#{Time.zone.now.utc} Domain.destroy_delete_candidates: job added by deleteCandidate status ##{x.id} (#{x.name})\n" unless Rails.env.test?
|
||||
c += 1
|
||||
end
|
||||
end
|
||||
|
||||
Domain.where('force_delete_at <= ?', Time.zone.now).each do |x|
|
||||
WhoisRecord.where(domain_id: x.id).destroy_all
|
||||
destroy_with_message x
|
||||
STDOUT << "#{Time.zone.now.utc} DomainCron.destroy_delete_candidates: by force delete time ##{x.id} (#{x.name})\n" unless Rails.env.test?
|
||||
DomainDeleteJob.enqueue(x.id, run_at: rand(((24*60) - (DateTime.now.hour * 60 + DateTime.now.minute))).minutes.from_now)
|
||||
STDOUT << "#{Time.zone.now.utc} DomainCron.destroy_delete_candidates: job added by force delete time ##{x.id} (#{x.name})\n" unless Rails.env.test?
|
||||
c += 1
|
||||
end
|
||||
|
||||
STDOUT << "#{Time.zone.now.utc} - Successfully destroyed #{c} domains\n" unless Rails.env.test?
|
||||
STDOUT << "#{Time.zone.now.utc} - Job destroy added for #{c} domains\n" unless Rails.env.test?
|
||||
end
|
||||
|
||||
# rubocop: enable Metrics/AbcSize
|
||||
|
|
|
@ -20,28 +20,7 @@ class DomainMailModel
|
|||
domain_info
|
||||
compose
|
||||
end
|
||||
|
||||
def registrant_updated_notification_for_new_registrant
|
||||
registrant
|
||||
subject(:registrant_updated_notification_for_new_registrant_subject)
|
||||
domain_info
|
||||
compose
|
||||
end
|
||||
|
||||
def registrant_updated_notification_for_old_registrant
|
||||
registrant_pending
|
||||
registrant_old
|
||||
subject(:registrant_updated_notification_for_old_registrant_subject)
|
||||
new_registrant = Registrant.find @domain.pending_json['new_registrant_id']
|
||||
@params[:registrant_name] = new_registrant.name
|
||||
@params[:registrant_ident] = new_registrant.ident
|
||||
@params[:registrant_priv] = new_registrant.priv?
|
||||
@params[:registrant_email] = new_registrant.email
|
||||
@params[:registrant_street] = new_registrant.street
|
||||
@params[:registrant_city] = new_registrant.city
|
||||
@params[:registrant_country] = new_registrant.country.name
|
||||
compose
|
||||
end
|
||||
|
||||
def pending_update_rejected_notification_for_new_registrant
|
||||
registrant_pending
|
||||
|
|
|
@ -37,10 +37,7 @@ class Epp::Contact < Contact
|
|||
at[:country_code] = f.css('postalInfo addr cc').text if f.css('postalInfo addr cc').present?
|
||||
at[:auth_info] = f.css('authInfo pw').text if f.css('authInfo pw').present?
|
||||
|
||||
legal_frame = f.css('legalDocument').first
|
||||
if legal_frame.present?
|
||||
at[:legal_documents_attributes] = legal_document_attrs(legal_frame)
|
||||
end
|
||||
|
||||
at.merge!(ident_attrs(f.css('ident').first)) if new_record
|
||||
at
|
||||
end
|
||||
|
@ -104,6 +101,7 @@ class Epp::Contact < Contact
|
|||
|
||||
res
|
||||
end
|
||||
|
||||
end
|
||||
delegate :ident_attr_valid?, to: :class
|
||||
|
||||
|
@ -134,6 +132,9 @@ class Epp::Contact < Contact
|
|||
'2302' => [ # Object exists
|
||||
[:code, :epp_id_taken]
|
||||
],
|
||||
'2304' => [ # Object status prohibits operation
|
||||
[:ident_type, :epp_ident_type_invalid, { value: { obj: 'code', val: code}, interpolation: {code: code}}]
|
||||
],
|
||||
'2305' => [ # Association exists
|
||||
[:domains, :exist]
|
||||
],
|
||||
|
@ -143,7 +144,7 @@ class Epp::Contact < Contact
|
|||
end
|
||||
|
||||
# rubocop:disable Metrics/AbcSize
|
||||
def update_attributes(frame)
|
||||
def update_attributes(frame, current_user)
|
||||
return super if frame.blank?
|
||||
at = {}.with_indifferent_access
|
||||
at.deep_merge!(self.class.attrs_from(frame.css('chg'), new_record: false))
|
||||
|
@ -152,8 +153,14 @@ class Epp::Contact < Contact
|
|||
at[:statuses] = statuses - statuses_attrs(frame.css('rem'), 'rem') + statuses_attrs(frame.css('add'), 'add')
|
||||
end
|
||||
|
||||
legal_frame = frame.css('legalDocument').first
|
||||
at[:legal_documents_attributes] = self.class.legal_document_attrs(legal_frame)
|
||||
# legal_frame = frame.css('legalDocument').first
|
||||
# at[:legal_documents_attributes] = self.class.legal_document_attrs(legal_frame)
|
||||
|
||||
if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame))
|
||||
frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
|
||||
self.legal_document_id = doc.id
|
||||
end
|
||||
|
||||
self.deliver_emails = true # turn on email delivery for epp
|
||||
|
||||
|
||||
|
@ -169,6 +176,8 @@ class Epp::Contact < Contact
|
|||
elsif ident_type == "birthday" && !ident[/\A\d{4}-\d{2}-\d{2}\z/] && (Date.parse(ident) rescue false)
|
||||
at.merge!(ident: ident_frame.text)
|
||||
at.merge!(ident_country_code: ident_frame.attr('cc')) if ident_frame.attr('cc').present?
|
||||
elsif ident_type == "birthday" && ident_country_code.blank?
|
||||
at.merge!(ident_country_code: ident_frame.attr('cc'))
|
||||
elsif ident_type.blank? && ident_country_code.blank?
|
||||
at.merge!(ident_type: ident_frame.attr('type'))
|
||||
at.merge!(ident_country_code: ident_frame.attr('cc')) if ident_frame.attr('cc').present?
|
||||
|
@ -180,6 +189,9 @@ class Epp::Contact < Contact
|
|||
end
|
||||
end
|
||||
|
||||
self.upid = current_user.registrar.id if current_user.registrar
|
||||
self.up_date = Time.zone.now
|
||||
|
||||
super(at)
|
||||
end
|
||||
# rubocop:enable Metrics/AbcSize
|
||||
|
@ -217,4 +229,29 @@ class Epp::Contact < Contact
|
|||
|
||||
status_list
|
||||
end
|
||||
|
||||
def attach_legal_document(legal_document_data)
|
||||
return unless legal_document_data
|
||||
|
||||
legal_documents.create(
|
||||
document_type: legal_document_data[:type],
|
||||
body: legal_document_data[:body]
|
||||
)
|
||||
end
|
||||
|
||||
def add_legal_file_to_new frame
|
||||
legal_document_data = Epp::Domain.parse_legal_document_from_frame(frame)
|
||||
return unless legal_document_data
|
||||
|
||||
doc = LegalDocument.create(
|
||||
documentable_type: Contact,
|
||||
document_type: legal_document_data[:type],
|
||||
body: legal_document_data[:body]
|
||||
)
|
||||
self.legal_documents = [doc]
|
||||
|
||||
frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
|
||||
self.legal_document_id = doc.id
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -133,7 +133,8 @@ class Epp::Domain < Domain
|
|||
[:base, :ds_data_not_allowed],
|
||||
[:base, :key_data_not_allowed],
|
||||
[:period, :not_a_number],
|
||||
[:period, :not_an_integer]
|
||||
[:period, :not_an_integer],
|
||||
[:registrant, :cannot_be_missing]
|
||||
],
|
||||
'2308' => [
|
||||
[:base, :domain_name_blocked, { value: { obj: 'name', val: name_dirty } }]
|
||||
|
@ -155,7 +156,8 @@ class Epp::Domain < Domain
|
|||
def attrs_from(frame, current_user, action = nil)
|
||||
at = {}.with_indifferent_access
|
||||
|
||||
code = frame.css('registrant').first.try(:text)
|
||||
registrant_frame = frame.css('registrant').first
|
||||
code = registrant_frame.try(:text)
|
||||
if code.present?
|
||||
if action == 'chg' && registrant_change_prohibited?
|
||||
add_epp_error('2304', nil, DomainStatus::SERVER_REGISTRANT_CHANGE_PROHIBITED, I18n.t(:object_status_prohibits_operation))
|
||||
|
@ -166,7 +168,10 @@ class Epp::Domain < Domain
|
|||
else
|
||||
add_epp_error('2303', 'registrant', code, [:registrant, :not_found])
|
||||
end
|
||||
end
|
||||
else
|
||||
add_epp_error('2306', nil, nil, [:registrant, :cannot_be_missing])
|
||||
end if registrant_frame
|
||||
|
||||
|
||||
at[:name] = frame.css('name').text if new_record?
|
||||
at[:registrar_id] = current_user.registrar.try(:id)
|
||||
|
@ -195,9 +200,27 @@ class Epp::Domain < Domain
|
|||
end
|
||||
|
||||
at[:dnskeys_attributes] = dnskeys_attrs(dnskey_frame, action)
|
||||
at[:legal_documents_attributes] = legal_document_from(frame)
|
||||
|
||||
at
|
||||
end
|
||||
|
||||
|
||||
# Adding legal doc to domain and
|
||||
# if something goes wrong - raise Rollback error
|
||||
def add_legal_file_to_new frame
|
||||
legal_document_data = Epp::Domain.parse_legal_document_from_frame(frame)
|
||||
return unless legal_document_data
|
||||
|
||||
doc = LegalDocument.create(
|
||||
documentable_type: Domain,
|
||||
document_type: legal_document_data[:type],
|
||||
body: legal_document_data[:body]
|
||||
)
|
||||
self.legal_documents = [doc]
|
||||
|
||||
frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
|
||||
self.legal_document_id = doc.id
|
||||
end
|
||||
# rubocop: enable Metrics/PerceivedComplexity
|
||||
# rubocop: enable Metrics/CyclomaticComplexity
|
||||
# rubocop: enable Metrics/MethodLength
|
||||
|
@ -457,15 +480,6 @@ class Epp::Domain < Domain
|
|||
status_list
|
||||
end
|
||||
|
||||
def legal_document_from(frame)
|
||||
ld = frame.css('legalDocument').first
|
||||
return [] unless ld
|
||||
|
||||
[{
|
||||
body: ld.text,
|
||||
document_type: ld['type']
|
||||
}]
|
||||
end
|
||||
|
||||
# rubocop: disable Metrics/AbcSize
|
||||
# rubocop: disable Metrics/CyclomaticComplexity
|
||||
|
@ -477,6 +491,7 @@ class Epp::Domain < Domain
|
|||
|
||||
if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame))
|
||||
frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
|
||||
self.legal_document_id = doc.id
|
||||
end
|
||||
|
||||
at_add = attrs_from(frame.css('add'), current_user, 'add')
|
||||
|
@ -489,6 +504,11 @@ class Epp::Domain < Domain
|
|||
|
||||
# at[:statuses] += at_add[:domain_statuses_attributes]
|
||||
|
||||
if errors.empty? && verify
|
||||
self.upid = current_user.registrar.id if current_user.registrar
|
||||
self.up_date = Time.zone.now
|
||||
end
|
||||
|
||||
if registrant_id && registrant.code == frame.css('registrant')
|
||||
|
||||
throw :epp_error, {
|
||||
|
@ -515,19 +535,23 @@ class Epp::Domain < Domain
|
|||
preclean_pendings
|
||||
user = ApiUser.find(pending_json['current_user_id'])
|
||||
frame = Nokogiri::XML(pending_json['frame'])
|
||||
old_registrant_id = registrant_id
|
||||
|
||||
self.deliver_emails = true # turn on email delivery
|
||||
self.statuses.delete(DomainStatus::PENDING_UPDATE)
|
||||
self.upid = user.registrar.id if user.registrar
|
||||
self.up_date = Time.zone.now
|
||||
::PaperTrail.whodunnit = user.id_role_username # updator str should be the request originator not the approval user
|
||||
|
||||
send_mail :registrant_updated_notification_for_old_registrant
|
||||
return unless update(frame, user, false)
|
||||
clean_pendings!
|
||||
|
||||
send_mail :registrant_updated_notification_for_new_registrant
|
||||
WhoisRecord.find_by(domain_id: id).save # need to reload model
|
||||
|
||||
save! # for notification if everything fails
|
||||
|
||||
WhoisRecord.find_by(domain_id: id).save # need to reload model
|
||||
DomainMailer.registrant_updated_notification_for_old_registrant(id, old_registrant_id, registrant_id, true).deliver
|
||||
DomainMailer.registrant_updated_notification_for_new_registrant(id, old_registrant_id, registrant_id, true).deliver
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
|
@ -576,7 +600,7 @@ class Epp::Domain < Domain
|
|||
msg: I18n.t(:object_status_prohibits_operation)
|
||||
} unless pending_deletable?
|
||||
|
||||
self.delete_at = Time.zone.now + Setting.redemption_grace_period.days
|
||||
self.delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day
|
||||
set_pending_delete
|
||||
set_server_hold if server_holdable?
|
||||
save(validate: false)
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
class LegalDocument < ActiveRecord::Base
|
||||
include EppErrors
|
||||
MIN_BODY_SIZE = (1.37 * 3.kilobytes).ceil
|
||||
|
||||
if ENV['legal_document_types'].present?
|
||||
TYPES = ENV['legal_document_types'].split(',').map(&:strip)
|
||||
else
|
||||
|
@ -10,11 +13,22 @@ class LegalDocument < ActiveRecord::Base
|
|||
belongs_to :documentable, polymorphic: true
|
||||
|
||||
|
||||
validates :body, length: { minimum: (1.37 * 8.kilobytes).ceil }, if: ->(file){ file.path.blank? && !Rails.env.staging?}
|
||||
validate :val_body_length, if: ->(file){ file.path.blank? && !Rails.env.staging?}
|
||||
|
||||
before_create :add_creator
|
||||
before_save :save_to_filesystem
|
||||
|
||||
def epp_code_map
|
||||
{
|
||||
'2306' => [
|
||||
[:body, :length]
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
def val_body_length
|
||||
errors.add(:body, :length) if body.nil? || body.size < MIN_BODY_SIZE
|
||||
end
|
||||
|
||||
|
||||
def save_to_filesystem
|
||||
|
|
|
@ -12,4 +12,8 @@ class Message < ActiveRecord::Base
|
|||
self.queued = false
|
||||
save
|
||||
end
|
||||
|
||||
def name
|
||||
"-"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ class Nameserver < ActiveRecord::Base
|
|||
# scope :owned_by_registrar, -> (registrar) { joins(:domain).where('domains.registrar_id = ?', registrar.id) }
|
||||
|
||||
# rubocop: disable Metrics/LineLength
|
||||
validates :hostname, format: { with: /\A(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])\z/ }
|
||||
validates :hostname, format: { with: /\A(([a-zA-Z0-9]|[a-zA-ZäöüõšžÄÖÜÕŠŽ0-9][a-zA-ZäöüõšžÄÖÜÕŠŽ0-9\-]*[a-zA-ZäöüõšžÄÖÜÕŠŽ0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])\z/ }
|
||||
# validates :ipv4, format: { with: /\A(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\z/, allow_blank: true }
|
||||
# validates :ipv6, format: { with: /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/, allow_blank: true }
|
||||
validate :val_ipv4
|
||||
|
@ -16,7 +16,9 @@ class Nameserver < ActiveRecord::Base
|
|||
# rubocop: enable Metrics/LineLength
|
||||
|
||||
before_validation :normalize_attributes
|
||||
|
||||
before_validation :check_puny_symbols
|
||||
before_validation :check_label_length
|
||||
|
||||
delegate :name, to: :domain, prefix: true
|
||||
|
||||
def epp_code_map
|
||||
|
@ -26,10 +28,11 @@ class Nameserver < ActiveRecord::Base
|
|||
],
|
||||
'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 } }]
|
||||
],
|
||||
'2306' => [
|
||||
'2003' => [
|
||||
[:ipv4, :blank]
|
||||
]
|
||||
}
|
||||
|
@ -41,10 +44,26 @@ class Nameserver < ActiveRecord::Base
|
|||
self.ipv6 = Array(ipv6).reject(&:blank?).map(&:strip).map(&:upcase)
|
||||
end
|
||||
|
||||
def check_label_length
|
||||
hostname_puny.split('.').each do |label|
|
||||
errors.add(:hostname, :puny_to_long) if label.length > 63
|
||||
end
|
||||
end
|
||||
|
||||
def check_puny_symbols
|
||||
regexp = /(\A|\.)..--/
|
||||
errors.add(:hostname, :invalid) if hostname =~ regexp
|
||||
end
|
||||
|
||||
def to_s
|
||||
hostname
|
||||
end
|
||||
|
||||
def hostname=(hostname)
|
||||
self[:hostname] = SimpleIDN.to_unicode(hostname)
|
||||
self[:hostname_puny] = SimpleIDN.to_ascii(hostname)
|
||||
end
|
||||
|
||||
def val_ipv4
|
||||
regexp = /\A(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\z/
|
||||
ipv4.to_a.each do |ip|
|
||||
|
|
|
@ -8,6 +8,8 @@ class Pricelist < ActiveRecord::Base
|
|||
)
|
||||
}
|
||||
|
||||
scope :valid_at, ->(time){ where("valid_from IS NULL OR valid_from <= ?", time).where("valid_to IS NULL OR valid_to >= ?", time) }
|
||||
|
||||
monetize :price_cents
|
||||
|
||||
validates :price_cents, :price_currency, :price,
|
||||
|
@ -27,6 +29,14 @@ class Pricelist < ActiveRecord::Base
|
|||
"#{operation_category} #{category}"
|
||||
end
|
||||
|
||||
def years_amount
|
||||
duration.to_i
|
||||
end
|
||||
|
||||
def price_decimal
|
||||
price_cents / BigDecimal.new('100')
|
||||
end
|
||||
|
||||
class << self
|
||||
def pricelist_for(zone, operation, period)
|
||||
lists = valid.where(category: zone, operation_category: operation, duration: period)
|
||||
|
|
|
@ -30,10 +30,20 @@ class RegistrantUser < User
|
|||
return false if issuer_organization != ACCEPTED_ISSUER
|
||||
|
||||
idc_data.force_encoding('UTF-8')
|
||||
identity_code = idc_data.scan(/serialNumber=(\d+)/).flatten.first
|
||||
country = idc_data.scan(/^\/C=(.{2})/).flatten.first
|
||||
first_name = idc_data.scan(%r{/GN=(.+)/serialNumber}).flatten.first
|
||||
last_name = idc_data.scan(%r{/SN=(.+)/GN}).flatten.first
|
||||
|
||||
# handling here new and old mode
|
||||
if idc_data.starts_with?("/")
|
||||
identity_code = idc_data.scan(/serialNumber=(\d+)/).flatten.first
|
||||
country = idc_data.scan(/^\/C=(.{2})/).flatten.first
|
||||
first_name = idc_data.scan(%r{/GN=(.+)/serialNumber}).flatten.first
|
||||
last_name = idc_data.scan(%r{/SN=(.+)/GN}).flatten.first
|
||||
else
|
||||
parse_str = "," + idc_data
|
||||
identity_code = parse_str.scan(/,serialNumber=(\d+)/).flatten.first
|
||||
country = parse_str.scan(/,C=(.{2})/).flatten.first
|
||||
first_name = parse_str.scan(/,GN=([^,]+)/).flatten.first
|
||||
last_name = parse_str.scan(/,SN=([^,]+)/).flatten.first
|
||||
end
|
||||
|
||||
u = where(registrant_ident: "#{country}-#{identity_code}").first_or_create
|
||||
u.username = "#{first_name} #{last_name}"
|
||||
|
|
|
@ -65,7 +65,7 @@ class ReservedDomain < ActiveRecord::Base
|
|||
def generate_json
|
||||
h = HashWithIndifferentAccess.new
|
||||
h[:name] = self.name
|
||||
h[:status] = 'Reserved'
|
||||
h[:status] = ['Reserved']
|
||||
h
|
||||
end
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
%thead
|
||||
%tr
|
||||
%th{class: 'col-xs-2'}
|
||||
= sort_link(@q, 'registrar')
|
||||
= sort_link(@q, 'account_registrar_code', t(:registrar))
|
||||
%th{class: 'col-xs-3'}
|
||||
= sort_link(@q, 'description')
|
||||
%th{class: 'col-xs-2'}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- statuses_link ||= false
|
||||
-#- statuses_link ||= false
|
||||
- version ||= false
|
||||
- domain ||= false
|
||||
- pending_user ||= false
|
||||
|
@ -21,7 +21,12 @@
|
|||
- dnskeys = domain.dnskeys
|
||||
- tech_contacts = domain.tech_contacts
|
||||
- admin_contacts = domain.admin_contacts
|
||||
- registrant = [domain.registrant]
|
||||
- registrant = domain.registrant
|
||||
- unless registrant
|
||||
- ver = ContactVersion.where(item_id: domain.registrant_id).where(event: :destroy).last
|
||||
- registrant = ver.reify
|
||||
- registrant.version_loader = ver
|
||||
- registrant = [registrant]
|
||||
- creator = pending_user.try(:username)
|
||||
- event = 'pending'
|
||||
- whodunnit = false
|
||||
|
@ -29,7 +34,7 @@
|
|||
%td
|
||||
%p.nowrap
|
||||
= l(domain.updated_at, format: :shorts)
|
||||
- if statuses_link
|
||||
-#- if statuses_link
|
||||
%br= link_to t(:edit_statuses), edit_admin_domain_path(params[:domain_id])
|
||||
|
||||
%p.text-right
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
%th{class: 'col-xs-2'}= t(:registrar)
|
||||
|
||||
%tbody
|
||||
- if @pending_domain.present?
|
||||
-#- if @pending_domain.present?
|
||||
%tr.small
|
||||
= render 'admin/domains/partials/version',
|
||||
domain: @pending_domain, pending_user: @pending_user, statuses_link: true
|
||||
|
|
|
@ -11,8 +11,10 @@
|
|||
= f.select :request_command_eq, [[t(:choose),''], 'hello', 'login', 'logout', 'info', 'create', 'update', 'delete', 'check', 'renew', 'transfer', 'poll', 'keyrelay'], {}, class: 'form-control selectize', placeholder: t(:choose)
|
||||
.col-md-3
|
||||
.form-group
|
||||
- opts = [[t(:choose),''], 'contact', 'domain', 'poll', 'keyrelay']
|
||||
- opts += [params[:q][:request_object_cont]] if params[:q].present? && params[:q][:request_object_cont].present?
|
||||
= f.label :request_object
|
||||
= f.select :request_object_eq, [[t(:choose),''], 'contact', 'domain', 'poll', 'keyrelay'], {}, class: 'form-control selectize', placeholder: t(:choose)
|
||||
= f.select :request_object_cont, opts, {}, class: 'form-control selectize_create', placeholder: t(:choose)
|
||||
.col-md-3
|
||||
.form-group
|
||||
= f.label :request_successful
|
||||
|
@ -29,11 +31,11 @@
|
|||
.col-md-3
|
||||
.form-group
|
||||
= f.label t(:created_after)
|
||||
= f.search_field :created_at_gteq, class: 'form-control', placeholder: t(:created_after), autocomplete: 'off'
|
||||
= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control datepicker', placeholder: t(:created_after), autocomplete: 'off'
|
||||
.col-md-3
|
||||
.form-group
|
||||
= f.label t(:created_before)
|
||||
= f.search_field :created_at_lteq, class: 'form-control', placeholder: t(:created_before), autocomplete: 'off'
|
||||
= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control datepicker', placeholder: t(:created_before), autocomplete: 'off'
|
||||
.col-md-3{style: 'padding-top: 25px;'}
|
||||
%button.btn.btn-primary
|
||||
|
||||
|
|
|
@ -82,6 +82,11 @@
|
|||
= f.label :code
|
||||
.col-md-7
|
||||
= f.text_field(:code, class: 'form-control', disabled: !f.object.new_record?)
|
||||
.form-group
|
||||
.col-md-4.control-label
|
||||
= f.label :test_registrar
|
||||
.col-md-7
|
||||
= f.check_box :test_registrar, class: 'form-control'
|
||||
|
||||
%hr
|
||||
.row
|
||||
|
|
|
@ -14,12 +14,15 @@
|
|||
= sort_link(@q, 'reg_no', t(:reg_no))
|
||||
%th{class: 'col-xs-4'}
|
||||
= t(:credit_balance)
|
||||
%th{class: 'col-xs-4'}
|
||||
= t(:test_registrar)
|
||||
%tbody
|
||||
- @registrars.each do |x|
|
||||
%tr
|
||||
%td= link_to(x, [:admin, x])
|
||||
%td= x.reg_no
|
||||
%td= "#{x.balance}"
|
||||
%td= "#{x.test_registrar}"
|
||||
.row
|
||||
.col-md-12
|
||||
= paginate @registrars
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
= link_to(t(:edit), edit_admin_registrar_path(@registrar), class: 'btn btn-primary')
|
||||
= link_to(t(:delete), admin_registrar_path(@registrar),
|
||||
method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger')
|
||||
- content_for :page_name do
|
||||
= @registrar.name
|
||||
- if @registrar.test_registrar?
|
||||
%span{style: "color: #c9302c;"} (test)
|
||||
= render 'shared/title', name: @registrar.name
|
||||
|
||||
- if @registrar.errors.any?
|
||||
|
|
|
@ -29,11 +29,11 @@
|
|||
.col-md-3
|
||||
.form-group
|
||||
= f.label t(:created_after)
|
||||
= f.search_field :created_at_gteq, class: 'form-control', placeholder: t(:created_after), autocomplete: 'off'
|
||||
= f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control datepicker', placeholder: t(:created_after), autocomplete: 'off'
|
||||
.col-md-3
|
||||
.form-group
|
||||
= f.label t(:created_before)
|
||||
= f.search_field :created_at_lteq, class: 'form-control', placeholder: t(:created_before), autocomplete: 'off'
|
||||
= f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control datepicker', placeholder: t(:created_before), autocomplete: 'off'
|
||||
.col-md-3{style: 'padding-top: 25px;'}
|
||||
%button.btn.btn-primary
|
||||
|
||||
|
|
|
@ -69,6 +69,9 @@
|
|||
%tbody
|
||||
= render 'setting_row', var: :invoice_number_min
|
||||
= render 'setting_row', var: :invoice_number_max
|
||||
= render 'setting_row', var: :directo_monthly_number_min
|
||||
= render 'setting_row', var: :directo_monthly_number_max
|
||||
= render 'setting_row', var: :directo_monthly_number_last
|
||||
= render 'setting_row', var: :days_to_keep_invoices_active
|
||||
= render 'setting_row', var: :days_to_keep_overdue_invoices_active
|
||||
= render 'setting_row', var: :minimum_deposit
|
||||
|
|
|
@ -9,15 +9,11 @@ xml.epp_head do
|
|||
xml.msg @message.body
|
||||
end
|
||||
|
||||
xml.resData do
|
||||
case @message.attached_obj_type
|
||||
when 'DomainTransfer'
|
||||
xml << render('epp/domains/partials/transfer', builder: xml, dt: @object)
|
||||
when 'DomainVersion'
|
||||
xml << render('epp/domains/partials/delete_complete', builder: xml, bye_bye: @object)
|
||||
end
|
||||
end if @object
|
||||
|
||||
if @message.attached_obj_type == 'DomainTransfer'
|
||||
xml.resData do
|
||||
xml << render('epp/domains/partials/transfer', builder: xml, dt: @object)
|
||||
end if @object
|
||||
end
|
||||
render('epp/shared/trID', builder: xml)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
%li= link_to t(:pricelists), admin_pricelists_path
|
||||
%li= link_to t(:bank_statements), admin_bank_statements_path
|
||||
%li= link_to t(:invoices), admin_invoices_path
|
||||
%li= link_to t(:account_activities), admin_account_activities_path
|
||||
%li= link_to t(:account_activities), admin_account_activities_path(created_after: 'today')
|
||||
%li.divider
|
||||
%li.dropdown-header= t(:archive)
|
||||
%li= link_to t(:domains_history), admin_domain_versions_path
|
||||
|
@ -68,8 +68,8 @@
|
|||
%li= link_to t(:reserved_domains), admin_reserved_domains_path
|
||||
%li= link_to t(:mail_templates), admin_mail_templates_path
|
||||
-# %li= link_to t(:domains_history), admin_domain_versions_path
|
||||
%li= link_to t(:epp_logs), admin_epp_logs_path
|
||||
%li= link_to t(:repp_logs), admin_repp_logs_path
|
||||
%li= link_to t(:epp_logs), admin_epp_logs_path(created_after: 'today')
|
||||
%li= link_to t(:repp_logs), admin_repp_logs_path(created_after: 'today')
|
||||
%li= link_to t(:que), '/admin/que'
|
||||
|
||||
- if signed_in?
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
Tere <%= @contact.name %>
|
||||
<br><br>
|
||||
Kontakti <%= @contact.name %> eposti aadress on muudetud<br>
|
||||
Kontakti <%= @contact.name %> e-posti aadress on muudetud<br>
|
||||
endine aadress: <%= @old_email %><br>
|
||||
uus aadress: <%= @contact.email %>
|
||||
<br><br>
|
||||
Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotluseid omaniku vahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduga oma registripidaja poole. Teie registripidaja on <%= @contact.registrar.name %>
|
||||
E-posti aadressile saadetakse domeeni toimingutega seotud infot, sealhulgas kinnitustaotlused omanikuvahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @contact.registrar.name %> poole.
|
||||
<br><br>
|
||||
<% if @contact.related_domain_descriptions.present? %>
|
||||
Muudatusega seotud domeenid:<br>
|
||||
|
@ -16,14 +16,14 @@ Muudatusega seotud domeenid:<br>
|
|||
Kontaktandmed:<br>
|
||||
Nimi: <%= @contact.name %><br>
|
||||
Isikukood: <%= @contact.ident %><br>
|
||||
Epost: <%= @contact.email %><br>
|
||||
E-post: <%= @contact.email %><br>
|
||||
Tel: <%= @contact.phone %><br>
|
||||
Tänav: <%= @contact.street %><br>
|
||||
Linn: <%= @contact.city %><br>
|
||||
Riik: <%= @contact.country %>
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
|
@ -52,4 +52,4 @@ City: <%= @contact.city %><br>
|
|||
Country: <%= @contact.country %>
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Eesti Interneti SA
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
Tere <%= @contact.name %>
|
||||
|
||||
Kontakti <%= @contact.name %> eposti aadress on muudetud
|
||||
Kontakti <%= @contact.name %> e-posti aadress on muudetud
|
||||
endine aadress: <%= @old_email %>
|
||||
uus aadress: <%= @contact.email %>
|
||||
|
||||
Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotluseid omaniku vahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduga oma registripidaja poole. Teie registripidaja on <%= @contact.registrar.name %>
|
||||
E-posti aadressile saadetakse domeeni toimingutega seotud infot, sealhulgas kinnitustaotlused omanikuvahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @contact.registrar.name %> poole.
|
||||
|
||||
<% if @contact.related_domain_descriptions.present? %>
|
||||
Muudatusega seotud domeenid:
|
||||
|
@ -16,14 +16,14 @@ Muudatusega seotud domeenid:
|
|||
Kontaktandmed:
|
||||
Nimi: <%= @contact.name %>
|
||||
Isikukood: <%= @contact.ident %>
|
||||
Epost: <%= @contact.email %>
|
||||
E-post: <%= @contact.email %>
|
||||
Tel: <%= @contact.phone %>
|
||||
Tänav: <%= @contact.street %>
|
||||
Linn: <%= @contact.city %>
|
||||
Riik: <%= @contact.country %>
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
@ -52,4 +52,4 @@ City: <%= @contact.city %>
|
|||
Country: <%= @contact.country %>
|
||||
|
||||
Best Regards,
|
||||
Eesti Interneti SA
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija poolt kinnitatud. Domeen <%= @domain.name %> on peatatud ja kustub registrist.
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Domain <%= @domain.name %> deletion confirmed and will be deleted.
|
||||
Domain <%= @domain.name %> deletion is confirmed by the registrant. Domain <%= @domain.name %> is suspended and will be deleted.
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija poolt kinnitatud. Domeen <%= @domain.name %> on peatatud ja kustub registrist.
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Domain <%= @domain.name %> deletion confirmed and will be deleted.
|
||||
Domain <%= @domain.name %> deletion is confirmed by the registrant. Domain <%= @domain.name %> is suspended and will be deleted.
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -14,13 +14,8 @@ Registripidaja: <%= @domain.registrar.name %><br>
|
|||
Nimeserverid: <%= @domain.nameservers.join(', ') %><br>
|
||||
Ülevaate kõikidest endaga seotud domeenidest saate registreerija portaalist. <%= ENV['registrant_url'] %>.<br>
|
||||
<br><br>
|
||||
Parimate soovidega
|
||||
<br><br>
|
||||
Eesti Interneti Sihtasutus<br>
|
||||
Paldiski mnt 80, 10617 Tallinn<br>
|
||||
Registrikood: 90010019<br>
|
||||
E-post: info@internet.ee<br>
|
||||
Tel: +372 727 1000<br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
|
@ -29,7 +24,7 @@ Dear user of .ee domain,<br>
|
|||
<br>
|
||||
The domain name <%= @domain.name %> has expired and will not be available on the Internet from <%= l(@domain.outzone_at, format: :date) %>. From <%= l(@domain.delete_at, format: :date) %>, the <%= @domain.name %> domain will be available for registration on a first come first served basis.
|
||||
<br><br>
|
||||
To renew the domain registration, please contact your registrar <%= @domain.registrar.name %>. You can find the registrar's contacts at http://www.internet.ee/en/registripidajad/.
|
||||
To renew the domain registration, please contact your registrar <%= @domain.registrar.name %>. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
<br><br>
|
||||
The following data for the <%= @domain.name %> domain have been entered into the registry:
|
||||
<br><br>
|
||||
|
@ -40,13 +35,8 @@ Registrar: <%= @domain.registrar.name %><br>
|
|||
Name servers: <%= @domain.nameservers.join(', ') %><br>
|
||||
You can find an overview of all your domains at the registrant's portal. <%= ENV['registrant_url'] %>.<br>
|
||||
<br><br>
|
||||
Sincerely
|
||||
<br><br>
|
||||
Estonian Internet Foundation<br>
|
||||
Paldiski mnt 80, 10617 Tallinn<br>
|
||||
Business Registry no: 90010019<br>
|
||||
E-mail: info@internet.ee<br>
|
||||
Phone: +372 727 1000<br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
|
@ -55,7 +45,7 @@ Phone: +372 727 1000<br>
|
|||
<br>
|
||||
Доменное имя <%= @domain.name %> устарело и с <%= l(@domain.outzone_at, format: :date) %> недоступно в Интернете. С <%= l(@domain.delete_at, format: :date) %> домен <%= @domain.name %> доступен для регистрации всем желающим по принципу "first come, first served".
|
||||
<br><br>
|
||||
Для продления регистрации домена просим обратиться к своему регистратору <%= @domain.registrar.name %>. Контактные данные регистраторов можно найти по адресу http://www.internet.ee/ru/p/.
|
||||
Для продления регистрации домена просим обратиться к своему регистратору <%= @domain.registrar.name %>. Контактные данные регистраторов можно найти по адресу http://internet.ee/registratory.
|
||||
<br><br>
|
||||
Относительно домена <%= @domain.name %> в реестр внесены следующие данные:
|
||||
<br><br>
|
||||
|
@ -66,10 +56,5 @@ Phone: +372 727 1000<br>
|
|||
Серверы доменных имен: <%= @domain.nameservers.join(', ') %><br>
|
||||
Обзор всех связанных с Вами доменов можете получить на портале регистранта. <%= ENV['registrant_url'] %>.<br>
|
||||
<br><br>
|
||||
С наилучшими пожеланиями
|
||||
<br><br>
|
||||
Целевое учреждение Eesti Internet<br>
|
||||
Paldiski mnt 80, 10617 Tallinn<br>
|
||||
Регистрационный код: 90010019<br>
|
||||
Э-почта: info@internet.ee<br>
|
||||
Тел.: +372 727 1000<br>
|
||||
С наилучшими пожеланиями<br>
|
||||
Целевое учреждение Eesti Internet
|
||||
|
|
|
@ -15,12 +15,7 @@ Nimeserverid: <%= @domain.nameservers.join(', ') %>
|
|||
Ülevaate kõikidest endaga seotud domeenidest saate registreerija portaalist. <%= ENV['registrant_url'] %>.
|
||||
|
||||
Parimate soovidega
|
||||
|
||||
Eesti Interneti Sihtasutus
|
||||
Paldiski mnt 80, 10617 Tallinn
|
||||
Registrikood: 90010019
|
||||
E-post: info@internet.ee
|
||||
Tel: +372 727 1000
|
||||
|
||||
--------------------------------------
|
||||
|
||||
|
@ -29,7 +24,7 @@ Dear user of .ee domain,
|
|||
|
||||
The domain name <%= @domain.name %> has expired and will not be available on the Internet from <%= l(@domain.outzone_at, format: :date) %>. From <%= l(@domain.delete_at, format: :date) %>, the <%= @domain.name %> domain will be available for registration on a first come first served basis.
|
||||
|
||||
To renew the domain registration, please contact your registrar <%= @domain.registrar.name %>. You can find the registrar's contacts at http://www.internet.ee/en/registripidajad/.
|
||||
To renew the domain registration, please contact your registrar <%= @domain.registrar.name %>. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
|
||||
The following data for the <%= @domain.name %> domain have been entered into the registry:
|
||||
|
||||
|
@ -40,13 +35,8 @@ Registrar: <%= @domain.registrar.name %>
|
|||
Name servers: <%= @domain.nameservers.join(', ') %>
|
||||
You can find an overview of all your domains at the registrant's portal. <%= ENV['registrant_url'] %>.
|
||||
|
||||
Sincerely
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
Paldiski mnt 80, 10617 Tallinn
|
||||
Business Registry no: 90010019
|
||||
E-mail: info@internet.ee
|
||||
Phone: +372 727 1000
|
||||
|
||||
--------------------------------------
|
||||
|
||||
|
@ -55,7 +45,7 @@ Phone: +372 727 1000
|
|||
|
||||
Доменное имя <%= @domain.name %> устарело и с <%= l(@domain.outzone_at, format: :date) %> недоступно в Интернете. С <%= l(@domain.delete_at, format: :date) %> домен <%= @domain.name %> доступен для регистрации всем желающим по принципу "first come, first served".
|
||||
|
||||
Для продления регистрации домена просим обратиться к своему регистратору <%= @domain.registrar.name %>. Контактные данные регистраторов можно найти по адресу http://www.internet.ee/ru/p/.
|
||||
Для продления регистрации домена просим обратиться к своему регистратору <%= @domain.registrar.name %>. Контактные данные регистраторов можно найти по адресу http://internet.ee/registratory.
|
||||
|
||||
Относительно домена <%= @domain.name %> в реестр внесены следующие данные:
|
||||
|
||||
|
@ -67,9 +57,4 @@ Phone: +372 727 1000
|
|||
Обзор всех связанных с Вами доменов можете получить на портале регистранта. <%= ENV['registrant_url'] %>.
|
||||
|
||||
С наилучшими пожеланиями
|
||||
|
||||
Целевое учреждение Eesti Internet
|
||||
Paldiski mnt 80, 10617 Tallinn
|
||||
Регистрационный код: 90010019
|
||||
Э-почта: info@internet.ee
|
||||
Тел.: +372 727 1000
|
|
@ -9,33 +9,33 @@
|
|||
|
||||
<strong>Lugupeetud domeeni <%= @domain.name %> kontaktisik</strong>
|
||||
|
||||
<p>Eesti Interneti SA (EIS) domeeniregistrisse on domeeni <b><%= @domain.name %></b> kohta kantud järgmised andmed:</p>
|
||||
<p>.ee domeeniregistrisse on domeeni <b><%= @domain.name %></b> kohta kantud järgmised andmed:</p>
|
||||
|
||||
<p>Registreerija nimi: <b><%= @domain.registrant %></b><br />
|
||||
Registrikood: <b><%= @domain.registrant.try(:ident) %></b></p>
|
||||
|
||||
<p>EIS-le on saanud teatavaks, et juriidiline isik registrikoodiga <b><%= @domain.registrant.try(:ident) %></b> on äriregistrist kustutatud.</p>
|
||||
<p>Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et juriidiline isik registrikoodiga <b><%= @domain.registrant.try(:ident) %></b> on äriregistrist kustutatud.</p>
|
||||
|
||||
<p>Kuivõrd äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, siis algatas EIS <b><%= l(Time.zone.now, format: :date) %></b> vastavalt Domeenireeglite (<a href="http://www.internet.ee/domeenid/" target="_blank">http://www.internet.ee/domeenid/</a>) punktile 6.4 domeeni <b><%= @domain.name %></b> suhtes 30 päeva pikkuse kustutusmenetluse. Kustutamise käigus jääb domeen internetis kättesaadavaks.</p>
|
||||
|
||||
<p>Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <b><%= @domain.name %></b> registripidajale <b><%= @domain.registrar %></b> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleks esitada Registripidajale esimesel võimalusel.</p>
|
||||
<p>Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <b><%= @domain.name %></b> registripidajale <b><%= @domain.registrar %></b> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleb esitada Registripidajale esimesel võimalusel.</p>
|
||||
|
||||
<p>Kui üleandmine ei ole 30 päeva jooksul toimunud, kustub domeen <b><%= @domain.name %></b> 24 tunni jooksul <b><%= l(@domain.force_delete_at, format: :date) %></b> möödumisest juhuslikult valitud ajahetkel. Soovi korral on võimalik domeen pärast selle kustumist registrist “kes ees, see mees” põhimõttel uuesti registreerida.</p>
|
||||
|
||||
<p>Lisaküsimuste korral võtke palun ühendust oma registripidajaga <%= @domain.registrar %>, kelle kontaktandmed leiate lingilt <a href="http://www.internet.ee/registripidajad" target="_blank">http://www.internet.ee/registripidajad</a></p><br /><br />
|
||||
<p>Lisaküsimuste korral võtke palun ühendust oma registripidajaga <%= @domain.registrar %>. Registripidajate kontaktid leiate aadressilt <a href="http://www.internet.ee/registripidajad" target="_blank">http://www.internet.ee/registripidajad</a></p><br /><br />
|
||||
|
||||
|
||||
|
||||
<strong>Dear contact of <%= @domain.name %> domain</strong>
|
||||
|
||||
<p>The following details for domain name <b><%= @domain.name %></b> have been entered into the Estonian Internet Foundation's (EIF) domain registry:</p>
|
||||
<p>The following details for domain name <b><%= @domain.name %></b> have been entered into the .ee domain registry:</p>
|
||||
|
||||
<p>Registrant's name: <b><%= @domain.registrant %></b><br />
|
||||
Registry code: <b><%= @domain.registrant.try(:ident) %></b></p>
|
||||
|
||||
<p>EIF has learned that the legal person with registry code <b><%= @domain.registrant.try(:ident) %></b> has been deleted from the Business Registry.</p>
|
||||
<p>Estonian Internet Foundation (EIS) has learned that the legal person with registry code <b><%= @domain.registrant.try(:ident) %></b> has been deleted from the Business Registry.</p>
|
||||
|
||||
<p>As a terminated legal person cannot be the registrant of a domain, the EIF started the deletion process of <b><%= @domain.name %></b> domain on <b><%= l(Time.zone.now, format: :date) %></b> according to the Domain Regulation (<a href="http://www.internet.ee/domains/" target="_blank">http://www.internet.ee/domains/</a>), using the 30-day delete procedure. The domain will remain available on the Internet during the delete procedure.</p>
|
||||
<p>As a terminated legal person cannot be the registrant of a domain, the EIS started the deletion process of <b><%= @domain.name %></b> domain on <b><%= l(Time.zone.now, format: :date) %></b> according to the Domain Regulation (<a href="http://www.internet.ee/domains/" target="_blank">http://www.internet.ee/domains/</a>), using the 30-day delete procedure. The domain will remain available on the Internet during the delete procedure.</p>
|
||||
|
||||
<p>According to paragraph 6.4 of the Domain Regulation, the registrant holding a right to the domain name <b><%= @domain.name %></b> can submit a domain name transfer application to the registrar <b><%= @domain.registrar %></b> in accordance with paragraph 5.3.6.2 of the Domain Regulation. The application must be submitted together with documents certifying the acquisition of the domain that will replace the consent of the surrendering registrant as laid down in paragraph 5.3.6.3 of the Domain Regulation. The relevant documents should be submitted to the registrar as soon as possible.</p>
|
||||
|
||||
|
@ -65,9 +65,9 @@ Registry code: <b><%= @domain.registrant.try(:ident) %></b></p>
|
|||
<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" style="text-align: justify; line-height: 16px; font-size: 12px;"><tbody>
|
||||
<tr><td align="left" valign="top">
|
||||
<p><strong>Lugupidamisega,<br />
|
||||
Yours Sincerely,<br />
|
||||
Best Regards,<br />
|
||||
С уважением,</strong></p>
|
||||
<p><i>Eesti Interneti SA<br />
|
||||
<p><i>Eesti Interneti Sihtasutus<br />
|
||||
Estonian Internet Foundation</i></p>
|
||||
</td><td></td></tr>
|
||||
</tbody>
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
Lugupeetud domeeni <%= @domain.name %> kontaktisik
|
||||
|
||||
Eesti Interneti SA (EIS) domeeniregistrisse on domeeni <%= @domain.name %> kohta kantud järgmised andmed:
|
||||
.ee domeeniregistrisse on domeeni <%= @domain.name %> kohta kantud järgmised andmed:
|
||||
|
||||
Registreerija nimi: <%= @domain.registrant %>
|
||||
Registrikood: <%= @domain.registrant.try(:ident) %>
|
||||
|
||||
EIS-le on saanud teatavaks, et juriidiline isik registrikoodiga <%= @domain.registrant.try(:ident) %> on äriregistrist kustutatud.
|
||||
Eesti Interneti Sihtasutusele (EIS) on saanud teatavaks, et juriidiline isik registrikoodiga <%= @domain.registrant.try(:ident) %> on äriregistrist kustutatud.
|
||||
|
||||
Kuivõrd äriregistrist kustutatud juriidiline isik ei saa olla domeeni registreerijaks, siis algatas EIS <%= l(Time.zone.now, format: :date) %> vastavalt Domeenireeglite (http://www.internet.ee/domeenid/) punktile 6.4 domeeni <%= @domain.name %> suhtes 30 päeva pikkuse kustutusmenetluse. Kustutamise käigus jääb domeen internetis kättesaadavaks.
|
||||
|
||||
Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @domain.registrar %> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleks esitada Registripidajale esimesel võimalusel.
|
||||
Domeenireeglite punktist 6.4 tulenevalt on domeeni suhtes õigust omaval registreerijal võimalus esitada domeeni <%= @domain.name %> registripidajale <%= @domain.registrar %> domeeni üleandmise taotlus Domeenireeglite p 5.3.6.2 kohaselt. Taotlusele tuleb lisada domeeni omandamist tõendavad dokumendid, mis asendavad Domeenireeglite punktis 5.3.6.3 sätestatud üleandva registreerija nõusolekut. Vastav dokumentatsioon tuleb esitada Registripidajale esimesel võimalusel.
|
||||
|
||||
Kui üleandmine ei ole 30 päeva jooksul toimunud, kustub domeen <%= @domain.name %> 24 tunni jooksul <%= l(@domain.force_delete_at, format: :date) %> möödumisest juhuslikult valitud ajahetkel. Soovi korral on võimalik domeen pärast selle kustumist registrist "kes ees, see mees" põhimõttel uuesti registreerida.
|
||||
|
||||
Lisaküsimuste korral võtke palun ühendust oma registripidajaga <%= @domain.registrar %>, kelle kontaktandmed leiate lingilt http://www.internet.ee/registripidajad/
|
||||
Lisaküsimuste korral võtke palun ühendust oma registripidajaga <%= @domain.registrar %>. Registripidajate kontaktid leiate aadressilt http://www.internet.ee/registripidajad/
|
||||
|
||||
|
||||
|
||||
Dear contact of <%= @domain.name %> domain
|
||||
|
||||
The following details for domain name <%= @domain.name %> have been entered into the Estonian Internet Foundation's (EIF) domain registry:
|
||||
The following details for domain name <%= @domain.name %> have been entered into the .ee domain registry:
|
||||
|
||||
Registrant's name: <%= @domain.registrant %>
|
||||
Registry code: <%= @domain.registrant.try(:ident) %>
|
||||
|
||||
EIF has learned that the legal person with registry code <%= @domain.registrant.try(:ident) %> has been deleted from the Business Registry.
|
||||
Estonian Internet Foundation (EIS) has learned that the legal person with registry code <%= @domain.registrant.try(:ident) %> has been deleted from the Business Registry.
|
||||
|
||||
As a terminated legal person cannot be the registrant of a domain, the EIF started the deletion process of <%= @domain.name %> domain on <%= l(Time.zone.now, format: :date) %> according to the Domain Regulation (http://www.internet.ee/domains/), using the 30-day delete procedure. The domain will remain available on the Internet during the delete procedure.
|
||||
As a terminated legal person cannot be the registrant of a domain, the EIS started the deletion process of <%= @domain.name %> domain on <%= l(Time.zone.now, format: :date) %> according to the Domain Regulation (http://www.internet.ee/domains/), using the 30-day delete procedure. The domain will remain available on the Internet during the delete procedure.
|
||||
|
||||
According to paragraph 6.4 of the Domain Regulation, the registrant holding a right to the domain name <%= @domain.name %> can submit a domain name transfer application to the registrar <%= @domain.registrar %> in accordance with paragraph 5.3.6.2 of the Domain Regulation. The application must be submitted together with documents certifying the acquisition of the domain that will replace the consent of the surrendering registrant as laid down in paragraph 5.3.6.3 of the Domain Regulation. The relevant documents should be submitted to the registrar as soon as possible.
|
||||
|
||||
|
@ -56,8 +56,8 @@ EIS стало известно, что юридическое лицо с ре
|
|||
|
||||
|
||||
Lugupidamisega,
|
||||
Yours Sincerely,
|
||||
Best Regards,
|
||||
С уважением,
|
||||
---
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Domeeni <%= @domain.name %> kustutamise taotlust ei kinnitatud tähtaegselt registreerija <%= @domain.registrant_name %> poolt. Domeeni <%= @domain.name %> kustutamine on sellest tulenevalt tühistatud.
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Domain <%= @domain.name %> deletion cancelled.
|
||||
Domain <%= @domain.name %> deletion was not approved in time by the registrant <%= @domain.registrant_name %>. Thus the deletion of domain <%= @domain.name %> is cancelled.
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Domeeni <%= @domain.name %> kustutamise taotlust ei kinnitatud tähtaegselt registreerija <%= @domain.registrant_name %> poolt. Domeeni <%= @domain.name %> kustutamine on sellest tulenevalt tühistatud.
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Domain <%= @domain.name %> deletion cancelled.
|
||||
Domain <%= @domain.name %> deletion was not approved in time by the registrant <%= @domain.registrant_name %>. Thus the deletion of domain <%= @domain.name %> is cancelled.
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrar_name %> poolt tagasi lükatud.
|
||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrant_name %> poolt tagasi lükatud.
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Domain <%= @domain.name %> deletion rejected.
|
||||
Domain <%= @domain.name %> deletion was rejected by the registrant <%= @domain.registrant_name %>.
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrar_name %> poolt tagasi lükatud.
|
||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrant_name %> poolt tagasi lükatud.
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Domain <%= @domain.name %> deletion rejected.
|
||||
Domain <%= @domain.name %> deletion was rejected by the registrant <%= @domain.registrant_name %>.
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole. Teie registripidaja on <%= @domain.registrar_name %>
|
||||
Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @domain.registrar_name %> poole.
|
||||
<br><br>
|
||||
Muudatuse kinnitamiseks külastage palun allolevat võrgulehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan:
|
||||
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan.
|
||||
<br><br>
|
||||
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ise ei kinnita või tagasi lükka.<br>
|
||||
<%= link_to @verification_url, @verification_url %>
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Application for deletion of your domain <%= @domain.name %> has been filed. Please make sure that the application is correct. Incase of problems please turn to your registrar. Your registrar is <%= @domain.registrar_name %>
|
||||
Application for deletion of your domain <%= @domain.name %> has been filed. Please make sure that the application is correct. Incase of problems please contact your registrar <%= @domain.registrar_name %>.
|
||||
<br><br>
|
||||
To confirm the update please visit this website, once again review the data and press approve:<br>
|
||||
<%= link_to @verification_url, @verification_url %>
|
||||
<br><br>
|
||||
The application will remain in pending status for <%= Setting.expire_pending_confirmation %> hrs and will be automaticcally rejected if it is not approved nor rejected before.
|
||||
The application will remain in pending status for <%= Setting.expire_pending_confirmation %> hrs and will be automatically rejected if it is not approved nor rejected before.
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole. Teie registripidaja on <%= @domain.registrar_name %>
|
||||
Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @domain.registrar_name %> poole.
|
||||
|
||||
Muudatuse kinnitamiseks külastage palun allolevat võrgulehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan:
|
||||
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan.
|
||||
|
||||
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ise ei kinnita või tagasi lükka.
|
||||
<%= link_to @verification_url, @verification_url %>
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Application for deletion of your domain <%= @domain.name %> has been filed. Please make sure that the application is correct. Incase of problems please turn to your registrar. Your registrar is <%= @domain.registrar_name %>
|
||||
Application for deletion of your domain <%= @domain.name %> has been filed. Please make sure that the application is correct. Incase of problems please contact your registrar <%= @domain.registrar_name %>.
|
||||
|
||||
To confirm the update please visit this website, once again review the data and press approve:
|
||||
<%= link_to @verification_url, @verification_url %>
|
||||
|
||||
The application will remain in pending status for <%= Setting.expire_pending_confirmation %> hrs and will be automaticcally rejected if it is not approved nor rejected before.
|
||||
The application will remain in pending status for <%= Setting.expire_pending_confirmation %> hrs and will be automatically rejected if it is not approved nor rejected before.
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Domeeni <%= @params[:name] %> registreerija <%= @params[:registrant_name] %> ei kinnitanud tähtaegselt registreerija vahetuse taotlust. Domeeni <%= @params[:name] %> registreerija vahetus on sellest tulenevalt tühistatud.
|
||||
<br><br>
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>, kelle kontaktid leiate http://internet.ee/registripidajad/akrediteeritud-registripidajad
|
||||
Küsimuste korral palun võtke ühendust oma registripidajaga <%= @params[:registrar_name] %>. Registripidajate kontaktid leiate aadressilt www.internet.ee/registripidajad.
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Domain registrant change has been expired for the domain <%= @params[:name] %>.
|
||||
Domain registrant change request has been expired for the domain <%= @params[:name] %>.
|
||||
<br><br>
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions.
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Domeeni <%= @params[:name] %> registreerija <%= @params[:registrant_name] %> ei kinnitanud tähtaegselt registreerija vahetuse taotlust. Domeeni <%= @params[:name] %> registreerija vahetus on sellest tulenevalt tühistatud.
|
||||
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>, kelle kontaktid leiate http://internet.ee/registripidajad/akrediteeritud-registripidajad
|
||||
Küsimuste korral palun võtke ühendust oma registripidajaga <%= @params[:registrar_name] %>. Registripidajate kontaktid leiate aadressilt www.internet.ee/registripidajad.
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Domain registrant change has been expired for the domain <%= @params[:name] %>.
|
||||
Domain registrant change request has been expired for the domain <%= @params[:name] %>.
|
||||
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions.
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Registripidaja <%= @params[:registrar_name] %> vahendusel on algatatud <%= @params[:name] %> domeeni omanikuvahetuse protseduur.
|
||||
<br><br>
|
||||
Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole. Teie registripidaja on <%= @params[:registrar_name] %>
|
||||
Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @params[:registrar_name] %> poole.
|
||||
<br><br>
|
||||
Uue registreerija andmed:<br>
|
||||
Nimi: <%= @params[:registrant_name] %><br>
|
||||
|
@ -15,14 +15,14 @@ Tänav: <%= @params[:registrant_street] %><br>
|
|||
Linn: <%= @params[:registrant_city] %><br>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
<br><br>
|
||||
Juhime Teie tähelepanu asjaolule, et omanikuvahetuse protseduur viiaks lõpule vaid juhul, kui domeeni hetkel kehtiv registreerija <%= @params[:old_registrant_name] %> omanikuvahetuse tähtaegselt kinnitab.
|
||||
Juhime Teie tähelepanu asjaolule, et omanikuvahetuse protseduur viiakse lõpule vaid juhul, kui domeeni hetkel kehtiv registreerija <%= @params[:old_registrant_name] %> omanikuvahetuse tähtaegselt kinnitab.
|
||||
<br><br>
|
||||
Juhul kui <%= @params[:old_registrant_name] %> lükkab omanikuvahtuse taotluse tagasi või ei anna kinnitust enne <%= Setting.expire_pending_confirmation %> tundi, omanikuvahetuse protseduur tühistatakse.
|
||||
Juhul kui <%= @params[:old_registrant_name] %> lükkab omanikuvahetuse taotluse tagasi või ei anna kinnitust enne <%= Setting.expire_pending_confirmation %> tundi, omanikuvahetuse protseduur tühistatakse.
|
||||
<br><br>
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>, kelle kontaktid leiate http://internet.ee/registripidajad/akrediteeritud-registripidajad
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>. Registripidajate kontaktid leiate aadressilt www.internet.ee/registripidajad.
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
|
@ -30,6 +30,8 @@ Hi,
|
|||
<br><br>
|
||||
Registrant change process for the domain <%= @params[:name] %> has been started.
|
||||
<br><br>
|
||||
Please verify the details of the following change request. In case of problems contact your registrar <%= @params[:registrar_name] %>
|
||||
<br><br>
|
||||
New registrant:<br>
|
||||
Name: <%= @params[:registrant_name] %><br>
|
||||
<% if @params[:registrant_priv] %>
|
||||
|
@ -41,7 +43,11 @@ Street: <%= @params[:registrant_street] %><br>
|
|||
City: <%= @params[:registrant_city] %><br>
|
||||
Country: <%= @params[:registrant_country] %>
|
||||
<br><br>
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions.
|
||||
The registrant change procedure will be completed only after the current registrant <%= @params[:old_registrant_name] %> has approved it.
|
||||
<br><br>
|
||||
Change request will be cancelled in case <%= @params[:old_registrant_name] %> rejects or does not approve it in <%= Setting.expire_pending_confirmation %> hours.
|
||||
<br><br>
|
||||
Please contact registrar <%= @params[:registrar_name] %> in case of questions. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Registripidaja <%= @params[:registrar_name] %> vahendusel on algatatud <%= @params[:name] %> domeeni omanikuvahetuse protseduur.
|
||||
|
||||
Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole. Teie registripidaja on <%= @params[:registrar_name] %>
|
||||
Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @params[:registrar_name] %> poole.
|
||||
|
||||
Uue registreerija andmed:
|
||||
Nimi: <%= @params[:registrant_name] %>
|
||||
|
@ -15,14 +15,14 @@ Tänav: <%= @params[:registrant_street] %>
|
|||
Linn: <%= @params[:registrant_city] %>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
|
||||
Juhime Teie tähelepanu asjaolule, et omanikuvahetuse protseduur viiaks lõpule vaid juhul, kui domeeni hetkel kehtiv registreerija <%= @params[:old_registrant_name] %> omanikuvahetuse tähtaegselt kinnitab.
|
||||
Juhime Teie tähelepanu asjaolule, et omanikuvahetuse protseduur viiakse lõpule vaid juhul, kui domeeni hetkel kehtiv registreerija <%= @params[:old_registrant_name] %> omanikuvahetuse tähtaegselt kinnitab.
|
||||
|
||||
Juhul kui <%= @params[:old_registrant_name] %> lükkab omanikuvahtuse taotluse tagasi või ei anna kinnitust enne <%= Setting.expire_pending_confirmation %> tundi, omanikuvahetuse protseduur tühistatakse.
|
||||
Juhul kui <%= @params[:old_registrant_name] %> lükkab omanikuvahetuse taotluse tagasi või ei anna kinnitust enne <%= Setting.expire_pending_confirmation %> tundi, omanikuvahetuse protseduur tühistatakse.
|
||||
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>, kelle kontaktid leiate http://internet.ee/registripidajad/akrediteeritud-registripidajad
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>. Registripidajate kontaktid leiate aadressilt www.internet.ee/registripidajad.
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
|
@ -30,6 +30,8 @@ Hi,
|
|||
|
||||
Registrant change process for the domain <%= @params[:name] %> has been started.
|
||||
|
||||
Please verify the details of the following change request. In case of problems contact your registrar <%= @params[:registrar_name] %>
|
||||
|
||||
New registrant:
|
||||
Name: <%= @params[:registrant_name] %>
|
||||
<% if @params[:registrant_priv] %>
|
||||
|
@ -41,7 +43,11 @@ Street: <%= @params[:registrant_street] %>
|
|||
City: <%= @params[:registrant_city] %>
|
||||
Country: <%= @params[:registrant_country] %>
|
||||
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions.
|
||||
The registrant change procedure will be completed only after the current registrant <%= @params[:old_registrant_name] %> has approved it.
|
||||
|
||||
Change request will be cancelled in case <%= @params[:old_registrant_name] %> rejects or does not approve it in <%= Setting.expire_pending_confirmation %> hours.
|
||||
|
||||
Please contact registrar <%= @params[:registrar_name] %> in case of questions. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Domeeni <%= @params[:name] %> registreerija <%= @params[:old_registrant_name] %> on domeeni registreerija vahetamise taotluse tagasi lükanud.
|
||||
<br><br>
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>, kelle kontaktid leiate http://internet.ee/registripidajad/akrediteeritud-registripidajad
|
||||
Küsimuste korral võtke palun ühendust oma registripidajaga <%= @params[:registrar_name] %>. Registripidajate kontaktid leiate aadressilt www.internet.ee/registripidajad.
|
||||
<br><br>
|
||||
Lugupidamisega,<br>
|
||||
Eesti Interneti SA
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Registrant change was declined for the domain <%= @params[:name] %>.
|
||||
Registrant change for the domain <%= @params[:name] %> was rejected by the registrant <%= @params[:old_registrant_name] %>.
|
||||
<br><br>
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions.
|
||||
Please contact your registrar <%= @params[:registrar_name] %> if you have any questions. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Domeeni <%= @params[:name] %> registreerija <%= @params[:old_registrant_name] %> on domeeni registreerija vahetamise taotluse tagasi lükanud.
|
||||
|
||||
Küsimuste korral palun võtke ühendust registripidajaga <%= @params[:registrar_name] %>, kelle kontaktid leiate http://internet.ee/registripidajad/akrediteeritud-registripidajad
|
||||
Küsimuste korral võtke palun ühendust oma registripidajaga <%= @params[:registrar_name] %>. Registripidajate kontaktid leiate aadressilt www.internet.ee/registripidajad.
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Registrant change was declined for the domain <%= @params[:name] %>.
|
||||
Registrant change for the domain <%= @params[:name] %> was rejected by the registrant <%= @params[:old_registrant_name] %>
|
||||
.
|
||||
|
||||
Please contact to your registrar <%= @params[:registrar_name] %> if you have any questions.
|
||||
Please contact your registrar <%= @params[:registrar_name] %> if you have any questions. You can find the registrar's contacts at http://internet.ee/registrars.
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Registrisse laekus taotlus domeeni <%= @params[:name] %> registreerija vahetuseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole. Teie registripidaja on <%= @params[:registrar_name] %>
|
||||
Registrisse laekus taotlus domeeni <%= @params[:name] %> registreerija vahetuseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @params[:registrar_name] %> poole.
|
||||
<br><br>
|
||||
Uue registreerija andmed:<br>
|
||||
Nimi: <%= @params[:registrant_name] %><br>
|
||||
|
@ -13,14 +13,14 @@ Tänav: <%= @params[:registrant_street] %><br>
|
|||
Linn: <%= @params[:registrant_city] %><br>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
<br><br>
|
||||
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ise ei kinnita või tagasi lükka.
|
||||
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ei kinnita või tagasi lükka.
|
||||
<br><br>
|
||||
Muudatuse kinnitamiseks külastage palun allolevat võrgulehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan:<br>
|
||||
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan:<br>
|
||||
|
||||
<%= link_to @params[:verification_url], @params[:verification_url] %>
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Registrisse laekus taotlus domeeni <%= @params[:name] %> registreerija vahetuseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole. Teie registripidaja on <%= @params[:registrar_name] %>
|
||||
Registrisse laekus taotlus domeeni <%= @params[:name] %> registreerija vahetuseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja <%= @params[:registrar_name] %> poole.
|
||||
|
||||
Uue registreerija andmed:
|
||||
Nimi: <%= @params[:registrant_name] %>
|
||||
|
@ -13,12 +13,12 @@ Tänav: <%= @params[:registrant_street] %>
|
|||
Linn: <%= @params[:registrant_city] %>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
|
||||
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ise ei kinnita või tagasi lükka.
|
||||
Muudatuse kinnitamiseks külastage palun allolevat võrgulehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan:
|
||||
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ei kinnita või tagasi lükka.
|
||||
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan:
|
||||
<%= @params[:verification_url] %>
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
|
|
|
@ -1,39 +1,39 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Domeeni <%= @params[:name] %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
Domeeni <%= @domain.name %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
<br><br>
|
||||
Uue registreerija andmed:<br>
|
||||
Nimi: <%= @params[:registrant_name] %><br>
|
||||
<% if @params[:registrant_priv] %>
|
||||
Isikukood: <%= @params[:registrant_ident] %><br>
|
||||
Nimi: <%= @new_registrant.name %><br>
|
||||
<% if @new_registrant.priv? %>
|
||||
Isikukood: <%= @new_registrant.ident %><br>
|
||||
<% else %>
|
||||
Äriregistrikood: <%= @params[:registrant_ident] %><br>
|
||||
Äriregistrikood: <%= @new_registrant.ident %><br>
|
||||
<% end %>
|
||||
Epost: <%= @params[:registrant_email] %><br>
|
||||
Tänav: <%= @params[:registrant_street] %><br>
|
||||
Linn: <%= @params[:registrant_city] %><br>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
Epost: <%= @new_registrant.email %><br>
|
||||
Tänav: <%= @new_registrant.street %><br>
|
||||
Linn: <%= @new_registrant.city %><br>
|
||||
Riik: <%= @new_registrant.country.name %>
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Process for changing registrant of the domain <%= @params[:name] %> has been approved and the data in the registry is updated.
|
||||
Process for changing registrant of the domain <%= @domain.name %> has been approved and the data in the registry is updated.
|
||||
<br><br>
|
||||
New registrant:<br>
|
||||
Name: <%= @params[:registrant_name] %><br>
|
||||
<% if @params[:registrant_priv] %>
|
||||
Personal code: <%= @params[:registrant_ident] %><br>
|
||||
Name: <%= @new_registrant.name %><br>
|
||||
<% if @new_registrant.priv? %>
|
||||
Personal code: <%= @new_registrant.ident %><br>
|
||||
<% else %>
|
||||
Business Registry code: <%= @params[:registrant_ident] %><br>
|
||||
Business Registry code: <%= @new_registrant.ident %><br>
|
||||
<% end %>
|
||||
E-mail: <%= @params[:registrant_email] %><br>
|
||||
Street: <%= @params[:registrant_street] %><br>
|
||||
City: <%= @params[:registrant_city] %><br>
|
||||
Country: <%= @params[:registrant_country] %>
|
||||
E-mail: <%= @new_registrant.email %><br>
|
||||
Street: <%= @new_registrant.street %><br>
|
||||
City: <%= @new_registrant.city %><br>
|
||||
Country: <%= @new_registrant.country.name %>
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,39 +1,41 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Domeeni <%= @params[:name] %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
Domeeni <%= @domain.name %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
|
||||
Uue registreerija andmed:
|
||||
Nimi: <%= @params[:registrant_name] %>
|
||||
<% if @params[:registrant_priv] %>
|
||||
Isikukood: <%= @params[:registrant_ident] %>
|
||||
Nimi: <%= @new_registrant.name %>
|
||||
|
||||
<% if @new_registrant.priv? %>
|
||||
Isikukood: <%= @new_registrant.ident %>
|
||||
<% else %>
|
||||
Äriregistrikood: <%= @params[:registrant_ident] %>
|
||||
Äriregistrikood: <%= @new_registrant.ident %>
|
||||
<% end %>
|
||||
Epost: <%= @params[:registrant_email] %>
|
||||
Tänav: <%= @params[:registrant_street] %>
|
||||
Linn: <%= @params[:registrant_city] %>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
Epost: <%= @new_registrant.email %>
|
||||
Tänav: <%= @new_registrant.street %>
|
||||
Linn: <%= @new_registrant.city %>
|
||||
Riik: <%= @new_registrant.country.name %>
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Process for changing registrant of the domain <%= @params[:name] %> has been approved and the data in the registry is updated.
|
||||
Process for changing registrant of the domain <%= @domain.name %> has been approved and the data in the registry is updated.
|
||||
|
||||
New registrant:
|
||||
Name: <%= @params[:registrant_name] %>
|
||||
<% if @params[:registrant_priv] %>
|
||||
Personal code: <%= @params[:registrant_ident] %>
|
||||
Name: <%= @new_registrant.name %>
|
||||
|
||||
<% if @new_registrant.priv? %>
|
||||
Personal code: <%= @new_registrant.ident %>
|
||||
<% else %>
|
||||
Business Registry code: <%= @params[:registrant_ident] %>
|
||||
Business Registry code: <%= @new_registrant.ident %>
|
||||
<% end %>
|
||||
E-mail: <%= @params[:registrant_email] %>
|
||||
Street: <%= @params[:registrant_street] %>
|
||||
City: <%= @params[:registrant_city] %>
|
||||
Country: <%= @params[:registrant_country] %>
|
||||
E-mail: <%= @new_registrant.email %>
|
||||
Street: <%= @new_registrant.street %>
|
||||
City: <%= @new_registrant.city %>
|
||||
Country: <%= @new_registrant.country.name %>
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,39 +1,39 @@
|
|||
Tere,
|
||||
Tere
|
||||
<br><br>
|
||||
Domeeni <%= @params[:name] %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
Domeeni <%= @domain.name %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
<br><br>
|
||||
Uue registreerija andmed:<br>
|
||||
Nimi: <%= @params[:new_registrant_name] %><br>
|
||||
<% if @params[:registrant_priv] %>
|
||||
Isikukood: <%= @params[:registrant_ident] %><br>
|
||||
Nimi: <%= @new_registrant.name %><br>
|
||||
<% if @new_registrant.priv? %>
|
||||
Isikukood: <%= @new_registrant.ident %><br>
|
||||
<% else %>
|
||||
Äriregistrikood: <%= @params[:registrant_ident] %><br>
|
||||
Äriregistrikood: <%= @new_registrant.ident %><br>
|
||||
<% end %>
|
||||
Epost: <%= @params[:registrant_email] %><br>
|
||||
Tänav: <%= @params[:registrant_street] %><br>
|
||||
Linn: <%= @params[:registrant_city] %><br>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
Epost: <%= @new_registrant.email %><br>
|
||||
Tänav: <%= @new_registrant.street %><br>
|
||||
Linn: <%= @new_registrant.city %><br>
|
||||
Riik: <%= @new_registrant.country.name %>
|
||||
<br><br>
|
||||
Lugupidamisega<br>
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
<br><br>
|
||||
<hr>
|
||||
<br><br>
|
||||
Hi,
|
||||
<br><br>
|
||||
Process for changing registrant of the domain <%= @params[:name] %> has been approved and the data in the registry is updated.
|
||||
Process for changing registrant of the domain <%= @domain.name %> has been approved and the data in the registry is updated.
|
||||
<br><br>
|
||||
New registrant:<br>
|
||||
Name: <%= @params[:new_registrant_name] %><br>
|
||||
<% if @params[:registrant_priv] %>
|
||||
Personal code: <%= @params[:registrant_ident] %><br>
|
||||
Name: <%= @new_registrant.name %><br>
|
||||
<% if @new_registrant.priv? %>
|
||||
Personal code: <%= @new_registrant.ident %><br>
|
||||
<% else %>
|
||||
Business Registry code: <%= @params[:registrant_ident] %><br>
|
||||
Business Registry code: <%= @new_registrant.ident %><br>
|
||||
<% end %>
|
||||
E-mail: <%= @params[:registrant_email] %><br>
|
||||
Street: <%= @params[:registrant_street] %><br>
|
||||
City: <%= @params[:registrant_city] %><br>
|
||||
Country: <%= @params[:registrant_country] %>
|
||||
E-mail: <%= @new_registrant.email %><br>
|
||||
Street: <%= @new_registrant.street %><br>
|
||||
City: <%= @new_registrant.city %><br>
|
||||
Country: <%= @new_registrant.country.name %>
|
||||
<br><br>
|
||||
Best Regards,<br>
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -1,41 +1,41 @@
|
|||
Tere,
|
||||
Tere
|
||||
|
||||
Domeeni <%= @params[:name] %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
Domeeni <%= @domain.name %> registreerija vahetuse taotlus on kinnitatud ning andmed registris uuendatud.
|
||||
|
||||
Uue registreerija andmed:
|
||||
Nimi: <%= @params[:new_registrant_name] %>
|
||||
Nimi: <%= @new_registrant.name %>
|
||||
|
||||
<% if @params[:registrant_priv] %>
|
||||
Isikukood: <%= @params[:registrant_ident] %>
|
||||
<% if @new_registrant.priv? %>
|
||||
Isikukood: <%= @new_registrant.ident %>
|
||||
<% else %>
|
||||
Äriregistrikood: <%= @params[:registrant_ident] %>
|
||||
Äriregistrikood: <%= @new_registrant.ident %>
|
||||
<% end %>
|
||||
Epost: <%= @params[:registrant_email] %>
|
||||
Tänav: <%= @params[:registrant_street] %>
|
||||
Linn: <%= @params[:registrant_city] %>
|
||||
Riik: <%= @params[:registrant_country] %>
|
||||
Epost: <%= @new_registrant.email %>
|
||||
Tänav: <%= @new_registrant.street %>
|
||||
Linn: <%= @new_registrant.city %>
|
||||
Riik: <%= @new_registrant.country.name %>
|
||||
|
||||
Lugupidamisega
|
||||
Eesti Interneti SA
|
||||
Eesti Interneti Sihtasutus
|
||||
|
||||
--------------------------------------
|
||||
|
||||
Hi,
|
||||
|
||||
Process for changing registrant of the domain <%= @params[:name] %> has been approved and the data in the registry is updated.
|
||||
Process for changing registrant of the domain <%= @domain.name %> has been approved and the data in the registry is updated.
|
||||
|
||||
New registrant:
|
||||
Name: <%= @params[:new_registrant_name] %>
|
||||
Name: <%= @new_registrant.name %>
|
||||
|
||||
<% if @params[:registrant_priv] %>
|
||||
Personal code: <%= @params[:registrant_ident] %>
|
||||
<% if @new_registrant.priv? %>
|
||||
Personal code: <%= @new_registrant.ident %>
|
||||
<% else %>
|
||||
Business Registry code: <%= @params[:registrant_ident] %>
|
||||
Business Registry code: <%= @new_registrant.ident %>
|
||||
<% end %>
|
||||
E-mail: <%= @params[:registrant_email] %>
|
||||
Street: <%= @params[:registrant_street] %>
|
||||
City: <%= @params[:registrant_city] %>
|
||||
Country: <%= @params[:registrant_country] %>
|
||||
E-mail: <%= @new_registrant.email %>
|
||||
Street: <%= @new_registrant.street %>
|
||||
City: <%= @new_registrant.city %>
|
||||
Country: <%= @new_registrant.country.name %>
|
||||
|
||||
Best Regards,
|
||||
Estonian Internet Foundation
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
.form-signin.col-md-6.center-block.text-center
|
||||
%h2.form-signin-heading.text-center= t(:log_in)
|
||||
%hr
|
||||
.row
|
||||
=t "only_estonian_residets_can_signin"
|
||||
%br
|
||||
= link_to '/registrant/login/mid' do
|
||||
= image_tag 'mid.gif'
|
||||
= link_to '/registrant/id', method: :post do
|
||||
|
|
|
@ -6,6 +6,12 @@
|
|||
.panel-heading.clearfix
|
||||
= t(:legal_document)
|
||||
.panel-body
|
||||
.form-group
|
||||
.col-md-4.control-label
|
||||
= label_tag 'domain[verified]', t(:verified)
|
||||
.col-md-6
|
||||
= check_box_tag 'domain[verified]', '1', params[:verified].eql?('1'), onclick: "return (confirm('#{t(:verified_confirm)}') ? true : false);"
|
||||
|
||||
.form-group
|
||||
.col-md-4.control-label
|
||||
= label_tag 'domain[legal_document]', t(:legal_document), class: 'required'
|
||||
|
|
|
@ -24,6 +24,13 @@
|
|||
= text_field_tag 'domain[registrant_helper]', contacts.find_by(code: @domain_params[:registrant]).try(:search_name),
|
||||
class: 'form-control', data: {autocomplete: search_contacts_registrar_domains_path}, required: true
|
||||
|
||||
- if params[:domain_name]
|
||||
.form-group
|
||||
.col-md-3.control-label
|
||||
= label_tag :verified, t(:verified)
|
||||
.col-md-7
|
||||
= check_box_tag 'domain[verified]', '1', @domain_params[:verified].eql?('1'), onclick: "return (confirm('#{t(:verified_confirm)}') ? true : false);"
|
||||
|
||||
- unless params[:domain_name]
|
||||
.form-group
|
||||
.col-md-3.control-label
|
||||
|
|
|
@ -6,10 +6,12 @@
|
|||
%thead
|
||||
%tr
|
||||
%th{class: 'col-xs-4'}= t(:type)
|
||||
%th{class: 'col-xs-8'}= t(:id)
|
||||
%th{class: 'col-xs-4'}= t(:name)
|
||||
%th{class: 'col-xs-4'}= t(:id)
|
||||
%tbody
|
||||
- @data.css('contact').each do |x|
|
||||
- registrant = Contact.find_by_code(x.text)
|
||||
%tr
|
||||
%td= x['type']
|
||||
%td= x.text
|
||||
|
||||
%td= registrant.name
|
||||
%td= x.text
|
|
@ -10,8 +10,9 @@
|
|||
%dt= t(:registrar)
|
||||
%dd= @data.css('clID').text
|
||||
|
||||
- registrant = Contact.find_by_code(@data.css('registrant').text)
|
||||
%dt= t(:registrant)
|
||||
%dd= @data.css('registrant').text
|
||||
%dd= "#{registrant.name} (#{@data.css('registrant').text})"
|
||||
|
||||
%dt= t(:registered)
|
||||
%dd= @data.css('crDate').text
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.row
|
||||
.col-sm-6
|
||||
%h1.text-center-xs
|
||||
= truncate(name, length: 35)
|
||||
= content_for?(:page_name) ? yield(:page_name) : truncate(name, length: 35)
|
||||
.col-sm-6
|
||||
%h1.text-right.text-center-xs
|
||||
= yield :actions
|
||||
|
|
|
@ -235,7 +235,7 @@ end
|
|||
desc 'Loads current commit hash'
|
||||
task load_commit_hash: :environment do
|
||||
queue! %(
|
||||
echo "CURRENT_COMMIT_HASH = '$(git --git-dir #{deploy_to}/scm rev-parse --short HEAD)'" > \
|
||||
echo "CURRENT_COMMIT_HASH = '$(git --git-dir #{deploy_to}/scm rev-parse --short #{branch})'" > \
|
||||
#{deploy_to}/shared/config/initializers/current_commit_hash.rb
|
||||
)
|
||||
end
|
||||
|
|
|
@ -32,6 +32,9 @@ if con.present? && con.table_exists?('settings')
|
|||
|
||||
Setting.save_default(:invoice_number_min, 131050)
|
||||
Setting.save_default(:invoice_number_max, 149999)
|
||||
Setting.save_default(:directo_monthly_number_min, 309901)
|
||||
Setting.save_default(:directo_monthly_number_max, 309999)
|
||||
Setting.save_default(:directo_monthly_number_last, 309901)
|
||||
Setting.save_default(:days_to_keep_invoices_active, 30)
|
||||
Setting.save_default(:days_to_keep_overdue_invoices_active, 30)
|
||||
Setting.save_default(:minimum_deposit, 0.0)
|
||||
|
|
|
@ -14,7 +14,7 @@ en:
|
|||
last_attempt: "You have one more attempt before your account is locked."
|
||||
not_found_in_database: "Invalid email address or password."
|
||||
timeout: "Your session expired. Please sign in again to continue."
|
||||
unauthenticated: "You need to sign in or sign up before continuing."
|
||||
unauthenticated: "You need to sign in."
|
||||
unconfirmed: "You have to confirm your email address before continuing."
|
||||
mailer:
|
||||
confirmation_instructions:
|
||||
|
|
|
@ -52,6 +52,9 @@ en:
|
|||
invalid_EE_identity_format_update: "Ident not in valid Estonian identity format. Please create new contact"
|
||||
invalid_birthday_format: "Ident not in valid birthady format, should be YYYY-MM-DD"
|
||||
invalid_country_code: "Ident country code is not valid, should be in ISO_3166-1 alpha 2 format"
|
||||
ident_type:
|
||||
ident_type_invalid: 'Ident type is invalid'
|
||||
epp_ident_type_invalid: 'Object status prohibits operation: ident_type of contact %{code} is invalid'
|
||||
domains:
|
||||
exist: 'Object association prohibits operation'
|
||||
statuses:
|
||||
|
@ -77,6 +80,7 @@ en:
|
|||
registrant:
|
||||
blank: 'Registrant is missing'
|
||||
not_found: 'Registrant not found'
|
||||
cannot_be_missing: 'Parameter value policy error: registrant cannot be missing'
|
||||
domain_contacts:
|
||||
invalid: 'Contacts are invalid'
|
||||
not_found: 'Contact was not found'
|
||||
|
@ -130,8 +134,9 @@ en:
|
|||
hostname:
|
||||
invalid: 'Hostname is invalid'
|
||||
taken: 'Nameserver already exists on this domain'
|
||||
puny_to_long: 'Hostname puny label is too long (maximum is 63 characters)'
|
||||
ipv4:
|
||||
blank: 'IPv4 is missing'
|
||||
blank: 'IP is missing'
|
||||
invalid: 'IPv4 is invalid'
|
||||
ipv6:
|
||||
invalid: 'IPv6 is invalid'
|
||||
|
@ -206,6 +211,10 @@ en:
|
|||
blank: 'Algorithm is missing'
|
||||
auth_info_pw:
|
||||
blank: 'Password is missing'
|
||||
legal_document:
|
||||
attributes:
|
||||
body:
|
||||
length: 'Parameter value policy error: legalDocument size should be more than 3kB'
|
||||
|
||||
|
||||
attributes:
|
||||
|
@ -355,6 +364,7 @@ en:
|
|||
contact: 'Contact'
|
||||
credit_balance: 'Credit balance'
|
||||
starting_balance: 'Starting balance'
|
||||
destroyed: 'Destroyed'
|
||||
|
||||
domain_transfer_requested: 'Domain transfer requested!'
|
||||
domain_transfer_approved: 'Domain transfer approved!'
|
||||
|
@ -728,13 +738,13 @@ en:
|
|||
no_invoices_were_binded: 'No invoices were binded'
|
||||
domain_general_help:
|
||||
<b>The Administrative Contact</b>
|
||||
is an Estonian citizen or a citizen of another country in the European Union, European Economic Area or the Swiss Confederation with a registered place of residence in Estonia and an Estonian personal identification code who has the right to represent the registering entity in accordance with the current legislation of the Republic of Estonia (member of the management board) or on the basis of the written authorisation issued by a member of the management board. The Administrative Contact has the right to sign and submit in the name of the registering entity any applications connected with the domain name and also to receive and forward any information concerning the domain name(s). The Administrative Contact is responsible for the correctness and authenticity of the data and documents submitted about itself and the registering entity.
|
||||
is a natural person who is a legal representative of the Registrant or whom the Registrant has authorised in writing (authorised representative). The Administrative Contact does not have the right to delegate the authorisation. The Administrative Contact has the right to sign and submit Domain Name-related applications on behalf of the Registrant and to receive and forward any information pertaining to the Domain Name(s). The Administrative Contact is responsible for the correctness and genuiness of the data and documents submitted by him/her about the Registrant and about himself/herself. Registrant is obliged to guarantee that the person appointed as the Administrative Contact agrees to fulfil the duties of and Administrative Contact. There may be more than one person in this role (the registry system allows of up to 10 Administrative Contacts)
|
||||
domain_admin_contact_help:
|
||||
<b>The Technical Contact</b>
|
||||
is a person who has the right to modify only such domain name server data that is connected with it. If the domain registering entity is using a website hosting service, it is recommended to register as the Technical Contact a representative of the corresponding provider company. If the domain registering entity manages its own servers, it can register itself as the Technical Contact.
|
||||
is a natural or legal person who, in the name of the Registrant, adds, changes or removes entries of the authoritative Name Servers for that particular domain and its DNSSEC records. The Technical Contact does not have the right to represent the Registrant in other registration services. The Registrant is obliged to guarantee that the person appointed as the Technical Contact agrees to fulfil the duties of and Technical Contact. There may be more than one person in this role (the registry system allows of up to 10 Technical Contacts)
|
||||
domain_tech_contact_help:
|
||||
<b>The domain name server</b>
|
||||
is a computer that saves and forwards via a general-access data communications network such data that is connected with the domain name and corresponding IP addresses. Your IT helpdesk or Internet service provider will have the necessary information about the domain name servers.
|
||||
refers to the computer that saves and forwards notices related to the Domain Names and their corresponding IP addresses in the Internet.
|
||||
account_activity: 'Account activity'
|
||||
account_activities: 'Account activities'
|
||||
receipt_date: 'Receipt date'
|
||||
|
@ -821,16 +831,20 @@ en:
|
|||
domain_registrant_change_confirmed_body: 'You have successfully submitted domain registrant change confirmation. You will receive email confirmation.'
|
||||
registrant_domain_verification_confirmed: 'Domain registrant change has successfully received.'
|
||||
registrant_domain_verification_confirmed_failed: 'Something went wrong.'
|
||||
domain_registrant_change_rejected_title: 'Domain registrant change has been rejected'
|
||||
domain_registrant_change_rejected_body: 'You have rejected domain registrant change.'
|
||||
domain_registrant_change_rejected_title: 'Domain registrant change rejection has been received'
|
||||
domain_registrant_change_rejected_body: 'You have rejected domain registrant change. You will receive confirmation by email.'
|
||||
registrant_domain_verification_rejected: 'Domain registrant change has been rejected successfully.'
|
||||
registrant_domain_verification_rejected_failed: 'Something went wrong.'
|
||||
domain_delete_title: 'Please confirm or reject domain deletation'
|
||||
domain_delete_title: 'Please confirm or reject domain deletion'
|
||||
domain_delete_body: 'There is a request to delete a domain. Before doing it we need your confirmation.'
|
||||
registrant_domain_delete_confirmed: 'Setting the domain up for deletion...'
|
||||
registrant_domain_delete_confirmed_failed: 'Something went wrong.'
|
||||
domain_delete_confirmed_title: 'Domain deletion has been received successfully'
|
||||
domain_delete_confirmed_body: 'You have successfully submitted delete confirmation. You will receive registry final confirmation to email.'
|
||||
domain_delete_rejected_title: 'Domain deletion has been rejected successfully'
|
||||
domain_delete_rejected_body: 'You have rejected domain deletion.'
|
||||
registrant_domain_delete_rejected: 'Rejecting the domain deletion...'
|
||||
registrant_domain_delete_rejected_failed: 'Something went wrong.'
|
||||
domain_delete_rejected_title: 'Domain deletion rejection has been received successfully'
|
||||
domain_delete_rejected_body: 'You have rejected pending domain deletion. You will receive confirmation by email.'
|
||||
no_permission: 'No permission'
|
||||
access_denied: 'Access denied'
|
||||
common_name: 'Common name'
|
||||
|
@ -941,4 +955,8 @@ en:
|
|||
add_blocked_domain: 'Add domain to blocked list'
|
||||
edit_pw: 'Edit Pw'
|
||||
optional: 'Optional'
|
||||
test_registrar: "Test registrar"
|
||||
verified_confirm: 'Verified status is for cases when current registrant is the one applying for the update. Legal document signed by the registrant is required. Are you sure this update is properly verified with the registrant?'
|
||||
verified: 'Verified'
|
||||
only_estonian_residets_can_signin: "Access currently available only to Estonian citizens and e-residents with Estonian ID-card or Mobile-ID."
|
||||
cant_match_version: 'Impossible match version with request'
|
||||
|
|
|
@ -7,7 +7,7 @@ Rails.application.routes.draw do
|
|||
|
||||
post 'command/:action', controller: 'domains', constraints: EppConstraint.new(:domain)
|
||||
post 'command/:action', controller: 'contacts', constraints: EppConstraint.new(:contact)
|
||||
post 'command/poll', to: 'polls#poll', constraints: EppConstraint.new(:poll)
|
||||
post 'command/poll', to: 'polls#poll', constraints: EppConstraint.new(:poll)
|
||||
post 'command/keyrelay', to: 'keyrelays#keyrelay', constraints: EppConstraint.new(:keyrelay)
|
||||
|
||||
post 'command/:command', to: 'errors#not_found', constraints: EppConstraint.new(:not_found) # fallback route
|
||||
|
|
5
db/migrate/20160225113801_add_up_id_value_to_domain.rb
Normal file
5
db/migrate/20160225113801_add_up_id_value_to_domain.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class AddUpIdValueToDomain < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :domains, :upid, :integer
|
||||
end
|
||||
end
|
5
db/migrate/20160225113812_add_up_id_value_to_contact.rb
Normal file
5
db/migrate/20160225113812_add_up_id_value_to_contact.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class AddUpIdValueToContact < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :contacts, :upid, :integer
|
||||
end
|
||||
end
|
5
db/migrate/20160226132045_add_up_date_value_to_domain.rb
Normal file
5
db/migrate/20160226132045_add_up_date_value_to_domain.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class AddUpDateValueToDomain < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :domains, :up_date, :timestamp
|
||||
end
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
class AddUpDateValueToContact < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :contacts, :up_date, :timestamp
|
||||
end
|
||||
end
|
|
@ -0,0 +1,6 @@
|
|||
class AddInvoiceNumberToDirecto < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :directos, :invoice_number, :string
|
||||
execute "UPDATE directos d SET invoice_number=i.number FROM invoices i WHERE d.item_type='Invoice' AND d.item_id=i.id"
|
||||
end
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
class AddTestRegistrarToRegistrar < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :registrars, :test_registrar, :boolean, default: false
|
||||
end
|
||||
end
|
5
db/migrate/20160405131315_add_request_to_directo.rb
Normal file
5
db/migrate/20160405131315_add_request_to_directo.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class AddRequestToDirecto < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :directos, :request, :text
|
||||
end
|
||||
end
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue