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" %}