You've already forked authentication-service
mirror of
https://github.com/matrix-org/matrix-authentication-service.git
synced 2025-11-20 12:02:22 +03:00
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
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
//! A module containing PostgreSQL implementation of repositories for sessions
|
||||
|
||||
use async_trait::async_trait;
|
||||
use mas_data_model::{CompatSession, CompatSessionState, Device, Session, SessionState};
|
||||
use mas_data_model::{CompatSession, CompatSessionState, Device, Session, SessionState, UserAgent};
|
||||
use mas_storage::{
|
||||
app_session::{AppSession, AppSessionFilter, AppSessionRepository},
|
||||
Page, Pagination,
|
||||
@@ -84,6 +84,7 @@ use priv_::{AppSessionLookup, AppSessionLookupIden};
|
||||
impl TryFrom<AppSessionLookup> for AppSession {
|
||||
type Error = DatabaseError;
|
||||
|
||||
#[allow(clippy::too_many_lines)]
|
||||
fn try_from(value: AppSessionLookup) -> Result<Self, Self::Error> {
|
||||
// This is annoying to do, but we have to match on all the fields to determine
|
||||
// whether it's a compat session or an oauth2 session
|
||||
@@ -104,6 +105,7 @@ impl TryFrom<AppSessionLookup> for AppSession {
|
||||
last_active_ip,
|
||||
} = value;
|
||||
|
||||
let user_agent = user_agent.map(UserAgent::parse);
|
||||
let user_session_id = user_session_id.map(Ulid::from);
|
||||
|
||||
match (
|
||||
|
||||
Reference in New Issue
Block a user