diff options
Diffstat (limited to 'server/src/ui/admin/user.rs')
| -rw-r--r-- | server/src/ui/admin/user.rs | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/server/src/ui/admin/user.rs b/server/src/ui/admin/user.rs deleted file mode 100644 index b4770c8..0000000 --- a/server/src/ui/admin/user.rs +++ /dev/null @@ -1,93 +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::{request_info::RequestInfo, ui::error::MyResult}; -use anyhow::Context; -use jellycommon::routes::{u_admin_user, u_admin_users}; -use rocket::{ - FromForm, FromFormField, - form::Form, - get, post, - response::{Flash, Redirect, content::RawHtml}, -}; - -#[get("/admin/users")] -pub fn r_admin_users(ri: RequestInfo) -> MyResult<RawHtml<String>> { - ri.session.assert_admin()?; - let r = admin_users(&ri.session)?; - Ok(RawHtml(render_page( - &AdminUsersPage { - flash: &None, - lang: &ri.lang, - users: &r.users, - }, - ri.render_info(), - ))) -} - -#[get("/admin/user/<name>")] -pub fn r_admin_user(ri: RequestInfo, name: &str) -> MyResult<RawHtml<String>> { - ri.session.assert_admin()?; - let user = get_user(&ri.session, name)?; - - Ok(RawHtml(render_page( - &AdminUserPage { - flash: &None, - lang: &ri.lang, - user: &user, - }, - ri.render_info(), - ))) -} - -#[derive(FromForm)] -pub struct UserPermissionForm { - permission: String, - action: UrlGrantState, -} - -#[derive(FromFormField)] -pub enum UrlGrantState { - Grant, - Revoke, - Unset, -} - -#[post("/admin/user/<name>/update_permission", data = "<form>")] -pub fn r_admin_user_permission( - ri: RequestInfo, - form: Form<UserPermissionForm>, - name: &str, -) -> MyResult<Flash<Redirect>> { - ri.session.assert_admin()?; - let perm = serde_json::from_str::<UserPermission>(&form.permission) - .context("parsing provided permission")?; - - update_user_perms( - &ri.session, - name, - perm, - match form.action { - UrlGrantState::Grant => GrantState::Grant, - UrlGrantState::Revoke => GrantState::Revoke, - UrlGrantState::Unset => GrantState::Unset, - }, - )?; - - Ok(Flash::success( - Redirect::to(u_admin_user(name)), - tr(ri.lang, "admin.users.permission_update_success"), - )) -} - -#[post("/admin/<name>/remove")] -pub fn r_admin_remove_user(ri: RequestInfo, name: &str) -> MyResult<Flash<Redirect>> { - ri.session.assert_admin()?; - delete_user(&ri.session, name)?; - Ok(Flash::success( - Redirect::to(u_admin_users()), - tr(ri.lang, "admin.users.remove_success"), - )) -} |