From b50f954aa8848f16bb695673a3d45a33b22f4765 Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 5 Nov 2015 18:21:20 +0200 Subject: [PATCH 1/2] Domain pricelist validation --- app/controllers/epp/domains_controller.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 5b31a0dad..1f66765e7 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -1,4 +1,5 @@ class Epp::DomainsController < EppController + include EppErrors before_action :find_domain, only: [:info, :renew, :update, :transfer, :delete] before_action :find_password, only: [:info, :update, :transfer, :delete] @@ -28,6 +29,10 @@ class Epp::DomainsController < EppController @domain.errors.delete(:name_dirty) if @domain.errors[:puny_label].any? handle_errors(@domain) and return if @domain.errors.any? + if !@domain_pricelist || @domain_pricelist.valid_from > Time.zone.now + add_epp_error('2306', nil, nil, 'No price lists for domain') + end + handle_errors and return unless balance_ok?('create') ActiveRecord::Base.transaction do if @domain.save # TODO: Maybe use validate: false here because we have already validated the domain? From 4203e4a6f4b48bd2570bb72d47a35a2b7315222f Mon Sep 17 00:00:00 2001 From: Stas Date: Fri, 6 Nov 2015 12:50:18 +0200 Subject: [PATCH 2/2] 104989420-validation logic changes --- app/controllers/epp/domains_controller.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 1f66765e7..4607bb28d 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -1,5 +1,4 @@ class Epp::DomainsController < EppController - include EppErrors before_action :find_domain, only: [:info, :renew, :update, :transfer, :delete] before_action :find_password, only: [:info, :update, :transfer, :delete] @@ -29,8 +28,9 @@ class Epp::DomainsController < EppController @domain.errors.delete(:name_dirty) if @domain.errors[:puny_label].any? handle_errors(@domain) and return if @domain.errors.any? - if !@domain_pricelist || @domain_pricelist.valid_from > Time.zone.now - add_epp_error('2306', nil, nil, 'No price lists for domain') + if !@domain_pricelist.try(:price)#checking if pricelist is not found + @domain.add_epp_error('2306', nil, nil, 'No price list for domain') + handle_errors(@domain) and return if @domain.errors.any? end handle_errors and return unless balance_ok?('create') @@ -105,6 +105,11 @@ class Epp::DomainsController < EppController period = (period_element.to_i == 0) ? 1 : period_element.to_i period_unit = Epp::Domain.parse_period_unit_from_frame(params[:parsed_frame]) || 'y' + if !@domain_pricelist.try(:price)#checking if pricelist is not found + @domain.add_epp_error('2306', nil, nil, 'No price list for domain') + handle_errors(@domain) and return if @domain.errors.any? + end + ActiveRecord::Base.transaction do success = @domain.renew( params[:parsed_frame].css('curExpDate').text,