From 3e834092ba230ee081065a3b80ad227d585b5a13 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 31 May 2025 03:26:45 +0200 Subject: get rid of admin session; checking manually instead --- server/src/ui/admin/log.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'server/src/ui/admin/log.rs') diff --git a/server/src/ui/admin/log.rs b/server/src/ui/admin/log.rs index f0a85f2..c26b697 100644 --- a/server/src/ui/admin/log.rs +++ b/server/src/ui/admin/log.rs @@ -10,7 +10,7 @@ use crate::{ use jellyimport::is_importing; use jellylogic::{ admin::log::{get_log_buffer, get_log_stream}, - session::AdminSession, + session::Session, }; use jellyui::{ admin::log::{render_log_line, ServerLogPage}, @@ -23,10 +23,11 @@ use serde_json::json; #[get("/admin/log?", rank = 2)] pub fn r_admin_log<'a>( - session: A, + session: A, warnonly: bool, lang: AcceptLanguage, ) -> MyResult> { + session.0.assert_admin()?; let AcceptLanguage(lang) = lang; let messages = get_log_buffer(warnonly) .into_iter() @@ -40,7 +41,7 @@ pub fn r_admin_log<'a>( RenderInfo { importing: is_importing(), session: Some(SessionInfo { - user: session.0 .0.user, + user: session.0.user, }), }, lang, @@ -49,14 +50,18 @@ pub fn r_admin_log<'a>( #[get("/admin/log?stream&&", rank = 1)] pub fn r_admin_log_stream( - _session: A, + session: A, ws: WebSocket, warnonly: bool, html: bool, ) -> Stream!['static] { + // TODO type problems + let ok = session.0.assert_admin().is_ok(); let mut stream = get_log_stream(warnonly); Stream! { ws => - if html { + if !ok { + yield Message::Text("unauthorized".to_string()); + } else if html { let _ = ws; while let Ok(line) = stream.recv().await { yield Message::Text(render_log_line(&line)); -- cgit v1.2.3-70-g09d2