mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 01:47:18 +02:00
Merge remote-tracking branch 'origin/registry-663' into registry-660
This commit is contained in:
commit
a9f04f6f0e
7 changed files with 79 additions and 11 deletions
|
@ -19,24 +19,17 @@ authentication using electronic ID. Association through a business organisation
|
||||||
=end
|
=end
|
||||||
|
|
||||||
class BusinessRegistryCache < ActiveRecord::Base
|
class BusinessRegistryCache < ActiveRecord::Base
|
||||||
|
|
||||||
# 1. load domains by business
|
|
||||||
# 2. load domains by person
|
|
||||||
def associated_contacts
|
|
||||||
contact_ids = Contact.where(ident_type: 'org', ident: associated_businesses, ident_country_code: 'EE').pluck(:id)
|
|
||||||
contact_ids += Contact.where(ident_type: 'priv', ident: ident, ident_country_code: ident_country_code).pluck(:id)
|
|
||||||
contact_ids
|
|
||||||
end
|
|
||||||
|
|
||||||
def associated_domain_ids
|
def associated_domain_ids
|
||||||
|
contact_ids = Contact.where(ident_type: 'org', ident: associated_businesses, ident_country_code: ident_country_code).pluck(:id)
|
||||||
|
contact_ids += Contact.where(ident_type: 'priv', ident: ident, ident_country_code: ident_country_code).pluck(:id)
|
||||||
domain_ids = []
|
domain_ids = []
|
||||||
|
|
||||||
contact_ids = associated_contacts
|
|
||||||
|
|
||||||
unless contact_ids.blank?
|
unless contact_ids.blank?
|
||||||
domain_ids = DomainContact.distinct.where(contact_id: contact_ids).pluck(:domain_id)
|
domain_ids = DomainContact.distinct.where(contact_id: contact_ids).pluck(:domain_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
domain_ids += Domain.where(registrant_id: contact_ids).pluck(:id)
|
||||||
|
|
||||||
domain_ids
|
domain_ids
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
8
test/fixtures/business_registry_caches.yml
vendored
Normal file
8
test/fixtures/business_registry_caches.yml
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
first:
|
||||||
|
ident: 1234
|
||||||
|
ident_country_code: US
|
||||||
|
associated_businesses:
|
||||||
|
- 1234
|
||||||
|
retrieved_on: 2010-07-05 10:30
|
||||||
|
created_at: 2010-07-05 10:30
|
||||||
|
updated_at: 2010-07-05 10:30
|
20
test/fixtures/contacts.yml
vendored
Normal file
20
test/fixtures/contacts.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
john:
|
||||||
|
name: John
|
||||||
|
ident: 1234
|
||||||
|
ident_type: priv
|
||||||
|
ident_country_code: US
|
||||||
|
registrar: acme
|
||||||
|
|
||||||
|
jane:
|
||||||
|
name: Jane
|
||||||
|
ident: 1234
|
||||||
|
ident_type: priv
|
||||||
|
ident_country_code: US
|
||||||
|
registrar: acme
|
||||||
|
|
||||||
|
acme_ltd:
|
||||||
|
name: Acme Ltd.
|
||||||
|
ident: 1234
|
||||||
|
ident_type: org
|
||||||
|
registrar: acme
|
||||||
|
ident_country_code: US
|
4
test/fixtures/domain_contacts.yml
vendored
Normal file
4
test/fixtures/domain_contacts.yml
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
two_jane:
|
||||||
|
domain: two
|
||||||
|
contact: jane
|
||||||
|
type: AdminDomainContact
|
14
test/fixtures/domains.yml
vendored
Normal file
14
test/fixtures/domains.yml
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
one:
|
||||||
|
name: one.test
|
||||||
|
registrar: valid
|
||||||
|
registrant: john
|
||||||
|
|
||||||
|
two:
|
||||||
|
name: two.test
|
||||||
|
registrar: valid
|
||||||
|
registrant: john
|
||||||
|
|
||||||
|
three:
|
||||||
|
name: three.test
|
||||||
|
registrar: valid
|
||||||
|
registrant: acme_ltd
|
4
test/fixtures/users.yml
vendored
4
test/fixtures/users.yml
vendored
|
@ -14,3 +14,7 @@ admin:
|
||||||
country_code: US
|
country_code: US
|
||||||
roles:
|
roles:
|
||||||
- admin
|
- admin
|
||||||
|
|
||||||
|
registrant:
|
||||||
|
type: RegistrantUser
|
||||||
|
registrant_ident: US-1234
|
||||||
|
|
25
test/integration/registrant/domains_test.rb
Normal file
25
test/integration/registrant/domains_test.rb
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class DomainsTest < ActionDispatch::IntegrationTest
|
||||||
|
def setup
|
||||||
|
login_as users(:registrant)
|
||||||
|
|
||||||
|
Setting.days_to_keep_business_registry_cache = 1
|
||||||
|
travel_to Time.zone.parse('2010-07-05')
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_shows_domains_where_current_user_is_registrant
|
||||||
|
visit registrant_domains_url
|
||||||
|
assert_text 'one.test'
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_shows_domains_where_current_user_is_contact_person
|
||||||
|
visit registrant_domains_url
|
||||||
|
assert_text 'two.test'
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_shows_domains_where_current_user_has_associated_organizations
|
||||||
|
visit registrant_domains_url
|
||||||
|
assert_text 'three.test'
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue