diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-24 04:31:48 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-24 04:31:48 +0100 |
| commit | b2e88a8beabf04adc28947cf82996e8692a68b71 (patch) | |
| tree | 23d66c8672b69cce7835ffabae4092669062ada8 /logic/src/admin/user.rs | |
| parent | 774f64c0789529884dd7a5232f190e347ad29532 (diff) | |
| download | jellything-b2e88a8beabf04adc28947cf82996e8692a68b71.tar jellything-b2e88a8beabf04adc28947cf82996e8692a68b71.tar.bz2 jellything-b2e88a8beabf04adc28947cf82996e8692a68b71.tar.zst | |
move things around; kv crate
Diffstat (limited to 'logic/src/admin/user.rs')
| -rw-r--r-- | logic/src/admin/user.rs | 51 |
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(()) - }) -} |