Commit 66f719564872425b50fefb927210fdd71cff75a8

Authored by Caio Almeida
Committed by Larissa Reis
1 parent a3c24add

Ensure that the federated user has e-mail

app/concerns/authenticated_system.rb
@@ -28,7 +28,13 @@ module AuthenticatedSystem @@ -28,7 +28,13 @@ module AuthenticatedSystem
28 user = nil 28 user = nil
29 if session[:external] 29 if session[:external]
30 user = User.new #FIXME: User needs to have at least email 30 user = User.new #FIXME: User needs to have at least email
31 - user.external_person_id = session[:external] 31 + external_person = ExternalPerson.where(id: session[:external]).last
  32 + if external_person
  33 + user.external_person_id = external_person.id
  34 + user.email = external_person.email
  35 + else
  36 + session[:external] = nil
  37 + end
32 else 38 else
33 id = session[:user] 39 id = session[:user]
34 user = User.where(id: id).first if id 40 user = User.where(id: id).first if id
app/models/concerns/external_user.rb
@@ -44,6 +44,7 @@ module ExternalUser @@ -44,6 +44,7 @@ module ExternalUser
44 user = User.external_login(login, password, domain) 44 user = User.external_login(login, password, domain)
45 if user 45 if user
46 u = User.new 46 u = User.new
  47 + u.email = user['user']['email']
47 u.login = login 48 u.login = login
48 # FIXME: Instead of the struct below, we should use the "webfinger" object returned by the webfinger_lookup method 49 # FIXME: Instead of the struct below, we should use the "webfinger" object returned by the webfinger_lookup method
49 webfinger = OpenStruct.new( 50 webfinger = OpenStruct.new(