diff --git a/.rubocop.yml b/.rubocop.yml
index 3d8fd0b90..497e45bbe 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -2,3 +2,6 @@ inherit_from: .rubocop_todo.yml
Style/Alias:
EnforcedStyle: prefer_alias_method
+
+Style/FrozenStringLiteralComment:
+ Enabled: false
diff --git a/.ruby-version b/.ruby-version
index 5bc1cc43d..00355e29d 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-2.2.7
+2.3.7
diff --git a/CHANGELOG.md b/CHANGELOG.md
index edd7378fc..8fe8f891a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,16 @@
+25.05.2018
+* GDPR: updated whois templates with configurable disclaimer [#795](https://github.com/internetee/registry/issues/795)
+* GDPR: email forwarding solution to contact private domain registrants without revealing their email addresses [#824](https://github.com/internetee/registry/issues/824)
+* EPP: added support for additional digitally signed doc formats like asice, sce, asics, scs, edoc, adoc [#840](https://github.com/internetee/registry/issues/840)
+* Registrar: removed handling of newlines from contact form street field [#836](https://github.com/internetee/registry/issues/836)
+* Ruby upgrade to version 2.3.7 [#546](https://github.com/internetee/registry/issues/546)
+* Devise upgrade to version 4.4.3 [#847](https://github.com/internetee/registry/pull/847)
+* Added extra logging to debug Directo integration [#848](https://github.com/internetee/registry/pull/848)
+
+30.04.2018
+* Upgrade Ruby on Rails to version 4.2.10 [#826](https://github.com/internetee/registry/issues/826)
+* BUG: Admin - fixed internal error in domain_versions and contact_versions views caused by removed db column [#830](https://github.com/internetee/registry/issues/830)
+
23.04.2018
* WHOIS: domains with deleteCandidate status do not return registration details as domains waiting to be deleted [#789](https://github.com/internetee/registry/issues/789)
* Security: Nokigiri gem update to version 1.8.2 [#823](https://github.com/internetee/registry/pull/823)
diff --git a/Dockerfile b/Dockerfile
index 0c2c51e25..480231fc2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM ruby:2.2
+FROM ruby:2.3
MAINTAINER maciej.szlosarczyk@internet.ee
RUN apt-get update > /dev/null && apt-get install -y > /dev/null \
diff --git a/Gemfile b/Gemfile
index 54210f794..0af80fddf 100644
--- a/Gemfile
+++ b/Gemfile
@@ -52,7 +52,7 @@ gem 'liquid', '3.0.6' # for email templates
# rights
gem 'cancancan', '1.11.0' # autharization
-gem 'devise', '3.5.4' # authenitcation
+gem 'devise', '4.4.3' # authenitcation
# rest api
gem 'grape', '0.12.0'
diff --git a/Gemfile.lock b/Gemfile.lock
index 03193e703..b12b28a2d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -167,12 +167,11 @@ GEM
database_cleaner (1.6.1)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
- devise (3.5.4)
+ devise (4.4.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
- railties (>= 3.2.6, < 5)
+ railties (>= 4.1.0, < 6.0)
responders
- thread_safe (~> 0.1)
warden (~> 1.2.3)
diff-lcs (1.3)
docile (1.1.5)
@@ -350,8 +349,9 @@ GEM
polyamorous (~> 1.1)
rdoc (4.3.0)
request_store (1.1.0)
- responders (2.3.0)
- railties (>= 4.2.0, < 5.1)
+ responders (2.4.0)
+ actionpack (>= 4.2.0, < 5.3)
+ railties (>= 4.2.0, < 5.3)
rest-client (2.0.1)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
@@ -491,7 +491,7 @@ DEPENDENCIES
daemons-rails (= 1.2.1)
data_migrate!
database_cleaner
- devise (= 3.5.4)
+ devise (= 4.4.3)
digidoc_client!
epp (= 1.5.0)!
epp-xml (= 1.1.0)!
diff --git a/app/controllers/admin/blocked_domains_controller.rb b/app/controllers/admin/blocked_domains_controller.rb
index d9227d773..bf5359b82 100644
--- a/app/controllers/admin/blocked_domains_controller.rb
+++ b/app/controllers/admin/blocked_domains_controller.rb
@@ -3,13 +3,11 @@ module Admin
load_and_authorize_resource
def index
-
params[:q] ||= {}
domains = BlockedDomain.all.order(:name)
@q = domains.search(params[:q])
@domains = @q.result.page(params[:page])
- @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
-
+ @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
end
def new
diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb
index e64a86774..834353cf4 100644
--- a/app/controllers/admin/contact_versions_controller.rb
+++ b/app/controllers/admin/contact_versions_controller.rb
@@ -26,7 +26,7 @@ module Admin
versions = ContactVersion.includes(:item).where(whereS).order(created_at: :desc, id: :desc)
@q = versions.search(params[:q])
@versions = @q.result.page(params[:page])
- @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
+ @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
end
diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb
index 6402d09ae..b53d366ab 100644
--- a/app/controllers/admin/contacts_controller.rb
+++ b/app/controllers/admin/contacts_controller.rb
@@ -22,7 +22,7 @@ module Admin
@contacts = @q.result.uniq.page(params[:page])
end
- @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
+ @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
end
def search
diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb
index 2585ab894..b6245f6ea 100644
--- a/app/controllers/admin/domain_versions_controller.rb
+++ b/app/controllers/admin/domain_versions_controller.rb
@@ -43,7 +43,7 @@ module Admin
versions = DomainVersion.includes(:item).where(whereS).order(created_at: :desc, id: :desc)
@q = versions.search(params[:q])
@versions = @q.result.page(params[:page])
- @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
+ @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
render "admin/domain_versions/archive"
end
diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb
index 576b5f8e1..71d49a2ab 100644
--- a/app/controllers/admin/domains_controller.rb
+++ b/app/controllers/admin/domains_controller.rb
@@ -32,7 +32,7 @@ module Admin
end
end
- @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
+ @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
end
# rubocop: enable Metrics/PerceivedComplexity
diff --git a/app/controllers/admin/invoices_controller.rb b/app/controllers/admin/invoices_controller.rb
index 9b97d0903..39bf06152 100644
--- a/app/controllers/admin/invoices_controller.rb
+++ b/app/controllers/admin/invoices_controller.rb
@@ -13,7 +13,7 @@ module Admin
@deposit = Deposit.new(deposit_params.merge(registrar: r))
@invoice = @deposit.issue_prepayment_invoice
- if @invoice && @invoice.persisted?
+ if @invoice&.persisted?
flash[:notice] = t(:record_created)
redirect_to [:admin, @invoice]
else
diff --git a/app/controllers/admin/reserved_domains_controller.rb b/app/controllers/admin/reserved_domains_controller.rb
index 52a74f345..78d752866 100644
--- a/app/controllers/admin/reserved_domains_controller.rb
+++ b/app/controllers/admin/reserved_domains_controller.rb
@@ -4,13 +4,11 @@ module Admin
before_action :set_domain, only: [:edit, :update]
def index
-
params[:q] ||= {}
domains = ReservedDomain.all.order(:name)
@q = domains.search(params[:q])
@domains = @q.result.page(params[:page])
- @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
-
+ @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
end
def new
diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb
index 36bdcd6cc..3eba05777 100644
--- a/app/controllers/epp_controller.rb
+++ b/app/controllers/epp_controller.rb
@@ -168,7 +168,7 @@ class EppController < ApplicationController
# validate legal document's type here because it may be in most of the requests
@prefix = nil
- if element_count('extdata > legalDocument') > 0
+ if element_count('extdata > legalDocument').positive?
requires_attribute('extdata > legalDocument', 'type', values: LegalDocument::TYPES, policy: true)
end
@@ -279,7 +279,7 @@ class EppController < ApplicationController
def optional(selector, *validations)
full_selector = [@prefix, selector].compact.join(' ')
el = params[:parsed_frame].css(full_selector).first
- return unless el && el.text.present?
+ return unless el&.text.present?
value = el.text
validations.each do |x|
diff --git a/app/controllers/registrant/domains_controller.rb b/app/controllers/registrant/domains_controller.rb
index 7cde44a86..0e2f6eeaf 100644
--- a/app/controllers/registrant/domains_controller.rb
+++ b/app/controllers/registrant/domains_controller.rb
@@ -6,7 +6,7 @@ class Registrant::DomainsController < RegistrantController
@q = domains.search(params[:q])
@domains = @q.result.page(params[:page])
end
- @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
+ @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
end
def show
diff --git a/app/controllers/registrant/whois_controller.rb b/app/controllers/registrant/whois_controller.rb
index b44a0bb67..2936477eb 100644
--- a/app/controllers/registrant/whois_controller.rb
+++ b/app/controllers/registrant/whois_controller.rb
@@ -1,3 +1,5 @@
+# As non-GDPR compliant, this controller is deprecated. Needs to be replaced with one that relies
+# on the REST WHOIS API.
class Registrant::WhoisController < RegistrantController
def index
authorize! :view, :registrant_whois
diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb
index f5f527e1f..cb059641e 100644
--- a/app/controllers/registrar/contacts_controller.rb
+++ b/app/controllers/registrar/contacts_controller.rb
@@ -33,7 +33,7 @@ class Registrar
@contacts = @q.result(distinct: :true).page(params[:page])
end
- @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
+ @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
end
def download_list
diff --git a/app/controllers/registrar/deposits_controller.rb b/app/controllers/registrar/deposits_controller.rb
index 856b22553..ec6d13977 100644
--- a/app/controllers/registrar/deposits_controller.rb
+++ b/app/controllers/registrar/deposits_controller.rb
@@ -10,7 +10,7 @@ class Registrar
@deposit = Deposit.new(deposit_params.merge(registrar: current_user.registrar))
@invoice = @deposit.issue_prepayment_invoice
- if @invoice && @invoice.persisted?
+ if @invoice&.persisted?
flash[:notice] = t(:please_pay_the_following_invoice)
redirect_to [:registrar, @invoice]
else
diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb
index b85923a02..774ec2e44 100644
--- a/app/controllers/registrar/domains_controller.rb
+++ b/app/controllers/registrar/domains_controller.rb
@@ -40,7 +40,7 @@ class Registrar
end
end
- @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
+ @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
respond_to do |format|
format.html
diff --git a/app/helpers/contact_helper.rb b/app/helpers/contact_helper.rb
deleted file mode 100644
index 6b15e3da4..000000000
--- a/app/helpers/contact_helper.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-module ContactHelper
- def printable_street(street)
- street.to_s.gsub("\n", '
').html_safe
- end
-end
diff --git a/app/jobs/update_whois_record_job.rb b/app/jobs/update_whois_record_job.rb
index acfafa3d4..bee0e032c 100644
--- a/app/jobs/update_whois_record_job.rb
+++ b/app/jobs/update_whois_record_job.rb
@@ -51,4 +51,4 @@ class UpdateWhoisRecordJob < Que::Job
def delete_blocked(name)
delete_reserved(name)
end
-end
\ No newline at end of file
+end
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 3883bbabf..6083d700f 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -13,9 +13,9 @@ class Ability
case @user.class.to_s
when 'AdminUser'
- @user.roles.each { |role| send(role) } if @user.roles
+ @user.roles&.each { |role| send(role) }
when 'ApiUser'
- @user.roles.each { |role| send(role) } if @user.roles
+ @user.roles&.each { |role| send(role) }
when 'RegistrantUser'
static_registrant
end
diff --git a/app/models/directo.rb b/app/models/directo.rb
index 9352c9356..3e4e93e2c 100644
--- a/app/models/directo.rb
+++ b/app/models/directo.rb
@@ -45,8 +45,10 @@ class Directo < ActiveRecord::Base
end
data = builder.to_xml.gsub("\n",'')
- response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false).to_s
- dump_result_to_db(mappers, response)
+ Rails.logger.info("[Directo] XML request: #{data}")
+ response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false)
+ Rails.logger.info("[Directo] Directo responded with code: #{response.code}, body: #{response.body}")
+ dump_result_to_db(mappers, response.to_s)
end
STDOUT << "#{Time.zone.now.utc} - Directo receipts sending finished. #{counter} of #{total} are sent\n"
@@ -165,11 +167,15 @@ class Directo < ActiveRecord::Base
end
data = builder.to_xml.gsub("\n",'')
+ Rails.logger.info("[Directo] XML request: #{data}")
if debug
STDOUT << "#{Time.zone.now.utc} - Directo xml had to be sent #{data}\n"
else
- response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false).to_s
+ response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false)
+ Rails.logger.info("[Directo] Directo responded with code: #{response.code}, body: #{response.body}")
+ response = response.to_s
+
Setting.directo_monthly_number_last = directo_next
Nokogiri::XML(response).css("Result").each do |res|
Directo.create!(request: data, response: res.as_json.to_h, invoice_number: directo_next)
@@ -190,4 +196,3 @@ class Directo < ActiveRecord::Base
@pricelists[account_activity.price_id] = account_activity.price
end
end
-
diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb
index b280ceea6..699c07ab0 100644
--- a/app/models/epp/contact.rb
+++ b/app/models/epp/contact.rb
@@ -147,7 +147,7 @@ class Epp::Contact < Contact
end
if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame))
- frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
+ frame.css("legalDocument").first.content = doc.path if doc&.persisted?
self.legal_document_id = doc.id
end
@@ -238,7 +238,7 @@ class Epp::Contact < Contact
)
self.legal_documents = [doc]
- frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
+ frame.css("legalDocument").first.content = doc.path if doc&.persisted?
self.legal_document_id = doc.id
end
diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb
index 4e0e7d44c..dcf61ddcf 100644
--- a/app/models/epp/domain.rb
+++ b/app/models/epp/domain.rb
@@ -197,7 +197,7 @@ class Epp::Domain < Domain
)
self.legal_documents = [doc]
- frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
+ frame.css("legalDocument").first.content = doc.path if doc&.persisted?
self.legal_document_id = doc.id
end
# rubocop: enable Metrics/PerceivedComplexity
@@ -472,7 +472,7 @@ class Epp::Domain < Domain
at.deep_merge!(attrs_from(frame.css('rem'), current_user, 'rem'))
if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame))
- frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
+ frame.css("legalDocument").first.content = doc.path if doc&.persisted?
self.legal_document_id = doc.id
end
@@ -547,7 +547,7 @@ class Epp::Domain < Domain
check_discarded
if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame))
- frame.css("legalDocument").first.content = doc.path if doc && doc.persisted?
+ frame.css("legalDocument").first.content = doc.path if doc&.persisted?
end
if Setting.request_confirmation_on_domain_deletion_enabled &&
diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb
index c1f9243e3..4d75d272d 100644
--- a/app/models/legal_document.rb
+++ b/app/models/legal_document.rb
@@ -6,7 +6,8 @@ class LegalDocument < ActiveRecord::Base
if ENV['legal_document_types'].present?
TYPES = ENV['legal_document_types'].split(',').map(&:strip)
else
- TYPES = %w(pdf bdoc ddoc zip rar gz tar 7z odt doc docx).freeze
+ TYPES = %w(pdf asice asics sce scs adoc edoc bdoc ddoc zip rar gz tar 7z odt
+ doc docx).freeze
end
attr_accessor :body
diff --git a/app/models/whois_record.rb b/app/models/whois_record.rb
index 3ff0e9023..e4ccec22f 100644
--- a/app/models/whois_record.rb
+++ b/app/models/whois_record.rb
@@ -36,6 +36,7 @@ class WhoisRecord < ActiveRecord::Base
registrant = domain.registrant
@disclosed = []
+ h[:disclaimer] = disclaimer_text if disclaimer_text.present?
h[:name] = domain.name
h[:status] = domain.statuses.map { |x| status_map[x] || x }
h[:registered] = domain.registered_at.try(:to_s, :iso8601)
@@ -120,4 +121,10 @@ class WhoisRecord < ActiveRecord::Base
def destroy_whois_record
Whois::Record.where(name: name).delete_all
end
+
+ private
+
+ def disclaimer_text
+ Setting.registry_whois_disclaimer
+ end
end
diff --git a/app/validators/domain_name_validator.rb b/app/validators/domain_name_validator.rb
index 49939087c..26db4dda9 100644
--- a/app/validators/domain_name_validator.rb
+++ b/app/validators/domain_name_validator.rb
@@ -37,7 +37,7 @@ class DomainNameValidator < ActiveModel::EachValidator
def validate_blocked(value)
return true unless value
- return false if BlockedDomain.where(name: value).count > 0
+ return false if BlockedDomain.where(name: value).count.positive?
DNS::Zone.where(origin: value).count.zero?
end
end
diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml
index 38139b455..a412b4312 100644
--- a/app/views/admin/contact_versions/show.haml
+++ b/app/views/admin/contact_versions/show.haml
@@ -62,7 +62,7 @@
- if contact.street.present?
%dt= t(:street)
- %dd{class: changing_css_class(@version,"street")}= printable_street(contact.street)
+ %dd{class: changing_css_class(@version,"street")}= contact.street
- if contact.city.present?
%dt= t(:city)
diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml
index c41f5cd6b..14e158ec0 100644
--- a/app/views/admin/settings/index.haml
+++ b/app/views/admin/settings/index.haml
@@ -99,6 +99,7 @@
= render 'setting_row', var: :registry_state
= render 'setting_row', var: :registry_zip
= render 'setting_row', var: :registry_country_code
+ = render 'setting_row', var: :registry_whois_disclaimer
.row
.col-md-12.text-right
diff --git a/app/views/epp/domains/info.xml.builder b/app/views/epp/domains/info.xml.builder
index 2d10f8baf..850334955 100644
--- a/app/views/epp/domains/info.xml.builder
+++ b/app/views/epp/domains/info.xml.builder
@@ -22,7 +22,7 @@ xml.epp_head do
xml.tag!('domain:contact', ac.code, 'type' => 'admin')
end
- if @nameservers && @nameservers.any?
+ if @nameservers&.any?
xml.tag!('domain:ns') do
@nameservers.each do |x|
xml.tag!('domain:hostAttr') do
diff --git a/app/views/for_models/whois.erb b/app/views/for_models/whois.erb
index 390511031..02b9b1398 100644
--- a/app/views/for_models/whois.erb
+++ b/app/views/for_models/whois.erb
@@ -1,3 +1,6 @@
+<%- if json['disclaimer'].present? -%>
+<%= json['disclaimer'].scan(/\S.{0,72}\S(?=\s|$)|\S+/).join("\n") %>
+<%- end -%>
Estonia .ee Top Level Domain WHOIS server
Domain:
@@ -23,18 +26,18 @@ changed: <%= json['registrant_changed'].to_s.tr('T',' ').sub('+', ' +') %>
<%- if json['admin_contacts'].present? -%>
Administrative contact:
<%- for contact in json['admin_contacts'] -%>
-name: <%= contact['name'] %>
+name: Not Disclosed
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
-changed: <%= contact['changed'].to_s.tr('T',' ').sub('+', ' +') %>
+changed: Not Disclosed
<%- end -%>
<%- end -%>
<% if json['tech_contacts'].present? %>
Technical contact:
<%- for contact in json['tech_contacts'] -%>
-name: <%= contact['name'] %>
+name: Not Disclosed
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
-changed: <%= contact['changed'].to_s.tr('T',' ').sub('+', ' +') %>
+changed: Not Disclosed
<%- end -%>
<%- end -%>
diff --git a/app/views/layouts/registrant/application.haml b/app/views/layouts/registrant/application.haml
deleted file mode 100644
index 12d161c94..000000000
--- a/app/views/layouts/registrant/application.haml
+++ /dev/null
@@ -1,54 +0,0 @@
-!!! 5
-%html{lang: I18n.locale.to_s}
- %head
- %meta{charset: "utf-8"}/
- %meta{content: "width=device-width, initial-scale=1", name: "viewport"}/
- - if content_for? :head_title
- = yield :head_title
- - else
- %title= t(:registrant_head_title)
- = csrf_meta_tags
- = stylesheet_link_tag 'registrant-manifest', media: 'all'
- = favicon_link_tag 'favicon.ico'
- %body
- / Fixed navbar
- %nav.navbar.navbar-default.navbar-fixed-top
- .container
- .navbar-header
- %button.navbar-toggle.collapsed{"aria-controls" => "navbar", "aria-expanded" => "false", "data-target" => "#navbar", "data-toggle" => "collapse", :type => "button"}
- %span.sr-only Toggle navigation
- %span.icon-bar
- %span.icon-bar
- %span.icon-bar
- = link_to registrant_root_path, class: 'navbar-brand' do
- = t(:registrant_head_title)
- - if unstable_env.present?
- .text-center
- %small{style: 'color: #0074B3;'}= unstable_env
- - if current_user
- .navbar-collapse.collapse
- %ul.nav.navbar-nav.public-nav
- - if can? :view, Depp::Domain
- - active_class = %w(registrant/domains registrant/check registrant/renew registrant/tranfer registrant/keyrelays).include?(params[:controller]) ? 'active' :nil
- %li{class: active_class}= link_to t(:domains), registrant_domains_path
-
- - active_class = %w(registrant/whois).include?(params[:controller]) ? 'active' :nil
- %li{class: active_class}= link_to t(:whois), registrant_whois_path
-
- %ul.nav.navbar-nav.navbar-right
- - if user_signed_in?
- %li= link_to t(:log_out, user: current_user), '/registrant/logout'
-
- .container
- = render 'shared/flash'
- = yield
-
- %footer.footer
- .container
- .row
- .col-md-6
- = image_tag 'eis-logo-et.png'
- .col-md-6.text-right
- Version
- = CURRENT_COMMIT_HASH
- = javascript_include_tag 'registrant-manifest', async: true
diff --git a/app/views/layouts/registrant/application.html.erb b/app/views/layouts/registrant/application.html.erb
new file mode 100644
index 000000000..da081b05a
--- /dev/null
+++ b/app/views/layouts/registrant/application.html.erb
@@ -0,0 +1,84 @@
+
+
+