Commit 66f719564872425b50fefb927210fdd71cff75a8
Committed by
Larissa Reis
1 parent
a3c24add
Exists in
federation-webfinger
Ensure that the federated user has e-mail
Showing
2 changed files
with
8 additions
and
1 deletions
Show diff stats
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( |