aboutsummaryrefslogtreecommitdiff
path: root/logic/src/admin
diff options
context:
space:
mode:
Diffstat (limited to 'logic/src/admin')
-rw-r--r--logic/src/admin/mod.rs48
-rw-r--r--logic/src/admin/user.rs51
2 files changed, 0 insertions, 99 deletions
diff --git a/logic/src/admin/mod.rs b/logic/src/admin/mod.rs
deleted file mode 100644
index 76599d5..0000000
--- a/logic/src/admin/mod.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- This file is part of jellything (https://codeberg.org/metamuffin/jellything)
- which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
- Copyright (C) 2026 metamuffin <metamuffin.org>
-*/
-
-pub mod log;
-pub mod user;
-
-use crate::{DATABASE, session::Session};
-use anyhow::{Result, anyhow};
-use jellyimport::{import_wrap, reporting::IMPORT_ERRORS};
-use rand::Rng;
-use tokio::{spawn, task::spawn_blocking};
-
-pub async fn get_import_errors(_session: &Session) -> Vec<String> {
- IMPORT_ERRORS.read().await.to_owned()
-}
-pub fn list_invites(session: &Session) -> Result<Vec<String>> {
- session.assert_admin()?;
- DATABASE.list_invites()
-}
-
-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: &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: &Session) -> Result<()> {
- session.assert_admin()?;
- spawn_blocking(move || DATABASE.search_create_index()).await?
-}
-pub async fn do_import(session: &Session, incremental: bool) -> Result<()> {
- session.assert_admin()?;
- if !incremental {
- DATABASE.clear_nodes()?;
- }
- spawn(import_wrap((*DATABASE).clone(), incremental));
- Ok(())
-}
diff --git a/logic/src/admin/user.rs b/logic/src/admin/user.rs
deleted file mode 100644
index a5f1b24..0000000
--- a/logic/src/admin/user.rs
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- This file is part of jellything (https://codeberg.org/metamuffin/jellything)
- which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
- Copyright (C) 2026 metamuffin <metamuffin.org>
-*/
-
-use crate::{DATABASE, session::Session};
-use anyhow::{Result, anyhow};
-
-pub fn admin_users(session: &Session) -> Result<ApiAdminUsersResponse> {
- session.assert_admin()?;
- // TODO dont return useless info like passwords
- Ok(ApiAdminUsersResponse {
- users: DATABASE.list_users()?,
- })
-}
-pub fn get_user(session: &Session, username: &str) -> Result<User> {
- session.assert_admin()?;
- DATABASE
- .get_user(username)?
- .ok_or(anyhow!("user not found"))
-}
-pub fn delete_user(session: &Session, username: &str) -> Result<()> {
- session.assert_admin()?;
- if !DATABASE.delete_user(username)? {
- Err(anyhow!("user did not exist"))?;
- }
- Ok(())
-}
-
-pub enum GrantState {
- Grant,
- Revoke,
- Unset,
-}
-pub fn update_user_perms(
- session: &Session,
- username: &str,
- perm: UserPermission,
- action: GrantState,
-) -> Result<()> {
- session.assert_admin()?;
- DATABASE.update_user(username, |user| {
- match action {
- GrantState::Grant => drop(user.permissions.0.insert(perm.clone(), true)),
- GrantState::Revoke => drop(user.permissions.0.insert(perm.clone(), false)),
- GrantState::Unset => drop(user.permissions.0.remove(&perm)),
- }
- Ok(())
- })
-}