2023-06-19 23:42:47 +02:00
|
|
|
// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
2017-11-20 06:10:04 +01:00
|
|
|
|
2023-08-11 04:46:45 +02:00
|
|
|
package model // import "miniflux.app/v2/internal/model"
|
2017-11-20 06:10:04 +01:00
|
|
|
|
2018-03-05 02:04:31 +01:00
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"time"
|
|
|
|
|
2023-08-11 04:46:45 +02:00
|
|
|
"miniflux.app/v2/internal/timezone"
|
2018-03-05 02:04:31 +01:00
|
|
|
)
|
2017-11-20 06:10:04 +01:00
|
|
|
|
2017-12-16 21:15:33 +01:00
|
|
|
// UserSession represents a user session in the system.
|
|
|
|
type UserSession struct {
|
2017-11-20 06:10:04 +01:00
|
|
|
ID int64
|
|
|
|
UserID int64
|
|
|
|
Token string
|
|
|
|
CreatedAt time.Time
|
|
|
|
UserAgent string
|
|
|
|
IP string
|
|
|
|
}
|
|
|
|
|
2018-03-05 02:04:31 +01:00
|
|
|
func (u *UserSession) String() string {
|
2024-02-29 00:27:39 +01:00
|
|
|
return fmt.Sprintf(`ID=%q, UserID=%q, IP=%q, Token=%q`, u.ID, u.UserID, u.IP, u.Token)
|
2018-03-05 02:04:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// UseTimezone converts creation date to the given timezone.
|
|
|
|
func (u *UserSession) UseTimezone(tz string) {
|
|
|
|
u.CreatedAt = timezone.Convert(tz, u.CreatedAt)
|
2017-11-20 06:10:04 +01:00
|
|
|
}
|
|
|
|
|
2017-12-16 21:15:33 +01:00
|
|
|
// UserSessions represents a list of sessions.
|
|
|
|
type UserSessions []*UserSession
|
2018-03-05 02:04:31 +01:00
|
|
|
|
|
|
|
// UseTimezone converts creation date of all sessions to the given timezone.
|
|
|
|
func (u UserSessions) UseTimezone(tz string) {
|
|
|
|
for _, session := range u {
|
|
|
|
session.UseTimezone(tz)
|
|
|
|
}
|
|
|
|
}
|