Take into account address_processing setting in EPP contact:info

#251
This commit is contained in:
Artur Beljajev 2016-12-14 04:16:04 +02:00
parent 3d6a0936c7
commit a63e2b9dd2
3 changed files with 86 additions and 16 deletions

View file

@ -1,6 +1,7 @@
class Epp::ContactsController < EppController
before_action :find_contact, only: [:info, :update, :delete]
before_action :find_password, only: [:info, :update, :delete]
helper_method :address_processing?
def info
authorize! :info, @contact, @password
@ -24,7 +25,7 @@ class Epp::ContactsController < EppController
@contact.generate_code
if @contact.save
if !Contact.address_processing? && address_given?
if !address_processing? && address_given?
@response_code = 1100
@response_description = t('epp.contacts.completed_without_address')
else
@ -44,7 +45,7 @@ class Epp::ContactsController < EppController
frame = params[:parsed_frame]
if @contact.update_attributes(frame, current_user)
if !Contact.address_processing? && address_given?
if !address_processing? && address_given?
@response_code = 1100
@response_description = t('epp.contacts.completed_without_address')
else
@ -125,7 +126,7 @@ class Epp::ContactsController < EppController
'postalInfo > addr > cc',
]
required_attributes.concat(address_attributes) if Contact.address_processing?
required_attributes.concat(address_attributes) if address_processing?
requires(*required_attributes)
ident = params[:parsed_frame].css('ident')
@ -202,4 +203,8 @@ class Epp::ContactsController < EppController
def address_given?
params[:parsed_frame].css('postalInfo addr').size != 0
end
def address_processing?
Contact.address_processing?
end
end

View file

@ -5,7 +5,7 @@ xml.epp_head do
end
xml.resData do
xml.tag!('contact:infData', 'xmlns:contact' => 'https://epp.tld.ee/schema/contact-eis-1.0.xsd') do
xml.tag!('contact:infData', 'xmlns:contact' => 'https://epp.tld.ee/schema/contact-ee-1.1.xsd') do
xml.tag!('contact:id', @contact.code)
xml.tag!('contact:roid', @contact.roid)
@ -17,22 +17,30 @@ xml.epp_head do
xml.tag!('contact:name', @contact.name)
if can? :view_full_info, @contact, @password
xml.tag!('contact:org', @contact.org_name) if @contact.org_name.present?
xml.tag!('contact:addr') do
xml.tag!('contact:street', @contact.street)
xml.tag!('contact:city', @contact.city)
xml.tag!('contact:sp', @contact.state)
xml.tag!('contact:pc', @contact.zip)
xml.tag!('contact:cc', @contact.country_code)
if address_processing?
xml.tag!('contact:addr') do
xml.tag!('contact:street', @contact.street)
xml.tag!('contact:city', @contact.city)
xml.tag!('contact:sp', @contact.state)
xml.tag!('contact:pc', @contact.zip)
xml.tag!('contact:cc', @contact.country_code)
end
end
else
xml.tag!('contact:org', 'No access')
xml.tag!('contact:addr') do
xml.tag!('contact:street', 'No access')
xml.tag!('contact:city', 'No access')
xml.tag!('contact:sp', 'No access')
xml.tag!('contact:pc', 'No access')
xml.tag!('contact:cc', 'No access')
if address_processing?
xml.tag!('contact:addr') do
xml.tag!('contact:street', 'No access')
xml.tag!('contact:city', 'No access')
xml.tag!('contact:sp', 'No access')
xml.tag!('contact:pc', 'No access')
xml.tag!('contact:cc', 'No access')
end
end
end
end