aboutsummaryrefslogtreecommitdiff
path: root/logic/src/admin/user.rs
diff options
context:
space:
mode:
Diffstat (limited to 'logic/src/admin/user.rs')
-rw-r--r--logic/src/admin/user.rs51
1 files changed, 0 insertions, 51 deletions
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(())
- })
-}