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