Quentin Gliech and GitHub
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 Gliech and GitHub
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