aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui/account/session/guard.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/ui/account/session/guard.rs')
-rw-r--r--server/src/routes/ui/account/session/guard.rs18
1 files changed, 15 insertions, 3 deletions
diff --git a/server/src/routes/ui/account/session/guard.rs b/server/src/routes/ui/account/session/guard.rs
index ae1ebd3..b2fd408 100644
--- a/server/src/routes/ui/account/session/guard.rs
+++ b/server/src/routes/ui/account/session/guard.rs
@@ -4,8 +4,9 @@
Copyright (C) 2023 metamuffin <metamuffin.org>
*/
use super::{AdminSession, Session};
-use crate::{database::Database, routes::ui::error::MyError};
+use crate::{database::DataAcid, routes::ui::error::MyError};
use anyhow::anyhow;
+use jellybase::database::{ReadableTable, T_USER};
use log::warn;
use rocket::{
async_trait,
@@ -35,8 +36,19 @@ impl Session {
username = "admin".to_string();
}
- let db = req.guard::<&State<Database>>().await.unwrap();
- let user = db.user.get(&username)?.ok_or(anyhow!("user not found"))?;
+ let db = req.guard::<&State<DataAcid>>().await.unwrap();
+
+ let user = {
+ let txn = db.inner.begin_read()?;
+ let table = txn.open_table(T_USER)?;
+ let user = table
+ .get(&*username)?
+ .ok_or(anyhow!("user not found"))?
+ .value()
+ .0;
+ drop(table);
+ user
+ };
Ok(Session { user })
}