summaryrefslogtreecommitdiffstats
path: root/api4/oauth.go
diff options
context:
space:
mode:
authorenahum <nahumhbl@gmail.com>2017-07-27 19:22:23 -0400
committerSaturnino Abril <saturnino.abril@gmail.com>2017-08-03 02:39:14 +0800
commitfa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a (patch)
treeeea9c86827db6933d535fb9172f39c348f586e77 /api4/oauth.go
parentb796960a2514a2eb5ae900436806f343dbddf50f (diff)
downloadchat-fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a.tar.gz
chat-fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a.tar.bz2
chat-fa3dd6a84bb51e8a5c3d3183bdb692386bb77c5a.zip
If login is using mobile respond with JSON object (#7030)
Diffstat (limited to 'api4/oauth.go')
-rw-r--r--api4/oauth.go24
1 files changed, 20 insertions, 4 deletions
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
}