diff options
author | metamuffin <metamuffin@disroot.org> | 2023-08-05 22:25:25 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-08-05 22:45:30 +0200 |
commit | 7b0cdc8edec53f2b084ef28a8d6a537f1ebdd9ed (patch) | |
tree | 7dd547ece6eaa2d5e4c6f117b20db3ad5730b594 /server/src/routes/ui/admin/mod.rs | |
parent | 246fcc704621d7c9626c990ded29b82abab47c8b (diff) | |
download | jellything-7b0cdc8edec53f2b084ef28a8d6a537f1ebdd9ed.tar jellything-7b0cdc8edec53f2b084ef28a8d6a537f1ebdd9ed.tar.bz2 jellything-7b0cdc8edec53f2b084ef28a8d6a537f1ebdd9ed.tar.zst |
in-browser server log
Diffstat (limited to 'server/src/routes/ui/admin/mod.rs')
-rw-r--r-- | server/src/routes/ui/admin/mod.rs | 38 |
1 files changed, 16 insertions, 22 deletions
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 <metamuffin.org> */ +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<Database>, ) -> MyResult<DynLayoutPage<'static>> { - 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<Database>, ) -> MyResult<DynLayoutPage<'static>> { - if !session.user.admin { - Err(anyhow!("you not admin"))? - } - let i = format!("{}", rand::thread_rng().gen::<u128>()); database.invite.insert(&i, &())?; @@ -96,13 +96,11 @@ pub struct DeleteUser { #[post("/admin/remove_user", data = "<form>")] pub fn r_admin_remove_user( - session: Session, + session: AdminSession, database: &State<Database>, form: Form<DeleteUser>, ) -> MyResult<DynLayoutPage<'static>> { - 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 = "<form>")] pub fn r_admin_remove_invite( - session: Session, + session: AdminSession, database: &State<Database>, form: Form<DeleteInvite>, ) -> MyResult<DynLayoutPage<'static>> { - 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<Database>, federation: &State<Federation>, ) -> MyResult<DynLayoutPage<'static>> { - if !session.user.admin { - Err(anyhow!("you not admin"))? - } + drop(session); let t = Instant::now(); let r = import(&database, &federation).await; admin_dashboard( |