From 6143cef4c49d5a3e9c8c13a7328dcb6581d664f5 Mon Sep 17 00:00:00 2001 From: Jan-Willem van der Meer Date: Mon, 1 Sep 2014 13:48:17 +0200 Subject: Handle user creation if email is not provided This fixes #1541 --- lib/gitlab/oauth/user.rb | 1 + spec/lib/gitlab/oauth/user_spec.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/gitlab/oauth/user.rb b/lib/gitlab/oauth/user.rb index 0056eb3a28b..a252895493b 100644 --- a/lib/gitlab/oauth/user.rb +++ b/lib/gitlab/oauth/user.rb @@ -73,6 +73,7 @@ module Gitlab end def email + return unless auth.info.respond_to?(:email) auth.info.email.downcase unless auth.info.email.nil? end diff --git a/spec/lib/gitlab/oauth/user_spec.rb b/spec/lib/gitlab/oauth/user_spec.rb index 2f15b5e0349..60d9c4f8a9b 100644 --- a/spec/lib/gitlab/oauth/user_spec.rb +++ b/spec/lib/gitlab/oauth/user_spec.rb @@ -41,5 +41,17 @@ describe Gitlab::OAuth::User do user.projects_limit.should == Gitlab.config.gitlab.default_projects_limit user.can_create_group.should == Gitlab.config.gitlab.default_can_create_group end + + it "Set a temp email address if not provided (like twitter does)" do + info = double( + uid: 'my-uid', + nickname: 'john', + name: 'John' + ) + auth = double(info: info, provider: 'my-provider') + + user = gl_auth.create(auth) + expect(user.email).to_not be_empty + end end end -- cgit v1.2.1