Fix sessions (#2689)

* add loggedIn key to sessions

* show loggedIn timestamp in list

* don't double hash active session

---------

Co-authored-by: Aiden McClelland <me@drbonez.dev>
This commit is contained in:
Matt Hill
2024-07-29 11:13:35 -06:00
committed by GitHub
parent 63e26b6050
commit 0ed6eb7029
6 changed files with 31 additions and 21 deletions

View File

@@ -350,13 +350,13 @@ pub async fn list(
ListParams { session, .. }: ListParams,
) -> Result<SessionList, Error> {
let mut sessions = ctx.db.peek().await.into_private().into_sessions().de()?;
ctx.ephemeral_sessions.mutate(|s| {
ctx.ephemeral_sessions.peek(|s| {
sessions
.0
.extend(s.0.iter().map(|(k, v)| (k.clone(), v.clone())))
});
Ok(SessionList {
current: HashSessionToken::from_token(session).hashed().clone(),
current: session,
sessions,
})
}

View File

@@ -6,4 +6,7 @@ impl<T> SyncMutex<T> {
pub fn mutate<F: FnOnce(&mut T) -> U, U>(&self, f: F) -> U {
f(&mut *self.0.lock().unwrap())
}
pub fn peek<F: FnOnce(&T) -> U, U>(&self, f: F) -> U {
f(&*self.0.lock().unwrap())
}
}