aboutsummaryrefslogtreecommitdiff
path: root/server/src/auth.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-03-22 20:28:02 +0100
committermetamuffin <metamuffin@disroot.org>2026-03-22 20:28:02 +0100
commitd437d7cbf967a2520ebaa2cf63ae5e4b3cb4544a (patch)
treeb2592749967f82bf0e7018df1a35b6a4e6a8ebdc /server/src/auth.rs
parentd7099ef522123840c8726b6c3f0ffab249fae0f6 (diff)
downloadjellything-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.rs17
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,