aboutsummaryrefslogtreecommitdiff
path: root/logic/src/admin/mod.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-31 03:26:45 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-31 03:26:45 +0200
commit3e834092ba230ee081065a3b80ad227d585b5a13 (patch)
treeb168d1524045716e6922c137f1ad92bdf3f47994 /logic/src/admin/mod.rs
parent3b15caade07e8fbe351fed9aceb3f435bf58368e (diff)
downloadjellything-3e834092ba230ee081065a3b80ad227d585b5a13.tar
jellything-3e834092ba230ee081065a3b80ad227d585b5a13.tar.bz2
jellything-3e834092ba230ee081065a3b80ad227d585b5a13.tar.zst
get rid of admin session; checking manually instead
Diffstat (limited to 'logic/src/admin/mod.rs')
-rw-r--r--logic/src/admin/mod.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/logic/src/admin/mod.rs b/logic/src/admin/mod.rs
index 804cb2b..d8b21b6 100644
--- a/logic/src/admin/mod.rs
+++ b/logic/src/admin/mod.rs
@@ -7,38 +7,40 @@
pub mod log;
pub mod user;
-use crate::{DATABASE, session::AdminSession};
+use crate::{DATABASE, session::Session};
use anyhow::{Result, anyhow};
use jellyimport::{IMPORT_ERRORS, import_wrap};
use rand::Rng;
use std::time::{Duration, Instant};
use tokio::task::spawn_blocking;
-pub async fn get_import_errors(_session: &AdminSession) -> Vec<String> {
+pub async fn get_import_errors(_session: &Session) -> Vec<String> {
IMPORT_ERRORS.read().await.to_owned()
}
-pub fn list_invites(_session: &AdminSession) -> Result<Vec<String>> {
+pub fn list_invites(session: &Session) -> Result<Vec<String>> {
+ session.assert_admin()?;
DATABASE.list_invites()
}
-pub fn create_invite(_session: &AdminSession) -> Result<String> {
+pub fn create_invite(session: &Session) -> Result<String> {
+ session.assert_admin()?;
let i = format!("{}", rand::rng().random::<u128>());
DATABASE.create_invite(&i)?;
Ok(i)
}
-pub fn delete_invite(_session: &AdminSession, invite: &str) -> Result<()> {
+pub fn delete_invite(session: &Session, invite: &str) -> Result<()> {
+ session.assert_admin()?;
if !DATABASE.delete_invite(invite)? {
Err(anyhow!("invite does not exist"))?;
};
Ok(())
}
-pub async fn update_search_index(_session: &AdminSession) -> Result<()> {
+pub async fn update_search_index(session: &Session) -> Result<()> {
+ session.assert_admin()?;
spawn_blocking(move || DATABASE.search_create_index()).await?
}
-pub async fn do_import(
- _session: &AdminSession,
- incremental: bool,
-) -> Result<(Duration, Result<()>)> {
+pub async fn do_import(session: &Session, incremental: bool) -> Result<(Duration, Result<()>)> {
+ session.assert_admin()?;
let t = Instant::now();
if !incremental {
DATABASE.clear_nodes()?;