From 61e81ca894d456bb82d3be5865ba57d93c7fc9a5 Mon Sep 17 00:00:00 2001 From: Per Stark Date: Thu, 26 Dec 2024 23:05:14 +0100 Subject: [PATCH] feat signout and reactivity --- src/bin/server.rs | 2 ++ src/server/routes/html/index.rs | 8 +++++--- src/server/routes/html/mod.rs | 1 + src/server/routes/html/signout.rs | 18 ++++++++++++++++++ templates/auth/signup_form.html | 3 +-- templates/body_base.html | 16 ++++++---------- templates/head_base.html | 3 ++- 7 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 src/server/routes/html/signout.rs diff --git a/src/bin/server.rs b/src/bin/server.rs index 15290be..0c95877 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -26,6 +26,7 @@ use zettle_db::{ html::{ index::index_handler, search_result::search_result_handler, + signout::sign_out_user, signup::{process_signup_and_show_verification, show_signup_form}, }, }, @@ -147,6 +148,7 @@ fn html_routes( Router::new() .route("/", get(index_handler)) .route("/search", get(search_result_handler)) + .route("/signout", get(sign_out_user)) .route( "/signup", get(show_signup_form).post(process_signup_and_show_verification), diff --git a/src/server/routes/html/index.rs b/src/server/routes/html/index.rs index d1bd6d0..dc5e108 100644 --- a/src/server/routes/html/index.rs +++ b/src/server/routes/html/index.rs @@ -13,6 +13,7 @@ use crate::{ page_data!(IndexData, "index.html", { queue_length: u32, + user: Option }); pub async fn index_handler( @@ -21,11 +22,12 @@ pub async fn index_handler( ) -> Result, ApiError> { info!("Displaying index page"); - info!("{:?}", auth.current_user); - let queue_length = state.rabbitmq_consumer.get_queue_length().await?; - let data = IndexData { queue_length }; + let data = IndexData { + queue_length, + user: auth.current_user, + }; let output = render_template(IndexData::template_name(), data, state.templates)?; diff --git a/src/server/routes/html/mod.rs b/src/server/routes/html/mod.rs index c3f8712..a409ff9 100644 --- a/src/server/routes/html/mod.rs +++ b/src/server/routes/html/mod.rs @@ -6,6 +6,7 @@ use minijinja_autoreload::AutoReloader; pub mod index; pub mod search_result; pub mod signin; +pub mod signout; pub mod signup; pub trait PageData { diff --git a/src/server/routes/html/signout.rs b/src/server/routes/html/signout.rs new file mode 100644 index 0000000..4bbc35b --- /dev/null +++ b/src/server/routes/html/signout.rs @@ -0,0 +1,18 @@ +use axum::response::{IntoResponse, Redirect}; +use axum_session_auth::AuthSession; +use axum_session_surreal::SessionSurrealPool; +use surrealdb::{engine::any::Any, Surreal}; + +use crate::{error::ApiError, storage::types::user::User}; + +pub async fn sign_out_user( + auth: AuthSession, Surreal>, +) -> Result { + if !auth.is_authenticated() { + return Ok(Redirect::to("/").into_response()); + } + + auth.logout_user(); + + Ok(Redirect::to("/").into_response()) +} diff --git a/templates/auth/signup_form.html b/templates/auth/signup_form.html index 855e5e8..0145ed4 100644 --- a/templates/auth/signup_form.html +++ b/templates/auth/signup_form.html @@ -15,8 +15,7 @@ - +
diff --git a/templates/body_base.html b/templates/body_base.html index edd12e8..7617ce4 100644 --- a/templates/body_base.html +++ b/templates/body_base.html @@ -5,21 +5,17 @@ diff --git a/templates/head_base.html b/templates/head_base.html index d00b90e..fc71f55 100644 --- a/templates/head_base.html +++ b/templates/head_base.html @@ -4,10 +4,11 @@ - {% block title %}minnet{% endblock %} + {% block title %}Minne{% endblock %} +