Commit da3ae0ed838beabe4045886ccdcb20a7a191671e

Authored by Caio Almeida
Committed by Larissa Reis
1 parent 57ac8d09

Ticket #194: Get person or external person

app/models/concerns/external_user.rb
@@ -11,6 +11,10 @@ module ExternalUser @@ -11,6 +11,10 @@ module ExternalUser
11 ExternalPerson.where(id: self.external_person_id).first 11 ExternalPerson.where(id: self.external_person_id).first
12 end 12 end
13 13
  14 + def person_with_external
  15 + self.external_person || self.person_without_external
  16 + end
  17 +
14 module ClassMethods 18 module ClassMethods
15 def webfinger_lookup(login, domain, environment) 19 def webfinger_lookup(login, domain, environment)
16 if login && domain && environment.has_federated_network?(domain) 20 if login && domain && environment.has_federated_network?(domain)
app/models/user.rb
@@ -108,6 +108,8 @@ class User < ApplicationRecord @@ -108,6 +108,8 @@ class User < ApplicationRecord
108 has_one :person, dependent: :destroy, autosave: false 108 has_one :person, dependent: :destroy, autosave: false
109 belongs_to :environment 109 belongs_to :environment
110 110
  111 + alias_method_chain :person, :external
  112 +
111 has_many :sessions, dependent: :destroy 113 has_many :sessions, dependent: :destroy
112 # holds the current session, see lib/authenticated_system.rb 114 # holds the current session, see lib/authenticated_system.rb
113 attr_accessor :session 115 attr_accessor :session
test/unit/user_test.rb
@@ -759,6 +759,14 @@ class UserTest < ActiveSupport::TestCase @@ -759,6 +759,14 @@ class UserTest < ActiveSupport::TestCase
759 end 759 end
760 end 760 end
761 761
  762 + should 'get person or external person' do
  763 + user = create_user('new_user')
  764 + assert_kind_of Person, user.person
  765 + user.external_person_id = ExternalPerson.create!(identifier: 'new_user', name: 'New User').id
  766 + assert_kind_of ExternalPerson, user.person
  767 + assert_kind_of Person, user.person_without_external
  768 + end
  769 +
762 protected 770 protected
763 def new_user(options = {}) 771 def new_user(options = {})
764 user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) 772 user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options))