also require login for /dashboard

This commit is contained in:
2026-04-27 14:01:35 +02:00
parent 914d8a48c1
commit f239de1ca0

View File

@@ -1,6 +1,9 @@
use axum::extract::{Request, State};
use axum::{
extract::{Request, State},
response::{IntoResponse, Redirect, Response},
};
use chrono::{DateTime, Utc};
use maud::{Markup, PreEscaped, html};
use maud::{PreEscaped, html};
use crate::{
MnemoState,
@@ -21,12 +24,15 @@ const LINKS: &[(&str, &str, &str)] = &[
("Add Person", "/persons", icons::CONTACT),
];
pub async fn page(State(state): State<MnemoState>, req: Request) -> Result<Markup, CompositeError> {
pub async fn page(
State(state): State<MnemoState>,
req: Request,
) -> Result<Response, CompositeError> {
let mut conn = state.pool.acquire().await?;
let u = User::authenticate(&mut *conn, req.headers())
.await
.ok()
.flatten();
let u = match User::authenticate(&mut *conn, req.headers()).await? {
Some(u) => Some(u),
None => return Ok(Redirect::to(&format!("/login?r={}", req.uri().path())).into_response()),
};
let newest_quote = match u {
Some(_) => Quote::get_newest(&mut *conn).await?,
@@ -114,7 +120,7 @@ pub async fn page(State(state): State<MnemoState>, req: Request) -> Result<Marku
div class="text-4xl xs:text-6xl sm:text-8xl text-neutral-800/25 mt-16 text-center font-semibold font-lora select-none" {"Mnemosyne"}
),
))
).into_response())
}
fn format_time_ago(dt: DateTime<Utc>) -> String {