From 66f719564872425b50fefb927210fdd71cff75a8 Mon Sep 17 00:00:00 2001 From: Caio SBA Date: Mon, 2 May 2016 10:52:39 -0300 Subject: [PATCH] Ensure that the federated user has e-mail --- app/concerns/authenticated_system.rb | 8 +++++++- app/models/concerns/external_user.rb | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/concerns/authenticated_system.rb b/app/concerns/authenticated_system.rb index 955ae51..cfda584 100644 --- a/app/concerns/authenticated_system.rb +++ b/app/concerns/authenticated_system.rb @@ -28,7 +28,13 @@ module AuthenticatedSystem user = nil if session[:external] user = User.new #FIXME: User needs to have at least email - user.external_person_id = session[:external] + external_person = ExternalPerson.where(id: session[:external]).last + if external_person + user.external_person_id = external_person.id + user.email = external_person.email + else + session[:external] = nil + end else id = session[:user] user = User.where(id: id).first if id diff --git a/app/models/concerns/external_user.rb b/app/models/concerns/external_user.rb index 07b45e1..2745443 100644 --- a/app/models/concerns/external_user.rb +++ b/app/models/concerns/external_user.rb @@ -44,6 +44,7 @@ module ExternalUser user = User.external_login(login, password, domain) if user u = User.new + u.email = user['user']['email'] u.login = login # FIXME: Instead of the struct below, we should use the "webfinger" object returned by the webfinger_lookup method webfinger = OpenStruct.new( -- libgit2 0.21.2