From e9200f868240d471dcd99e7711bb3cb10d6f30c9 Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Sat, 18 Mar 2023 00:49:29 +0100 Subject: [PATCH] ezidam: oauth: redirect: redirect automatically to home page --- crates/ezidam/src/routes/oauth.rs | 1 + crates/ezidam/src/routes/oauth/redirect.rs | 9 +++++++++ crates/ezidam/templates/pages/oauth/redirect.html.tera | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/crates/ezidam/src/routes/oauth.rs b/crates/ezidam/src/routes/oauth.rs index 1dac486..46361e3 100644 --- a/crates/ezidam/src/routes/oauth.rs +++ b/crates/ezidam/src/routes/oauth.rs @@ -32,5 +32,6 @@ pub mod content { pub user_id: String, pub name: Option, pub username: String, + pub home_page: String, } } diff --git a/crates/ezidam/src/routes/oauth/redirect.rs b/crates/ezidam/src/routes/oauth/redirect.rs index 7da499e..e125e3b 100644 --- a/crates/ezidam/src/routes/oauth/redirect.rs +++ b/crates/ezidam/src/routes/oauth/redirect.rs @@ -1,6 +1,7 @@ use crate::routes::prelude::*; use authorization_codes::AuthorizationCode; use rocket::{get, UriDisplayQuery}; +use settings::Settings; use users::User; #[derive(Debug, FromForm, UriDisplayQuery)] @@ -42,6 +43,13 @@ pub async fn redirect_page( // Mark code as used code.use_code(&mut transaction).await?; + // Get base url + let settings = Settings::get(&mut transaction).await?; + let home_page = settings + .url() + .map(String::from) + .ok_or_else(|| Error::bad_request("Server url is not set"))?; + transaction.commit().await?; // HTTP Response @@ -49,5 +57,6 @@ pub async fn redirect_page( user_id: user.id().to_string(), name: user.name().map(String::from), username: user.username().to_string(), + home_page, })) } diff --git a/crates/ezidam/templates/pages/oauth/redirect.html.tera b/crates/ezidam/templates/pages/oauth/redirect.html.tera index a50d207..4ae3469 100644 --- a/crates/ezidam/templates/pages/oauth/redirect.html.tera +++ b/crates/ezidam/templates/pages/oauth/redirect.html.tera @@ -32,6 +32,10 @@ + {% include "shell/footer" %}