From 7b0cdc8edec53f2b084ef28a8d6a537f1ebdd9ed Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 5 Aug 2023 22:25:25 +0200 Subject: in-browser server log --- server/src/routes/ui/admin/mod.rs | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) (limited to 'server/src/routes/ui/admin/mod.rs') diff --git a/server/src/routes/ui/admin/mod.rs b/server/src/routes/ui/admin/mod.rs index 0775423..f779700 100644 --- a/server/src/routes/ui/admin/mod.rs +++ b/server/src/routes/ui/admin/mod.rs @@ -3,12 +3,15 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2023 metamuffin */ +pub mod log; + +use super::account::session::AdminSession; use crate::{ database::Database, federation::Federation, import::import, routes::ui::{ - account::session::Session, + admin::log::rocket_uri_macro_r_admin_log, error::MyResult, layout::{DynLayoutPage, FlashDisplay, LayoutPage}, }, @@ -21,12 +24,9 @@ use std::time::Instant; #[get("/admin/dashboard")] pub fn r_admin_dashboard( - session: Session, + _session: AdminSession, database: &State, ) -> MyResult> { - if !session.user.admin { - Err(anyhow!("you not admin"))? - } admin_dashboard(database, None) } @@ -44,6 +44,10 @@ pub fn admin_dashboard<'a>( content: markup::new! { h1 { "Admin Panel" } @FlashDisplay { flash: flash.clone() } + ul { + li{a[href=uri!(r_admin_log(true))] { "Server Log (Warnings only)" }} + li{a[href=uri!(r_admin_log(false))] { "Server Log (Full) " }} + } h2 { "Library" } form[method="POST", action=uri!(r_admin_import())] { input[type="submit", value="(Re-)Import Library"]; @@ -76,13 +80,9 @@ pub fn admin_dashboard<'a>( #[post("/admin/generate_invite")] pub fn r_admin_invite( - session: Session, + _session: AdminSession, database: &State, ) -> MyResult> { - if !session.user.admin { - Err(anyhow!("you not admin"))? - } - let i = format!("{}", rand::thread_rng().gen::()); database.invite.insert(&i, &())?; @@ -96,13 +96,11 @@ pub struct DeleteUser { #[post("/admin/remove_user", data = "
")] pub fn r_admin_remove_user( - session: Session, + session: AdminSession, database: &State, form: Form, ) -> MyResult> { - if !session.user.admin { - Err(anyhow!("you not admin"))? - } + drop(session); database .user .remove(&form.name)? @@ -118,13 +116,11 @@ pub struct DeleteInvite { #[post("/admin/remove_invite", data = "")] pub fn r_admin_remove_invite( - session: Session, + session: AdminSession, database: &State, form: Form, ) -> MyResult> { - if !session.user.admin { - Err(anyhow!("you not admin"))? - } + drop(session); database .invite .remove(&form.invite)? @@ -135,13 +131,11 @@ pub fn r_admin_remove_invite( #[post("/admin/import")] pub async fn r_admin_import( - session: Session, + session: AdminSession, database: &State, federation: &State, ) -> MyResult> { - if !session.user.admin { - Err(anyhow!("you not admin"))? - } + drop(session); let t = Instant::now(); let r = import(&database, &federation).await; admin_dashboard( -- cgit v1.2.3-70-g09d2