diff options
Diffstat (limited to 'src/indieauth/mod.rs')
-rw-r--r-- | src/indieauth/mod.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/indieauth/mod.rs b/src/indieauth/mod.rs index 5cdbf05..af49a7f 100644 --- a/src/indieauth/mod.rs +++ b/src/indieauth/mod.rs @@ -1,4 +1,4 @@ -use crate::database::Storage; +use crate::database::{settings::Setting, Storage}; use axum::{ extract::{Form, FromRef, Json, Query, State}, http::StatusCode, @@ -13,6 +13,7 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization, ContentType, HeaderMapExt}, TypedHeader, }; +use futures::FutureExt; use kittybox_indieauth::{ AuthorizationRequest, AuthorizationResponse, ClientMetadata, Error, ErrorKind, GrantRequest, GrantResponse, GrantType, IntrospectionEndpointAuthMethod, Metadata, PKCEMethod, Profile, @@ -319,12 +320,20 @@ async fn authorization_endpoint_get<A: AuthBackend, D: Storage + 'static>( { request.scope.replace(Scopes::new(vec![Scope::Profile])); } + let (blog_name, theme, channels) = tokio::join!( + db.get_setting::<crate::database::settings::SiteName>(&me) + .map(Result::unwrap_or_default), + db.get_setting::<crate::database::settings::Theme>(&me) + .map(Result::unwrap_or_default), + db.get_channels(&me).map(|i| i.unwrap_or_default()) + ); Html( kittybox_frontend_renderer::Template { title: "Confirm sign-in via IndieAuth", - blog_name: "Kittybox", - feeds: vec![], + blog_name: &blog_name.as_ref(), + feeds: channels, + theme: theme.into_inner(), user: None, content: kittybox_frontend_renderer::AuthorizationRequestPage { request, |