diff options
author | metamuffin <metamuffin@disroot.org> | 2025-04-29 11:10:21 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-04-29 11:10:21 +0200 |
commit | f62c7f2a8cc143454779dc99334ca9fc80ddabd5 (patch) | |
tree | f31dbb908715d2deb2860e2097fa13dd41d759d5 /server/src/logic/session.rs | |
parent | 73d2d5eb01fceae9e0b1c58afb648822000c878a (diff) | |
download | jellything-f62c7f2a8cc143454779dc99334ca9fc80ddabd5.tar jellything-f62c7f2a8cc143454779dc99334ca9fc80ddabd5.tar.bz2 jellything-f62c7f2a8cc143454779dc99334ca9fc80ddabd5.tar.zst |
still just moving code around
Diffstat (limited to 'server/src/logic/session.rs')
-rw-r--r-- | server/src/logic/session.rs | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/server/src/logic/session.rs b/server/src/logic/session.rs index d77c4fc..105aa10 100644 --- a/server/src/logic/session.rs +++ b/server/src/logic/session.rs @@ -4,16 +4,9 @@ Copyright (C) 2025 metamuffin <metamuffin.org> */ use crate::ui::error::MyError; -use aes_gcm_siv::{ - aead::{generic_array::GenericArray, Aead}, - KeyInit, -}; use anyhow::anyhow; -use base64::Engine; -use chrono::{DateTime, Duration, Utc}; -use jellybase::{database::Database, SECRETS}; -use jellycommon::user::{PermissionSet, User}; -use jellylogic::session::validate; +use jellybase::database::Database; +use jellylogic::session::{validate, AdminSession, Session}; use log::warn; use rocket::{ async_trait, @@ -22,11 +15,11 @@ use rocket::{ request::{self, FromRequest}, Request, State, }; -use serde::{Deserialize, Serialize}; -use std::sync::LazyLock; -impl Session { - pub async fn from_request_ut(req: &Request<'_>) -> Result<Self, MyError> { +pub struct A<T>(pub T); + +impl A<Session> { + async fn from_request_ut(req: &Request<'_>) -> Result<Self, MyError> { let username; #[cfg(not(feature = "bypass-auth"))] @@ -59,7 +52,7 @@ impl Session { let user = db.get_user(&username)?.ok_or(anyhow!("user not found"))?; - Ok(Session { user }) + Ok(A(Session { user })) } } @@ -75,7 +68,7 @@ fn parse_jellyfin_auth(h: &str) -> Option<&str> { } #[async_trait] -impl<'r> FromRequest<'r> for Session { +impl<'r> FromRequest<'r> for A<Session> { type Error = MyError; async fn from_request<'life0>( request: &'r Request<'life0>, @@ -91,15 +84,15 @@ impl<'r> FromRequest<'r> for Session { } #[async_trait] -impl<'r> FromRequest<'r> for AdminSession { +impl<'r> FromRequest<'r> for A<AdminSession> { type Error = MyError; async fn from_request<'life0>( request: &'r Request<'life0>, ) -> request::Outcome<Self, Self::Error> { - match Session::from_request_ut(request).await { + match A::<Session>::from_request_ut(request).await { Ok(x) => { if x.user.admin { - Outcome::Success(AdminSession(x)) + Outcome::Success(A(AdminSession(x.0))) } else { Outcome::Error(( Status::Unauthorized, |