aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/admin/log.rs
diff options
context:
space:
mode:
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));