From a2bd8b8676701ee5ccf5d84a2f4fe6afb0dae4b1 Mon Sep 17 00:00:00 2001 From: JoramWilander Date: Wed, 22 Jul 2015 11:26:55 -0400 Subject: add error for trying to sign up with the same oauth account twice --- api/user.go | 2 +- web/web.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/api/user.go b/api/user.go index 5aba21e79..68a4e6d56 100644 --- a/api/user.go +++ b/api/user.go @@ -1277,7 +1277,7 @@ func AuthorizeOAuthUser(service, code, state, redirectUri string) (io.ReadCloser var ar *model.AccessResponse if resp, err := client.Do(req); err != nil { - return nil, model.NewAppError("AuthorizeOAuthUser", "Token request to GitLab failed", err.Error()) + return nil, model.NewAppError("AuthorizeOAuthUser", "Token request failed", err.Error()) } else { ar = model.AccessResponseFromJson(resp.Body) } diff --git a/web/web.go b/web/web.go index 15c978ff1..ef2bae624 100644 --- a/web/web.go +++ b/web/web.go @@ -499,6 +499,11 @@ func signupCompleteOAuth(c *api.Context, w http.ResponseWriter, r *http.Request) return } + if result := <-api.Srv.Store.User().GetByAuth(team.Id, user.AuthData, service); result.Err == nil { + c.Err = model.NewAppError("signupCompleteOAuth", "This "+service+" account has already been used to sign up for team "+team.DisplayName, "email="+user.Email) + return + } + if result := <-api.Srv.Store.User().GetByEmail(team.Id, user.Email); result.Err == nil { c.Err = model.NewAppError("signupCompleteOAuth", "Team "+team.DisplayName+" already has a user with the email address attached to your "+service+" account", "email="+user.Email) return -- cgit v1.2.3-1-g7c22