From 373243a81f8c44fcfc6a3612ba46da2c6a3286c6 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 31 May 2025 13:11:36 +0200 Subject: use RenderInfo guard everywhere and start to use FlashMessage --- server/src/ui/admin/user.rs | 93 ++++++++++++--------------------------------- 1 file changed, 24 insertions(+), 69 deletions(-) (limited to 'server/src/ui/admin/user.rs') diff --git a/server/src/ui/admin/user.rs b/server/src/ui/admin/user.rs index e8dc332..afbe8f0 100644 --- a/server/src/ui/admin/user.rs +++ b/server/src/ui/admin/user.rs @@ -3,68 +3,42 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2025 metamuffin */ -use crate::{ - helper::{language::AcceptLanguage, A}, - ui::error::MyResult, -}; +use crate::{helper::RequestInfo, ui::error::MyResult}; use anyhow::Context; use jellycommon::user::UserPermission; -use jellyimport::is_importing; -use jellylogic::{ - admin::user::{admin_users, delete_user, get_user, update_user_perms, GrantState}, - session::Session, -}; +use jellylogic::admin::user::{admin_users, delete_user, get_user, update_user_perms, GrantState}; use jellyui::{ admin::user::{AdminUserPage, AdminUsersPage}, render_page, - scaffold::{RenderInfo, SessionInfo}, }; use rocket::{form::Form, get, post, response::content::RawHtml, FromForm, FromFormField}; #[get("/admin/users")] -pub fn r_admin_users(session: A, lang: AcceptLanguage) -> MyResult> { - session.0.assert_admin()?; - let AcceptLanguage(lang) = lang; - let r = admin_users(&session.0)?; +pub fn r_admin_users(ri: RequestInfo) -> MyResult> { + ri.session.assert_admin()?; + let r = admin_users(&ri.session)?; Ok(RawHtml(render_page( &AdminUsersPage { flash: None, - lang: &lang, + lang: &ri.lang, users: &r.users, }, - RenderInfo { - importing: is_importing(), - session: Some(SessionInfo { - user: session.0.user, - }), - }, - lang, + ri.render_info(), ))) } #[get("/admin/user/")] -pub fn r_admin_user<'a>( - session: A, - name: &'a str, - lang: AcceptLanguage, -) -> MyResult> { - session.0.assert_admin()?; - let AcceptLanguage(lang) = lang; - let user = get_user(&session.0, name)?; +pub fn r_admin_user<'a>(ri: RequestInfo, name: &'a str) -> MyResult> { + ri.session.assert_admin()?; + let user = get_user(&ri.session, name)?; Ok(RawHtml(render_page( &AdminUserPage { flash: None, - lang: &lang, + lang: &ri.lang, user: &user, }, - RenderInfo { - importing: is_importing(), - session: Some(SessionInfo { - user: session.0.user, - }), - }, - lang, + ri.render_info(), ))) } @@ -83,18 +57,16 @@ pub enum UrlGrantState { #[post("/admin/user//update_permission", data = "
")] pub fn r_admin_user_permission( - session: A, + ri: RequestInfo, form: Form, name: &str, - lang: AcceptLanguage, ) -> MyResult> { - session.0.assert_admin()?; - let AcceptLanguage(lang) = lang; + ri.session.assert_admin()?; let perm = serde_json::from_str::(&form.permission) .context("parsing provided permission")?; update_user_perms( - &session.0, + &ri.session, name, perm, match form.action { @@ -104,47 +76,30 @@ pub fn r_admin_user_permission( }, )?; - let user = get_user(&session.0, name)?; + let user = get_user(&ri.session, name)?; Ok(RawHtml(render_page( &AdminUserPage { flash: Some(Ok("Permissions updated".to_string())), - lang: &lang, + lang: &ri.lang, user: &user, }, - RenderInfo { - importing: is_importing(), - session: Some(SessionInfo { - user: session.0.user, - }), - }, - lang, + ri.render_info(), ))) } #[post("/admin//remove")] -pub fn r_admin_remove_user( - session: A, - name: &str, - lang: AcceptLanguage, -) -> MyResult> { - session.0.assert_admin()?; - let AcceptLanguage(lang) = lang; - delete_user(&session.0, name)?; - let r = admin_users(&session.0)?; +pub fn r_admin_remove_user(ri: RequestInfo, name: &str) -> MyResult> { + ri.session.assert_admin()?; + delete_user(&ri.session, name)?; + let r = admin_users(&ri.session)?; Ok(RawHtml(render_page( &AdminUsersPage { flash: Some(Ok("User removed".to_string())), - lang: &lang, + lang: &ri.lang, users: &r.users, }, - RenderInfo { - importing: is_importing(), - session: Some(SessionInfo { - user: session.0.user, - }), - }, - lang, + ri.render_info(), ))) } -- cgit v1.2.3-70-g09d2