aboutsummaryrefslogtreecommitdiffstats
path: root/handlers.go
diff options
context:
space:
mode:
Diffstat (limited to 'handlers.go')
-rw-r--r--handlers.go15
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)