diff --git a/app/controllers/concerns/epp/common.rb b/app/controllers/concerns/epp/common.rb index 26176a0a8..1a1394822 100644 --- a/app/controllers/concerns/epp/common.rb +++ b/app/controllers/concerns/epp/common.rb @@ -3,7 +3,6 @@ module Epp::Common included do protect_from_forgery with: :null_session - helper_method :epp_head end def proxy @@ -22,12 +21,4 @@ module Epp::Common def current_epp_user @current_epp_user ||= EppUser.find(epp_session[:epp_user_id]) if epp_session[:epp_user_id] end - - def epp_head xml - xml.instruct! - xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd') do - yield - end - end - end diff --git a/app/views/epp/domains/check.xml.builder b/app/views/epp/domains/check.xml.builder index aec746fbb..2a7be9f38 100644 --- a/app/views/epp/domains/check.xml.builder +++ b/app/views/epp/domains/check.xml.builder @@ -1,3 +1,3 @@ -epp_head do +xml.epp_head do xml.bla end diff --git a/app/views/epp/domains/create.xml.builder b/app/views/epp/domains/create.xml.builder index 35bb10ff1..02f66111e 100644 --- a/app/views/epp/domains/create.xml.builder +++ b/app/views/epp/domains/create.xml.builder @@ -1,5 +1,4 @@ -xml.instruct! -xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd') do +xml.epp_head do xml.response do xml.result('code' => '1000') do xml.msg 'Command completed successfully' diff --git a/app/views/epp/error.xml.builder b/app/views/epp/error.xml.builder index a7ac956df..e63016ec3 100644 --- a/app/views/epp/error.xml.builder +++ b/app/views/epp/error.xml.builder @@ -1,5 +1,4 @@ -xml.instruct! -xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd') do +xml.epp_head do xml.response do xml.result('code' => params[:code]) do xml.msg(params[:msg], 'lang' => 'en') diff --git a/app/views/epp/sessions/greeting.xml.builder b/app/views/epp/sessions/greeting.xml.builder index 64fbc4c9f..b2fd01b22 100644 --- a/app/views/epp/sessions/greeting.xml.builder +++ b/app/views/epp/sessions/greeting.xml.builder @@ -1,4 +1,4 @@ -epp_head(xml) do +xml.epp_head do xml.greeting do xml.svID 'EPP server (DSDng)' xml.svDate '2014-06-18T17:46:59+03:00' diff --git a/app/views/epp/sessions/login_fail.xml.builder b/app/views/epp/sessions/login_fail.xml.builder index 0e5aee9f0..18fa8da36 100644 --- a/app/views/epp/sessions/login_fail.xml.builder +++ b/app/views/epp/sessions/login_fail.xml.builder @@ -1,5 +1,4 @@ -xml.instruct! -xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd') do +xml.epp_head do xml.response do xml.result('code' => '2501') do xml.msg('Authentication error; server closing connection') diff --git a/app/views/epp/sessions/login_success.xml.builder b/app/views/epp/sessions/login_success.xml.builder index 6ff17d0eb..b3630c6ab 100644 --- a/app/views/epp/sessions/login_success.xml.builder +++ b/app/views/epp/sessions/login_success.xml.builder @@ -1,5 +1,4 @@ -xml.instruct! -xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd') do +xml.epp_head do xml.response do xml.result('code' => '1000') do xml.msg 'Command completed successfully' diff --git a/app/views/epp/sessions/logout.xml.builder b/app/views/epp/sessions/logout.xml.builder index c3a506b0b..b1bd39b2d 100644 --- a/app/views/epp/sessions/logout.xml.builder +++ b/app/views/epp/sessions/logout.xml.builder @@ -1,5 +1,4 @@ -xml.instruct! -xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd') do +xml.epp_head do xml.response do xml.result('code' => '1500') do xml.msg 'Command completed successfully; ending session' diff --git a/config/initializers/load_class_extensions.rb b/config/initializers/load_class_extensions.rb new file mode 100644 index 000000000..6c15b6a2f --- /dev/null +++ b/config/initializers/load_class_extensions.rb @@ -0,0 +1 @@ +Dir[File.join(Rails.root, "lib", "ext", "*.rb")].each {|x| require x } diff --git a/lib/ext/xml_builder.rb b/lib/ext/xml_builder.rb new file mode 100644 index 000000000..9efde06f1 --- /dev/null +++ b/lib/ext/xml_builder.rb @@ -0,0 +1,10 @@ +require 'builder' + +class Builder::XmlMarkup + def epp_head + self.instruct! + self.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd') do + yield + end + end +end