diff options
author | enahum <nahumhbl@gmail.com> | 2016-08-03 12:19:27 -0500 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2016-08-03 13:19:27 -0400 |
commit | 5bc3cea6fe4a909735753692d0c4cd960e8ab516 (patch) | |
tree | 85715d9fcbc146a9672d84c9a1ea1e96b6e71231 /api/user.go | |
parent | ea027c8de44d44b6ac4e66ab802e675d315b0be5 (diff) | |
download | chat-5bc3cea6fe4a909735753692d0c4cd960e8ab516.tar.gz chat-5bc3cea6fe4a909735753692d0c4cd960e8ab516.tar.bz2 chat-5bc3cea6fe4a909735753692d0c4cd960e8ab516.zip |
PLT-3484 OAuth2 Service Provider (#3632)
* PLT-3484 OAuth2 Service Provider
* PM text review for OAuth 2.0 Service Provider
* PLT-3484 OAuth2 Service Provider UI tweaks (#3668)
* Tweaks to help text
* Pushing OAuth improvements (#3680)
* Re-arrange System Console for OAuth 2.0 Provider
Diffstat (limited to 'api/user.go')
-rw-r--r-- | api/user.go | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/api/user.go b/api/user.go index 506c0ba44..5f3060b1e 100644 --- a/api/user.go +++ b/api/user.go @@ -2484,15 +2484,23 @@ func loginWithSaml(c *Context, w http.ResponseWriter, r *http.Request) { return } action := r.URL.Query().Get("action") + redirectTo := r.URL.Query().Get("redirect_to") + relayProps := map[string]string{} relayState := "" if len(action) != 0 { - relayProps := map[string]string{} relayProps["team_id"] = teamId relayProps["action"] = action if action == model.OAUTH_ACTION_EMAIL_TO_SSO { relayProps["email"] = r.URL.Query().Get("email") } + } + + if len(redirectTo) != 0 { + relayProps["redirect_to"] = redirectTo + } + + if len(relayProps) > 0 { relayState = b64.StdEncoding.EncodeToString([]byte(model.MapToJson(relayProps))) } @@ -2555,6 +2563,11 @@ func completeSaml(c *Context, w http.ResponseWriter, r *http.Request) { break } doLogin(c, w, r, user, "") + + if val, ok := relayProps["redirect_to"]; ok { + http.Redirect(w, r, c.GetSiteURL()+val, http.StatusFound) + return + } http.Redirect(w, r, GetProtocol(r)+"://"+r.Host, http.StatusFound) } } |