diff options
author | Simon Ser <contact@emersion.fr> | 2019-12-09 18:35:51 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2019-12-09 18:35:51 +0100 |
commit | 7702925497a8230f50d2317c9ad41a73de0683ae (patch) | |
tree | 617955544543a71baf5c17134a422c0e8fd16bbf /handlers.go | |
parent | efd401bfbf62b2216fe92b4d8be8c07e77b78482 (diff) | |
download | alps-7702925497a8230f50d2317c9ad41a73de0683ae.tar.gz alps-7702925497a8230f50d2317c9ad41a73de0683ae.zip |
Make SessionManager create the IMAP client
This will allow SessionManager to re-connect when the IMAP server logs
the user out.
Diffstat (limited to 'handlers.go')
-rw-r--r-- | handlers.go | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/handlers.go b/handlers.go index 8dc3fbf..869e1c1 100644 --- a/handlers.go +++ b/handlers.go @@ -81,18 +81,11 @@ func handleLogin(ectx echo.Context) error { username := ctx.FormValue("username") password := ctx.FormValue("password") if username != "" && password != "" { - conn, err := ctx.server.connectIMAP() - if err != nil { - return err - } - - if err := conn.Login(username, password); err != nil { - conn.Logout() - return ctx.Render(http.StatusOK, "login.html", nil) - } - - token, err := ctx.server.sessions.Put(conn, username, password) + token, err := ctx.server.sessions.Put(username, password) if err != nil { + if _, ok := err.(AuthError); ok { + return ctx.Render(http.StatusOK, "login.html", nil) + } return fmt.Errorf("failed to put connection in pool: %v", err) } ctx.setToken(token) |