aboutsummaryrefslogtreecommitdiff
path: root/logic/src/admin/user.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/user.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/user.rs')
-rw-r--r--logic/src/admin/user.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/logic/src/admin/user.rs b/logic/src/admin/user.rs
index e277077..15356a8 100644
--- a/logic/src/admin/user.rs
+++ b/logic/src/admin/user.rs
@@ -4,25 +4,28 @@
Copyright (C) 2025 metamuffin <metamuffin.org>
*/
-use crate::{DATABASE, session::AdminSession};
+use crate::{DATABASE, session::Session};
use anyhow::{Result, anyhow};
use jellycommon::{
api::ApiAdminUsersResponse,
user::{User, UserPermission},
};
-pub fn admin_users(_session: &AdminSession) -> Result<ApiAdminUsersResponse> {
+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: &AdminSession, username: &str) -> Result<User> {
+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: &AdminSession, username: &str) -> Result<()> {
+pub fn delete_user(session: &Session, username: &str) -> Result<()> {
+ session.assert_admin()?;
if !DATABASE.delete_user(&username)? {
Err(anyhow!("user did not exist"))?;
}
@@ -35,11 +38,12 @@ pub enum GrantState {
Unset,
}
pub fn update_user_perms(
- _session: &AdminSession,
+ 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)),