aboutsummaryrefslogtreecommitdiffhomepage
path: root/ui/oauth2_callback.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-10-07 18:42:43 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-10-08 15:31:58 -0700
commit1f58b37a5e86603b16e137031c36f37580e9d410 (patch)
tree337a7299e91fe7640b64489357dfe7c0f00e2313 /ui/oauth2_callback.go
parentddfe969d6cbc8d23326cb9a3ca9a265d4e9d3e45 (diff)
Refactor HTTP response builder
Diffstat (limited to 'ui/oauth2_callback.go')
-rw-r--r--ui/oauth2_callback.go31
1 files changed, 15 insertions, 16 deletions
diff --git a/ui/oauth2_callback.go b/ui/oauth2_callback.go
index 1902d6e..feaccc4 100644
--- a/ui/oauth2_callback.go
+++ b/ui/oauth2_callback.go
@@ -2,14 +2,13 @@
// Use of this source code is governed by the Apache 2.0
// license that can be found in the LICENSE file.
-package ui // import "miniflux.app/ui"
+package ui // import "miniflux.app/ui"
import (
"net/http"
"miniflux.app/http/cookie"
"miniflux.app/http/request"
- "miniflux.app/http/response"
"miniflux.app/http/response/html"
"miniflux.app/http/route"
"miniflux.app/locale"
@@ -26,71 +25,71 @@ func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) {
provider := request.RouteStringParam(r, "provider")
if provider == "" {
logger.Error("[OAuth2] Invalid or missing provider")
- response.Redirect(w, r, route.Path(c.router, "login"))
+ html.Redirect(w, r, route.Path(c.router, "login"))
return
}
code := request.QueryStringParam(r, "code", "")
if code == "" {
logger.Error("[OAuth2] No code received on callback")
- response.Redirect(w, r, route.Path(c.router, "login"))
+ html.Redirect(w, r, route.Path(c.router, "login"))
return
}
state := request.QueryStringParam(r, "state", "")
if state == "" || state != request.OAuth2State(r) {
logger.Error(`[OAuth2] Invalid state value: got "%s" instead of "%s"`, state, request.OAuth2State(r))
- response.Redirect(w, r, route.Path(c.router, "login"))
+ html.Redirect(w, r, route.Path(c.router, "login"))
return
}
authProvider, err := getOAuth2Manager(c.cfg).Provider(provider)
if err != nil {
logger.Error("[OAuth2] %v", err)
- response.Redirect(w, r, route.Path(c.router, "login"))
+ html.Redirect(w, r, route.Path(c.router, "login"))
return
}
profile, err := authProvider.GetProfile(code)
if err != nil {
logger.Error("[OAuth2] %v", err)
- response.Redirect(w, r, route.Path(c.router, "login"))
+ html.Redirect(w, r, route.Path(c.router, "login"))
return
}
if request.IsAuthenticated(r) {
user, err := c.store.UserByExtraField(profile.Key, profile.ID)
if err != nil {
- html.ServerError(w, err)
+ html.ServerError(w, r, err)
return
}
if user != nil {
logger.Error("[OAuth2] User #%d cannot be associated because %s is already associated", request.UserID(r), user.Username)
sess.NewFlashErrorMessage(printer.Printf("error.duplicate_linked_account"))
- response.Redirect(w, r, route.Path(c.router, "settings"))
+ html.Redirect(w, r, route.Path(c.router, "settings"))
return
}
if err := c.store.UpdateExtraField(request.UserID(r), profile.Key, profile.ID); err != nil {
- html.ServerError(w, err)
+ html.ServerError(w, r, err)
return
}
sess.NewFlashMessage(printer.Printf("alert.account_linked"))
- response.Redirect(w, r, route.Path(c.router, "settings"))
+ html.Redirect(w, r, route.Path(c.router, "settings"))
return
}
user, err := c.store.UserByExtraField(profile.Key, profile.ID)
if err != nil {
- html.ServerError(w, err)
+ html.ServerError(w, r, err)
return
}
if user == nil {
if !c.cfg.IsOAuth2UserCreationAllowed() {
- html.Forbidden(w)
+ html.Forbidden(w, r)
return
}
@@ -100,14 +99,14 @@ func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) {
user.Extra[profile.Key] = profile.ID
if err := c.store.CreateUser(user); err != nil {
- html.ServerError(w, err)
+ html.ServerError(w, r, err)
return
}
}
sessionToken, _, err := c.store.CreateUserSession(user.Username, r.UserAgent(), request.ClientIP(r))
if err != nil {
- html.ServerError(w, err)
+ html.ServerError(w, r, err)
return
}
@@ -123,5 +122,5 @@ func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) {
c.cfg.BasePath(),
))
- response.Redirect(w, r, route.Path(c.router, "unread"))
+ html.Redirect(w, r, route.Path(c.router, "unread"))
}