aboutsummaryrefslogtreecommitdiffhomepage
path: root/ui/middleware.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/middleware.go')
-rw-r--r--ui/middleware.go23
1 files changed, 16 insertions, 7 deletions
diff --git a/ui/middleware.go b/ui/middleware.go
index 237432a..81fb3a5 100644
--- a/ui/middleware.go
+++ b/ui/middleware.go
@@ -61,12 +61,21 @@ func (m *middleware) handleAppSession(next http.Handler) http.Handler {
session := m.getAppSessionValueFromCookie(r)
if session == nil {
- logger.Debug("[UI:AppSession] Session not found")
-
- session, err = m.store.CreateSession()
- if err != nil {
- html.ServerError(w, r, err)
- return
+ if (request.IsAuthenticated(r)) {
+ userID := request.UserID(r)
+ logger.Debug("[UI:AppSession] Cookie expired but user #%d is logged: creating a new session", userID)
+ session, err = m.store.CreateAppSessionWithUserPrefs(userID)
+ if err != nil {
+ html.ServerError(w, r, err)
+ return
+ }
+ } else {
+ logger.Debug("[UI:AppSession] Session not found, creating a new one")
+ session, err = m.store.CreateAppSession()
+ if err != nil {
+ html.ServerError(w, r, err)
+ return
+ }
}
http.SetCookie(w, cookie.New(cookie.CookieSessionID, session.ID, m.cfg.IsHTTPS, m.cfg.BasePath()))
@@ -104,7 +113,7 @@ func (m *middleware) getAppSessionValueFromCookie(r *http.Request) *model.Sessio
return nil
}
- session, err := m.store.Session(cookieValue)
+ session, err := m.store.AppSession(cookieValue)
if err != nil {
logger.Error("[UI:AppSession] %v", err)
return nil