diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-03-22 20:28:02 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-03-22 20:28:02 +0100 |
| commit | d437d7cbf967a2520ebaa2cf63ae5e4b3cb4544a (patch) | |
| tree | b2592749967f82bf0e7018df1a35b6a4e6a8ebdc /server/src/auth.rs | |
| parent | d7099ef522123840c8726b6c3f0ffab249fae0f6 (diff) | |
| download | jellything-d437d7cbf967a2520ebaa2cf63ae5e4b3cb4544a.tar jellything-d437d7cbf967a2520ebaa2cf63ae5e4b3cb4544a.tar.bz2 jellything-d437d7cbf967a2520ebaa2cf63ae5e4b3cb4544a.tar.zst | |
re-add bypass auth feature
Diffstat (limited to 'server/src/auth.rs')
| -rw-r--r-- | server/src/auth.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/server/src/auth.rs b/server/src/auth.rs index 0174e13..69d68d0 100644 --- a/server/src/auth.rs +++ b/server/src/auth.rs @@ -10,6 +10,7 @@ use argon2::{Argon2, PasswordHasher, password_hash::Salt}; use jellycommon::{jellyobject::Path, *}; use jellydb::{Filter, Query}; +#[cfg(not(feature = "bypass_auth"))] pub fn token_to_user(state: &State, token: &str) -> Result<Box<User>> { let user_row = token::validate(&state.session_key, token)?; @@ -22,6 +23,22 @@ pub fn token_to_user(state: &State, token: &str) -> Result<Box<User>> { user.ok_or(anyhow!("user was deleted")) } +#[cfg(feature = "bypass_auth")] +pub fn token_to_user(state: &State, _token: &str) -> Result<Box<User>> { + let mut user = None; + state.database.transaction(&mut |txn| { + if let Some(row) = txn.query_single(Query { + filter: Filter::Has(Path(vec![USER_ADMIN.0])), + ..Default::default() + })? { + user = txn.get(row)?; + } + Ok(()) + })?; + + user.ok_or(anyhow!("user was deleted")) +} + pub fn login( state: &State, username: &str, |