aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/admin/log.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-31 03:26:45 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-31 03:26:45 +0200
commit3e834092ba230ee081065a3b80ad227d585b5a13 (patch)
treeb168d1524045716e6922c137f1ad92bdf3f47994 /server/src/ui/admin/log.rs
parent3b15caade07e8fbe351fed9aceb3f435bf58368e (diff)
downloadjellything-3e834092ba230ee081065a3b80ad227d585b5a13.tar
jellything-3e834092ba230ee081065a3b80ad227d585b5a13.tar.bz2
jellything-3e834092ba230ee081065a3b80ad227d585b5a13.tar.zst
get rid of admin session; checking manually instead
Diffstat (limited to 'server/src/ui/admin/log.rs')
-rw-r--r--server/src/ui/admin/log.rs15
1 files changed, 10 insertions, 5 deletions
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?<warnonly>", rank = 2)]
pub fn r_admin_log<'a>(
- session: A<AdminSession>,
+ session: A<Session>,
warnonly: bool,
lang: AcceptLanguage,
) -> MyResult<RawHtml<String>> {
+ 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&<warnonly>&<html>", rank = 1)]
pub fn r_admin_log_stream(
- _session: A<AdminSession>,
+ session: A<Session>,
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));