From fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a Mon Sep 17 00:00:00 2001 From: enahum Date: Thu, 27 Jul 2017 19:22:23 -0400 Subject: If login is using mobile respond with JSON object (#7030) --- api4/oauth.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'api4/oauth.go') diff --git a/api4/oauth.go b/api4/oauth.go index 05a38d206..c1aa49df4 100644 --- a/api4/oauth.go +++ b/api4/oauth.go @@ -403,10 +403,20 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) { uri := c.GetSiteURLHeader() + "/signup/" + service + "/complete" body, teamId, props, err := app.AuthorizeOAuthUser(w, r, service, code, state, uri) + + action := "" + if props != nil { + action = props["action"] + } + if err != nil { err.Translate(c.T) l4g.Error(err.Error()) - http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + if action == model.OAUTH_ACTION_MOBILE { + w.Write([]byte(err.ToJson())) + } else { + http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + } return } @@ -414,12 +424,14 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) { if err != nil { err.Translate(c.T) l4g.Error(err.Error()) - http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + if action == model.OAUTH_ACTION_MOBILE { + w.Write([]byte(err.ToJson())) + } else { + http.Redirect(w, r, c.GetSiteURLHeader()+"/error?message="+err.Message, http.StatusTemporaryRedirect) + } return } - action := props["action"] - var redirectUrl string if action == model.OAUTH_ACTION_EMAIL_TO_SSO { redirectUrl = c.GetSiteURLHeader() + "/login?extra=signin_change" @@ -429,7 +441,11 @@ func completeOAuth(c *Context, w http.ResponseWriter, r *http.Request) { } else { session, err := app.DoLogin(w, r, user, "") if err != nil { + err.Translate(c.T) c.Err = err + if action == model.OAUTH_ACTION_MOBILE { + w.Write([]byte(err.ToJson())) + } return } -- cgit v1.2.3-1-g7c22