From 7e51522585eddba8aa6f447ad132c736f36d6ff6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 27 Dec 2016 14:31:17 +0200 Subject: [PATCH] Require nameserver only if "nameserver_required" setting is on #267 --- app/controllers/epp/domains_controller.rb | 6 ++++-- app/models/domain.rb | 4 ++++ spec/models/domain_spec.rb | 10 ++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index fb3441580..675dcb90e 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -157,8 +157,10 @@ class Epp::DomainsController < EppController end def validate_create - @prefix = 'create > create >' - requires 'name', 'ns', 'registrant', 'ns > hostAttr' + if Domain.nameserver_required? + @prefix = 'create > create >' + requires 'name', 'ns', 'registrant', 'ns > hostAttr' + end @prefix = 'extension > create >' mutually_exclusive 'keyData', 'dsData' diff --git a/app/models/domain.rb b/app/models/domain.rb index ae343c551..edc8e02cc 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -245,6 +245,10 @@ class Domain < ActiveRecord::Base { admin_contacts: :registrar } ) end + + def nameserver_required? + Setting.nameserver_required + end end def name=(value) diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb index 186fbc685..8b1554b68 100644 --- a/spec/models/domain_spec.rb +++ b/spec/models/domain_spec.rb @@ -704,6 +704,16 @@ RSpec.describe Domain, db: false do it { is_expected.to alias_attribute(:force_delete_time, :force_delete_at) } it { is_expected.to alias_attribute(:outzone_time, :outzone_at) } + describe '::nameserver_required?' do + before do + Setting.nameserver_required = 'test' + end + + it 'returns setting value' do + expect(described_class.nameserver_required?).to eq('test') + end + end + describe '::expire_warning_period', db: true do before :example do Setting.expire_warning_period = 1