diff options
author | metamuffin <metamuffin@disroot.org> | 2025-05-26 18:24:16 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-05-26 18:24:16 +0200 |
commit | 3b15caade07e8fbe351fed9aceb3f435bf58368e (patch) | |
tree | cce91c229b78061ad36f29d76a76d67c3c737c59 /server/src/helper | |
parent | 1eeff5c03e8985d16d4f2b6283741dd82b369bd3 (diff) | |
download | jellything-3b15caade07e8fbe351fed9aceb3f435bf58368e.tar jellything-3b15caade07e8fbe351fed9aceb3f435bf58368e.tar.bz2 jellything-3b15caade07e8fbe351fed9aceb3f435bf58368e.tar.zst |
move all direct database access to logic crate
Diffstat (limited to 'server/src/helper')
-rw-r--r-- | server/src/helper/session.rs | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/server/src/helper/session.rs b/server/src/helper/session.rs index d51acd3..090330b 100644 --- a/server/src/helper/session.rs +++ b/server/src/helper/session.rs @@ -6,24 +6,19 @@ use super::A; use crate::ui::error::MyError; use anyhow::anyhow; -use jellylogic::{ - session::{validate, AdminSession, Session}, - Database, -}; +use jellylogic::session::{bypass_auth_session, token_to_session, AdminSession, Session}; use log::warn; use rocket::{ async_trait, http::Status, outcome::Outcome, request::{self, FromRequest}, - Request, State, + Request, }; pub(super) async fn session_from_request(req: &Request<'_>) -> Result<Session, MyError> { - let username; - if cfg!(feature = "bypass-auth") { - username = "admin".to_string(); + Ok(bypass_auth_session()?) } else { let token = req .query_value("session") @@ -40,14 +35,8 @@ pub(super) async fn session_from_request(req: &Request<'_>) -> Result<Session, M // jellyfin urlescapes the token for *some* requests let token = token.replace("%3D", "="); - username = validate(&token)?; - }; - - let db = req.guard::<&State<Database>>().await.unwrap(); - - let user = db.get_user(&username)?.ok_or(anyhow!("user not found"))?; - - Ok(Session { user }) + Ok(token_to_session(&token)?) + } } fn parse_jellyfin_auth(h: &str) -> Option<&str> { |