From bb26c976d3d5373003c6b41080b819ed1313caa7 Mon Sep 17 00:00:00 2001 From: Noah Date: Wed, 7 Sep 2022 22:19:26 -0700 Subject: [PATCH] Don't ping LastLoginAt when impersonated --- pkg/middleware/authentication.go | 4 ++-- pkg/session/session.go | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/middleware/authentication.go b/pkg/middleware/authentication.go index c5a9e87..c6a72a7 100644 --- a/pkg/middleware/authentication.go +++ b/pkg/middleware/authentication.go @@ -40,8 +40,8 @@ func LoginRequired(handler http.Handler) http.Handler { return } - // Ping LastLoginAt for long lived sessions. - if time.Since(user.LastLoginAt) > config.LastLoginAtCooldown { + // Ping LastLoginAt for long lived sessions, but not if impersonated. + if time.Since(user.LastLoginAt) > config.LastLoginAtCooldown && !session.Impersonated(r) { user.LastLoginAt = time.Now() if err := user.Save(); err != nil { log.Error("LoginRequired: couldn't refresh LastLoginAt for user %s: %s", user.Username, err) diff --git a/pkg/session/session.go b/pkg/session/session.go index 83474e9..1d7ad46 100644 --- a/pkg/session/session.go +++ b/pkg/session/session.go @@ -170,8 +170,6 @@ func ImpersonateUser(w http.ResponseWriter, r *http.Request, u *models.User, imp sess.Impersonator = impersonator.ID sess.Save(w) - // Ping the user's last login time. - u.LastLoginAt = time.Now() return u.Save() }