mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
MERGE: merged staging at 3235647
, resolved merge conflict
This commit is contained in:
commit
45588dc72a
78 changed files with 308808 additions and 421 deletions
4
.agignore
Normal file
4
.agignore
Normal file
|
@ -0,0 +1,4 @@
|
|||
tmp
|
||||
public/assets
|
||||
*.svg
|
||||
import
|
8
LICENSE
8
LICENSE
|
@ -1,4 +1,4 @@
|
|||
The MIT License (MIT)
|
||||
The MIT/X11 License (MIT/X11)
|
||||
|
||||
Copyright (c) 2014 Estonian Internet Foundation
|
||||
|
||||
|
@ -18,4 +18,8 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright holders
|
||||
shall not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in this Software without prior written authorization.
|
||||
|
|
|
@ -14,3 +14,5 @@ $(document).on 'page:change', ->
|
|||
# client side validate all forms
|
||||
$('form').each ->
|
||||
$(this).validate()
|
||||
|
||||
$('[data-toggle="popover"]').popover()
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#= require jquery.validate.additional-methods
|
||||
#= require turbolinks
|
||||
#= require bootstrap-sprockets
|
||||
#= require typeahead.bundle.min
|
||||
#= require jquery.nested_attributes
|
||||
#= require shared/jquery.validate.bootstrap
|
||||
#= require jquery-ui/datepicker
|
||||
|
@ -11,4 +12,5 @@
|
|||
|
||||
#= require shared/general
|
||||
|
||||
#= require registrar/autocomplete
|
||||
#= require registrar/application
|
||||
|
|
27
app/assets/javascripts/registrar/autocomplete.coffee
Normal file
27
app/assets/javascripts/registrar/autocomplete.coffee
Normal file
|
@ -0,0 +1,27 @@
|
|||
class @Autocomplete
|
||||
constructor: ->
|
||||
@buildAutocomplete(el) for el in document.querySelectorAll('[data-autocomplete]')
|
||||
|
||||
buildAutocomplete: (el)->
|
||||
name = el.dataset.autocomplete[1..-1].replace(/\//g, "_") # cahcing
|
||||
|
||||
$(el).typeahead 'destroy'
|
||||
$(el).typeahead(
|
||||
name: name,
|
||||
highlight: true,
|
||||
hint: false
|
||||
,
|
||||
displayKey: "display_key"
|
||||
source: (query, syncResults)->
|
||||
$.getJSON "#{el.dataset.autocomplete}?query=#{query}", (data)->
|
||||
syncResults(data)
|
||||
|
||||
|
||||
).on('typeahead:selected', (e, item) ->
|
||||
console.log e.currentTarget.id
|
||||
orig = document.querySelector('#' + e.currentTarget.id.replace(/_helper$/, ''))
|
||||
orig.value = item.value
|
||||
)
|
||||
|
||||
$(document).on "ready page:load", ->
|
||||
new Autocomplete
|
|
@ -3,13 +3,15 @@ class Admin::ReservedDomainsController < AdminController
|
|||
|
||||
def index
|
||||
rd = ReservedDomain.first_or_initialize
|
||||
@reserved_domains = rd.names.to_yaml
|
||||
rd.names = nil if rd.names.blank?
|
||||
@reserved_domains = rd.names.to_yaml.gsub(/---.?\n/, '').gsub(/\.\.\..?\n/, '')
|
||||
end
|
||||
|
||||
def create
|
||||
@reserved_domains = params[:reserved_domains]
|
||||
|
||||
begin
|
||||
params[:reserved_domains] = "---\n" if params[:reserved_domains].blank?
|
||||
names = YAML.load(params[:reserved_domains])
|
||||
fail if names == false
|
||||
rescue
|
||||
|
|
|
@ -116,7 +116,7 @@ class Epp::SessionsController < EppController
|
|||
def connection_limit_ok?
|
||||
return true if Rails.env.test? || Rails.env.development?
|
||||
c = EppSession.where(
|
||||
'registrar_id = ? AND updated_at >= ?', @api_user.registrar_id, Time.zone.now - 5.minutes
|
||||
'registrar_id = ? AND updated_at >= ?', @api_user.registrar_id, Time.zone.now - 1.second
|
||||
).count
|
||||
|
||||
return false if c >= 4
|
||||
|
|
|
@ -150,6 +150,10 @@ class EppController < ApplicationController
|
|||
end
|
||||
|
||||
@errors.uniq!
|
||||
|
||||
logger.error "\nFOLLOWING ERRORS OCCURRED ON EPP QUERY:"
|
||||
logger.error @errors.inspect
|
||||
logger.error "\n"
|
||||
|
||||
# Requested by client, ticket #2688
|
||||
# Known issues: error request is exactly 1 second slower and server can handle less load
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class Registrar::DomainsController < Registrar::DeppController # EPP controller
|
||||
before_action :init_domain, except: :new
|
||||
before_action :init_contacts_autocomplete_map, only: [:new, :edit, :create, :update]
|
||||
helper_method :contacts
|
||||
|
||||
# rubocop: disable Metrics/PerceivedComplexity
|
||||
# rubocop: disable Metrics/CyclomaticComplexity
|
||||
|
@ -138,17 +138,27 @@ class Registrar::DomainsController < Registrar::DeppController # EPP controller
|
|||
end
|
||||
end
|
||||
|
||||
def search_contacts
|
||||
authorize! :create, Depp::Domain
|
||||
|
||||
scope = current_user.registrar.contacts.limit(10)
|
||||
if params[:query].present?
|
||||
escaped_str = ActiveRecord::Base.connection.quote_string params[:query]
|
||||
scope = scope.where("name ilike '%#{escaped_str}%' OR code ilike '%#{escaped_str}%' ")
|
||||
end
|
||||
|
||||
render json: scope.pluck(:name, :code).map { |c| {display_key: "#{c.second} #{c.first}", value: c.second} }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def init_domain
|
||||
@domain = Depp::Domain.new(current_user: depp_current_user)
|
||||
end
|
||||
|
||||
def init_contacts_autocomplete_map
|
||||
@contacts_autocomplete_map ||=
|
||||
current_user.registrar.contacts.pluck(:name, :code).map { |c| ["#{c.second} #{c.first}", c.second] }
|
||||
# @priv_contacts_autocomplete_map ||=
|
||||
# current_user.registrar.priv_contacts.pluck(:name, :code).map { |c| ["#{c.second} #{c.first}", c.second] }
|
||||
|
||||
def contacts
|
||||
current_user.registrar.contacts
|
||||
end
|
||||
|
||||
def normalize_search_parameters
|
||||
|
|
|
@ -6,12 +6,16 @@ class DomainUpdateConfirmJob < Que::Job
|
|||
case action
|
||||
when RegistrantVerification::CONFIRMED
|
||||
domain.poll_message!(:poll_pending_update_confirmed_by_registrant)
|
||||
domain.apply_pending_update!
|
||||
domain.apply_pending_update! do |e|
|
||||
e.instance_variable_set("@changed_attributes", e.changed_attributes.merge("statuses"=>[]))
|
||||
end
|
||||
domain.clean_pendings!
|
||||
when RegistrantVerification::REJECTED
|
||||
DomainMailer.pending_update_rejected_notification_for_new_registrant(domain).deliver_now
|
||||
domain.poll_message!(:poll_pending_update_rejected_by_registrant)
|
||||
domain.clean_pendings!
|
||||
domain.instance_variable_set("@changed_attributes", domain.changed_attributes.merge("statuses"=>[]))
|
||||
domain.save
|
||||
end
|
||||
destroy # it's best to destroy the job in the same transaction
|
||||
end
|
||||
|
|
10
app/jobs/regenerate_registrar_whoises_job.rb
Normal file
10
app/jobs/regenerate_registrar_whoises_job.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
class RegenerateRegistrarWhoisesJob < Que::Job
|
||||
def run(registrar_id)
|
||||
# no return as we want restart job if fails
|
||||
registrar = Registrar.find(registrar_id)
|
||||
|
||||
registrar.whois_records.select(:id).find_in_batches(batch_size: 20) do |group|
|
||||
RegenerateWhoisRecordJob.enqueue group.map(&:id)
|
||||
end
|
||||
end
|
||||
end
|
10
app/jobs/regenerate_whois_record_job.rb
Normal file
10
app/jobs/regenerate_whois_record_job.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
class RegenerateWhoisRecordJob < Que::Job
|
||||
def run(ids)
|
||||
ids.each do |id|
|
||||
record = WhoisRecord.find_by(id: id)
|
||||
return unless record
|
||||
|
||||
record.save
|
||||
end
|
||||
end
|
||||
end
|
|
@ -345,6 +345,10 @@ class Contact < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def search_name
|
||||
"#{code} #{name}"
|
||||
end
|
||||
|
||||
def set_linked
|
||||
statuses << LINKED if statuses.detect { |s| s == LINKED }.blank?
|
||||
end
|
||||
|
|
|
@ -257,7 +257,7 @@ class Domain < ActiveRecord::Base
|
|||
next unless domain.expirable?
|
||||
domain.set_graceful_expired
|
||||
STDOUT << "#{Time.zone.now.utc} Domain.start_expire_period: ##{domain.id} (#{domain.name}) #{domain.changes}\n" unless Rails.env.test?
|
||||
domain.save(validate: false)
|
||||
domain.save
|
||||
end
|
||||
|
||||
STDOUT << "#{Time.zone.now.utc} - Successfully expired #{domains.count} domains\n" unless Rails.env.test?
|
||||
|
@ -370,13 +370,16 @@ class Domain < ActiveRecord::Base
|
|||
|
||||
def renewable?
|
||||
if Setting.days_to_renew_domain_before_expire != 0
|
||||
if ((valid_to - Time.zone.now.beginning_of_day).to_i / 1.day) + 1 > Setting.days_to_renew_domain_before_expire
|
||||
# if you can renew domain at days_to_renew before domain expiration
|
||||
if (valid_to.to_date - Date.today) + 1 > Setting.days_to_renew_domain_before_expire
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return false if statuses.include?(DomainStatus::DELETE_CANDIDATE) || statuses.include?(DomainStatus::FORCE_DELETE)
|
||||
|
||||
return false if statuses.include_any?(DomainStatus::DELETE_CANDIDATE, DomainStatus::SERVER_RENEW_PROHIBITED,
|
||||
DomainStatus::CLIENT_RENEW_PROHIBITED, DomainStatus::PENDING_RENEW,
|
||||
DomainStatus::PENDING_TRANSFER, DomainStatus::PENDING_DELETE,
|
||||
DomainStatus::PENDING_UPDATE, 'pendingDeleteConfirmation')
|
||||
true
|
||||
end
|
||||
|
||||
|
@ -636,7 +639,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
|
||||
statuses << DomainStatus::EXPIRED
|
||||
self.statuses |= [DomainStatus::EXPIRED]
|
||||
end
|
||||
|
||||
def set_expired
|
||||
|
|
|
@ -69,7 +69,7 @@ class DomainStatus < ActiveRecord::Base
|
|||
SERVER_ADMIN_CHANGE_PROHIBITED = 'serverAdminChangeProhibited'
|
||||
SERVER_TECH_CHANGE_PROHIBITED = 'serverTechChangeProhibited'
|
||||
PENDING_DELETE_CONFIRMATION = 'pendingDeleteConfirmation'
|
||||
FORCE_DELETE = 'forceDelete'
|
||||
FORCE_DELETE = 'serverForceDelete'
|
||||
DELETE_CANDIDATE = 'deleteCandidate'
|
||||
EXPIRED = 'expired'
|
||||
RESERVED = 'reserved'
|
||||
|
@ -122,6 +122,7 @@ class DomainStatus < ActiveRecord::Base
|
|||
|
||||
class << self
|
||||
def admin_statuses
|
||||
<<<<<<< HEAD
|
||||
[
|
||||
SERVER_HOLD,
|
||||
# sync with admin_statuses_map
|
||||
|
@ -134,12 +135,31 @@ class DomainStatus < ActiveRecord::Base
|
|||
SERVER_UPDATE_PROHIBITED,
|
||||
SERVER_DELETE_PROHIBITED
|
||||
]
|
||||
=======
|
||||
# [
|
||||
# SERVER_HOLD,
|
||||
# # sync with admin_statuses_map
|
||||
# # SERVER_MANUAL_INZONE,
|
||||
# # SERVER_RENEW_PROHIBITED,
|
||||
# # SERVER_TRANSFER_PROHIBITED,
|
||||
# # SERVER_REGISTRANT_CHANGE_PROHIBITED,
|
||||
# # SERVER_ADMIN_CHANGE_PROHIBITED,
|
||||
# # SERVER_TECH_CHANGE_PROHIBITED,
|
||||
# SERVER_DELETE_PROHIBITED,
|
||||
# SERVER_UPDATE_PROHIBITED
|
||||
# ]
|
||||
admin_statuses_map.map(&:second)
|
||||
>>>>>>> staging
|
||||
end
|
||||
|
||||
|
||||
def admin_statuses_map
|
||||
[
|
||||
['Hold', SERVER_HOLD],
|
||||
<<<<<<< HEAD
|
||||
# sync with admin_statuses
|
||||
=======
|
||||
>>>>>>> staging
|
||||
['ManualInzone', SERVER_MANUAL_INZONE],
|
||||
# [''],
|
||||
['RenewProhibited', SERVER_RENEW_PROHIBITED],
|
||||
|
|
|
@ -479,6 +479,7 @@ class Epp::Domain < Domain
|
|||
user = ApiUser.find(pending_json['current_user_id'])
|
||||
frame = Nokogiri::XML(pending_json['frame'])
|
||||
statuses.delete(DomainStatus::PENDING_UPDATE)
|
||||
yield(self) if block_given? # need to skip statuses check here
|
||||
|
||||
return unless update(frame, user, false)
|
||||
clean_pendings!
|
||||
|
|
|
@ -3,6 +3,7 @@ module Legacy
|
|||
self.table_name = :contact
|
||||
belongs_to :object_registry, foreign_key: :id
|
||||
belongs_to :object, foreign_key: :id
|
||||
belongs_to :object_state, foreign_key: :id, primary_key: :object_id
|
||||
|
||||
has_one :object_state, -> { where('valid_to IS NULL') }, foreign_key: :object_id
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
module Legacy
|
||||
class Dnskey < Db
|
||||
self.table_name = :dnskey
|
||||
|
||||
belongs_to :object_registry, foreign_key: :id
|
||||
belongs_to :object, foreign_key: :id
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,8 @@ module Legacy
|
|||
class Nsset < Db
|
||||
self.table_name = :nsset
|
||||
|
||||
belongs_to :object, foreign_key: :id
|
||||
belongs_to :object_registry, foreign_key: :id
|
||||
has_many :hosts, foreign_key: :nssetid
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
module Legacy
|
||||
class Object < Db
|
||||
self.table_name = :object
|
||||
belongs_to :registrar, foreign_key: :upid, primary_key: :legacy_id, class_name: '::Registrar'
|
||||
|
||||
def self.instance_method_already_implemented?(method_name)
|
||||
return true if method_name == 'update'
|
||||
|
|
|
@ -2,40 +2,39 @@ module Legacy
|
|||
class ObjectState < Db
|
||||
self.table_name = :object_state
|
||||
|
||||
def name
|
||||
# legacy values
|
||||
# 2 => "serverRenewProhibited",
|
||||
# 5 => "serverOutzoneManual",
|
||||
# 6 => "serverInzoneManual",
|
||||
# 7 => "serverBlocked",
|
||||
# 8 => "expirationWarning",
|
||||
# 9 => "expired",
|
||||
# 10 => "unguarded",
|
||||
# 11 => "validationWarning1",
|
||||
# 12 => "validationWarning2",
|
||||
# 13 => "notValidated",
|
||||
# 14 => "nssetMissing",
|
||||
# 15 => "outzone",
|
||||
# 18 => "serverRegistrantChangeProhibited",
|
||||
# 19 => "deleteWarning",
|
||||
# 20 => "outzoneUnguarded",
|
||||
# 1 => "serverDeleteProhibited",
|
||||
# 3 => "serverTransferProhibited",
|
||||
# 4 => "serverUpdateProhibited",
|
||||
# 16 => "linked",
|
||||
# 17 => "deleteCandidate",
|
||||
# 21 => "forceDelete"
|
||||
# legacy values. Just for log
|
||||
# 2 => "serverRenewProhibited",
|
||||
# 5 => "serverOutzoneManual",
|
||||
# 6 => "serverInzoneManual",
|
||||
# 7 => "serverBlocked",
|
||||
# 8 => "expirationWarning",
|
||||
# 9 => "expired",
|
||||
# 10 => "unguarded",
|
||||
# 11 => "validationWarning1",
|
||||
# 12 => "validationWarning2",
|
||||
# 13 => "notValidated",
|
||||
# 14 => "nssetMissing",
|
||||
# 15 => "outzone",
|
||||
# 18 => "serverRegistrantChangeProhibited",
|
||||
# 19 => "deleteWarning",
|
||||
# 20 => "outzoneUnguarded",
|
||||
# 1 => "serverDeleteProhibited",
|
||||
# 3 => "serverTransferProhibited",
|
||||
# 4 => "serverUpdateProhibited",
|
||||
# 16 => "linked",
|
||||
# 17 => "deleteCandidate",
|
||||
# 21 => "forceDelete"
|
||||
|
||||
# new values
|
||||
map = {
|
||||
# new values
|
||||
STATE_NAMES = {
|
||||
2 => "serverRenewProhibited",
|
||||
5 => "serverHold",
|
||||
6 => "serverManualInzone",
|
||||
7 => "serverBlocked",
|
||||
# 7 => "serverBlocked",
|
||||
9 => "expired",
|
||||
11 => "validationWarning1",
|
||||
13 => "notValidated",
|
||||
14 => "nssetMissing",
|
||||
# 11 => "validationWarning1",
|
||||
# 13 => "notValidated",
|
||||
14 => "inactive",
|
||||
15 => "serverHold",
|
||||
18 => "serverRegistrantChangeProhibited",
|
||||
1 => "serverDeleteProhibited",
|
||||
|
@ -43,10 +42,12 @@ module Legacy
|
|||
4 => "serverUpdateProhibited",
|
||||
16 => "linked",
|
||||
17 => "deleteCandidate", # grupistaatus
|
||||
21 => "forceDelete" # grupistaatus
|
||||
}
|
||||
21 => "serverForceDelete" # grupistaatus
|
||||
}.freeze
|
||||
|
||||
map[state_id]
|
||||
|
||||
def name
|
||||
STATE_NAMES[state_id]
|
||||
end
|
||||
|
||||
def desc
|
||||
|
|
|
@ -51,10 +51,10 @@ class Registrar < ActiveRecord::Base
|
|||
|
||||
WHOIS_TRIGGERS = %w(name email phone street city state zip)
|
||||
|
||||
after_save :update_whois_records
|
||||
after_commit :update_whois_records
|
||||
def update_whois_records
|
||||
return true unless changed? && (changes.keys & WHOIS_TRIGGERS).present?
|
||||
whois_records.map(&:save) # slow currently
|
||||
RegenerateRegistrarWhoisesJob.enqueue id
|
||||
end
|
||||
|
||||
after_create :create_cash_account
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
class ReservedDomain < ActiveRecord::Base
|
||||
include Versions # version/reserved_domain_version.rb
|
||||
before_save :fill_empty_passwords
|
||||
|
||||
def fill_empty_passwords
|
||||
return unless names
|
||||
names.each { |k, v| names[k] = SecureRandom.hex if v.blank? }
|
||||
end
|
||||
|
||||
class << self
|
||||
def pw_for(domain_name)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
require "erb"
|
||||
class WhoisRecord < ActiveRecord::Base
|
||||
belongs_to :domain
|
||||
belongs_to :registrar
|
||||
|
@ -5,14 +6,6 @@ class WhoisRecord < ActiveRecord::Base
|
|||
validates :domain, :name, :body, :json, presence: true
|
||||
|
||||
before_validation :populate
|
||||
def populate
|
||||
return if domain_id.blank?
|
||||
self.json = generate_json
|
||||
self.body = generated_body
|
||||
self.name = json['name']
|
||||
self.registrar_id = domain.registrar_id # for faster registrar updates
|
||||
end
|
||||
|
||||
after_save :update_whois_server
|
||||
|
||||
class << self
|
||||
|
@ -29,6 +22,10 @@ class WhoisRecord < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def generated_json
|
||||
@generated_json ||= generate_json
|
||||
end
|
||||
|
||||
# rubocop:disable Metrics/MethodLength
|
||||
# rubocop:disable Metrics/AbcSize
|
||||
def generate_json
|
||||
|
@ -36,116 +33,74 @@ class WhoisRecord < ActiveRecord::Base
|
|||
return h if domain.blank?
|
||||
|
||||
status_map = {
|
||||
'ok' => 'ok (paid and in zone)'
|
||||
'ok' => 'ok (paid and in zone)'
|
||||
}
|
||||
|
||||
@disclosed = []
|
||||
h[:name] = domain.name
|
||||
h[:registrant] = domain.registrant.name
|
||||
h[:status] = domain.statuses.map { |x| status_map[x] || x }.join(', ')
|
||||
h[:name] = domain.name
|
||||
h[:status] = domain.statuses.map { |x| status_map[x] || x }
|
||||
h[:registered] = domain.registered_at.try(:to_s, :iso8601)
|
||||
h[:updated_at] = domain.updated_at.try(:to_s, :iso8601)
|
||||
h[:valid_to] = domain.valid_to.try(:to_s, :iso8601)
|
||||
h[:changed] = domain.updated_at.try(:to_s, :iso8601)
|
||||
h[:expire] = domain.valid_to.try(:to_date).try(:to_s)
|
||||
h[:outzone] = domain.outzone_at.try(:to_date).try(:to_s)
|
||||
h[:delete] = domain.delete_at.try(:to_date).try(:to_s)
|
||||
|
||||
# update registar triggers when adding new attributes
|
||||
h[:registrar] = domain.registrar.name
|
||||
h[:registrar_phone] = domain.registrar.phone
|
||||
h[:registrar_address] = domain.registrar.address
|
||||
h[:registrar_update_at] = domain.registrar.updated_at.try(:to_s, :iso8601)
|
||||
|
||||
h[:registrant] = domain.registrant.name
|
||||
h[:registrant_email] = domain.registrant.email
|
||||
h[:changed] = domain.registrant.updated_at.try(:to_s, :iso8601)
|
||||
|
||||
h[:admin_contacts] = []
|
||||
domain.admin_contacts.each do |ac|
|
||||
@disclosed << [:email, ac.email]
|
||||
h[:admin_contacts] << {
|
||||
name: ac.name,
|
||||
email: ac.email,
|
||||
registrar: ac.registrar.name,
|
||||
created_at: ac.created_at.try(:to_s, :iso8601)
|
||||
name: ac.name,
|
||||
email: ac.email,
|
||||
changed: ac.updated_at.try(:to_s, :iso8601)
|
||||
}
|
||||
end
|
||||
h[:tech_contacts] = []
|
||||
domain.tech_contacts.each do |tc|
|
||||
@disclosed << [:email, tc.email]
|
||||
h[:tech_contacts] << {
|
||||
name: tc.name,
|
||||
email: tc.email,
|
||||
registrar: tc.registrar.name,
|
||||
created_at: tc.created_at.try(:to_s, :iso8601)
|
||||
}
|
||||
end
|
||||
h[:nameservers] = []
|
||||
domain.nameservers.each do |ns|
|
||||
h[:nameservers] << {
|
||||
hostname: ns.hostname,
|
||||
updated_at: ns.updated_at.try(:to_s, :iso8601)
|
||||
name: tc.name,
|
||||
email: tc.email,
|
||||
changed: tc.updated_at.try(:to_s, :iso8601)
|
||||
}
|
||||
end
|
||||
|
||||
# update registar triggers when adding new attributes
|
||||
h[:registrar] = domain.registrar.name
|
||||
h[:registrar_url] = domain.registrar.url
|
||||
h[:registrar_phone] = domain.registrar.phone
|
||||
h[:registrar_address] = domain.registrar.address
|
||||
h[:registrar_changed] = domain.registrar.updated_at.try(:to_s, :iso8601)
|
||||
|
||||
h[:nameservers] = domain.nameservers.pluck(:hostname).uniq.select(&:present?)
|
||||
h[:nameservers_changed] = domain.nameservers.pluck(:updated_at).max.try(:to_s, :iso8601)
|
||||
|
||||
h[:dnssec_keys] = domain.dnskeys.map{|key| "#{key.flags} #{key.protocol} #{key.alg} #{key.public_key}" }
|
||||
h[:dnssec_changed] = domain.dnskeys.pluck(:updated_at).max.try(:to_s, :iso8601) rescue nil
|
||||
|
||||
|
||||
h[:disclosed] = @disclosed
|
||||
h
|
||||
end
|
||||
|
||||
def generated_body
|
||||
<<-EOS
|
||||
Estonia .ee Top Level Domain WHOIS server
|
||||
|
||||
Domain:
|
||||
name: #{json['name']}
|
||||
registrant: #{json['registrant']}
|
||||
status: #{json['status']}
|
||||
registered: #{Time.zone.parse(json['registered'])}
|
||||
changed: #{Time.zone.parse(json['updated_at'])}
|
||||
expire: #{Time.zone.parse(json['valid_to'])}
|
||||
outzone:
|
||||
delete:
|
||||
#{contacts_body(json['admin_contacts'], json['tech_contacts'])}
|
||||
Registrar:
|
||||
name: #{json['registrar']}
|
||||
phone: #{json['registrar_phone']}
|
||||
address: #{json['registrar_address']}
|
||||
changed: #{Time.zone.parse(json['registrar_update_at'])}
|
||||
#{nameservers_body(json['nameservers'])}
|
||||
Estonia .ee Top Level Domain WHOIS server
|
||||
More information at http://internet.ee
|
||||
EOS
|
||||
template = Rails.root.join("app/views/for_models/whois.erb".freeze)
|
||||
ERB.new(template.read, nil, "-").result(binding)
|
||||
end
|
||||
# rubocop:enable Metrics/MethodLength
|
||||
# rubocop:enable Metrics/AbcSize
|
||||
|
||||
def contacts_body(admins, techs)
|
||||
admins ||= []
|
||||
techs ||= []
|
||||
|
||||
out = ''
|
||||
out << (admins.size > 1 ? "\nAdministrative contacts" : "\nAdministrative contact")
|
||||
admins.each do |c|
|
||||
out << "\n name: #{c['name']}"
|
||||
out << "\n email: Not Disclosed - Visit www.internet.ee for webbased WHOIS"
|
||||
out << "\n registrar: #{c['registrar']}"
|
||||
out << "\n created: #{Time.zone.parse(c['created_at'])}"
|
||||
out << "\n"
|
||||
end
|
||||
|
||||
out << (techs.size > 1 ? "\nTechnical contacts" : "\nTechnical contact:")
|
||||
techs.each do |c|
|
||||
out << "\n name: #{c['name']}"
|
||||
out << "\n email: Not Disclosed - Visit www.internet.ee for webbased WHOIS"
|
||||
out << "\n registrar: #{c['registrar']}"
|
||||
out << "\n created: #{Time.zone.parse(c['created_at'])}"
|
||||
out << "\n"
|
||||
end
|
||||
out
|
||||
end
|
||||
|
||||
def nameservers_body(nservers)
|
||||
nservers ||= []
|
||||
|
||||
out = "\nName servers:"
|
||||
nservers.each do |ns|
|
||||
out << "\n nserver: #{ns['hostname']}"
|
||||
out << "\n changed: #{Time.zone.parse(ns['updated_at'])}"
|
||||
out << "\n"
|
||||
end
|
||||
out
|
||||
def populate
|
||||
return if domain_id.blank?
|
||||
self.json = generated_json
|
||||
self.body = generated_body
|
||||
self.name = json['name']
|
||||
self.registrar_id = domain.registrar_id # for faster registrar updates
|
||||
end
|
||||
|
||||
def update_whois_server
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
- content_for :actions do
|
||||
= link_to('#', class: 'btn btn-default', "data-container": "body", "data-title": t('list_format_is_in_yaml'), "data-content": "domain.ee: authinfopw<br>seconddomain.ee:<br>thirddomain.ee: authinfo3<br><br>#{t('if_auth_info_is_left_empty_it_will_be_auto_generated')}<br>#{t('each_domain_name_must_end_with_colon_sign')}", "data-placement": "left", "data-toggle": "popover", "data-html" => "true") do
|
||||
%span.glyphicon.glyphicon-info-sign{"aria-hidden" => "true"}
|
||||
|
||||
= render 'shared/title', name: t(:reserved_domains)
|
||||
|
||||
= form_tag([:admin, :reserved_domains]) do |f|
|
||||
|
|
60
app/views/for_models/whois.erb
Normal file
60
app/views/for_models/whois.erb
Normal file
|
@ -0,0 +1,60 @@
|
|||
Estonia .ee Top Level Domain WHOIS server
|
||||
|
||||
Domain:
|
||||
name: <%= json['name'] %>
|
||||
<%- for st in Array(json['status']) -%>
|
||||
status: <%= st %>
|
||||
<%- end -%>
|
||||
registered: <%= json['registered'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
changed: <%= json['changed'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
expire: <%= json['expire'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
outzone: <%= json['outzone'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
delete: <%= json['delete'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
|
||||
Registrant:
|
||||
name: <%= json['registrant'] %>
|
||||
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
|
||||
changed: <%= json['changed'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
|
||||
<%- if json['admin_contacts'].present? -%>
|
||||
Administrative contact
|
||||
<%- for contact in json['admin_contacts'] -%>
|
||||
name: <%= contact['name'] %>
|
||||
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
|
||||
changed: <%= contact['changed'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
<%- end -%>
|
||||
|
||||
<%- end -%>
|
||||
<% if json['tech_contacts'].present? %>
|
||||
Technical contact:
|
||||
<%- for contact in json['admin_contacts'] -%>
|
||||
name: <%= contact['name'] %>
|
||||
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
|
||||
changed: <%= contact['changed'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
<%- end -%>
|
||||
|
||||
<%- end -%>
|
||||
Registrar:
|
||||
name: <%= json['registrar'] %>
|
||||
url: <%= json['registrar_url'] %>
|
||||
phone: <%= json['registrar_phone'] %>
|
||||
changed: <%= json['registrar_changed'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
|
||||
<%- if json['nameservers'].present? -%>
|
||||
Name servers:
|
||||
<%- for server in json['nameservers'] -%>
|
||||
nserver: <%= server %>
|
||||
<%- end -%>
|
||||
changed: <%= json['nameservers_changed'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
|
||||
<%- end -%>
|
||||
<%- if json['dnssec_keys'].present? -%>
|
||||
DNSSEC:
|
||||
<%- for key in json['dnssec_keys'] -%>
|
||||
dnskey: <%= key %>
|
||||
<%- end -%>
|
||||
changed: <%= json['dnssec_changed'].to_s.tr('T',' ').sub('+', ' +') %>
|
||||
|
||||
<%- end -%>
|
||||
Estonia .ee Top Level Domain WHOIS server
|
||||
More information at http://internet.ee
|
|
@ -1,6 +1,6 @@
|
|||
<table width="600" cellspacing="0" cellpadding="0" border="0" align="center"><tbody>
|
||||
<tr><td>
|
||||
<p>Eesti Interneti Sihtasutus</p>
|
||||
<p><img src="http://media.voog.com/0000/0037/4533/photos/eis_logo_rgb_block.png" width="150px" alt="Eesti Interneti Sihtasutus"></p>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<table cellspacing="0" cellpadding="0" border="0" align="center" style="text-align: justify; line-height: 16px; font-size: 12px;"><tbody>
|
||||
|
|
|
@ -8,5 +8,6 @@
|
|||
.form-group
|
||||
.col-md-3.control-label
|
||||
= f.label :legal_document, t(:legal_document)
|
||||
%p.help-block= t(:legal_document_max_size)
|
||||
.col-md-7
|
||||
= f.file_field :legal_document, :value => ''
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
.col-md-3.control-label
|
||||
- c, fr = 'required', true if params[:domain_name].blank?
|
||||
= label_tag 'domain[legal_document]', t(:legal_document), class: c
|
||||
%p.help-block= t(:legal_document_max_size)
|
||||
.col-md-7
|
||||
= file_field_tag 'domain[legal_document]', required: fr
|
||||
.col-md-4
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
.form-group
|
||||
.col-md-4.control-label
|
||||
= label_tag 'domain[legal_document]', t(:legal_document), class: 'required'
|
||||
%p.help-block= t(:legal_document_max_size)
|
||||
.col-md-6
|
||||
= file_field_tag 'domain[legal_document]', required: true
|
||||
= hidden_field_tag 'domain[name]', params[:domain_name]
|
||||
|
|
|
@ -18,9 +18,8 @@
|
|||
.col-md-3.control-label
|
||||
= label_tag "domain_contacts_attributes_#{k}_code", t(:id), class: 'required'
|
||||
.col-md-7.has-feedback
|
||||
= select_tag "domain[contacts_attributes][#{k}][code]",
|
||||
options_for_select(@contacts_autocomplete_map, selected: v['code']),
|
||||
include_blank: true, class: 'js-combobox js-contact-code', required: true
|
||||
= text_field_tag "domain[contacts_attributes][#{k}][code]", v['code'], class: "hidden"
|
||||
= text_field_tag "domain[contacts_attributes][#{k}][code_helper]", contacts.find_by(code: v['code']).try(:search_name), class: 'form-control', data: {autocomplete: search_contacts_registrar_domains_path}, required: true
|
||||
|
||||
:coffee
|
||||
clone = $('.js-contact:first').clone()
|
||||
|
@ -39,4 +38,5 @@
|
|||
# remove link for temp
|
||||
item.find('a.add-domain-contact').each (k, v) ->
|
||||
$(v).hide()
|
||||
new Autocomplete()
|
||||
$clone: clone
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
.col-md-3.control-label
|
||||
= label_tag :domain_registrant, t(:registrant), class: 'required'
|
||||
.col-md-7
|
||||
= select_tag "domain[registrant]",
|
||||
options_for_select(@contacts_autocomplete_map, selected: @domain_params[:registrant]),
|
||||
include_blank: true, class: 'js-combobox', required: true
|
||||
= text_field_tag 'domain[registrant]', @domain_params[:registrant], class: "hidden"
|
||||
= 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
|
||||
|
||||
- unless params[:domain_name]
|
||||
.form-group
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
</create>
|
||||
<extension>
|
||||
<eis:extdata xmlns:eis="https://epp.tld.ee/schema/eis-1.0.xsd">
|
||||
<eis:ident type="bic" cc="EE">123</eis:ident>
|
||||
<eis:ident type="org" cc="EE">123</eis:ident>
|
||||
<eis:legalDocument type="pdf">
|
||||
dGVzdCBmYWlsCg==
|
||||
</eis:legalDocument>
|
||||
|
|
5
config/initializers/array.rb
Normal file
5
config/initializers/array.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class Array
|
||||
def include_any? *args
|
||||
(self & args).any?
|
||||
end
|
||||
end
|
|
@ -633,6 +633,7 @@ en:
|
|||
expiry_absolute: 'Expiry absolute'
|
||||
upload_key: 'Upload key'
|
||||
legal_document: 'Legal document'
|
||||
legal_document_max_size: '(max. 8MB)'
|
||||
delete_domain: 'Delete domain'
|
||||
index: 'Index'
|
||||
ident: 'Ident'
|
||||
|
@ -921,3 +922,6 @@ en:
|
|||
force_delete_subject: 'Kustutusmenetluse teade'
|
||||
welcome_to_eis_registrar_portal: 'Welcome to EIS Registrar portal'
|
||||
interfaces: 'Interfaces'
|
||||
list_format_is_in_yaml: 'List format is in YAML'
|
||||
if_auth_info_is_left_empty_it_will_be_auto_generated: 'If auth info is left empty, it will be auto generated.'
|
||||
each_domain_name_must_end_with_colon_sign: 'Each domain name must end with colon (:) sign.'
|
||||
|
|
|
@ -56,6 +56,7 @@ Rails.application.routes.draw do
|
|||
get 'info'
|
||||
get 'check'
|
||||
get 'delete'
|
||||
get 'search_contacts'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
5
db/migrate/20151028183132_add_updated_at_to_dnskey.rb
Normal file
5
db/migrate/20151028183132_add_updated_at_to_dnskey.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class AddUpdatedAtToDnskey < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :dnskeys, :updated_at, :datetime
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20150921111842) do
|
||||
ActiveRecord::Schema.define(version: 20151028183132) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -240,19 +240,20 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
end
|
||||
|
||||
create_table "dnskeys", force: :cascade do |t|
|
||||
t.integer "domain_id"
|
||||
t.integer "flags"
|
||||
t.integer "protocol"
|
||||
t.integer "alg"
|
||||
t.text "public_key"
|
||||
t.integer "delegation_signer_id"
|
||||
t.string "ds_key_tag"
|
||||
t.integer "ds_alg"
|
||||
t.integer "ds_digest_type"
|
||||
t.string "ds_digest"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.integer "legacy_domain_id"
|
||||
t.integer "domain_id"
|
||||
t.integer "flags"
|
||||
t.integer "protocol"
|
||||
t.integer "alg"
|
||||
t.text "public_key"
|
||||
t.integer "delegation_signer_id"
|
||||
t.string "ds_key_tag"
|
||||
t.integer "ds_alg"
|
||||
t.integer "ds_digest_type"
|
||||
t.string "ds_digest"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.integer "legacy_domain_id"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "dnskeys", ["delegation_signer_id"], name: "index_dnskeys_on_delegation_signer_id", using: :btree
|
||||
|
@ -451,15 +452,28 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
add_index "legal_documents", ["documentable_type", "documentable_id"], name: "index_legal_documents_on_documentable_type_and_documentable_id", using: :btree
|
||||
|
||||
create_table "log_account_activities", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "account_id"
|
||||
t.integer "invoice_id"
|
||||
t.decimal "sum"
|
||||
t.string "currency"
|
||||
t.integer "bank_transaction_id"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "description"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.string "activity_type"
|
||||
t.integer "log_pricelist_id"
|
||||
end
|
||||
|
||||
add_index "log_account_activities", ["item_type", "item_id"], name: "index_log_account_activities_on_item_type_and_item_id", using: :btree
|
||||
|
@ -475,21 +489,44 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "registrar_id"
|
||||
t.string "account_type"
|
||||
t.decimal "balance"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "currency"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_accounts", ["item_type", "item_id"], name: "index_log_accounts_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_accounts", ["whodunnit"], name: "index_log_accounts_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_addresses", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "contact_id"
|
||||
t.string "city"
|
||||
t.string "street"
|
||||
t.string "zip"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "street2"
|
||||
t.string "street3"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.string "country_code"
|
||||
t.string "state"
|
||||
t.integer "legacy_contact_id"
|
||||
end
|
||||
|
||||
add_index "log_addresses", ["item_type", "item_id"], name: "index_log_addresses_on_item_type_and_item_id", using: :btree
|
||||
|
@ -511,30 +548,56 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
add_index "log_api_users", ["whodunnit"], name: "index_log_api_users_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_bank_statements", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "bank_code"
|
||||
t.string "iban"
|
||||
t.string "import_file_path"
|
||||
t.datetime "queried_at"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_bank_statements", ["item_type", "item_id"], name: "index_log_bank_statements_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_bank_statements", ["whodunnit"], name: "index_log_bank_statements_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_bank_transactions", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "bank_statement_id"
|
||||
t.string "bank_reference"
|
||||
t.string "iban"
|
||||
t.string "currency"
|
||||
t.string "buyer_bank_code"
|
||||
t.string "buyer_iban"
|
||||
t.string "buyer_name"
|
||||
t.string "document_no"
|
||||
t.string "description"
|
||||
t.decimal "sum"
|
||||
t.string "reference_no"
|
||||
t.datetime "paid_at"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_bank_transactions", ["item_type", "item_id"], name: "index_log_bank_transactions_on_item_type_and_item_id", using: :btree
|
||||
|
@ -550,6 +613,12 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "names", array: true
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_blocked_domains", ["item_type", "item_id"], name: "index_log_blocked_domains_on_item_type_and_item_id", using: :btree
|
||||
|
@ -565,6 +634,17 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "api_user_id"
|
||||
t.text "csr"
|
||||
t.text "crt"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "common_name"
|
||||
t.string "md5"
|
||||
t.string "interface"
|
||||
end
|
||||
|
||||
add_index "log_certificates", ["item_type", "item_id"], name: "index_log_certificates_on_item_type_and_item_id", using: :btree
|
||||
|
@ -586,15 +666,41 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
add_index "log_contact_statuses", ["whodunnit"], name: "index_log_contact_statuses_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_contacts", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "code"
|
||||
t.string "phone"
|
||||
t.string "email"
|
||||
t.string "fax"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "ident"
|
||||
t.string "ident_type"
|
||||
t.string "auth_info"
|
||||
t.string "name"
|
||||
t.string "org_name"
|
||||
t.integer "registrar_id"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.string "ident_country_code"
|
||||
t.string "city"
|
||||
t.text "street"
|
||||
t.string "zip"
|
||||
t.string "country_code"
|
||||
t.string "state"
|
||||
t.integer "legacy_id"
|
||||
t.string "statuses", array: true
|
||||
t.hstore "status_notes"
|
||||
t.integer "legacy_history_id"
|
||||
t.integer "copy_from_id"
|
||||
t.datetime "ident_updated_at"
|
||||
end
|
||||
|
||||
|
@ -617,78 +723,153 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
add_index "log_countries", ["whodunnit"], name: "index_log_countries_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_dnskeys", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "domain_id"
|
||||
t.integer "flags"
|
||||
t.integer "protocol"
|
||||
t.integer "alg"
|
||||
t.text "public_key"
|
||||
t.integer "delegation_signer_id"
|
||||
t.string "ds_key_tag"
|
||||
t.integer "ds_alg"
|
||||
t.integer "ds_digest_type"
|
||||
t.string "ds_digest"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.integer "legacy_domain_id"
|
||||
end
|
||||
|
||||
add_index "log_dnskeys", ["item_type", "item_id"], name: "index_log_dnskeys_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_dnskeys", ["whodunnit"], name: "index_log_dnskeys_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_domain_contacts", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "contact_id"
|
||||
t.integer "domain_id"
|
||||
t.string "contact_type"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "contact_code_cache"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.string "type"
|
||||
t.integer "legacy_domain_id"
|
||||
t.integer "legacy_contact_id"
|
||||
end
|
||||
|
||||
add_index "log_domain_contacts", ["item_type", "item_id"], name: "index_log_domain_contacts_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_domain_contacts", ["whodunnit"], name: "index_log_domain_contacts_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_domain_statuses", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "domain_id"
|
||||
t.string "description"
|
||||
t.string "value"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.integer "legacy_domain_id"
|
||||
end
|
||||
|
||||
add_index "log_domain_statuses", ["item_type", "item_id"], name: "index_log_domain_statuses_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_domain_statuses", ["whodunnit"], name: "index_log_domain_statuses_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_domain_transfers", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "domain_id"
|
||||
t.string "status"
|
||||
t.datetime "transfer_requested_at"
|
||||
t.datetime "transferred_at"
|
||||
t.integer "transfer_from_id"
|
||||
t.integer "transfer_to_id"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.datetime "wait_until"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_domain_transfers", ["item_type", "item_id"], name: "index_log_domain_transfers_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_domain_transfers", ["whodunnit"], name: "index_log_domain_transfers_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_domains", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.text "nameserver_ids", default: [], array: true
|
||||
t.text "tech_contact_ids", default: [], array: true
|
||||
t.text "admin_contact_ids", default: [], array: true
|
||||
t.text "nameserver_ids", default: [], array: true
|
||||
t.text "tech_contact_ids", default: [], array: true
|
||||
t.text "admin_contact_ids", default: [], array: true
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "name"
|
||||
t.integer "registrar_id"
|
||||
t.datetime "registered_at"
|
||||
t.string "status"
|
||||
t.datetime "valid_from"
|
||||
t.datetime "valid_to"
|
||||
t.integer "registrant_id"
|
||||
t.string "auth_info"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "name_dirty"
|
||||
t.string "name_puny"
|
||||
t.integer "period"
|
||||
t.string "period_unit"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.integer "legacy_id"
|
||||
t.integer "legacy_registrar_id"
|
||||
t.integer "legacy_registrant_id"
|
||||
t.datetime "outzone_at"
|
||||
t.datetime "delete_at"
|
||||
t.datetime "registrant_verification_asked_at"
|
||||
t.string "registrant_verification_token"
|
||||
t.json "pending_json"
|
||||
t.datetime "force_delete_at"
|
||||
t.string "statuses", array: true
|
||||
t.boolean "reserved"
|
||||
t.hstore "status_notes"
|
||||
t.string "statuses_backup", array: true
|
||||
end
|
||||
|
||||
add_index "log_domains", ["item_type", "item_id"], name: "index_log_domains_on_item_type_and_item_id", using: :btree
|
||||
|
@ -704,57 +885,135 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "invoice_id"
|
||||
t.string "description"
|
||||
t.string "unit"
|
||||
t.integer "amount"
|
||||
t.decimal "price"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_invoice_items", ["item_type", "item_id"], name: "index_log_invoice_items_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_invoice_items", ["whodunnit"], name: "index_log_invoice_items_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_invoices", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "invoice_type"
|
||||
t.datetime "due_date"
|
||||
t.string "payment_term"
|
||||
t.string "currency"
|
||||
t.string "description"
|
||||
t.string "reference_no"
|
||||
t.decimal "vat_prc"
|
||||
t.datetime "paid_at"
|
||||
t.integer "seller_id"
|
||||
t.string "seller_name"
|
||||
t.string "seller_reg_no"
|
||||
t.string "seller_iban"
|
||||
t.string "seller_bank"
|
||||
t.string "seller_swift"
|
||||
t.string "seller_vat_no"
|
||||
t.string "seller_country_code"
|
||||
t.string "seller_state"
|
||||
t.string "seller_street"
|
||||
t.string "seller_city"
|
||||
t.string "seller_zip"
|
||||
t.string "seller_phone"
|
||||
t.string "seller_url"
|
||||
t.string "seller_email"
|
||||
t.string "seller_contact_name"
|
||||
t.integer "buyer_id"
|
||||
t.string "buyer_name"
|
||||
t.string "buyer_reg_no"
|
||||
t.string "buyer_country_code"
|
||||
t.string "buyer_state"
|
||||
t.string "buyer_street"
|
||||
t.string "buyer_city"
|
||||
t.string "buyer_zip"
|
||||
t.string "buyer_phone"
|
||||
t.string "buyer_url"
|
||||
t.string "buyer_email"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.integer "number"
|
||||
t.datetime "cancelled_at"
|
||||
t.decimal "sum_cache"
|
||||
end
|
||||
|
||||
add_index "log_invoices", ["item_type", "item_id"], name: "index_log_invoices_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_invoices", ["whodunnit"], name: "index_log_invoices_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_keyrelays", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "domain_id"
|
||||
t.datetime "pa_date"
|
||||
t.string "key_data_flags"
|
||||
t.string "key_data_protocol"
|
||||
t.string "key_data_alg"
|
||||
t.text "key_data_public_key"
|
||||
t.string "auth_info_pw"
|
||||
t.string "expiry_relative"
|
||||
t.datetime "expiry_absolute"
|
||||
t.integer "requester_id"
|
||||
t.integer "accepter_id"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_keyrelays", ["item_type", "item_id"], name: "index_log_keyrelays_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_keyrelays", ["whodunnit"], name: "index_log_keyrelays_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_legal_documents", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "document_type"
|
||||
t.integer "documentable_id"
|
||||
t.string "documentable_type"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.string "path"
|
||||
end
|
||||
|
||||
add_index "log_legal_documents", ["item_type", "item_id"], name: "index_log_legal_documents_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_legal_documents", ["whodunnit"], name: "index_log_legal_documents_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_messages", force: :cascade do |t|
|
||||
create_table "log_mail_templates", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
|
@ -764,47 +1023,151 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "name"
|
||||
t.string "subject"
|
||||
t.string "from"
|
||||
t.string "bcc"
|
||||
t.string "cc"
|
||||
t.text "body"
|
||||
t.text "text_body"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
end
|
||||
|
||||
add_index "log_mail_templates", ["item_type", "item_id"], name: "index_log_mail_templates_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_mail_templates", ["whodunnit"], name: "index_log_mail_templates_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_messages", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "registrar_id"
|
||||
t.string "body"
|
||||
t.string "attached_obj_type"
|
||||
t.string "attached_obj_id"
|
||||
t.boolean "queued"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_messages", ["item_type", "item_id"], name: "index_log_messages_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_messages", ["whodunnit"], name: "index_log_messages_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_nameservers", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "hostname"
|
||||
t.string "ipv4"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "ipv6"
|
||||
t.integer "domain_id"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.integer "legacy_domain_id"
|
||||
end
|
||||
|
||||
add_index "log_nameservers", ["item_type", "item_id"], name: "index_log_nameservers_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_nameservers", ["whodunnit"], name: "index_log_nameservers_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_pricelists", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.integer "log_id"
|
||||
t.string "desc"
|
||||
t.string "category"
|
||||
t.decimal "price_cents"
|
||||
t.string "price_currency"
|
||||
t.datetime "valid_from"
|
||||
t.datetime "valid_to"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "duration"
|
||||
t.string "operation_category"
|
||||
end
|
||||
|
||||
create_table "log_registrars", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
create_table "log_registrant_verifications", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "domain_name"
|
||||
t.string "verification_token"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "action"
|
||||
t.integer "domain_id"
|
||||
t.string "action_type"
|
||||
end
|
||||
|
||||
add_index "log_registrant_verifications", ["item_type", "item_id"], name: "index_log_registrant_verifications_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_registrant_verifications", ["whodunnit"], name: "index_log_registrant_verifications_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_registrars", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "name"
|
||||
t.string "reg_no"
|
||||
t.string "vat_no"
|
||||
t.string "billing_address"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.string "phone"
|
||||
t.string "email"
|
||||
t.string "billing_email"
|
||||
t.string "country_code"
|
||||
t.string "state"
|
||||
t.string "city"
|
||||
t.string "street"
|
||||
t.string "zip"
|
||||
t.string "code"
|
||||
t.string "url"
|
||||
t.string "directo_handle"
|
||||
t.boolean "vat"
|
||||
t.integer "legacy_id"
|
||||
t.string "reference_no"
|
||||
end
|
||||
|
||||
add_index "log_registrars", ["item_type", "item_id"], name: "index_log_registrars_on_item_type_and_item_id", using: :btree
|
||||
|
@ -820,6 +1183,12 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.hstore "names"
|
||||
end
|
||||
|
||||
add_index "log_reserved_domains", ["item_type", "item_id"], name: "index_log_reserved_domains_on_item_type_and_item_id", using: :btree
|
||||
|
@ -835,21 +1204,56 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "var"
|
||||
t.text "value"
|
||||
t.integer "thing_id"
|
||||
t.string "thing_type"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
add_index "log_settings", ["item_type", "item_id"], name: "index_log_settings_on_item_type_and_item_id", using: :btree
|
||||
add_index "log_settings", ["whodunnit"], name: "index_log_settings_on_whodunnit", using: :btree
|
||||
|
||||
create_table "log_users", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "username"
|
||||
t.string "password"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "email"
|
||||
t.integer "sign_in_count"
|
||||
t.datetime "current_sign_in_at"
|
||||
t.datetime "last_sign_in_at"
|
||||
t.inet "current_sign_in_ip"
|
||||
t.inet "last_sign_in_ip"
|
||||
t.string "identity_code"
|
||||
t.string "roles", array: true
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.string "country_code"
|
||||
t.integer "registrar_id"
|
||||
t.boolean "active"
|
||||
t.text "csr"
|
||||
t.text "crt"
|
||||
t.string "type"
|
||||
t.string "registrant_ident"
|
||||
t.string "encrypted_password"
|
||||
t.datetime "remember_created_at"
|
||||
t.integer "failed_attempts"
|
||||
t.datetime "locked_at"
|
||||
end
|
||||
|
||||
add_index "log_users", ["item_type", "item_id"], name: "index_log_users_on_item_type_and_item_id", using: :btree
|
||||
|
@ -865,18 +1269,43 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.integer "registrar_id"
|
||||
t.string "ipv4"
|
||||
t.string "ipv6"
|
||||
t.string "interfaces", array: true
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
end
|
||||
|
||||
create_table "log_zonefile_settings", force: :cascade do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.json "object"
|
||||
t.json "object_changes"
|
||||
t.datetime "created_at"
|
||||
t.string "session"
|
||||
t.json "children"
|
||||
t.integer "log_id"
|
||||
t.string "origin"
|
||||
t.integer "ttl"
|
||||
t.integer "refresh"
|
||||
t.integer "retry"
|
||||
t.integer "expire"
|
||||
t.integer "minimum_ttl"
|
||||
t.string "email"
|
||||
t.string "master_nameserver"
|
||||
t.datetime "log_created_at"
|
||||
t.datetime "log_updated_at"
|
||||
t.string "creator_str"
|
||||
t.string "updator_str"
|
||||
t.text "ns_records"
|
||||
t.text "a_records"
|
||||
t.text "a4_records"
|
||||
end
|
||||
|
||||
add_index "log_zonefile_settings", ["item_type", "item_id"], name: "index_log_zonefile_settings_on_item_type_and_item_id", using: :btree
|
||||
|
@ -890,8 +1319,8 @@ ActiveRecord::Schema.define(version: 20150921111842) do
|
|||
t.string "cc"
|
||||
t.text "body", null: false
|
||||
t.text "text_body", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
end
|
||||
|
||||
create_table "messages", force: :cascade do |t|
|
||||
|
|
|
@ -19,7 +19,8 @@ registrar1 = Registrar.where(
|
|||
password: 'password',
|
||||
identity_code: '51001091072',
|
||||
active: true,
|
||||
registrar: registrar1
|
||||
registrar: registrar1,
|
||||
roles: ['super']
|
||||
)
|
||||
|
||||
|
||||
|
@ -41,7 +42,8 @@ registrar2 = Registrar.where(
|
|||
password: 'password',
|
||||
identity_code: '11412090004',
|
||||
active: true,
|
||||
registrar: registrar2
|
||||
registrar: registrar2,
|
||||
roles: ['super']
|
||||
)
|
||||
|
||||
|
||||
|
|
597
db/structure.sql
597
db/structure.sql
|
@ -745,7 +745,8 @@ CREATE TABLE dnskeys (
|
|||
ds_digest character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
legacy_domain_id integer
|
||||
legacy_domain_id integer,
|
||||
updated_at timestamp without time zone
|
||||
);
|
||||
|
||||
|
||||
|
@ -1170,7 +1171,20 @@ CREATE TABLE log_account_activities (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
account_id integer,
|
||||
invoice_id integer,
|
||||
sum numeric,
|
||||
currency character varying,
|
||||
bank_transaction_id integer,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
description character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
activity_type character varying,
|
||||
log_pricelist_id integer
|
||||
);
|
||||
|
||||
|
||||
|
@ -1207,7 +1221,16 @@ CREATE TABLE log_accounts (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
registrar_id integer,
|
||||
account_type character varying,
|
||||
balance numeric,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
currency character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1244,7 +1267,21 @@ CREATE TABLE log_addresses (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
contact_id integer,
|
||||
city character varying,
|
||||
street character varying,
|
||||
zip character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
street2 character varying,
|
||||
street3 character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
country_code character varying,
|
||||
state character varying,
|
||||
legacy_contact_id integer
|
||||
);
|
||||
|
||||
|
||||
|
@ -1318,7 +1355,16 @@ CREATE TABLE log_bank_statements (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
bank_code character varying,
|
||||
iban character varying,
|
||||
import_file_path character varying,
|
||||
queried_at timestamp without time zone,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1355,7 +1401,24 @@ CREATE TABLE log_bank_transactions (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
bank_statement_id integer,
|
||||
bank_reference character varying,
|
||||
iban character varying,
|
||||
currency character varying,
|
||||
buyer_bank_code character varying,
|
||||
buyer_iban character varying,
|
||||
buyer_name character varying,
|
||||
document_no character varying,
|
||||
description character varying,
|
||||
sum numeric,
|
||||
reference_no character varying,
|
||||
paid_at timestamp without time zone,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1392,7 +1455,13 @@ CREATE TABLE log_blocked_domains (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
names character varying[],
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1429,7 +1498,18 @@ CREATE TABLE log_certificates (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
api_user_id integer,
|
||||
csr text,
|
||||
crt text,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
common_name character varying,
|
||||
md5 character varying,
|
||||
interface character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1504,6 +1584,32 @@ CREATE TABLE log_contacts (
|
|||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json,
|
||||
log_id integer,
|
||||
code character varying,
|
||||
phone character varying,
|
||||
email character varying,
|
||||
fax character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
ident character varying,
|
||||
ident_type character varying,
|
||||
auth_info character varying,
|
||||
name character varying,
|
||||
org_name character varying,
|
||||
registrar_id integer,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
ident_country_code character varying,
|
||||
city character varying,
|
||||
street text,
|
||||
zip character varying,
|
||||
country_code character varying,
|
||||
state character varying,
|
||||
legacy_id integer,
|
||||
statuses character varying[],
|
||||
status_notes hstore,
|
||||
legacy_history_id integer,
|
||||
copy_from_id integer,
|
||||
ident_updated_at timestamp without time zone
|
||||
);
|
||||
|
||||
|
@ -1578,7 +1684,21 @@ CREATE TABLE log_dnskeys (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
domain_id integer,
|
||||
flags integer,
|
||||
protocol integer,
|
||||
alg integer,
|
||||
public_key text,
|
||||
delegation_signer_id integer,
|
||||
ds_key_tag character varying,
|
||||
ds_alg integer,
|
||||
ds_digest_type integer,
|
||||
ds_digest character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
legacy_domain_id integer
|
||||
);
|
||||
|
||||
|
||||
|
@ -1615,7 +1735,19 @@ CREATE TABLE log_domain_contacts (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
contact_id integer,
|
||||
domain_id integer,
|
||||
contact_type character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
contact_code_cache character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
type character varying,
|
||||
legacy_domain_id integer,
|
||||
legacy_contact_id integer
|
||||
);
|
||||
|
||||
|
||||
|
@ -1652,7 +1784,14 @@ CREATE TABLE log_domain_statuses (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
domain_id integer,
|
||||
description character varying,
|
||||
value character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
legacy_domain_id integer
|
||||
);
|
||||
|
||||
|
||||
|
@ -1689,7 +1828,19 @@ CREATE TABLE log_domain_transfers (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
domain_id integer,
|
||||
status character varying,
|
||||
transfer_requested_at timestamp without time zone,
|
||||
transferred_at timestamp without time zone,
|
||||
transfer_from_id integer,
|
||||
transfer_to_id integer,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
wait_until timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1729,7 +1880,37 @@ CREATE TABLE log_domains (
|
|||
tech_contact_ids text[] DEFAULT '{}'::text[],
|
||||
admin_contact_ids text[] DEFAULT '{}'::text[],
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
name character varying,
|
||||
registrar_id integer,
|
||||
registered_at timestamp without time zone,
|
||||
status character varying,
|
||||
valid_from timestamp without time zone,
|
||||
valid_to timestamp without time zone,
|
||||
registrant_id integer,
|
||||
auth_info character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
name_dirty character varying,
|
||||
name_puny character varying,
|
||||
period integer,
|
||||
period_unit character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
legacy_id integer,
|
||||
legacy_registrar_id integer,
|
||||
legacy_registrant_id integer,
|
||||
outzone_at timestamp without time zone,
|
||||
delete_at timestamp without time zone,
|
||||
registrant_verification_asked_at timestamp without time zone,
|
||||
registrant_verification_token character varying,
|
||||
pending_json json,
|
||||
force_delete_at timestamp without time zone,
|
||||
statuses character varying[],
|
||||
reserved boolean,
|
||||
status_notes hstore,
|
||||
statuses_backup character varying[]
|
||||
);
|
||||
|
||||
|
||||
|
@ -1766,7 +1947,17 @@ CREATE TABLE log_invoice_items (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
invoice_id integer,
|
||||
description character varying,
|
||||
unit character varying,
|
||||
amount integer,
|
||||
price numeric,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1803,7 +1994,50 @@ CREATE TABLE log_invoices (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
invoice_type character varying,
|
||||
due_date timestamp without time zone,
|
||||
payment_term character varying,
|
||||
currency character varying,
|
||||
description character varying,
|
||||
reference_no character varying,
|
||||
vat_prc numeric,
|
||||
paid_at timestamp without time zone,
|
||||
seller_id integer,
|
||||
seller_name character varying,
|
||||
seller_reg_no character varying,
|
||||
seller_iban character varying,
|
||||
seller_bank character varying,
|
||||
seller_swift character varying,
|
||||
seller_vat_no character varying,
|
||||
seller_country_code character varying,
|
||||
seller_state character varying,
|
||||
seller_street character varying,
|
||||
seller_city character varying,
|
||||
seller_zip character varying,
|
||||
seller_phone character varying,
|
||||
seller_url character varying,
|
||||
seller_email character varying,
|
||||
seller_contact_name character varying,
|
||||
buyer_id integer,
|
||||
buyer_name character varying,
|
||||
buyer_reg_no character varying,
|
||||
buyer_country_code character varying,
|
||||
buyer_state character varying,
|
||||
buyer_street character varying,
|
||||
buyer_city character varying,
|
||||
buyer_zip character varying,
|
||||
buyer_phone character varying,
|
||||
buyer_url character varying,
|
||||
buyer_email character varying,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
number integer,
|
||||
cancelled_at timestamp without time zone,
|
||||
sum_cache numeric
|
||||
);
|
||||
|
||||
|
||||
|
@ -1840,7 +2074,23 @@ CREATE TABLE log_keyrelays (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
domain_id integer,
|
||||
pa_date timestamp without time zone,
|
||||
key_data_flags character varying,
|
||||
key_data_protocol character varying,
|
||||
key_data_alg character varying,
|
||||
key_data_public_key text,
|
||||
auth_info_pw character varying,
|
||||
expiry_relative character varying,
|
||||
expiry_absolute timestamp without time zone,
|
||||
requester_id integer,
|
||||
accepter_id integer,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1877,7 +2127,16 @@ CREATE TABLE log_legal_documents (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
document_type character varying,
|
||||
documentable_id integer,
|
||||
documentable_type character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
path character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1900,6 +2159,53 @@ CREATE SEQUENCE log_legal_documents_id_seq
|
|||
ALTER SEQUENCE log_legal_documents_id_seq OWNED BY log_legal_documents.id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_mail_templates; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE log_mail_templates (
|
||||
id integer NOT NULL,
|
||||
item_type character varying NOT NULL,
|
||||
item_id integer NOT NULL,
|
||||
event character varying NOT NULL,
|
||||
whodunnit character varying,
|
||||
object json,
|
||||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json,
|
||||
log_id integer,
|
||||
name character varying,
|
||||
subject character varying,
|
||||
"from" character varying,
|
||||
bcc character varying,
|
||||
cc character varying,
|
||||
body text,
|
||||
text_body text,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_mail_templates_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE SEQUENCE log_mail_templates_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_mail_templates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER SEQUENCE log_mail_templates_id_seq OWNED BY log_mail_templates.id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_messages; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -1914,7 +2220,17 @@ CREATE TABLE log_messages (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
registrar_id integer,
|
||||
body character varying,
|
||||
attached_obj_type character varying,
|
||||
attached_obj_id character varying,
|
||||
queued boolean,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -1951,7 +2267,17 @@ CREATE TABLE log_nameservers (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
hostname character varying,
|
||||
ipv4 character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
ipv6 character varying,
|
||||
domain_id integer,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
legacy_domain_id integer
|
||||
);
|
||||
|
||||
|
||||
|
@ -1987,7 +2313,20 @@ CREATE TABLE log_pricelists (
|
|||
object json,
|
||||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying
|
||||
session character varying,
|
||||
log_id integer,
|
||||
"desc" character varying,
|
||||
category character varying,
|
||||
price_cents numeric,
|
||||
price_currency character varying,
|
||||
valid_from timestamp without time zone,
|
||||
valid_to timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
duration character varying,
|
||||
operation_category character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -2010,6 +2349,51 @@ CREATE SEQUENCE log_pricelists_id_seq
|
|||
ALTER SEQUENCE log_pricelists_id_seq OWNED BY log_pricelists.id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE log_registrant_verifications (
|
||||
id integer NOT NULL,
|
||||
item_type character varying NOT NULL,
|
||||
item_id integer NOT NULL,
|
||||
event character varying NOT NULL,
|
||||
whodunnit character varying,
|
||||
object json,
|
||||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json,
|
||||
log_id integer,
|
||||
domain_name character varying,
|
||||
verification_token character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
action character varying,
|
||||
domain_id integer,
|
||||
action_type character varying
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_registrant_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE SEQUENCE log_registrant_verifications_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_registrant_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER SEQUENCE log_registrant_verifications_id_seq OWNED BY log_registrant_verifications.id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -2024,7 +2408,30 @@ CREATE TABLE log_registrars (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
name character varying,
|
||||
reg_no character varying,
|
||||
vat_no character varying,
|
||||
billing_address character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
phone character varying,
|
||||
email character varying,
|
||||
billing_email character varying,
|
||||
country_code character varying,
|
||||
state character varying,
|
||||
city character varying,
|
||||
street character varying,
|
||||
zip character varying,
|
||||
code character varying,
|
||||
url character varying,
|
||||
directo_handle character varying,
|
||||
vat boolean,
|
||||
legacy_id integer,
|
||||
reference_no character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -2061,7 +2468,13 @@ CREATE TABLE log_reserved_domains (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
names hstore
|
||||
);
|
||||
|
||||
|
||||
|
@ -2098,7 +2511,16 @@ CREATE TABLE log_settings (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
var character varying,
|
||||
value text,
|
||||
thing_id integer,
|
||||
thing_type character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -2135,7 +2557,33 @@ CREATE TABLE log_users (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
username character varying,
|
||||
password character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
email character varying,
|
||||
sign_in_count integer,
|
||||
current_sign_in_at timestamp without time zone,
|
||||
last_sign_in_at timestamp without time zone,
|
||||
current_sign_in_ip inet,
|
||||
last_sign_in_ip inet,
|
||||
identity_code character varying,
|
||||
roles character varying[],
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
country_code character varying,
|
||||
registrar_id integer,
|
||||
active boolean,
|
||||
csr text,
|
||||
crt text,
|
||||
type character varying,
|
||||
registrant_ident character varying,
|
||||
encrypted_password character varying,
|
||||
remember_created_at timestamp without time zone,
|
||||
failed_attempts integer,
|
||||
locked_at timestamp without time zone
|
||||
);
|
||||
|
||||
|
||||
|
@ -2172,7 +2620,16 @@ CREATE TABLE log_white_ips (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
registrar_id integer,
|
||||
ipv4 character varying,
|
||||
ipv6 character varying,
|
||||
interfaces character varying[],
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying
|
||||
);
|
||||
|
||||
|
||||
|
@ -2209,7 +2666,23 @@ CREATE TABLE log_zonefile_settings (
|
|||
object_changes json,
|
||||
created_at timestamp without time zone,
|
||||
session character varying,
|
||||
children json
|
||||
children json,
|
||||
log_id integer,
|
||||
origin character varying,
|
||||
ttl integer,
|
||||
refresh integer,
|
||||
retry integer,
|
||||
expire integer,
|
||||
minimum_ttl integer,
|
||||
email character varying,
|
||||
master_nameserver character varying,
|
||||
log_created_at timestamp without time zone,
|
||||
log_updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
updator_str character varying,
|
||||
ns_records text,
|
||||
a_records text,
|
||||
a4_records text
|
||||
);
|
||||
|
||||
|
||||
|
@ -2245,8 +2718,8 @@ CREATE TABLE mail_templates (
|
|||
cc character varying,
|
||||
body text NOT NULL,
|
||||
text_body text NOT NULL,
|
||||
created_at timestamp without time zone,
|
||||
updated_at timestamp without time zone
|
||||
created_at timestamp without time zone NOT NULL,
|
||||
updated_at timestamp without time zone NOT NULL
|
||||
);
|
||||
|
||||
|
||||
|
@ -3132,6 +3605,13 @@ ALTER TABLE ONLY log_keyrelays ALTER COLUMN id SET DEFAULT nextval('log_keyrelay
|
|||
ALTER TABLE ONLY log_legal_documents ALTER COLUMN id SET DEFAULT nextval('log_legal_documents_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY log_mail_templates ALTER COLUMN id SET DEFAULT nextval('log_mail_templates_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -3153,6 +3633,13 @@ ALTER TABLE ONLY log_nameservers ALTER COLUMN id SET DEFAULT nextval('log_namese
|
|||
ALTER TABLE ONLY log_pricelists ALTER COLUMN id SET DEFAULT nextval('log_pricelists_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY log_registrant_verifications ALTER COLUMN id SET DEFAULT nextval('log_registrant_verifications_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -3652,6 +4139,14 @@ ALTER TABLE ONLY log_legal_documents
|
|||
ADD CONSTRAINT log_legal_documents_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_mail_templates_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY log_mail_templates
|
||||
ADD CONSTRAINT log_mail_templates_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_messages_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -3676,6 +4171,14 @@ ALTER TABLE ONLY log_pricelists
|
|||
ADD CONSTRAINT log_pricelists_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY log_registrant_verifications
|
||||
ADD CONSTRAINT log_registrant_verifications_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -4362,6 +4865,20 @@ CREATE INDEX index_log_legal_documents_on_item_type_and_item_id ON log_legal_doc
|
|||
CREATE INDEX index_log_legal_documents_on_whodunnit ON log_legal_documents USING btree (whodunnit);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_log_mail_templates_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
CREATE INDEX index_log_mail_templates_on_item_type_and_item_id ON log_mail_templates USING btree (item_type, item_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_log_mail_templates_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
CREATE INDEX index_log_mail_templates_on_whodunnit ON log_mail_templates USING btree (whodunnit);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_log_messages_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -4390,6 +4907,20 @@ CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON log_nameservers U
|
|||
CREATE INDEX index_log_nameservers_on_whodunnit ON log_nameservers USING btree (whodunnit);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_log_registrant_verifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
CREATE INDEX index_log_registrant_verifications_on_item_type_and_item_id ON log_registrant_verifications USING btree (item_type, item_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_log_registrant_verifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
CREATE INDEX index_log_registrant_verifications_on_whodunnit ON log_registrant_verifications USING btree (whodunnit);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -4930,8 +5461,6 @@ INSERT INTO schema_migrations (version) VALUES ('20150803080914');
|
|||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150810114746');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150810114747');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150825125118');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150827151906');
|
||||
|
@ -4942,7 +5471,15 @@ INSERT INTO schema_migrations (version) VALUES ('20150910113839');
|
|||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150915094707');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150918135710');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150918140948');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150918142422');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150921110152');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150921111842');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20151028183132');
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ Contact Mapping protocol short version:
|
|||
<eis:extdata> 1 Attribute: xmlns:eis="https://epp.tld.ee/schema/eis-1.0.xsd"
|
||||
<eis:ident> 1 Contact identificator
|
||||
Attribute: "type"
|
||||
"bic" # Business registry code
|
||||
"org" # Business registry code
|
||||
"priv" # National idendtification number
|
||||
"birthday" # Birthday date in format in DD-MM-YYYY
|
||||
Attribute: "cc"
|
||||
|
@ -68,7 +68,7 @@ Contact Mapping protocol short version:
|
|||
<eis:extdata> 0-1 Attribute: xmlns:eis="https://epp.tld.ee/schema/eis-1.0.xsd"
|
||||
<eis:ident> 0-1 Contact identificator
|
||||
Attribute: "type"
|
||||
"bic" # Business registry code
|
||||
"org" # Business registry code
|
||||
"priv" # National idendtification number
|
||||
"birthday" # Birthday date in format in DD-MM-YYYY
|
||||
Attribute: "cc"
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#define EPP_TCP_HEADER_SIZE 4 /* just one longword */
|
||||
-#define EPP_MAX_FRAME_SIZE 65536 /* don't accept larger xml data blocks */
|
||||
+#define EPP_MAX_FRAME_SIZE 8388608 /* don't accept larger xml data blocks */
|
||||
+#define EPP_MAX_FRAME_SIZE 15728640 /* don't accept larger xml data blocks (8MB + 30% base64 + xml + savings)*/
|
||||
#define TRIDSIZE 128 /* actually, it should be 3 to 64 chars,
|
||||
but due to unicode we'll give it more room. */
|
||||
|
||||
|
|
388
doc/schemas/contact-1.0.xsd
Normal file
388
doc/schemas/contact-1.0.xsd
Normal file
|
@ -0,0 +1,388 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<schema targetNamespace="urn:ietf:params:xml:ns:contact-1.0"
|
||||
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
|
||||
xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
|
||||
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<!--
|
||||
Import common element types.
|
||||
-->
|
||||
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:epp-1.0"/>
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
Extensible Provisioning Protocol v1.0
|
||||
contact provisioning schema.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Child elements found in EPP commands.
|
||||
-->
|
||||
<element name="check" type="contact:mIDType"/>
|
||||
<element name="create" type="contact:createType"/>
|
||||
<element name="delete" type="contact:sIDType"/>
|
||||
<element name="info" type="contact:authIDType"/>
|
||||
<element name="transfer" type="contact:authIDType"/>
|
||||
<element name="update" type="contact:updateType"/>
|
||||
|
||||
<!--
|
||||
Utility types.
|
||||
-->
|
||||
<simpleType name="ccType">
|
||||
<restriction base="token">
|
||||
<length value="2"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="e164Type">
|
||||
<simpleContent>
|
||||
<extension base="contact:e164StringType">
|
||||
<attribute name="x" type="token"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="e164StringType">
|
||||
<restriction base="token">
|
||||
<pattern value="(\+[0-9]{1,3}\.[0-9]{1,14})?"/>
|
||||
<maxLength value="17"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="pcType">
|
||||
<restriction base="token">
|
||||
<maxLength value="16"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="postalLineType">
|
||||
<restriction base="normalizedString">
|
||||
<minLength value="1"/>
|
||||
<maxLength value="255"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="optPostalLineType">
|
||||
<restriction base="normalizedString">
|
||||
<maxLength value="255"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Child elements of the <create> command.
|
||||
-->
|
||||
<complexType name="createType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"/>
|
||||
<element name="postalInfo" type="contact:postalInfoType"
|
||||
maxOccurs="2"/>
|
||||
<element name="voice" type="contact:e164Type"
|
||||
minOccurs="0"/>
|
||||
<element name="fax" type="contact:e164Type"
|
||||
minOccurs="0"/>
|
||||
<element name="email" type="eppcom:minTokenType"/>
|
||||
<element name="authInfo" type="contact:authInfoType"/>
|
||||
<element name="disclose" type="contact:discloseType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="postalInfoType">
|
||||
<sequence>
|
||||
<element name="name" type="contact:postalLineType"/>
|
||||
<element name="org" type="contact:optPostalLineType"
|
||||
minOccurs="0"/>
|
||||
<element name="addr" type="contact:addrType"/>
|
||||
</sequence>
|
||||
<attribute name="type" type="contact:postalInfoEnumType"
|
||||
use="required"/>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="postalInfoEnumType">
|
||||
<restriction base="token">
|
||||
<enumeration value="loc"/>
|
||||
<enumeration value="int"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="addrType">
|
||||
<sequence>
|
||||
<element name="street" type="contact:optPostalLineType"
|
||||
minOccurs="0" maxOccurs="3"/>
|
||||
<element name="city" type="contact:postalLineType"/>
|
||||
<element name="sp" type="contact:optPostalLineType"
|
||||
minOccurs="0"/>
|
||||
<element name="pc" type="contact:pcType"
|
||||
minOccurs="0"/>
|
||||
<element name="cc" type="contact:ccType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="authInfoType">
|
||||
<choice>
|
||||
<element name="pw" type="eppcom:pwAuthInfoType"/>
|
||||
<element name="ext" type="eppcom:extAuthInfoType"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<complexType name="discloseType">
|
||||
<sequence>
|
||||
<element name="name" type="contact:intLocType"
|
||||
minOccurs="0" maxOccurs="2"/>
|
||||
<element name="org" type="contact:intLocType"
|
||||
minOccurs="0" maxOccurs="2"/>
|
||||
<element name="addr" type="contact:intLocType"
|
||||
minOccurs="0" maxOccurs="2"/>
|
||||
<element name="voice" minOccurs="0"/>
|
||||
<element name="fax" minOccurs="0"/>
|
||||
<element name="email" minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="flag" type="boolean" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<complexType name="intLocType">
|
||||
<attribute name="type" type="contact:postalInfoEnumType"
|
||||
use="required"/>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child element of commands that require only an identifier.
|
||||
-->
|
||||
<complexType name="sIDType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child element of commands that accept multiple identifiers.
|
||||
-->
|
||||
<complexType name="mIDType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of the <info> and <transfer> commands.
|
||||
-->
|
||||
<complexType name="authIDType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"/>
|
||||
<element name="authInfo" type="contact:authInfoType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of the <update> command.
|
||||
-->
|
||||
<complexType name="updateType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"/>
|
||||
<element name="add" type="contact:addRemType"
|
||||
minOccurs="0"/>
|
||||
<element name="rem" type="contact:addRemType"
|
||||
minOccurs="0"/>
|
||||
<element name="chg" type="contact:chgType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Data elements that can be added or removed.
|
||||
-->
|
||||
<complexType name="addRemType">
|
||||
<sequence>
|
||||
<element name="status" type="contact:statusType"
|
||||
maxOccurs="7"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Data elements that can be changed.
|
||||
-->
|
||||
<complexType name="chgType">
|
||||
<sequence>
|
||||
<element name="postalInfo" type="contact:chgPostalInfoType"
|
||||
minOccurs="0" maxOccurs="2"/>
|
||||
<element name="voice" type="contact:e164Type"
|
||||
minOccurs="0"/>
|
||||
<element name="fax" type="contact:e164Type"
|
||||
minOccurs="0"/>
|
||||
<element name="email" type="eppcom:minTokenType"
|
||||
minOccurs="0"/>
|
||||
<element name="authInfo" type="contact:authInfoType"
|
||||
minOccurs="0"/>
|
||||
<element name="disclose" type="contact:discloseType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="chgPostalInfoType">
|
||||
<sequence>
|
||||
<element name="name" type="contact:postalLineType"
|
||||
minOccurs="0"/>
|
||||
<element name="org" type="contact:optPostalLineType"
|
||||
minOccurs="0"/>
|
||||
<element name="addr" type="contact:addrType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="type" type="contact:postalInfoEnumType"
|
||||
use="required"/>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child response elements.
|
||||
-->
|
||||
<element name="chkData" type="contact:chkDataType"/>
|
||||
<element name="creData" type="contact:creDataType"/>
|
||||
<element name="infData" type="contact:infDataType"/>
|
||||
<element name="panData" type="contact:panDataType"/>
|
||||
<element name="trnData" type="contact:trnDataType"/>
|
||||
|
||||
<!--
|
||||
<check> response elements.
|
||||
-->
|
||||
<complexType name="chkDataType">
|
||||
<sequence>
|
||||
<element name="cd" type="contact:checkType"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="checkType">
|
||||
<sequence>
|
||||
<element name="id" type="contact:checkIDType"/>
|
||||
<element name="reason" type="eppcom:reasonType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="checkIDType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:clIDType">
|
||||
<attribute name="avail" type="boolean"
|
||||
use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<create> response elements.
|
||||
-->
|
||||
<complexType name="creDataType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"/>
|
||||
<element name="crDate" type="dateTime"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<info> response elements.
|
||||
-->
|
||||
<complexType name="infDataType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"/>
|
||||
<element name="roid" type="eppcom:roidType"/>
|
||||
<element name="status" type="contact:statusType"
|
||||
maxOccurs="7"/>
|
||||
<element name="postalInfo" type="contact:postalInfoType"
|
||||
maxOccurs="2"/>
|
||||
<element name="voice" type="contact:e164Type"
|
||||
minOccurs="0"/>
|
||||
<element name="fax" type="contact:e164Type"
|
||||
minOccurs="0"/>
|
||||
<element name="email" type="eppcom:minTokenType"/>
|
||||
<element name="clID" type="eppcom:clIDType"/>
|
||||
<element name="crID" type="eppcom:clIDType"/>
|
||||
<element name="crDate" type="dateTime"/>
|
||||
<element name="upID" type="eppcom:clIDType"
|
||||
minOccurs="0"/>
|
||||
<element name="upDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="trDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="authInfo" type="contact:authInfoType"
|
||||
minOccurs="0"/>
|
||||
<element name="disclose" type="contact:discloseType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Status is a combination of attributes and an optional human-readable
|
||||
message that may be expressed in languages other than English.
|
||||
-->
|
||||
<complexType name="statusType">
|
||||
<simpleContent>
|
||||
<extension base="normalizedString">
|
||||
<attribute name="s" type="contact:statusValueType"
|
||||
use="required"/>
|
||||
<attribute name="lang" type="language"
|
||||
default="en"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="statusValueType">
|
||||
<restriction base="token">
|
||||
<enumeration value="clientDeleteProhibited"/>
|
||||
<enumeration value="clientTransferProhibited"/>
|
||||
<enumeration value="clientUpdateProhibited"/>
|
||||
<enumeration value="linked"/>
|
||||
<enumeration value="ok"/>
|
||||
<enumeration value="pendingCreate"/>
|
||||
<enumeration value="pendingDelete"/>
|
||||
<enumeration value="pendingTransfer"/>
|
||||
<enumeration value="pendingUpdate"/>
|
||||
<enumeration value="serverDeleteProhibited"/>
|
||||
<enumeration value="serverTransferProhibited"/>
|
||||
<enumeration value="serverUpdateProhibited"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Pending action notification response elements.
|
||||
-->
|
||||
<complexType name="panDataType">
|
||||
<sequence>
|
||||
<element name="id" type="contact:paCLIDType"/>
|
||||
<element name="paTRID" type="epp:trIDType"/>
|
||||
<element name="paDate" type="dateTime"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="paCLIDType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:clIDType">
|
||||
<attribute name="paResult" type="boolean"
|
||||
use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<transfer> response elements.
|
||||
-->
|
||||
<complexType name="trnDataType">
|
||||
<sequence>
|
||||
<element name="id" type="eppcom:clIDType"/>
|
||||
<element name="trStatus" type="eppcom:trStatusType"/>
|
||||
<element name="reID" type="eppcom:clIDType"/>
|
||||
<element name="reDate" type="dateTime"/>
|
||||
<element name="acID" type="eppcom:clIDType"/>
|
||||
<element name="acDate" type="dateTime"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
End of schema.
|
||||
-->
|
||||
</schema>
|
432
doc/schemas/domain-1.0.xsd
Normal file
432
doc/schemas/domain-1.0.xsd
Normal file
|
@ -0,0 +1,432 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<schema targetNamespace="urn:ietf:params:xml:ns:domain-1.0"
|
||||
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
|
||||
xmlns:host="urn:ietf:params:xml:ns:host-1.0"
|
||||
xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
|
||||
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<!--
|
||||
Import common element types.
|
||||
-->
|
||||
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:epp-1.0"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:host-1.0"/>
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
Extensible Provisioning Protocol v1.0
|
||||
domain provisioning schema.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Child elements found in EPP commands.
|
||||
-->
|
||||
<element name="check" type="domain:mNameType"/>
|
||||
<element name="create" type="domain:createType"/>
|
||||
<element name="delete" type="domain:sNameType"/>
|
||||
<element name="info" type="domain:infoType"/>
|
||||
<element name="renew" type="domain:renewType"/>
|
||||
<element name="transfer" type="domain:transferType"/>
|
||||
<element name="update" type="domain:updateType"/>
|
||||
<!--
|
||||
Child elements of the <create> command.
|
||||
-->
|
||||
<complexType name="createType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="period" type="domain:periodType"
|
||||
minOccurs="0"/>
|
||||
<element name="ns" type="domain:nsType"
|
||||
minOccurs="0"/>
|
||||
<element name="registrant" type="eppcom:clIDType"
|
||||
minOccurs="0"/>
|
||||
<element name="contact" type="domain:contactType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="authInfo" type="domain:authInfoType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="periodType">
|
||||
<simpleContent>
|
||||
<extension base="domain:pLimitType">
|
||||
<attribute name="unit" type="domain:pUnitType"
|
||||
use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="pLimitType">
|
||||
<restriction base="unsignedShort">
|
||||
<minInclusive value="1"/>
|
||||
<maxInclusive value="99"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="pUnitType">
|
||||
<restriction base="token">
|
||||
<enumeration value="y"/>
|
||||
<enumeration value="m"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="nsType">
|
||||
<choice>
|
||||
<element name="hostObj" type="eppcom:labelType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="hostAttr" type="domain:hostAttrType"
|
||||
maxOccurs="unbounded"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
<!--
|
||||
Name servers are either host objects or attributes.
|
||||
-->
|
||||
|
||||
<complexType name="hostAttrType">
|
||||
<sequence>
|
||||
<element name="hostName" type="eppcom:labelType"/>
|
||||
<element name="hostAddr" type="host:addrType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<!--
|
||||
If attributes, addresses are optional and follow the
|
||||
structure defined in the host mapping.
|
||||
-->
|
||||
|
||||
<complexType name="contactType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:clIDType">
|
||||
<attribute name="type" type="domain:contactAttrType"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="contactAttrType">
|
||||
<restriction base="token">
|
||||
<enumeration value="admin"/>
|
||||
<enumeration value="billing"/>
|
||||
<enumeration value="tech"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="authInfoType">
|
||||
<choice>
|
||||
<element name="pw" type="eppcom:pwAuthInfoType"/>
|
||||
<element name="ext" type="eppcom:extAuthInfoType"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child element of commands that require a single name.
|
||||
-->
|
||||
<complexType name="sNameType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<!--
|
||||
Child element of commands that accept multiple names.
|
||||
-->
|
||||
<complexType name="mNameType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of the <info> command.
|
||||
-->
|
||||
<complexType name="infoType">
|
||||
<sequence>
|
||||
<element name="name" type="domain:infoNameType"/>
|
||||
<element name="authInfo" type="domain:authInfoType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="infoNameType">
|
||||
<simpleContent>
|
||||
<extension base = "eppcom:labelType">
|
||||
<attribute name="hosts" type="domain:hostsType"
|
||||
default="all"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="hostsType">
|
||||
<restriction base="token">
|
||||
<enumeration value="all"/>
|
||||
<enumeration value="del"/>
|
||||
<enumeration value="none"/>
|
||||
<enumeration value="sub"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Child elements of the <renew> command.
|
||||
-->
|
||||
<complexType name="renewType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="curExpDate" type="date"/>
|
||||
<element name="period" type="domain:periodType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of the <transfer> command.
|
||||
-->
|
||||
<complexType name="transferType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="period" type="domain:periodType"
|
||||
minOccurs="0"/>
|
||||
<element name="authInfo" type="domain:authInfoType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements of the <update> command.
|
||||
-->
|
||||
|
||||
<complexType name="updateType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="add" type="domain:addRemType"
|
||||
minOccurs="0"/>
|
||||
<element name="rem" type="domain:addRemType"
|
||||
minOccurs="0"/>
|
||||
<element name="chg" type="domain:chgType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Data elements that can be added or removed.
|
||||
-->
|
||||
<complexType name="addRemType">
|
||||
<sequence>
|
||||
<element name="ns" type="domain:nsType"
|
||||
minOccurs="0"/>
|
||||
<element name="contact" type="domain:contactType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="status" type="domain:statusType"
|
||||
minOccurs="0" maxOccurs="11"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Data elements that can be changed.
|
||||
-->
|
||||
<complexType name="chgType">
|
||||
<sequence>
|
||||
<element name="registrant" type="domain:clIDChgType"
|
||||
minOccurs="0"/>
|
||||
<element name="authInfo" type="domain:authInfoChgType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Allow the registrant value to be nullified by changing the
|
||||
minLength restriction to "0".
|
||||
-->
|
||||
<simpleType name="clIDChgType">
|
||||
<restriction base="token">
|
||||
<minLength value="0"/>
|
||||
<maxLength value="16"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Allow the authInfo value to be nullified by including an
|
||||
empty element within the choice.
|
||||
-->
|
||||
<complexType name="authInfoChgType">
|
||||
<choice>
|
||||
<element name="pw" type="eppcom:pwAuthInfoType"/>
|
||||
<element name="ext" type="eppcom:extAuthInfoType"/>
|
||||
<element name="null"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child response elements.
|
||||
-->
|
||||
<element name="chkData" type="domain:chkDataType"/>
|
||||
<element name="creData" type="domain:creDataType"/>
|
||||
<element name="infData" type="domain:infDataType"/>
|
||||
<element name="panData" type="domain:panDataType"/>
|
||||
<element name="renData" type="domain:renDataType"/>
|
||||
<element name="trnData" type="domain:trnDataType"/>
|
||||
|
||||
<!--
|
||||
<check> response elements.
|
||||
-->
|
||||
<complexType name="chkDataType">
|
||||
<sequence>
|
||||
<element name="cd" type="domain:checkType"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="checkType">
|
||||
<sequence>
|
||||
<element name="name" type="domain:checkNameType"/>
|
||||
<element name="reason" type="eppcom:reasonType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="checkNameType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:labelType">
|
||||
<attribute name="avail" type="boolean"
|
||||
use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<create> response elements.
|
||||
-->
|
||||
<complexType name="creDataType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="crDate" type="dateTime"/>
|
||||
<element name="exDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<info> response elements.
|
||||
-->
|
||||
<complexType name="infDataType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="roid" type="eppcom:roidType"/>
|
||||
<element name="status" type="domain:statusType"
|
||||
minOccurs="0" maxOccurs="11"/>
|
||||
<element name="registrant" type="eppcom:clIDType"
|
||||
minOccurs="0"/>
|
||||
<element name="contact" type="domain:contactType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="ns" type="domain:nsType"
|
||||
minOccurs="0"/>
|
||||
<element name="host" type="eppcom:labelType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="clID" type="eppcom:clIDType"/>
|
||||
<element name="crID" type="eppcom:clIDType"
|
||||
minOccurs="0"/>
|
||||
<element name="crDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="upID" type="eppcom:clIDType"
|
||||
minOccurs="0"/>
|
||||
<element name="upDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="exDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="trDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="authInfo" type="domain:authInfoType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Status is a combination of attributes and an optional
|
||||
human-readable message that may be expressed in languages other
|
||||
than English.
|
||||
-->
|
||||
<complexType name="statusType">
|
||||
<simpleContent>
|
||||
<extension base="normalizedString">
|
||||
<attribute name="s" type="domain:statusValueType"
|
||||
use="required"/>
|
||||
<attribute name="lang" type="language"
|
||||
default="en"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="statusValueType">
|
||||
<restriction base="token">
|
||||
<enumeration value="clientDeleteProhibited"/>
|
||||
<enumeration value="clientHold"/>
|
||||
<enumeration value="clientRenewProhibited"/>
|
||||
<enumeration value="clientTransferProhibited"/>
|
||||
<enumeration value="clientUpdateProhibited"/>
|
||||
<enumeration value="inactive"/>
|
||||
<enumeration value="ok"/>
|
||||
<enumeration value="pendingCreate"/>
|
||||
<enumeration value="pendingDelete"/>
|
||||
<enumeration value="pendingRenew"/>
|
||||
<enumeration value="pendingTransfer"/>
|
||||
<enumeration value="pendingUpdate"/>
|
||||
<enumeration value="serverDeleteProhibited"/>
|
||||
<enumeration value="serverHold"/>
|
||||
<enumeration value="serverRenewProhibited"/>
|
||||
<enumeration value="serverTransferProhibited"/>
|
||||
<enumeration value="serverUpdateProhibited"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Pending action notification response elements.
|
||||
-->
|
||||
<complexType name="panDataType">
|
||||
<sequence>
|
||||
<element name="name" type="domain:paNameType"/>
|
||||
<element name="paTRID" type="epp:trIDType"/>
|
||||
<element name="paDate" type="dateTime"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="paNameType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:labelType">
|
||||
<attribute name="paResult" type="boolean"
|
||||
use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<renew> response elements.
|
||||
-->
|
||||
<complexType name="renDataType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="exDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<transfer> response elements.
|
||||
-->
|
||||
<complexType name="trnDataType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="trStatus" type="eppcom:trStatusType"/>
|
||||
<element name="reID" type="eppcom:clIDType"/>
|
||||
<element name="reDate" type="dateTime"/>
|
||||
<element name="acID" type="eppcom:clIDType"/>
|
||||
<element name="acDate" type="dateTime"/>
|
||||
<element name="exDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
End of schema.
|
||||
-->
|
||||
</schema>
|
446
doc/schemas/epp-1.0.xsd
Normal file
446
doc/schemas/epp-1.0.xsd
Normal file
|
@ -0,0 +1,446 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<schema targetNamespace="urn:ietf:params:xml:ns:epp-1.0"
|
||||
xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
|
||||
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<!--
|
||||
Import common element types.
|
||||
-->
|
||||
|
||||
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
Extensible Provisioning Protocol v1.0 schema.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Every EPP XML instance must begin with this element.
|
||||
-->
|
||||
<element name="epp" type="epp:eppType"/>
|
||||
|
||||
<!--
|
||||
An EPP XML instance must contain a greeting, hello, command,
|
||||
response, or extension.
|
||||
-->
|
||||
<complexType name="eppType">
|
||||
<choice>
|
||||
<element name="greeting" type="epp:greetingType"/>
|
||||
<element name="hello"/>
|
||||
<element name="command" type="epp:commandType"/>
|
||||
<element name="response" type="epp:responseType"/>
|
||||
<element name="extension" type="epp:extAnyType"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
A greeting is sent by a server in response to a client connection
|
||||
or <hello>.
|
||||
-->
|
||||
<complexType name="greetingType">
|
||||
<sequence>
|
||||
<element name="svID" type="epp:sIDType"/>
|
||||
<element name="svDate" type="dateTime"/>
|
||||
<element name="svcMenu" type="epp:svcMenuType"/>
|
||||
<element name="dcp" type="epp:dcpType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Server IDs are strings with minimum and maximum length restrictions.
|
||||
-->
|
||||
<simpleType name="sIDType">
|
||||
<restriction base="normalizedString">
|
||||
<minLength value="3"/>
|
||||
<maxLength value="64"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
A server greeting identifies available object services.
|
||||
-->
|
||||
<complexType name="svcMenuType">
|
||||
<sequence>
|
||||
<element name="version" type="epp:versionType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="lang" type="language"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="objURI" type="anyURI"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="svcExtension" type="epp:extURIType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Data Collection Policy types.
|
||||
-->
|
||||
<complexType name="dcpType">
|
||||
<sequence>
|
||||
<element name="access" type="epp:dcpAccessType"/>
|
||||
<element name="statement" type="epp:dcpStatementType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="expiry" type="epp:dcpExpiryType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="dcpAccessType">
|
||||
<choice>
|
||||
<element name="all"/>
|
||||
<element name="none"/>
|
||||
<element name="null"/>
|
||||
<element name="other"/>
|
||||
<element name="personal"/>
|
||||
<element name="personalAndOther"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<complexType name="dcpStatementType">
|
||||
<sequence>
|
||||
<element name="purpose" type="epp:dcpPurposeType"/>
|
||||
<element name="recipient" type="epp:dcpRecipientType"/>
|
||||
<element name="retention" type="epp:dcpRetentionType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="dcpPurposeType">
|
||||
<sequence>
|
||||
<element name="admin"
|
||||
minOccurs="0"/>
|
||||
<element name="contact"
|
||||
minOccurs="0"/>
|
||||
<element name="other"
|
||||
minOccurs="0"/>
|
||||
<element name="prov"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="dcpRecipientType">
|
||||
<sequence>
|
||||
<element name="other"
|
||||
minOccurs="0"/>
|
||||
<element name="ours" type="epp:dcpOursType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="public"
|
||||
minOccurs="0"/>
|
||||
<element name="same"
|
||||
minOccurs="0"/>
|
||||
<element name="unrelated"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="dcpOursType">
|
||||
<sequence>
|
||||
<element name="recDesc" type="epp:dcpRecDescType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="dcpRecDescType">
|
||||
<restriction base="token">
|
||||
<minLength value="1"/>
|
||||
<maxLength value="255"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="dcpRetentionType">
|
||||
<choice>
|
||||
<element name="business"/>
|
||||
<element name="indefinite"/>
|
||||
<element name="legal"/>
|
||||
<element name="none"/>
|
||||
<element name="stated"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<complexType name="dcpExpiryType">
|
||||
<choice>
|
||||
<element name="absolute" type="dateTime"/>
|
||||
<element name="relative" type="duration"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Extension framework types.
|
||||
-->
|
||||
<complexType name="extAnyType">
|
||||
<sequence>
|
||||
<any namespace="##other"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="extURIType">
|
||||
<sequence>
|
||||
<element name="extURI" type="anyURI"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
An EPP version number is a dotted pair of decimal numbers.
|
||||
-->
|
||||
<simpleType name="versionType">
|
||||
<restriction base="token">
|
||||
<pattern value="[1-9]+\.[0-9]+"/>
|
||||
<enumeration value="1.0"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Command types.
|
||||
-->
|
||||
<complexType name="commandType">
|
||||
<sequence>
|
||||
<choice>
|
||||
<element name="check" type="epp:readWriteType"/>
|
||||
<element name="create" type="epp:readWriteType"/>
|
||||
<element name="delete" type="epp:readWriteType"/>
|
||||
<element name="info" type="epp:readWriteType"/>
|
||||
<element name="login" type="epp:loginType"/>
|
||||
<element name="logout"/>
|
||||
<element name="poll" type="epp:pollType"/>
|
||||
<element name="renew" type="epp:readWriteType"/>
|
||||
<element name="transfer" type="epp:transferType"/>
|
||||
<element name="update" type="epp:readWriteType"/>
|
||||
</choice>
|
||||
<element name="extension" type="epp:extAnyType"
|
||||
minOccurs="0"/>
|
||||
<element name="clTRID" type="epp:trIDStringType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
The <login> command.
|
||||
-->
|
||||
<complexType name="loginType">
|
||||
<sequence>
|
||||
<element name="clID" type="eppcom:clIDType"/>
|
||||
<element name="pw" type="epp:pwType"/>
|
||||
<element name="newPW" type="epp:pwType"
|
||||
minOccurs="0"/>
|
||||
<element name="options" type="epp:credsOptionsType"/>
|
||||
<element name="svcs" type="epp:loginSvcType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="credsOptionsType">
|
||||
<sequence>
|
||||
<element name="version" type="epp:versionType"/>
|
||||
<element name="lang" type="language"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="pwType">
|
||||
<restriction base="token">
|
||||
<minLength value="6"/>
|
||||
<maxLength value="16"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<complexType name="loginSvcType">
|
||||
<sequence>
|
||||
<element name="objURI" type="anyURI"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="svcExtension" type="epp:extURIType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
The <poll> command.
|
||||
-->
|
||||
<complexType name="pollType">
|
||||
<attribute name="op" type="epp:pollOpType"
|
||||
use="required"/>
|
||||
<attribute name="msgID" type="token"/>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="pollOpType">
|
||||
<restriction base="token">
|
||||
<enumeration value="ack"/>
|
||||
<enumeration value="req"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
The <transfer> command. This is object-specific, and uses attributes
|
||||
to identify the requested operation.
|
||||
-->
|
||||
<complexType name="transferType">
|
||||
<sequence>
|
||||
<any namespace="##other"/>
|
||||
</sequence>
|
||||
<attribute name="op" type="epp:transferOpType"
|
||||
use="required"/>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="transferOpType">
|
||||
<restriction base="token">
|
||||
<enumeration value="approve"/>
|
||||
<enumeration value="cancel"/>
|
||||
<enumeration value="query"/>
|
||||
<enumeration value="reject"/>
|
||||
<enumeration value="request"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
All other object-centric commands. EPP doesn't specify the syntax or
|
||||
semantics of object-centric command elements. The elements MUST be
|
||||
described in detail in another schema specific to the object.
|
||||
-->
|
||||
<complexType name="readWriteType">
|
||||
<sequence>
|
||||
<any namespace="##other"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="trIDType">
|
||||
<sequence>
|
||||
<element name="clTRID" type="epp:trIDStringType"
|
||||
minOccurs="0"/>
|
||||
<element name="svTRID" type="epp:trIDStringType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="trIDStringType">
|
||||
<restriction base="token">
|
||||
<minLength value="3"/>
|
||||
<maxLength value="64"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Response types.
|
||||
-->
|
||||
<complexType name="responseType">
|
||||
<sequence>
|
||||
<element name="result" type="epp:resultType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="msgQ" type="epp:msgQType"
|
||||
minOccurs="0"/>
|
||||
<element name="resData" type="epp:extAnyType"
|
||||
minOccurs="0"/>
|
||||
<element name="extension" type="epp:extAnyType"
|
||||
minOccurs="0"/>
|
||||
<element name="trID" type="epp:trIDType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="resultType">
|
||||
<sequence>
|
||||
<element name="msg" type="epp:msgType"/>
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="value" type="epp:errValueType"/>
|
||||
<element name="extValue" type="epp:extErrValueType"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
<attribute name="code" type="epp:resultCodeType"
|
||||
use="required"/>
|
||||
</complexType>
|
||||
|
||||
<complexType name="errValueType" mixed="true">
|
||||
<sequence>
|
||||
<any namespace="##any" processContents="skip"/>
|
||||
</sequence>
|
||||
<anyAttribute namespace="##any" processContents="skip"/>
|
||||
</complexType>
|
||||
|
||||
<complexType name="extErrValueType">
|
||||
<sequence>
|
||||
<element name="value" type="epp:errValueType"/>
|
||||
<element name="reason" type="epp:msgType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="msgQType">
|
||||
<sequence>
|
||||
<element name="qDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="msg" type="epp:mixedMsgType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="count" type="unsignedLong"
|
||||
use="required"/>
|
||||
<attribute name="id" type="eppcom:minTokenType"
|
||||
use="required"/>
|
||||
</complexType>
|
||||
|
||||
<complexType name="mixedMsgType" mixed="true">
|
||||
<sequence>
|
||||
<any processContents="skip"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="lang" type="language"
|
||||
default="en"/>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Human-readable text may be expressed in languages other than English.
|
||||
-->
|
||||
<complexType name="msgType">
|
||||
<simpleContent>
|
||||
<extension base="normalizedString">
|
||||
<attribute name="lang" type="language"
|
||||
default="en"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
EPP result codes.
|
||||
-->
|
||||
<simpleType name="resultCodeType">
|
||||
<restriction base="unsignedShort">
|
||||
<enumeration value="1000"/>
|
||||
<enumeration value="1001"/>
|
||||
<enumeration value="1300"/>
|
||||
<enumeration value="1301"/>
|
||||
<enumeration value="1500"/>
|
||||
<enumeration value="2000"/>
|
||||
<enumeration value="2001"/>
|
||||
<enumeration value="2002"/>
|
||||
<enumeration value="2003"/>
|
||||
<enumeration value="2004"/>
|
||||
<enumeration value="2005"/>
|
||||
<enumeration value="2100"/>
|
||||
<enumeration value="2101"/>
|
||||
<enumeration value="2102"/>
|
||||
<enumeration value="2103"/>
|
||||
<enumeration value="2104"/>
|
||||
<enumeration value="2105"/>
|
||||
<enumeration value="2106"/>
|
||||
<enumeration value="2200"/>
|
||||
<enumeration value="2201"/>
|
||||
<enumeration value="2202"/>
|
||||
<enumeration value="2300"/>
|
||||
<enumeration value="2301"/>
|
||||
<enumeration value="2302"/>
|
||||
<enumeration value="2303"/>
|
||||
<enumeration value="2304"/>
|
||||
<enumeration value="2305"/>
|
||||
<enumeration value="2306"/>
|
||||
<enumeration value="2307"/>
|
||||
<enumeration value="2308"/>
|
||||
<enumeration value="2400"/>
|
||||
<enumeration value="2500"/>
|
||||
<enumeration value="2501"/>
|
||||
<enumeration value="2502"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
End of schema.
|
||||
-->
|
||||
</schema>
|
||||
|
||||
|
105
doc/schemas/eppcom-1.0.xsd
Normal file
105
doc/schemas/eppcom-1.0.xsd
Normal file
|
@ -0,0 +1,105 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<schema targetNamespace="urn:ietf:params:xml:ns:eppcom-1.0"
|
||||
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
Extensible Provisioning Protocol v1.0
|
||||
shared structures schema.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Object authorization information types.
|
||||
-->
|
||||
<complexType name="pwAuthInfoType">
|
||||
<simpleContent>
|
||||
<extension base="normalizedString">
|
||||
<attribute name="roid" type="eppcom:roidType"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<complexType name="extAuthInfoType">
|
||||
<sequence>
|
||||
<any namespace="##other"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<check> response types.
|
||||
-->
|
||||
<complexType name="reasonType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:reasonBaseType">
|
||||
<attribute name="lang" type="language"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="reasonBaseType">
|
||||
<restriction base="token">
|
||||
<minLength value="1"/>
|
||||
<maxLength value="32"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Abstract client and object identifier type.
|
||||
-->
|
||||
<simpleType name="clIDType">
|
||||
<restriction base="token">
|
||||
<minLength value="3"/>
|
||||
<maxLength value="16"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
DNS label type.
|
||||
-->
|
||||
<simpleType name="labelType">
|
||||
<restriction base="token">
|
||||
<minLength value="1"/>
|
||||
<maxLength value="255"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Non-empty token type.
|
||||
-->
|
||||
<simpleType name="minTokenType">
|
||||
<restriction base="token">
|
||||
<minLength value="1"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Repository Object IDentifier type.
|
||||
-->
|
||||
<simpleType name="roidType">
|
||||
<restriction base="token">
|
||||
<pattern value="(\w|_){1,80}-\w{1,8}"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Transfer status identifiers.
|
||||
-->
|
||||
<simpleType name="trStatusType">
|
||||
<restriction base="token">
|
||||
<enumeration value="clientApproved"/>
|
||||
<enumeration value="clientCancelled"/>
|
||||
<enumeration value="clientRejected"/>
|
||||
<enumeration value="pending"/>
|
||||
<enumeration value="serverApproved"/>
|
||||
<enumeration value="serverCancelled"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
End of schema.
|
||||
-->
|
||||
</schema>
|
238
doc/schemas/host-1.0.xsd
Normal file
238
doc/schemas/host-1.0.xsd
Normal file
|
@ -0,0 +1,238 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<schema targetNamespace="urn:ietf:params:xml:ns:host-1.0"
|
||||
xmlns:host="urn:ietf:params:xml:ns:host-1.0"
|
||||
xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
|
||||
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
<!--
|
||||
Import common element types.
|
||||
-->
|
||||
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
|
||||
<import namespace="urn:ietf:params:xml:ns:epp-1.0"/>
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
Extensible Provisioning Protocol v1.0
|
||||
host provisioning schema.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Child elements found in EPP commands.
|
||||
-->
|
||||
<element name="check" type="host:mNameType"/>
|
||||
<element name="create" type="host:createType"/>
|
||||
<element name="delete" type="host:sNameType"/>
|
||||
<element name="info" type="host:sNameType"/>
|
||||
<element name="update" type="host:updateType"/>
|
||||
|
||||
<!--
|
||||
Child elements of the <create> command.
|
||||
-->
|
||||
<complexType name="createType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="addr" type="host:addrType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="addrType">
|
||||
<simpleContent>
|
||||
<extension base="host:addrStringType">
|
||||
<attribute name="ip" type="host:ipType"
|
||||
default="v4"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="addrStringType">
|
||||
<restriction base="token">
|
||||
<minLength value="3"/>
|
||||
<maxLength value="45"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
<simpleType name="ipType">
|
||||
<restriction base="token">
|
||||
<enumeration value="v4"/>
|
||||
<enumeration value="v6"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Child elements of the <delete> and <info> commands.
|
||||
-->
|
||||
<complexType name="sNameType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child element of commands that accept multiple names.
|
||||
-->
|
||||
<complexType name="mNameType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<!--
|
||||
Child elements of the <update> command.
|
||||
-->
|
||||
<complexType name="updateType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="add" type="host:addRemType"
|
||||
minOccurs="0"/>
|
||||
<element name="rem" type="host:addRemType"
|
||||
minOccurs="0"/>
|
||||
<element name="chg" type="host:chgType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Data elements that can be added or removed.
|
||||
-->
|
||||
<complexType name="addRemType">
|
||||
<sequence>
|
||||
<element name="addr" type="host:addrType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="status" type="host:statusType"
|
||||
minOccurs="0" maxOccurs="7"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Data elements that can be changed.
|
||||
-->
|
||||
<complexType name="chgType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child response elements.
|
||||
-->
|
||||
<element name="chkData" type="host:chkDataType"/>
|
||||
<element name="creData" type="host:creDataType"/>
|
||||
<element name="infData" type="host:infDataType"/>
|
||||
<element name="panData" type="host:panDataType"/>
|
||||
|
||||
<!--
|
||||
<check> response elements.
|
||||
-->
|
||||
<complexType name="chkDataType">
|
||||
<sequence>
|
||||
<element name="cd" type="host:checkType"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="checkType">
|
||||
<sequence>
|
||||
<element name="name" type="host:checkNameType"/>
|
||||
<element name="reason" type="eppcom:reasonType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="checkNameType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:labelType">
|
||||
<attribute name="avail" type="boolean"
|
||||
use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<create> response elements.
|
||||
-->
|
||||
<complexType name="creDataType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="crDate" type="dateTime"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
<info> response elements.
|
||||
-->
|
||||
<complexType name="infDataType">
|
||||
<sequence>
|
||||
<element name="name" type="eppcom:labelType"/>
|
||||
<element name="roid" type="eppcom:roidType"/>
|
||||
<element name="status" type="host:statusType"
|
||||
maxOccurs="7"/>
|
||||
<element name="addr" type="host:addrType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="clID" type="eppcom:clIDType"/>
|
||||
<element name="crID" type="eppcom:clIDType"/>
|
||||
<element name="crDate" type="dateTime"/>
|
||||
<element name="upID" type="eppcom:clIDType"
|
||||
minOccurs="0"/>
|
||||
<element name="upDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
<element name="trDate" type="dateTime"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Status is a combination of attributes and an optional human-readable
|
||||
message that may be expressed in languages other than English.
|
||||
-->
|
||||
<complexType name="statusType">
|
||||
<simpleContent>
|
||||
<extension base="normalizedString">
|
||||
<attribute name="s" type="host:statusValueType"
|
||||
use="required"/>
|
||||
<attribute name="lang" type="language"
|
||||
default="en"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="statusValueType">
|
||||
<restriction base="token">
|
||||
<enumeration value="clientDeleteProhibited"/>
|
||||
<enumeration value="clientUpdateProhibited"/>
|
||||
<enumeration value="linked"/>
|
||||
<enumeration value="ok"/>
|
||||
<enumeration value="pendingCreate"/>
|
||||
<enumeration value="pendingDelete"/>
|
||||
<enumeration value="pendingTransfer"/>
|
||||
<enumeration value="pendingUpdate"/>
|
||||
<enumeration value="serverDeleteProhibited"/>
|
||||
<enumeration value="serverUpdateProhibited"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Pending action notification response elements.
|
||||
-->
|
||||
<complexType name="panDataType">
|
||||
<sequence>
|
||||
<element name="name" type="host:paNameType"/>
|
||||
<element name="paTRID" type="epp:trIDType"/>
|
||||
<element name="paDate" type="dateTime"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<complexType name="paNameType">
|
||||
<simpleContent>
|
||||
<extension base="eppcom:labelType">
|
||||
<attribute name="paResult" type="boolean"
|
||||
use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
End of schema.
|
||||
-->
|
||||
</schema>
|
134
doc/schemas/secDNS-1.1.xsd
Normal file
134
doc/schemas/secDNS-1.1.xsd
Normal file
|
@ -0,0 +1,134 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schema
|
||||
targetNamespace="urn:ietf:params:xml:ns:secDNS-1.1"
|
||||
xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
Extensible Provisioning Protocol v1.0
|
||||
domain name extension schema
|
||||
for provisioning DNS security (DNSSEC) extensions.
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<!--
|
||||
Child elements found in EPP commands.
|
||||
-->
|
||||
<element name="create" type="secDNS:dsOrKeyType"/>
|
||||
<element name="update" type="secDNS:updateType"/>
|
||||
|
||||
|
||||
<!--
|
||||
Child elements supporting either the
|
||||
dsData or the keyData interface.
|
||||
-->
|
||||
<complexType name="dsOrKeyType">
|
||||
<sequence>
|
||||
<element name="maxSigLife" type="secDNS:maxSigLifeType"
|
||||
minOccurs="0"/>
|
||||
<choice>
|
||||
<element name="dsData" type="secDNS:dsDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="keyData" type="secDNS:keyDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Definition for the maximum signature life (maxSigLife)
|
||||
-->
|
||||
<simpleType name="maxSigLifeType">
|
||||
<restriction base="int">
|
||||
<minInclusive value="1"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
|
||||
<!--
|
||||
Child elements of dsData used for dsData interface
|
||||
-->
|
||||
<complexType name="dsDataType">
|
||||
<sequence>
|
||||
<element name="keyTag" type="unsignedShort"/>
|
||||
<element name="alg" type="unsignedByte"/>
|
||||
<element name="digestType" type="unsignedByte"/>
|
||||
<element name="digest" type="hexBinary"/>
|
||||
<element name="keyData" type="secDNS:keyDataType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
|
||||
<!--
|
||||
Child elements of keyData used for keyData interface
|
||||
and optionally with dsData interface
|
||||
-->
|
||||
<complexType name="keyDataType">
|
||||
<sequence>
|
||||
<element name="flags" type="unsignedShort"/>
|
||||
<element name="protocol" type="unsignedByte"/>
|
||||
<element name="alg" type="unsignedByte"/>
|
||||
<element name="pubKey" type="secDNS:keyType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Definition for the public key
|
||||
-->
|
||||
<simpleType name="keyType">
|
||||
<restriction base="base64Binary">
|
||||
<minLength value="1"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!--
|
||||
Child elements of the <update> element.
|
||||
-->
|
||||
<complexType name="updateType">
|
||||
<sequence>
|
||||
<element name="rem" type="secDNS:remType"
|
||||
minOccurs="0"/>
|
||||
<element name="add" type="secDNS:dsOrKeyType"
|
||||
minOccurs="0"/>
|
||||
<element name="chg" type="secDNS:chgType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="urgent" type="boolean" default="false"/>
|
||||
</complexType>
|
||||
|
||||
|
||||
<!--
|
||||
Child elements of the <rem> command.
|
||||
-->
|
||||
<complexType name="remType">
|
||||
<choice>
|
||||
<element name="all" type="boolean"/>
|
||||
<element name="dsData" type="secDNS:dsDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
<element name="keyData" type="secDNS:keyDataType"
|
||||
maxOccurs="unbounded"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!--
|
||||
Child elements supporting the <chg> element.
|
||||
-->
|
||||
<complexType name="chgType">
|
||||
<sequence>
|
||||
<element name="maxSigLife" type="secDNS:maxSigLifeType"
|
||||
minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
|
||||
<!--
|
||||
Child response elements.
|
||||
-->
|
||||
<element name="infData" type="secDNS:dsOrKeyType"/>
|
||||
|
||||
</schema>
|
|
@ -148,11 +148,11 @@ namespace :import do
|
|||
email
|
||||
fax
|
||||
created_at
|
||||
updated_at
|
||||
ident
|
||||
ident_type
|
||||
auth_info
|
||||
name
|
||||
org_name
|
||||
registrar_id
|
||||
creator_str
|
||||
updator_str
|
||||
|
@ -163,11 +163,11 @@ namespace :import do
|
|||
zip
|
||||
state
|
||||
country_code
|
||||
statuses
|
||||
)
|
||||
|
||||
contacts = []
|
||||
existing_contact_ids = Contact.pluck(:legacy_id)
|
||||
user = "rake-#{`whoami`.strip} #{ARGV.join ' '}"
|
||||
count = 0
|
||||
|
||||
Legacy::Contact.includes(:object_registry, :object, object_registry: :registrar)
|
||||
|
@ -181,28 +181,29 @@ namespace :import do
|
|||
contacts << [
|
||||
x.object_registry.name.try(:strip),
|
||||
x.telephone.try(:strip),
|
||||
x.email.try(:strip),
|
||||
[x.email.try(:strip), x.notifyemail.try(:strip)].uniq.select(&:present?).join(', '),
|
||||
x.fax.try(:strip),
|
||||
x.object_registry.try(:crdate),
|
||||
x.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update),
|
||||
x.ssn.try(:strip),
|
||||
ident_type_map[x.ssntype],
|
||||
x.object.authinfopw.try(:strip),
|
||||
name,
|
||||
x.organization.try(:strip),
|
||||
x.object_registry.try(:registrar).try(:id),
|
||||
user,
|
||||
user,
|
||||
x.organization.try(:strip)? x.organization.try(:strip): name,
|
||||
Registrar.find_by(legacy_id: x.object.try(:clid)).try(:id),
|
||||
x.object_registry.try(:registrar).try(:name),
|
||||
x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name),
|
||||
x.country.try(:strip),
|
||||
x.id,
|
||||
[x.street1.try(:strip), x.street2.try(:strip), x.street3.try(:strip)].join("\n"),
|
||||
x.city.try(:strip),
|
||||
x.postalcode.try(:strip),
|
||||
x.stateorprovince.try(:strip),
|
||||
x.country.try(:strip)
|
||||
x.country.try(:strip),
|
||||
[x.object_state.try(:name)|| Contact::OK]
|
||||
]
|
||||
|
||||
if contacts.size % 10000 == 0
|
||||
Contact.import contact_columns, contacts, validate: false
|
||||
Contact.import contact_columns, contacts, {validate: false, timestamps: false}
|
||||
contacts = []
|
||||
end
|
||||
rescue => e
|
||||
|
@ -211,7 +212,7 @@ namespace :import do
|
|||
end
|
||||
end
|
||||
|
||||
Contact.import contact_columns, contacts, validate: false
|
||||
Contact.import contact_columns, contacts, {validate: false, timestamps: false}
|
||||
puts "-----> Imported #{count} new contacts in #{(Time.zone.now.to_f - start).round(2)} seconds"
|
||||
end
|
||||
|
||||
|
@ -222,11 +223,13 @@ namespace :import do
|
|||
|
||||
domain_columns = %w(
|
||||
name
|
||||
registrar_id
|
||||
registered_at
|
||||
valid_from
|
||||
valid_to
|
||||
auth_info
|
||||
created_at
|
||||
updated_at
|
||||
name_dirty
|
||||
name_puny
|
||||
period
|
||||
|
@ -264,6 +267,8 @@ namespace :import do
|
|||
creator_str
|
||||
updator_str
|
||||
legacy_domain_id
|
||||
created_at
|
||||
updated_at
|
||||
)
|
||||
|
||||
dnskey_columns = %w(
|
||||
|
@ -276,6 +281,7 @@ namespace :import do
|
|||
creator_str
|
||||
updator_str
|
||||
legacy_domain_id
|
||||
updated_at
|
||||
)
|
||||
|
||||
domains, nameservers, dnskeys, domain_contacts = [], [], [], []
|
||||
|
@ -298,29 +304,29 @@ namespace :import do
|
|||
begin
|
||||
# domain statuses
|
||||
domain_statuses = []
|
||||
ok = true
|
||||
x.object_states.each do |state|
|
||||
next if state.name.blank?
|
||||
domain_statuses << state.name
|
||||
ok = false
|
||||
end
|
||||
|
||||
# OK status is default
|
||||
domain_statuses << DomainStatus::OK if ok
|
||||
domain_statuses << DomainStatus::OK if domain_statuses.empty?
|
||||
|
||||
domains << [
|
||||
x.object_registry.name.try(:strip),
|
||||
Registrar.find_by(legacy_id: x.object.try(:clid)).try(:id),
|
||||
x.object_registry.try(:crdate),
|
||||
x.object_registry.try(:crdate),
|
||||
x.exdate,
|
||||
x.object.authinfopw.try(:strip),
|
||||
x.object_registry.try(:crdate),
|
||||
x.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update),
|
||||
x.object_registry.name.try(:strip),
|
||||
SimpleIDN.to_ascii(x.object_registry.name.try(:strip)),
|
||||
1,
|
||||
'y',
|
||||
user,
|
||||
user,
|
||||
x.object_registry.try(:registrar).try(:name),
|
||||
x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name),
|
||||
x.id,
|
||||
x.object_registry.try(:crid),
|
||||
x.registrant,
|
||||
|
@ -331,8 +337,8 @@ namespace :import do
|
|||
x.domain_contact_maps.each do |dc|
|
||||
domain_contacts << [
|
||||
'AdminDomainContact',
|
||||
user,
|
||||
user,
|
||||
x.object_registry.try(:registrar).try(:name),
|
||||
x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name),
|
||||
x.id,
|
||||
dc.contactid
|
||||
]
|
||||
|
@ -342,15 +348,16 @@ namespace :import do
|
|||
x.nsset_contact_maps.each do |dc|
|
||||
domain_contacts << [
|
||||
'TechDomainContact',
|
||||
user,
|
||||
user,
|
||||
x.object_registry.try(:registrar).try(:name),
|
||||
x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name),
|
||||
x.id,
|
||||
dc.contactid
|
||||
]
|
||||
end
|
||||
|
||||
# nameservers
|
||||
x.nsset.hosts.each do |host|
|
||||
nsset = x.nsset
|
||||
nsset.hosts.each do |host|
|
||||
ip_maps = host.host_ipaddr_maps
|
||||
ips = {}
|
||||
ip_maps.each do |ip_map|
|
||||
|
@ -363,9 +370,11 @@ namespace :import do
|
|||
host.fqdn.try(:strip),
|
||||
ips[:ipv4].try(:strip),
|
||||
ips[:ipv6].try(:strip),
|
||||
user,
|
||||
user,
|
||||
x.id
|
||||
x.object_registry.try(:registrar).try(:name),
|
||||
x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name),
|
||||
x.id,
|
||||
nsset.object_registry.try(:crdate),
|
||||
nsset.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update)
|
||||
]
|
||||
end if x.nsset && x.nsset.hosts
|
||||
|
||||
|
@ -377,17 +386,18 @@ namespace :import do
|
|||
key.key,
|
||||
3, # ds_alg
|
||||
1, # ds_digest_type /SHA1)
|
||||
user,
|
||||
user,
|
||||
x.id
|
||||
x.object_registry.try(:registrar).try(:name),
|
||||
x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name),
|
||||
x.id,
|
||||
key.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update)
|
||||
]
|
||||
end
|
||||
|
||||
if index % 10000 == 0 && index != 0
|
||||
Domain.import domain_columns, domains, validate: false
|
||||
Nameserver.import nameserver_columns, nameservers, validate: false
|
||||
Dnskey.import dnskey_columns, dnskeys, validate: false
|
||||
DomainContact.import domain_contact_columns, domain_contacts, validate: false
|
||||
Domain.import domain_columns, domains, {validate: false, timestamps: false}
|
||||
Nameserver.import nameserver_columns, nameservers, {validate: false, timestamps: false}
|
||||
Dnskey.import dnskey_columns, dnskeys, {validate: false, timestamps: false}
|
||||
DomainContact.import domain_contact_columns, domain_contacts, validate: false # created_at is taken from contact at the bottom
|
||||
domains, nameservers, dnskeys, domain_contacts = [], [], [], []
|
||||
end
|
||||
rescue => e
|
||||
|
@ -396,9 +406,9 @@ namespace :import do
|
|||
end
|
||||
end
|
||||
|
||||
Domain.import domain_columns, domains, validate: false
|
||||
Nameserver.import nameserver_columns, nameservers, validate: false
|
||||
Dnskey.import dnskey_columns, dnskeys, validate: false
|
||||
Domain.import domain_columns, domains, {validate: false, timestamps: false}
|
||||
Nameserver.import nameserver_columns, nameservers, {validate: false, timestamps: false}
|
||||
Dnskey.import dnskey_columns, dnskeys, {validate: false, timestamps: false}
|
||||
DomainContact.import domain_contact_columns, domain_contacts, validate: false
|
||||
|
||||
puts '-----> Updating relations...'
|
||||
|
@ -426,7 +436,9 @@ namespace :import do
|
|||
# contacts
|
||||
ActiveRecord::Base.connection.execute(
|
||||
"UPDATE domain_contacts "\
|
||||
"SET contact_id = contacts.id "\
|
||||
"SET contact_id = contacts.id, "\
|
||||
"updated_at = contacts.updated_at, "\
|
||||
"created_at = contacts.created_at "\
|
||||
"FROM contacts "\
|
||||
"WHERE contacts.legacy_id = legacy_contact_id "\
|
||||
"AND legacy_contact_id IS NOT NULL "\
|
||||
|
|
|
@ -17,7 +17,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -36,7 +36,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -55,7 +55,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -73,7 +73,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -91,7 +91,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -115,7 +115,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -139,7 +139,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -163,7 +163,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -187,7 +187,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -211,7 +211,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -235,7 +235,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -255,7 +255,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -274,7 +274,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -292,7 +292,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
|
||||
|
@ -311,7 +311,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -329,7 +329,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -353,7 +353,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -378,7 +378,7 @@ task statuses: [:environment] do
|
|||
'serverManualInzone',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -403,7 +403,7 @@ task statuses: [:environment] do
|
|||
'serverManualInzone',
|
||||
'serverRegistrantChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -428,11 +428,11 @@ task statuses: [:environment] do
|
|||
'serverManualInzone',
|
||||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
'forceDelete': [
|
||||
'serverForceDelete': [
|
||||
'clientHold',
|
||||
'serverHold',
|
||||
'inactive',
|
||||
|
@ -465,7 +465,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate',
|
||||
'expired'
|
||||
],
|
||||
|
@ -491,7 +491,7 @@ task statuses: [:environment] do
|
|||
'serverRegistrantChangeProhibited',
|
||||
'serverAdminChangeProhibited',
|
||||
'serverTechChangeProhibited',
|
||||
'forceDelete',
|
||||
'serverForceDelete',
|
||||
'deleteCandidate'
|
||||
]
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,19 @@
|
|||
(function() {
|
||||
$(document).on('page:change', function() {
|
||||
$('.selectize').selectize({
|
||||
allowEmptyOption: true
|
||||
});
|
||||
$('.js-datepicker').datepicker({
|
||||
showAnim: "",
|
||||
autoclose: true,
|
||||
dateFormat: "dd.mm.yy",
|
||||
changeMonth: true,
|
||||
changeYear: true
|
||||
});
|
||||
$('form').each(function() {
|
||||
return $(this).validate();
|
||||
});
|
||||
return $('[data-toggle="popover"]').popover();
|
||||
});
|
||||
|
||||
}).call(this);
|
|
@ -1 +1,19 @@
|
|||
(function(){$(document).on("page:change",function(){return $(".selectize").selectize({allowEmptyOption:!0}),$(".js-datepicker").datepicker({showAnim:"",autoclose:!0,dateFormat:"dd.mm.yy",changeMonth:!0,changeYear:!0}),$("form").each(function(){return $(this).validate()})})}).call(this);
|
||||
(function() {
|
||||
$(document).on('page:change', function() {
|
||||
$('.selectize').selectize({
|
||||
allowEmptyOption: true
|
||||
});
|
||||
$('.js-datepicker').datepicker({
|
||||
showAnim: "",
|
||||
autoclose: true,
|
||||
dateFormat: "dd.mm.yy",
|
||||
changeMonth: true,
|
||||
changeYear: true
|
||||
});
|
||||
$('form').each(function() {
|
||||
return $(this).validate();
|
||||
});
|
||||
return $('[data-toggle="popover"]').popover();
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
BIN
public/assets/eis_logo_rgb_block.png
Normal file
BIN
public/assets/eis_logo_rgb_block.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,34 @@
|
|||
(function() {
|
||||
$(document).on('page:change', function() {
|
||||
$('form').each(function() {
|
||||
return $(this).validate();
|
||||
});
|
||||
$('.js-contact-form').on('restoreDefault', function(e) {
|
||||
var form;
|
||||
form = $(e.target);
|
||||
form.find('.js-ident-tip').hide();
|
||||
switch ($('.js-ident-country-code option:selected').val()) {
|
||||
case 'EE':
|
||||
return $('.js-ident-type').find('option[value=birthday]').prop('disabled', true);
|
||||
default:
|
||||
return $('.js-ident-type').find('option[value=birthday]').prop('disabled', false);
|
||||
}
|
||||
});
|
||||
$('.js-ident-country-code').change(function(e) {
|
||||
var form;
|
||||
form = $('.js-contact-form');
|
||||
return form.trigger('restoreDefault');
|
||||
});
|
||||
$('.js-ident-type').change(function(e) {
|
||||
var form;
|
||||
form = $('.js-contact-form');
|
||||
form.trigger('restoreDefault');
|
||||
switch (e.target.value) {
|
||||
case 'birthday':
|
||||
return form.find('.js-ident-tip').show();
|
||||
}
|
||||
});
|
||||
return $('.js-contact-form').trigger('restoreDefault');
|
||||
});
|
||||
|
||||
}).call(this);
|
|
@ -1 +1,34 @@
|
|||
(function(){$(document).on("page:change",function(){return $("form").each(function(){return $(this).validate()}),$(".js-contact-form").on("restoreDefault",function(t){var e;switch(e=$(t.target),e.find(".js-ident-tip").hide(),$(".js-ident-country-code option:selected").val()){case"EE":return $(".js-ident-type").find("option[value=birthday]").prop("disabled",!0);default:return $(".js-ident-type").find("option[value=birthday]").prop("disabled",!1)}}),$(".js-ident-country-code").change(function(){var t;return t=$(".js-contact-form"),t.trigger("restoreDefault")}),$(".js-ident-type").change(function(t){var e;switch(e=$(".js-contact-form"),e.trigger("restoreDefault"),t.target.value){case"birthday":return e.find(".js-ident-tip").show()}}),$(".js-contact-form").trigger("restoreDefault")})}).call(this);
|
||||
(function() {
|
||||
$(document).on('page:change', function() {
|
||||
$('form').each(function() {
|
||||
return $(this).validate();
|
||||
});
|
||||
$('.js-contact-form').on('restoreDefault', function(e) {
|
||||
var form;
|
||||
form = $(e.target);
|
||||
form.find('.js-ident-tip').hide();
|
||||
switch ($('.js-ident-country-code option:selected').val()) {
|
||||
case 'EE':
|
||||
return $('.js-ident-type').find('option[value=birthday]').prop('disabled', true);
|
||||
default:
|
||||
return $('.js-ident-type').find('option[value=birthday]').prop('disabled', false);
|
||||
}
|
||||
});
|
||||
$('.js-ident-country-code').change(function(e) {
|
||||
var form;
|
||||
form = $('.js-contact-form');
|
||||
return form.trigger('restoreDefault');
|
||||
});
|
||||
$('.js-ident-type').change(function(e) {
|
||||
var form;
|
||||
form = $('.js-contact-form');
|
||||
form.trigger('restoreDefault');
|
||||
switch (e.target.value) {
|
||||
case 'birthday':
|
||||
return form.find('.js-ident-tip').show();
|
||||
}
|
||||
});
|
||||
return $('.js-contact-form').trigger('restoreDefault');
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
@ -59,7 +59,7 @@ feature 'Domain', type: :feature do
|
|||
click_link 'Edit statuses'
|
||||
page.should have_content('ok')
|
||||
click_link 'Set force delete'
|
||||
page.should have_content('forceDelete')
|
||||
page.should have_content('serverForceDelete')
|
||||
page.should have_content('serverRenewProhibited')
|
||||
page.should have_content('serverTransferProhibited')
|
||||
page.should have_content('serverUpdateProhibited')
|
||||
|
@ -74,7 +74,7 @@ feature 'Domain', type: :feature do
|
|||
click_link 'Back to domain'
|
||||
click_link 'Edit statuses'
|
||||
click_link 'Unset force delete'
|
||||
page.should_not have_content('forceDelete')
|
||||
page.should_not have_content('serverForceDelete')
|
||||
page.should_not have_content('serverRenewProhibited')
|
||||
page.should_not have_content('serverTransferProhibited')
|
||||
page.should_not have_content('serverUpdateProhibited')
|
||||
|
|
|
@ -245,7 +245,7 @@ describe Domain do
|
|||
@domain.set_force_delete
|
||||
|
||||
@domain.statuses.should match_array([
|
||||
"forceDelete",
|
||||
"serverForceDelete",
|
||||
"pendingDelete",
|
||||
"serverManualInzone",
|
||||
"serverRenewProhibited",
|
||||
|
@ -286,7 +286,7 @@ describe Domain do
|
|||
"clientHold",
|
||||
"deleteCandidate",
|
||||
"expired",
|
||||
"forceDelete",
|
||||
"serverForceDelete",
|
||||
"pendingDelete",
|
||||
"serverHold",
|
||||
"serverRenewProhibited",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue