mirror of
https://github.com/internetee/registry.git
synced 2025-05-19 18:59:38 +02:00
contact info should always return something
This commit is contained in:
parent
876cd6e222
commit
e11607cdc4
3 changed files with 33 additions and 16 deletions
|
@ -16,15 +16,17 @@ class Ability
|
|||
can :show, :dashboard
|
||||
end
|
||||
|
||||
# rubocop: disable Metrics/CyclomaticComplexity
|
||||
def epp
|
||||
# Epp::Contact
|
||||
can(:info, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || c.auth_info == pw }
|
||||
can(:info, Epp::Contact)
|
||||
can(:view_full_info, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || c.auth_info == pw }
|
||||
can(:check, Epp::Contact)
|
||||
can(:create, Epp::Contact)
|
||||
can(:update, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id && c.auth_info == pw }
|
||||
can(:delete, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id && c.auth_info == pw }
|
||||
can(:renew, Epp::Contact)
|
||||
can(:view_password, Epp::Contact) { |c| c.registrar_id == @user.registrar_id }
|
||||
can(:view_password, Epp::Contact) { |c, pw| c.registrar_id == @user.registrar_id || c.auth_info == pw }
|
||||
|
||||
# Epp::Domain
|
||||
can(:info, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.auth_info == pw }
|
||||
|
@ -34,6 +36,7 @@ class Ability
|
|||
can(:update, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.auth_info == pw }
|
||||
can(:transfer, Epp::Domain) { |d, pw| d.auth_info == pw }
|
||||
end
|
||||
# rubocop: enabled Metrics/CyclomaticComplexity
|
||||
|
||||
def user
|
||||
can :show, :dashboard
|
||||
|
|
|
@ -7,19 +7,23 @@ xml.epp_head do
|
|||
xml.resData do
|
||||
xml.tag!('contact:infData', 'xmlns:contact' => 'urn:ietf:params:xml:ns:contact-1.0') do
|
||||
xml.tag!('contact:id', @contact.code)
|
||||
xml.tag!('contact:voice', @contact.phone)
|
||||
xml.tag!('contact:email', @contact.email)
|
||||
xml.tag!('contact:fax', @contact.fax) if @contact.fax.present?
|
||||
if can? :view_full_info, @contact, @password
|
||||
xml.tag!('contact:voice', @contact.phone)
|
||||
xml.tag!('contact:email', @contact.email)
|
||||
xml.tag!('contact:fax', @contact.fax) if @contact.fax.present?
|
||||
end
|
||||
|
||||
xml.tag!('contact:postalInfo', type: 'int') do
|
||||
xml.tag!('contact:name', @contact.name)
|
||||
xml.tag!('contact:org', @contact.org_name) if @contact.org_name.present?
|
||||
xml.tag!('contact:addr') do
|
||||
xml.tag!('contact:street', @contact.street)
|
||||
xml.tag!('contact:city', @contact.city)
|
||||
xml.tag!('contact:pc', @contact.zip)
|
||||
xml.tag!('contact:sp', @contact.state)
|
||||
xml.tag!('contact:cc', @contact.country_code)
|
||||
if can? :view_full_info, @contact, @password
|
||||
xml.tag!('contact:org', @contact.org_name) if @contact.org_name.present?
|
||||
xml.tag!('contact:addr') do
|
||||
xml.tag!('contact:street', @contact.street)
|
||||
xml.tag!('contact:city', @contact.city)
|
||||
xml.tag!('contact:pc', @contact.zip)
|
||||
xml.tag!('contact:sp', @contact.state)
|
||||
xml.tag!('contact:cc', @contact.country_code)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -32,7 +36,7 @@ xml.epp_head do
|
|||
end
|
||||
xml.tag!('contact:ident', @contact.ident, type: @contact.ident_type, cc: @contact.ident_country_code)
|
||||
# xml.tag!('contact:trDate', '123') if false
|
||||
if can? :view_password, @contact
|
||||
if can? :view_password, @contact, @password
|
||||
xml.tag!('contact:authInfo') do
|
||||
xml.tag!('contact:pw', @contact.auth_info)
|
||||
end
|
||||
|
|
|
@ -444,15 +444,25 @@ describe 'EPP Contact', epp: true do
|
|||
response[:msg].should == 'Command completed successfully'
|
||||
response[:result_code].should == '1000'
|
||||
response[:results].count.should == 1
|
||||
|
||||
contact = response[:parsed].css('resData infData')
|
||||
contact.css('postalInfo addr city').first.try(:text).present?.should == true
|
||||
contact.css('email').first.try(:text).present?.should == true
|
||||
contact.css('voice').first.try(:text).should == '+372.12345678'
|
||||
end
|
||||
end
|
||||
|
||||
it 'returns authorization error for wrong user and wrong pw' do
|
||||
it 'returns no authorization error for wrong user and wrong pw' do
|
||||
login_as :registrar2 do
|
||||
response = info_request({ authInfo: { pw: { value: 'wrong-pw' } } })
|
||||
response[:msg].should == 'Authorization error'
|
||||
response[:result_code].should == '2201'
|
||||
response[:msg].should == 'Command completed successfully'
|
||||
response[:result_code].should == '1000'
|
||||
response[:results].count.should == 1
|
||||
|
||||
contact = response[:parsed].css('resData infData')
|
||||
contact.css('postalInfo addr city').first.try(:text).should == nil
|
||||
contact.css('email').first.try(:text).should == nil
|
||||
contact.css('voice').first.try(:text).should == nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue