Commit Graph
23 Commits
Author SHA1 Message Date
Quentin GliechandGitHub f3cbd3b315 Parse User Agents on the backend side (#2388)
* Parse user agents on the server side

* Parse and expose user agents on the backend

* Use the parsed user agent in the device consent page

* Fix the device icon tests

* Fix clippy warnings

* Box stuff to avoid large enum variants

* Ignore a clippy warning

* Fix the requester boxing
2024-02-23 16:47:48 +01:00
Quentin GliechandGitHub f171d76dc5 Record user agents on OAuth 2.0 and compat sessions (#2386)
* Record user agents on OAuth 2.0 and compat sessions

* Add tests for recording user agent in sessions
2024-02-22 10:01:32 +01:00
Quentin Gliech ed5893eb20 Save which user session created a compat session
This also exposes the user session in the GraphQL API, and allow
filtering on browser session ID on the app session list.
2024-02-21 11:55:58 +01:00
Quentin Gliech 03b6ad7138 Remove the unique constraint on device IDs on compatibility sessions
In OAuth 2.0 sessions, we can have multiple sessions for the same device
anyway, so this constraint doesn't exactly make sense.

Fixes #2033
Fixes #2312
2024-02-20 15:50:20 +01:00
Quentin Gliech f1d420f381 Storage layer for a unified session list 2023-09-20 20:27:08 +02:00
Quentin Gliech 41dadcfd74 Fix broken doc links 2023-09-19 21:57:54 +02:00
Quentin Gliech b85655b944 Save the session activity in the database 2023-09-19 21:57:54 +02:00
Quentin Gliech 1849b86a7d graphql: Always make the associated SSO login available in compatibility sessions 2023-08-29 16:53:38 +02:00
Quentin Gliech 8402a75a7d storage: Look up compat sessions by device_id 2023-08-29 16:53:38 +02:00
Quentin Gliech 12ad572db8 Better SSO login pagination and filtering 2023-07-21 19:50:30 +02:00
Quentin Gliech 24b29498a7 Better compatibility sessions pagination and filtering 2023-07-21 19:50:30 +02:00
Quentin Gliech ca520dfd9a frontend: Show all compatibilities sessions, not just SSO logins
Also cleans up a bunch of things in the frontend
2023-07-06 18:12:34 +02:00
Quentin Gliech 2a514cf452 Add a admin flag to the compatibility session
Also adds a CLI tool to issue a compatibility token.
2023-06-16 15:24:38 +02:00
Quentin Gliech 90dbc5d6ff storage: document all the repository traits and methods 2023-01-25 16:09:36 +01:00
Quentin Gliech f4c64c2171 storage: ensure the repository trait can be boxed
and define some wrappers to map the errors
2023-01-19 19:10:35 +01:00
Quentin Gliech 9005931e2a handlers: box the rng and clock, and extract it from the state 2023-01-18 17:49:59 +01:00
Quentin Gliech 142fdbd45a storage: make the Clock a trait 2023-01-18 12:20:30 +01:00
Quentin Gliech 73a921cc30 Split the storage trait from the implementation 2023-01-18 10:38:22 +01:00
Quentin Gliech b33a330b5f storage: don't use references for pagination 2023-01-17 16:44:22 +01:00
Quentin Gliech 0d02864589 storage: simplify the paginated queries 2023-01-17 15:09:53 +01:00
Quentin Gliech 62be962c4e storage: test compat {session, access token, refresh token} repositories 2023-01-16 19:27:43 +01:00
Quentin Gliech 1344527934 storage: simplify pagination 2023-01-13 18:25:25 +01:00
Quentin Gliech 36396c0b45 storage: repository pattern for the compat layer 2023-01-12 15:41:26 +01:00