diff --git a/src/endpoints/mod.rs b/src/endpoints/mod.rs index b1d433aa..bde8c43b 100644 --- a/src/endpoints/mod.rs +++ b/src/endpoints/mod.rs @@ -29,6 +29,7 @@ pub fn init(cfg: &mut ServiceConfig) { cfg.service(user::post_edit::post_edit); cfg.service(user::patch::patch); cfg.service(user::delete::delete); + cfg.service(user::get_logout::get); cfg.service(events::get_new::get); cfg.service(events::post_new::post); diff --git a/src/endpoints/user/get_logout.rs b/src/endpoints/user/get_logout.rs new file mode 100644 index 00000000..1c0202b3 --- /dev/null +++ b/src/endpoints/user/get_logout.rs @@ -0,0 +1,10 @@ +use actix_identity::Identity; +use actix_web::{http::header::LOCATION, HttpResponse, Responder}; + + +#[actix_web::get("/logout")] +pub async fn get(user: Identity) -> impl Responder { + user.logout(); + + HttpResponse::Found().insert_header((LOCATION, "/")).finish() +} diff --git a/src/endpoints/user/mod.rs b/src/endpoints/user/mod.rs index 72aef055..0b3dc7e1 100644 --- a/src/endpoints/user/mod.rs +++ b/src/endpoints/user/mod.rs @@ -5,3 +5,4 @@ pub mod get_edit; pub mod post_edit; pub mod patch; pub mod delete; +pub mod get_logout; diff --git a/templates/nav.html b/templates/nav.html index c69c08e4..97d18491 100644 --- a/templates/nav.html +++ b/templates/nav.html @@ -16,7 +16,7 @@