mirror of
https://github.com/internetee/registry.git
synced 2025-07-01 08:43:37 +02:00
Merge branch 'master' into registry-268
This commit is contained in:
commit
ba53ae90a7
27 changed files with 164 additions and 80 deletions
|
@ -83,4 +83,10 @@ module ApplicationHelper
|
||||||
version.object_changes.to_h.slice(*attrs).any? && css_class
|
version.object_changes.to_h.slice(*attrs).any? && css_class
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def legal_document_types
|
||||||
|
types = LegalDocument::TYPES.dup
|
||||||
|
types.delete('ddoc')
|
||||||
|
".#{types.join(',.')}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
6
app/helpers/default_form_builder.rb
Normal file
6
app/helpers/default_form_builder.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
class DefaultFormBuilder < ActionView::Helpers::FormBuilder
|
||||||
|
def legal_document_field(method, options = {})
|
||||||
|
self.multipart = true
|
||||||
|
@template.legal_document_field(@object_name, method, objectify_options(options))
|
||||||
|
end
|
||||||
|
end
|
8
app/helpers/form_helper.rb
Normal file
8
app/helpers/form_helper.rb
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
module FormHelper
|
||||||
|
def legal_document_field(object_name, method, options = {})
|
||||||
|
options[:data] = { legal_document: true }
|
||||||
|
options[:accept] = legal_document_types unless options[:accept]
|
||||||
|
|
||||||
|
file_field(object_name, method, options)
|
||||||
|
end
|
||||||
|
end
|
8
app/helpers/form_tag_helper.rb
Normal file
8
app/helpers/form_tag_helper.rb
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
module FormTagHelper
|
||||||
|
def legal_document_field_tag(name, options = {})
|
||||||
|
options[:data] = { legal_document: true }
|
||||||
|
options[:accept] = legal_document_types unless options[:accept]
|
||||||
|
|
||||||
|
file_field_tag(name, options)
|
||||||
|
end
|
||||||
|
end
|
|
@ -3,20 +3,20 @@
|
||||||
= f.hidden_field :password
|
= f.hidden_field :password
|
||||||
.row
|
.row
|
||||||
.col-md-8
|
.col-md-8
|
||||||
= render 'registrar/contacts/form_partials/general', f: f
|
= render 'registrar/contacts/form/general', f: f
|
||||||
|
|
||||||
- if address_processing?
|
- if address_processing?
|
||||||
.row
|
.row
|
||||||
.col-md-8
|
.col-md-8
|
||||||
= render 'registrar/contacts/form_partials/address', f: f
|
= render 'registrar/contacts/form/address', f: f
|
||||||
|
|
||||||
- if !@contact.persisted?
|
- if !@contact.persisted?
|
||||||
.row
|
.row
|
||||||
.col-md-8
|
.col-md-8
|
||||||
= render 'registrar/contacts/form_partials/code', f: f
|
= render 'registrar/contacts/form/code', f: f
|
||||||
.row
|
.row
|
||||||
.col-md-8
|
.col-md-8
|
||||||
= render 'registrar/contacts/form_partials/legal_document', f: f
|
= render 'registrar/contacts/form/legal_document', f: f
|
||||||
|
|
||||||
.row
|
.row
|
||||||
.col-md-8.text-right
|
.col-md-8.text-right
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
.row
|
.row
|
||||||
.col-md-8
|
.col-md-8
|
||||||
= render 'registrar/contacts/form_partials/legal_document', f: f
|
= render 'registrar/contacts/form/legal_document', f: f
|
||||||
|
|
||||||
%hr
|
%hr
|
||||||
.row
|
.row
|
||||||
|
|
|
@ -10,4 +10,4 @@
|
||||||
= f.label :legal_document, t(:legal_document)
|
= f.label :legal_document, t(:legal_document)
|
||||||
%p.help-block= t(:legal_document_max_size)
|
%p.help-block= t(:legal_document_max_size)
|
||||||
.col-md-7
|
.col-md-7
|
||||||
= f.file_field :legal_document, :value => '', data: {legal_document: true}
|
= f.legal_document_field :legal_document
|
|
@ -1,41 +0,0 @@
|
||||||
.panel.panel-default
|
|
||||||
.panel-heading.clearfix
|
|
||||||
.pull-left= t(:contact_disclosure)
|
|
||||||
|
|
||||||
.panel-body
|
|
||||||
.form-group
|
|
||||||
= label_tag :contact_disclose_flag, t(:flag_type), class: 'col-md-2 control-label'
|
|
||||||
.col-md-10
|
|
||||||
=# check_box_tag('contact[disclose][sv_policy]', @contact_params[:disclose][:sv_policy], class: 'form-control')
|
|
||||||
= select_tag('contact[disclose][flag]', options_for_select(Depp::Contact::DISCLOSURE_TYPES) )
|
|
||||||
|
|
||||||
.panel-body
|
|
||||||
.form-group
|
|
||||||
= label_tag :contact_disclose_name, t(:name), class: 'col-md-2 control-label'
|
|
||||||
.col-md-10
|
|
||||||
= check_box_tag('contact[disclose][name]')
|
|
||||||
|
|
||||||
.form-group
|
|
||||||
= label_tag :contact_disclose_email, t(:email), class: 'col-md-2 control-label'
|
|
||||||
.col-md-10
|
|
||||||
= check_box_tag('contact[disclose][email]')
|
|
||||||
|
|
||||||
.form-group
|
|
||||||
= label_tag :contact_disclose_org_name, t(:org_name), class: 'col-md-2 control-label'
|
|
||||||
.col-md-10
|
|
||||||
= check_box_tag('contact[disclose][org_name]')
|
|
||||||
|
|
||||||
.form-group
|
|
||||||
= label_tag :contact_disclose_address, t(:address), class: 'col-md-2 control-label'
|
|
||||||
.col-md-10
|
|
||||||
= check_box_tag('contact[disclose][address]')
|
|
||||||
|
|
||||||
.form-group
|
|
||||||
= label_tag :contact_disclose_voice, t(:voice), class: 'col-md-2 control-label'
|
|
||||||
.col-md-10
|
|
||||||
= check_box_tag('contact[disclose][voice]')
|
|
||||||
|
|
||||||
.form-group
|
|
||||||
= label_tag :contact_disclose_fax, t(:fax), class: 'col-md-2 control-label'
|
|
||||||
.col-md-10
|
|
||||||
= check_box_tag('contact[disclose][fax]')
|
|
|
@ -1,10 +0,0 @@
|
||||||
- @contact[:disclose].each do |flag, data|
|
|
||||||
- next if data.empty?
|
|
||||||
.panel.panel-default
|
|
||||||
.panel-heading
|
|
||||||
%h3.panel-title= t("disclosure-#{flag}")
|
|
||||||
.panel-body
|
|
||||||
%dl.dl-horizontal
|
|
||||||
- data.each do |k,v|
|
|
||||||
%dt= t(k)
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
%th{class: 'col-xs-3'}=custom_sort_link t(:domain_name), :name
|
%th{class: 'col-xs-3'}=custom_sort_link t(:domain_name), :name
|
||||||
%th{class: 'col-xs-3'}=custom_sort_link t(:registrar_name), :registrar_name
|
%th{class: 'col-xs-3'}=custom_sort_link t(:registrar_name), :registrar_name
|
||||||
%th{class: 'col-xs-3'}=custom_sort_link t(:valid_to), :valid_to
|
%th{class: 'col-xs-3'}=custom_sort_link t(:valid_to), :valid_to
|
||||||
%th{class: 'col-xs-3'}= t(:roles)
|
%th{class: 'col-xs-3'}= t('.roles')
|
||||||
%tbody
|
%tbody
|
||||||
- domains.each do |x|
|
- domains.each do |x|
|
||||||
%tr
|
%tr
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
.row
|
.row
|
||||||
.col-md-8
|
.col-md-8
|
||||||
#general-tab.tab-pane.active
|
#general-tab.tab-pane.active
|
||||||
= render 'registrar/domains/form_partials/general'
|
= render 'registrar/domains/form/general'
|
||||||
= render 'registrar/domains/form_partials/contacts'
|
= render 'registrar/domains/form/contacts'
|
||||||
= render 'registrar/domains/form_partials/nameservers'
|
= render 'registrar/domains/form/nameservers'
|
||||||
= render 'registrar/domains/form_partials/dnskeys'
|
= render 'registrar/domains/form/dnskeys'
|
||||||
|
|
||||||
.panel.panel-default
|
.panel.panel-default
|
||||||
.panel-heading.clearfix
|
.panel-heading.clearfix
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
= label_tag 'domain[legal_document]', t(:legal_document), class: c
|
= label_tag 'domain[legal_document]', t(:legal_document), class: c
|
||||||
%p.help-block= t(:legal_document_max_size)
|
%p.help-block= t(:legal_document_max_size)
|
||||||
.col-md-7
|
.col-md-7
|
||||||
= file_field_tag 'domain[legal_document]', required: fr, data: {legal_document: true}
|
= legal_document_field_tag 'domain[legal_document]', required: fr
|
||||||
.col-md-4
|
.col-md-4
|
||||||
%p.domain-general-help= t(:domain_general_help).html_safe
|
%p.domain-general-help= t(:domain_general_help).html_safe
|
||||||
%p.domain-admin-contact-help= t(:domain_admin_contact_help).html_safe
|
%p.domain-admin-contact-help= t(:domain_admin_contact_help).html_safe
|
||||||
|
@ -26,9 +26,4 @@
|
||||||
|
|
||||||
.row
|
.row
|
||||||
.col-md-8.text-right
|
.col-md-8.text-right
|
||||||
= button_tag(t('shared.save'), class: 'btn btn-warning')
|
= button_tag(t('.save_btn'), class: 'btn btn-warning')
|
||||||
|
|
||||||
:javascript
|
|
||||||
$(function () {
|
|
||||||
$('#tabs a:first').tab('show')
|
|
||||||
})
|
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
.form-group
|
.form-group
|
||||||
.col-md-3.control-label
|
.col-md-3.control-label
|
||||||
= label_tag "domain_dnskeys_attributes_#{k}_flags", t(:flags)
|
= label_tag "domain_dnskeys_attributes_#{k}_flags", t('.flags')
|
||||||
.col-md-7
|
.col-md-7
|
||||||
= select_tag "domain[dnskeys_attributes][#{k}][flags]",
|
= select_tag "domain[dnskeys_attributes][#{k}][flags]",
|
||||||
options_for_select(Depp::Dnskey::FLAGS, v['flags']),
|
options_for_select(Depp::Dnskey::FLAGS, v['flags']),
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
.form-group
|
.form-group
|
||||||
.col-md-3.control-label
|
.col-md-3.control-label
|
||||||
= label_tag "domain_dnskeys_attributes_#{k}_alg", t(:alg)
|
= label_tag "domain_dnskeys_attributes_#{k}_alg", t('.alg')
|
||||||
.col-md-7
|
.col-md-7
|
||||||
= select_tag "domain[dnskeys_attributes][#{k}][alg]",
|
= select_tag "domain[dnskeys_attributes][#{k}][alg]",
|
||||||
options_for_select(Depp::Dnskey::ALGORITHMS, v['alg']), { class: 'form-control' }
|
options_for_select(Depp::Dnskey::ALGORITHMS, v['alg']), { class: 'form-control' }
|
|
@ -14,14 +14,14 @@
|
||||||
%dt= t(:registrant)
|
%dt= t(:registrant)
|
||||||
%dd= "#{registrant.name} (#{@data.css('registrant').text})"
|
%dd= "#{registrant.name} (#{@data.css('registrant').text})"
|
||||||
|
|
||||||
%dt= t(:registered)
|
%dt= t('.registered')
|
||||||
%dd= @data.css('crDate').text
|
%dd= @data.css('crDate').text
|
||||||
|
|
||||||
%dt= t(:valid_to)
|
%dt= t(:valid_to)
|
||||||
%dd= @data.css('exDate').text
|
%dd= @data.css('exDate').text
|
||||||
|
|
||||||
%dt= t(:created)
|
%dt= t('.created')
|
||||||
%dd= @data.css('crDate').text
|
%dd= @data.css('crDate').text
|
||||||
|
|
||||||
%dt= t(:updated)
|
%dt= t('.updated')
|
||||||
%dd= @data.css('upDate').text
|
%dd= @data.css('upDate').text
|
||||||
|
|
|
@ -78,6 +78,8 @@ module Registry
|
||||||
domain: ENV['smtp_domain'],
|
domain: ENV['smtp_domain'],
|
||||||
openssl_verify_mode: ENV['smtp_openssl_verify_mode']
|
openssl_verify_mode: ENV['smtp_openssl_verify_mode']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.action_view.default_form_builder = 'DefaultFormBuilder'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
6
config/locales/registrar/contacts.en.yml
Normal file
6
config/locales/registrar/contacts.en.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
en:
|
||||||
|
registrar:
|
||||||
|
contacts:
|
||||||
|
partials:
|
||||||
|
domains:
|
||||||
|
roles: Roles
|
|
@ -8,3 +8,15 @@ en:
|
||||||
registrant_name: Registrant name
|
registrant_name: Registrant name
|
||||||
registrant_code: Registrant code
|
registrant_code: Registrant code
|
||||||
expire_time: Date of expiry
|
expire_time: Date of expiry
|
||||||
|
|
||||||
|
form:
|
||||||
|
save_btn: Save
|
||||||
|
dnskeys:
|
||||||
|
flags: Flags
|
||||||
|
alg: Algorithm
|
||||||
|
|
||||||
|
partials:
|
||||||
|
general:
|
||||||
|
registered: Registered
|
||||||
|
created: Created
|
||||||
|
updated: Updated
|
||||||
|
|
|
@ -10,8 +10,13 @@ FactoryGirl.define do
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :api_user_with_unlimited_balance do
|
factory :api_user_with_unlimited_balance do
|
||||||
after :build do |api_user|
|
transient do
|
||||||
api_user.registrar = create(:registrar_with_unlimited_balance)
|
registrar false
|
||||||
|
end
|
||||||
|
|
||||||
|
after :build do |api_user, evaluator|
|
||||||
|
registrar = (evaluator.registrar || create(:registrar_with_unlimited_balance))
|
||||||
|
api_user.registrar = registrar
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
52
spec/features/registrar/contacts/delete_spec.rb
Normal file
52
spec/features/registrar/contacts/delete_spec.rb
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
class FakeDeppContact
|
||||||
|
include ActiveModel::Model
|
||||||
|
|
||||||
|
def id
|
||||||
|
'test'
|
||||||
|
end
|
||||||
|
|
||||||
|
def name
|
||||||
|
'test'
|
||||||
|
end
|
||||||
|
|
||||||
|
def persisted?
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
def password
|
||||||
|
'test'
|
||||||
|
end
|
||||||
|
|
||||||
|
def delete
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
RSpec.feature 'Contact deletion in registrar area' do
|
||||||
|
given!(:registrar) { create(:registrar) }
|
||||||
|
given!(:contact) { create(:contact, registrar: registrar) }
|
||||||
|
|
||||||
|
background do
|
||||||
|
allow(Depp::Contact).to receive(:find_by_id).and_return(FakeDeppContact.new)
|
||||||
|
allow(Depp::Contact).to receive(:new).and_return(FakeDeppContact.new)
|
||||||
|
Setting.api_ip_whitelist_enabled = false
|
||||||
|
Setting.registrar_ip_whitelist_enabled = false
|
||||||
|
sign_in_to_registrar_area(user: create(:api_user_with_unlimited_balance, registrar: registrar))
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'deletes contact' do
|
||||||
|
visit registrar_contacts_url
|
||||||
|
click_link_or_button 'Delete'
|
||||||
|
confirm
|
||||||
|
|
||||||
|
expect(page).to have_text('Destroyed')
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def confirm
|
||||||
|
click_link_or_button 'Delete'
|
||||||
|
end
|
||||||
|
end
|
|
@ -8,10 +8,10 @@ RSpec.describe 'registrar/contacts/_form' do
|
||||||
assign(:contact, contact)
|
assign(:contact, contact)
|
||||||
|
|
||||||
stub_template 'registrar/shared/_error_messages' => ''
|
stub_template 'registrar/shared/_error_messages' => ''
|
||||||
stub_template 'registrar/contacts/form_partials/_general' => ''
|
stub_template 'registrar/contacts/form/_general' => ''
|
||||||
stub_template 'registrar/contacts/form_partials/_address' => 'address info'
|
stub_template 'registrar/contacts/form/_address' => 'address info'
|
||||||
stub_template 'registrar/contacts/form_partials/_code' => ''
|
stub_template 'registrar/contacts/form/_code' => ''
|
||||||
stub_template 'registrar/contacts/form_partials/_legal_document' => ''
|
stub_template 'registrar/contacts/form/_legal_document' => ''
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when address processing is enabled' do
|
context 'when address processing is enabled' do
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe 'registrar/contacts/form/_legal_document' do
|
||||||
|
let(:contact) { instance_spy(Depp::Contact) }
|
||||||
|
|
||||||
|
before :example do
|
||||||
|
allow(view).to receive(:f).and_return(DefaultFormBuilder.new(:depp_contact, contact, view, {}))
|
||||||
|
assign(:contact, contact)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'has legal document' do
|
||||||
|
render
|
||||||
|
expect(rendered).to have_css('[name="depp_contact[legal_document]"]')
|
||||||
|
end
|
||||||
|
end
|
20
spec/views/registrar/domains/_form.haml_spec.rb
Normal file
20
spec/views/registrar/domains/_form.haml_spec.rb
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe 'registrar/domains/_form' do
|
||||||
|
let(:domain) { instance_spy(Depp::Domain) }
|
||||||
|
|
||||||
|
before :example do
|
||||||
|
allow(view).to receive(:f).and_return(DefaultFormBuilder.new(:domain, domain, view, {}))
|
||||||
|
assign(:domain, domain)
|
||||||
|
|
||||||
|
stub_template 'registrar/domains/form/_general' => ''
|
||||||
|
stub_template 'registrar/domains/form/_contacts' => ''
|
||||||
|
stub_template 'registrar/domains/form/_nameservers' => ''
|
||||||
|
stub_template 'registrar/domains/form/_dnskeys' => ''
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'has legal document' do
|
||||||
|
render
|
||||||
|
expect(rendered).to have_css('[name="domain[legal_document]"]')
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue