Merge branch 'master' of github.com:domify/registry

This commit is contained in:
Martin Lensment 2015-06-09 17:52:06 +03:00
commit ffb1ab6521
8 changed files with 24 additions and 18 deletions

View file

@ -57,6 +57,7 @@ class Admin::AdminUsersController < AdminController
end end
def admin_user_params def admin_user_params
params.require(:admin_user).permit(:username, :password, :password_confirmation, :identity_code, :email, :country_code, { roles: [] }) params.require(:admin_user).permit(:username,
:password, :password_confirmation, :identity_code, :email, :country_code, { roles: [] })
end end
end end

View file

@ -70,7 +70,7 @@ class Domain < ActiveRecord::Base
after_save :update_whois_record after_save :update_whois_record
validates :name_dirty, domain_name: true, uniqueness: true validates :name_dirty, domain_name: true, uniqueness: true
validates :name_puny, length: { maximum: 66 } validates :puny_label, length: { maximum: 63 }
validates :period, numericality: { only_integer: true } validates :period, numericality: { only_integer: true }
validates :registrant, :registrar, presence: true validates :registrant, :registrar, presence: true
@ -166,6 +166,10 @@ class Domain < ActiveRecord::Base
"EIS-#{id}" "EIS-#{id}"
end end
def puny_label
name_puny.to_s.split('.').first
end
def registrant_typeahead def registrant_typeahead
@registrant_typeahead || registrant.try(:name) || nil @registrant_typeahead || registrant.try(:name) || nil
end end

View file

@ -55,7 +55,7 @@ class Epp::Domain < Domain
], ],
'2005' => [ # Parameter value syntax error '2005' => [ # Parameter value syntax error
[:name_dirty, :invalid, { obj: 'name', val: name_dirty }], [:name_dirty, :invalid, { obj: 'name', val: name_dirty }],
[:name_puny, :too_long, { obj: 'name', val: name_puny }] [:puny_label, :too_long, { obj: 'name', val: name_puny }]
], ],
'2201' => [ # Authorisation error '2201' => [ # Authorisation error
[:auth_info, :wrong_pw] [:auth_info, :wrong_pw]

View file

@ -1,11 +1,4 @@
class DomainNameValidator < ActiveModel::EachValidator class DomainNameValidator < ActiveModel::EachValidator
# TODO
# validates lenght of 2-63
# validates/honours Estonian additional letters zäõüö
# honours punicode and all interfces honors utf8
# validates lower level domains (.pri.ee, edu.ee etc)
# lower level domains are fixed for .ee and can add statically into settings
def validate_each(record, attribute, value) def validate_each(record, attribute, value)
if !self.class.validate_format(value) if !self.class.validate_format(value)
record.errors[attribute] << (options[:message] || record.errors.generate_message(attribute, :invalid)) record.errors[attribute] << (options[:message] || record.errors.generate_message(attribute, :invalid))

View file

@ -4,7 +4,7 @@ module I18n
class << self class << self
alias_method :original_localize, :localize alias_method :original_localize, :localize
def localize object, options = {} def localize(object, options = {})
object.present? ? original_localize(object, options) : '' object.present? ? original_localize(object, options) : ''
end end
end end

View file

@ -64,7 +64,7 @@ en:
invalid: 'Domain name is invalid' invalid: 'Domain name is invalid'
reserved: 'Domain name is reserved or restricted' reserved: 'Domain name is reserved or restricted'
taken: 'Domain name already exists' taken: 'Domain name already exists'
name_puny: puny_label:
too_long: 'Domain name is too long (maximum is 63 characters)' too_long: 'Domain name is too long (maximum is 63 characters)'
registrant: registrant:
blank: 'Registrant is missing' blank: 'Registrant is missing'

View file

@ -193,7 +193,7 @@ describe 'EPP Domain', epp: true do
xml = domain_create_xml(name: { value: "#{'ä' * 63}.ee" }) xml = domain_create_xml(name: { value: "#{'ä' * 63}.ee" })
response = epp_plain_request(xml) response = epp_plain_request(xml)
response[:msg].should == 'Domain name is too long (maximum is 63 characters) [name_puny]' response[:msg].should == 'Domain name is too long (maximum is 63 characters) [puny_label]'
response[:result_code].should == '2005' response[:result_code].should == '2005'
response[:clTRID].should == 'ABC-12345' response[:clTRID].should == 'ABC-12345'
end end

View file

@ -248,7 +248,7 @@ describe Domain do
d.valid? d.valid?
d.errors.full_messages.should match_array([ d.errors.full_messages.should match_array([
"Domain name Domain name is invalid", "Domain name Domain name is invalid",
"Domain name Domain name is too long (maximum is 63 characters)" "Puny label is too long (maximum is 63 characters)"
]) ])
end end
@ -258,7 +258,15 @@ describe Domain do
d.valid? d.valid?
d.errors.full_messages.should match_array([ d.errors.full_messages.should match_array([
"Domain name Domain name is invalid", "Domain name Domain name is invalid",
"Domain name Domain name is too long (maximum is 63 characters)" "Puny label is too long (maximum is 63 characters)"
])
end
it 'should be valid when name length is 63 characters' do
d = Fabricate.build(:domain,
name: "õäöüšžõäöüšžõäöüšžõäöüšžõäöüšžõäöüšžõäöüšžab123.pri.ee")
d.valid?
d.errors.full_messages.should match_array([
]) ])
end end
@ -266,7 +274,7 @@ describe Domain do
d = Fabricate.build(:domain, name: "#{'ä' * 63}.ee") d = Fabricate.build(:domain, name: "#{'ä' * 63}.ee")
d.valid? d.valid?
d.errors.full_messages.should == [ d.errors.full_messages.should == [
"Domain name Domain name is too long (maximum is 63 characters)" "Puny label is too long (maximum is 63 characters)"
] ]
end end
@ -275,7 +283,7 @@ describe Domain do
d.valid? d.valid?
d.errors.full_messages.should match_array([ d.errors.full_messages.should match_array([
"Domain name Domain name is invalid", "Domain name Domain name is invalid",
"Domain name Domain name is too long (maximum is 63 characters)" "Puny label is too long (maximum is 63 characters)"
]) ])
end end
@ -283,7 +291,7 @@ describe Domain do
d = Fabricate.build(:domain, name: "#{'ä' * 63}.pri.ee") d = Fabricate.build(:domain, name: "#{'ä' * 63}.pri.ee")
d.valid? d.valid?
d.errors.full_messages.should match_array([ d.errors.full_messages.should match_array([
"Domain name Domain name is too long (maximum is 63 characters)" "Puny label is too long (maximum is 63 characters)"
]) ])
end end