alist/internal/db
千石 4b288a08ef
fix: session invalid issue (#9301)
* feat(auth): Enhanced device login session management

- Upon login, obtain and verify `Client-Id` to ensure unique device sessions.
- If there are too many device sessions, clean up old ones according to the configured policy or return an error.
- If a device session is invalid, deregister the old token and return a 401 error.
- Added `EnsureActiveOnLogin` function to handle the creation and refresh of device sessions during login.

* 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.

* feat(session): Added device limits and eviction policies

- Added a device limit, controlling the maximum number of devices using the `MaxDevices` configuration option.
- If the number of devices exceeds the limit, the configured eviction policy is used.
- If the policy is `evict_oldest`, the oldest device is evicted.
- Otherwise, an error message indicating too many devices is returned.

* refactor(session): Filter for the user's oldest active session

- Renamed `GetOldestSession` to `GetOldestActiveSession` to more accurately reflect its functionality
- Updated the SQL query to add the `status = SessionActive` condition to retrieve only active sessions
- Replaced all callpoints and unified the new function name to ensure logical consistency
2025-08-29 21:20:29 +08:00
..
db.go feat: implement session management (#9286) 2025-08-25 19:46:38 +08:00
label.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
label_file_binding.go feat: add tag backup and fix bugs (#9265) 2025-08-15 23:09:00 +08:00
meta.go fix: out of order when database is not sqlite3 (#6560) 2024-08-03 13:11:09 +08:00
obj_file.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
role.go feat: add user registration endpoint and role-based default settings (#9277) 2025-08-18 16:38:21 +08:00
searchnode.go feat(search): paging and scope (close #4381 in #4930) 2023-08-06 15:13:23 +08:00
session.go fix: session invalid issue (#9301) 2025-08-29 21:20:29 +08:00
settingitem.go fix: out of order when database is not sqlite3 (#6560) 2024-08-03 13:11:09 +08:00
sshkey.go feat(sftp-server): public key login (#7668) 2024-12-25 21:15:06 +08:00
storage.go fix: out of order when database is not sqlite3 (#6560) 2024-08-03 13:11:09 +08:00
tasks.go feat: persistant Task (#6925 close #5313) 2024-08-07 12:16:21 +08:00
user.go feat(user-db): enhance user management with role-based queries (allow-edit-role-guest) (#9234) 2025-07-30 13:15:35 +08:00
util.go fix: out of order when database is not sqlite3 (#6560) 2024-08-03 13:11:09 +08:00