From f5e3dd644f1bed6a0da92282b284ee6d4233dcd9 Mon Sep 17 00:00:00 2001 From: Chris Jean-Marie Date: Sun, 22 Sep 2024 13:38:23 +0000 Subject: [PATCH] Set up html files for SPA --- backend/db/db.sqlite3-shm | Bin 0 -> 32768 bytes backend/db/db.sqlite3-wal | Bin 0 -> 82432 bytes backend/src/google_oauth.rs | 57 ++---------------- backend/src/main.rs | 14 +---- backend/templates/anonymous.html | 44 ++++++++++++++ backend/templates/base.html | 12 ++-- backend/templates/dashboard.html | 3 - backend/templates/index.html | 96 +++++++++++++++++++------------ 8 files changed, 113 insertions(+), 113 deletions(-) create mode 100644 backend/db/db.sqlite3-shm create mode 100644 backend/db/db.sqlite3-wal create mode 100644 backend/templates/anonymous.html diff --git a/backend/db/db.sqlite3-shm b/backend/db/db.sqlite3-shm new file mode 100644 index 0000000000000000000000000000000000000000..c2ea7978dc6e21e2f3d8353415e1aab658671878 GIT binary patch literal 32768 zcmeI)J5EAT5CG6YK|}%h6|b?t-VRq_!VWN@q+tQ9f?ZJ2)3O~mB6H0vY_X6;&Loq$ zxw+r7fT=!Tqr`1yBVsVgdY?J%%-4tR@@=tNJ|C*%?q&P2Z@zD4)tT$_sP8D}e*K7g zI-csmUDk4M$ue%&^|y1mT@WBZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t7B5(1>RCSnR}O^kWd?i@n3e1pZ#26%W~UwDcnt1g=fsCOiGMv&(KbdNGXAwSC`z x2@oJafB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfWW^HI00}kARqt$ literal 0 HcmV?d00001 diff --git a/backend/db/db.sqlite3-wal b/backend/db/db.sqlite3-wal new file mode 100644 index 0000000000000000000000000000000000000000..1cb50c0c1147acefb9e13a07ba89861e084832df GIT binary patch literal 82432 zcmeI*d#EJYT?geS zd1M(TW-t3Im>#C7u3y!s9@PA(^DX6<&i(2Z`j@A-w%)U~o~pF*?6s%A_}ah!oYhW# zz4E8QSLg2hemC@QkF(mr?q2Za>4U%CI{4pp$)M@F|kj|!Uq2*2K)DAv}6YAKP zf=$|4|M}m3!M9&}Ci3dyQg_`KcxpSpb@2Iv%Kq*BkMF;*_r{*R_t?ePE`H>~n-}I6 zo;ZK)e0KNx?#Fg7?|flhHGV1hFc0*yZstOr zWm$--q~k7y*n-OxX_p_dSSV!nyHgqWyontyn_@f}cM{Xcc+|90Zlxm#sZca}g+8-h zP`J!#7{`0f;%H^JBQhVatfEmZBGt@cXrghg{P#gY%*D~DmAwv7^dfEV?$RM zF60oK`J{>D62=7A>K^hy9B=}@#LmNQSaGV zzFPO3^e|g)O!&%>O#G5y;mD+uwCZwa#9>_WM$;-P<3Wy3bt_pt5iW(6x-P_{;=M~8 zZpHgHCF%<;=VVw}kEJHFQZ~bv68yMWF7#!@yOk-c7Lin|O%jz=x1I@m71NDX@+{GC ziYak9j+woCmpI%PKej0`(F(lQEGn&JFI;J)^s<(kR2-C%W?6>xe0>&I%EDBQ)e8BH zREj#X-%3U;wT(uztZS$v=iVg_p`O^3h*UMfDTs;YR4H-s`M9HvVufNpGS6#Pjjn{O zLxg&2f!rw(W*+aQn{jJ_n_6+AM=Q%#xO(prhfwd`lu*b@sE1odYuuxWRxaWi&2pw_ zL}SQ`hp3n<=E|+9Rqe!k@xDj9@!Alh!XzO&y<}TWM4jO1zyCq|_@;zz)vMKE%+09& zyc^-Uo@vlwFeX0y2{&v7WV7qdSZtA z4?Lm{HYG*_tzC^8AwG%gk#T4^)lfLL5}aZyiu5Y+yr#5`^?C(X~YtBBfm%~;n~NY=QvSQ(0X-REwpl(Sy^z45}!g{(H~f;YI;d^+w`l0EOE6#Y}H@f=K^xLFSa)& zYPB|z;@QGNsT02uag=lwMg2^kV#mjsPbx&y%|G zz-$OAE&&}%p`A*GTTiq-vek|Rm2I*z!Vcs(>=#iHt0;$v~B z<@u#NcN>${5*Hb(#_n^_9v)F=HYLij*|Mt_%~HP|>60nZW!j$jel%64D4%E~T|>cr zc{xZ$lWwM2mS+{u_O<3x>qt2*f^)@t@9x9P;OR|?UM@yj#2?4pcz4k@buLCp$}x#B z4QH^3`B1!{iOxceS)nb(`nAxq##x?I5Yo9?zALuF54xDgPpwNFbc&oDOLet@vEl}b zHs!|2aK|5M&GxjHT1vT?HY$$9PBS~oaVbC2659NzQ63cpF+38CsTREw+`4>UU*O{T z&s0BculoW|ZeNAI0NmYz00@8p2!Oyt2|!=qSnC1$0?-$LzQElrxx@1U`U21wfWE+; zt?I+`0{Q~~|9ydD;|TnlFTU{8@Bg)5fpG*6brT3b0s#;J0T2KI5C8!X009sH0T2Lz zAC17>;|R{Z&2a?V!3zK1ID&88_-_3Ai$C#a>%PFbz3W>CzjKh=|Ihv3+7Ac+fC&UZ z00ck)1V8`;KmY_l00cnb1Pkcrwzqbx)iY-ll_xwCC1f*ZAQ2k|qKd&IVjD!2Bulml zRRmQ5tuvVaW2i-_lCkt&jDFiP015473s{#*LlqXo+j zvSOOZHbemhGbzXrF-5$^8G^zwo~jBahCof51*<5j!Gd`X5tT`ZNs3GjoAIh>vm3uF zu$$lhtbY1v!ORpyQNRSL%v`TA#Q}w>Ab}~iA`?y^oS{-|iiFsR=lFojlo=w#z=-1r zwgj89U`znJ5&CU*^VR3|$Bq_k1WG1n1?xaf3yB6NB8nA?1cjL#XHZe$O$kekvt=om zhXuxFP+Y|agk{00JNY0w4eaAOHd&00JNY0`ES7hkIV&*#PQTzCh-^?yr+S{5!}UeD@te zu*Dz%0w4eak5u3=U*OqI9uSSjJuB$lH=T5jqEb~%^Q)FWSIb$h8nuk2V-LgjqEHYV zVVo*z`KF&J_RM^zY`8@w*CRo~6yy#NARw@frSkQ0T2KI5C8!X009sH0T2KI z5ID&KcaJ03ejB-i>v06fatHtNqrazq`StXltos7nd!Ia(I~e>ECJ+Dt5C8!X009sH z0T2KI5CDN6wt&8UlrU$DlE@pBB4#N;LZ4z=h^j$|ouSxFCL*J}6eQDOo3n!0KF$aN z>qJ8ilKv#jAuK5BIyTU>4VB%x)MdBb>ySGLxr0AAcd+%{&$1VQ4t1%B8kIxHUq zKmY_l00ck)1V8`;KmY_l00bVPz{5Q+@LaG4$8rbX_}i~s@_+I}opoQ}sqOsM!RHSu z`?vQ$zW>7B8+-QNV;5h$_>l{5UYK8a;{3Jq+1=~AAKSgW^QE1aw!gD|HJBYH5C8!X z009sHfsMdnzQA*v+(EBD4R;%IC{@l6q;53H7rZ5>>DiVri%8LVxfjus)7&z=>fnx- za#|fW${;dmEYYk&XK@mR+(B1@+(F14yfa@7atFg>X&S9T?jYn2-g#a??jYn2KC;}w z{}8V?J{;Zp!n!Z;GXP;xY2cLo5LB?)=3bR|^_?&*`$e7xSDl4XmY(otE6s#aa#1!!s zX9x<%c&aLx7y>nIhIn35k*M-qupgL&n54+muo@% z9SDE`2!H?xfB*=900@8p2!H?xoFIXRdtTs!!4@9N9pt`z{qoCy@Kf(w_XQw#@C5CD zSXB@J0T2LzcbLFozQ6}Jxr03~UO@wSUiUd`rZ3!x)11kg?Iqk=XoX|3mKV{QmGpQq zN)+^Nv(})~mYm=+UT4&pEi)4bat9%Iu#tk?!8`NSAa@XQ2c;!Or2*s)-g#a??jYn2 zKC;}wU#NcXg`a=@zizMl0+2iS4!gyK)d2wz009sGBKG=I4g(=w2^GD=V8o1 z1~CmJNlfBJj#(D32JwKu!EO&PLhc}8w?5EjxBGADXOE0!l~C0(Y-GrUN1`YxNHqn9 zWQ9;s#uk+gKr6-|p!nKKnbRj7>u@gSzrk~l<7Qw`?1J9qGZ E0Jj8?@c;k- literal 0 HcmV?d00001 diff --git a/backend/src/google_oauth.rs b/backend/src/google_oauth.rs index 72994e6..b739bb6 100644 --- a/backend/src/google_oauth.rs +++ b/backend/src/google_oauth.rs @@ -1,10 +1,8 @@ -use axum_session::{Session, SessionAnyPool}; -use axum::{ - extract::Query, - response::{IntoResponse, Redirect}, -}; +use axum:: + response::{IntoResponse, Redirect} +; use oauth2::{ - basic::BasicClient, reqwest::async_http_client, AuthUrl, AuthorizationCode, ClientId, ClientSecret, CsrfToken, PkceCodeChallenge, RedirectUrl, Scope, TokenResponse, TokenUrl + basic::BasicClient, AuthUrl, ClientId, ClientSecret, CsrfToken, PkceCodeChallenge, RedirectUrl, Scope, TokenUrl }; use serde::Deserialize; use std::env; @@ -35,53 +33,6 @@ pub async fn google_auth() -> impl IntoResponse { Redirect::to(&auth_url.to_string()) } -pub async fn google_authorized(_session: Session, - Query(query): Query, - // Extension(oauth_clients): Extension>, -) -> impl IntoResponse { - // Check for Google client - // if oauth_clients.contains_key("Google") { - - println!("{:?}", query); - - // Get an auth token - let token = match google_oauth_client() - .exchange_code(AuthorizationCode::new(query.code.clone())) - .request_async(async_http_client) - .await { - Ok(token) => token, - Err(_) => panic!("Didn't get a token"), - }; - /* - // Fetch user data from google - let client = reqwest::Client::new(); - let user_data: User = client - // https://discord.com/developers/docs/resources/user#get-current-user - .get("https://discordapp.com/api/users/@me") - .bearer_auth(token.access_token().secret()) - .send() - .await - .unwrap() - .json::() - .await - .unwrap(); - */ - - //(headers, Redirect::to("/dashboard".parse().unwrap())) - // } - - let mut page = String::new(); - page.push_str(&"Display the data returned by Google\n".to_string()); - page.push_str(&"\nState: ".to_string()); - page.push_str(&query.state); - page.push_str(&"\nCode: ".to_string()); - page.push_str(&query.code); - page.push_str(&"\nAccess Token: ".to_string()); - page.push_str(&token.access_token().secret()); - - page -} - pub fn google_oauth_client() -> BasicClient { if std::env::var_os("GOOGLE_CLIENT_ID").is_none() { std::env::set_var("GOOGLE_CLIENT_ID", "735264084619-clsmvgdqdmum4rvrcj0kuk28k9agir1c.apps.googleusercontent.com") diff --git a/backend/src/main.rs b/backend/src/main.rs index 69596c5..ba08fdf 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -1,10 +1,8 @@ use std::net::SocketAddr; use askama::Template; use axum::{ - extract::{FromRef, State}, middleware, response::{Html, IntoResponse, Redirect, Response}, routing::{get, get_service}, Extension, Router + middleware, response::{Html, IntoResponse, Response}, routing::{get, get_service}, Extension, Router }; -use axum_extra::TypedHeader; -use headers::Cookie; use http::{Request, StatusCode}; use sqlx::{sqlite::SqlitePoolOptions, SqlitePool}; use tower_http::services::ServeDir; @@ -44,13 +42,6 @@ struct IndexTemplate { name: String, } -#[derive(Template)] -#[template(path = "login.html")] -struct LoginTemplate { - logged_in: bool, - name: String, -} - #[derive(Clone)] pub struct AppState { pub db_pool: SqlitePool, @@ -109,10 +100,9 @@ async fn main() { async fn index( Extension(user_data): Extension>, - request: Request, + _request: Request, ) -> impl IntoResponse { let user_email = user_data.map(|s| s.user_email); - let login_return_url = "?return_url=".to_owned() + &*request.uri().to_string(); let logged_in = user_email.is_some(); let name = user_email.unwrap_or_default(); diff --git a/backend/templates/anonymous.html b/backend/templates/anonymous.html new file mode 100644 index 0000000..70f38cb --- /dev/null +++ b/backend/templates/anonymous.html @@ -0,0 +1,44 @@ + + -{% endblock content %} \ No newline at end of file diff --git a/backend/templates/index.html b/backend/templates/index.html index 87c9d82..d07128b 100644 --- a/backend/templates/index.html +++ b/backend/templates/index.html @@ -1,46 +1,66 @@ {% extends "base.html" %} {% block content %} +{% if logged_in %} +
+
+

This will be the private information area for the extended Jean-Marie family.

+
+

Web links

+

Fonts

+ +

Family tree

+ +
+
+{% else %}