mirror of
https://github.com/internetee/registry.git
synced 2025-06-11 07:04:47 +02:00
Merge pull request #1063 from internetee/require-reserved-domain-password
Require reserved domain password
This commit is contained in:
commit
012d53c9a4
10 changed files with 109 additions and 39 deletions
|
@ -10,10 +10,6 @@ class BlockedDomain < ActiveRecord::Base
|
|||
def by_domain name
|
||||
where(name: name)
|
||||
end
|
||||
|
||||
def any_of_domains names
|
||||
where(name: names)
|
||||
end
|
||||
end
|
||||
|
||||
def name= val
|
||||
|
|
|
@ -6,9 +6,6 @@ class ReservedDomain < ActiveRecord::Base
|
|||
|
||||
validates :name, domain_name: true, uniqueness: true
|
||||
|
||||
|
||||
|
||||
|
||||
class << self
|
||||
def pw_for(domain_name)
|
||||
name_in_ascii = SimpleIDN.to_ascii(domain_name)
|
||||
|
@ -19,10 +16,6 @@ class ReservedDomain < ActiveRecord::Base
|
|||
where(name: name)
|
||||
end
|
||||
|
||||
def any_of_domains names
|
||||
where(name: names)
|
||||
end
|
||||
|
||||
def new_password_for name
|
||||
record = by_domain(name).first
|
||||
return unless record
|
||||
|
@ -32,8 +25,6 @@ class ReservedDomain < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
def name= val
|
||||
super SimpleIDN.to_unicode(val)
|
||||
end
|
||||
|
@ -53,17 +44,17 @@ class ReservedDomain < ActiveRecord::Base
|
|||
wr.json = @json = generate_json # we need @json to bind to class
|
||||
wr.save
|
||||
end
|
||||
|
||||
alias_method :update_whois_record, :generate_data
|
||||
|
||||
def generate_json
|
||||
h = HashWithIndifferentAccess.new
|
||||
h[:name] = self.name
|
||||
h[:status] = ['Reserved']
|
||||
h[:name] = self.name
|
||||
h[:status] = ['Reserved']
|
||||
h
|
||||
end
|
||||
|
||||
def remove_data
|
||||
UpdateWhoisRecordJob.enqueue name, 'reserved'
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
= form_for([:admin, @domain], html: {class: 'form-horizontal'}) do |f|
|
||||
= render 'shared/full_errors', object: @domain
|
||||
|
||||
.row
|
||||
.col-md-8
|
||||
.panel.panel-default
|
||||
.panel-heading.clearfix
|
||||
.pull-left= t(:general)
|
||||
.panel-body
|
||||
.form-group
|
||||
.col-md-4.control-label
|
||||
= f.label :name
|
||||
.col-md-7
|
||||
= f.text_field(:name, class: 'form-control', disabled: !f.object.new_record?)
|
||||
.form-group
|
||||
.col-md-4.control-label
|
||||
= f.label :password
|
||||
.col-md-7
|
||||
= f.text_field(:password, placeholder: t(:optional), class: 'form-control')
|
||||
.row
|
||||
.col-md-8.text-right
|
||||
= button_tag(t(:save), class: 'btn btn-primary')
|
40
app/views/admin/reserved_domains/_form.html.erb
Normal file
40
app/views/admin/reserved_domains/_form.html.erb
Normal file
|
@ -0,0 +1,40 @@
|
|||
<%= form_for([:admin, @domain], html: { class: 'form-horizontal' }) do |f| %>
|
||||
<%= render 'shared/full_errors', object: @domain %>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading clearfix">
|
||||
<div class="pull-left">
|
||||
<%= t(:general) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<div class="col-md-4 control-label">
|
||||
<%= f.label :name %>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<%= f.text_field(:name, class: 'form-control', disabled: !f.object.new_record?) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-md-4 control-label">
|
||||
<%= f.label :password %>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<%= f.text_field(:password, placeholder: t(:optional), class: 'form-control') %>
|
||||
<span class="help-block"><%= t '.password_hint' %></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8 text-right">
|
||||
<%= button_tag(t(:save), class: 'btn btn-primary') %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
|
@ -5,3 +5,6 @@ en:
|
|||
title: Reserved domains
|
||||
new_btn: New reserved domain
|
||||
reset_btn: Reset
|
||||
|
||||
form:
|
||||
password_hint: Generated automatically if left blank
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class ChangeReservedDomainsPasswordToNotNull < ActiveRecord::Migration
|
||||
def change
|
||||
change_column_null :reserved_domains, :password, false
|
||||
end
|
||||
end
|
|
@ -2241,7 +2241,7 @@ CREATE TABLE public.reserved_domains (
|
|||
updator_str character varying,
|
||||
legacy_id integer,
|
||||
name character varying,
|
||||
password character varying
|
||||
password character varying NOT NULL
|
||||
);
|
||||
|
||||
|
||||
|
@ -4864,3 +4864,5 @@ INSERT INTO schema_migrations (version) VALUES ('20181002090319');
|
|||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20181108154921');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20190102144032');
|
||||
|
||||
|
|
3
test/fixtures/reserved_domains.yml
vendored
Normal file
3
test/fixtures/reserved_domains.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
one:
|
||||
name: reserved.test
|
||||
password: reserved-001
|
11
test/models/reserved_domain_test.rb
Normal file
11
test/models/reserved_domain_test.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
require 'test_helper'
|
||||
|
||||
class ReservedDomainTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
@reserved_domain = reserved_domains(:one)
|
||||
end
|
||||
|
||||
def test_fixture_is_valid
|
||||
assert @reserved_domain.valid?
|
||||
end
|
||||
end
|
41
test/system/admin_area/reserved_domains/new_test.rb
Normal file
41
test/system/admin_area/reserved_domains/new_test.rb
Normal file
|
@ -0,0 +1,41 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AdminAreaReservedDomainsNewTest < ApplicationSystemTestCase
|
||||
setup do
|
||||
sign_in users(:admin)
|
||||
end
|
||||
|
||||
def test_creates_new_with_requires_attributes
|
||||
visit admin_reserved_domains_url
|
||||
click_on 'New reserved domain'
|
||||
fill_in 'Name', with: 'reserved-new.test'
|
||||
|
||||
assert_difference 'ReservedDomain.count' do
|
||||
click_link_or_button 'Save'
|
||||
end
|
||||
assert_equal 'reserved-new.test', ReservedDomain.last.name
|
||||
assert_current_path admin_reserved_domains_url
|
||||
assert_text 'Domain added!'
|
||||
end
|
||||
|
||||
def test_generates_password_automatically_when_left_blank
|
||||
visit new_admin_reserved_domain_url
|
||||
fill_in 'Name', with: 'some.test'
|
||||
|
||||
assert_difference 'ReservedDomain.count' do
|
||||
click_link_or_button 'Save'
|
||||
end
|
||||
assert_not_empty ReservedDomain.last.password
|
||||
end
|
||||
|
||||
def test_honors_custom_password
|
||||
visit new_admin_reserved_domain_url
|
||||
fill_in 'Name', with: 'some.test'
|
||||
fill_in 'Password', with: 'reserved-123'
|
||||
|
||||
assert_difference 'ReservedDomain.count' do
|
||||
click_link_or_button 'Save'
|
||||
end
|
||||
assert_equal 'reserved-123', ReservedDomain.last.password
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue