From e940f10ebce2a75dae95710d0b49a9ea2b0de5fb Mon Sep 17 00:00:00 2001 From: okatu-loli Date: Fri, 29 Aug 2025 17:56:37 +0800 Subject: [PATCH] feat(session): Modified session deletion logic to mark sessions as inactive. - Changed session deletion logic to mark sessions as inactive using the `MarkInactive` method. - Adjusted error handling to ensure an error is returned if marking fails. --- internal/device/session.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/device/session.go b/internal/device/session.go index eb5e8647..0b0de763 100644 --- a/internal/device/session.go +++ b/internal/device/session.go @@ -47,9 +47,10 @@ func Handle(userID uint, deviceKey, ua, ip string) error { if count >= int64(max) { policy := setting.GetStr(conf.DeviceEvictPolicy, "deny") if policy == "evict_oldest" { - oldest, err := db.GetOldestSession(userID) - if err == nil { - _ = db.DeleteSession(userID, oldest.DeviceKey) + if oldest, err := db.GetOldestSession(userID); err == nil { + if err := db.MarkInactive(oldest.DeviceKey); err != nil { + return err + } } } else { return errors.WithStack(errs.TooManyDevices) @@ -90,7 +91,9 @@ func EnsureActiveOnLogin(userID uint, deviceKey, ua, ip string) error { policy := setting.GetStr(conf.DeviceEvictPolicy, "deny") if policy == "evict_oldest" { if oldest, gerr := db.GetOldestSession(userID); gerr == nil { - _ = db.DeleteSession(userID, oldest.DeviceKey) + if err := db.MarkInactive(oldest.DeviceKey); err != nil { + return err + } } } else { return errors.WithStack(errs.TooManyDevices)