From 1e42208e6b7ac54dac39b609dac241b591223a65 Mon Sep 17 00:00:00 2001 From: Philippe Loctaux
Date: Mon, 1 May 2023 11:58:02 +0200
Subject: [PATCH] guards: added TotpRequest guard
---
crates/ezidam/src/guards.rs | 4 +++-
crates/ezidam/src/guards/totp_request.rs | 25 ++++++++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
create mode 100644 crates/ezidam/src/guards/totp_request.rs
diff --git a/crates/ezidam/src/guards.rs b/crates/ezidam/src/guards.rs
index 340d42e..0947f06 100644
--- a/crates/ezidam/src/guards.rs
+++ b/crates/ezidam/src/guards.rs
@@ -5,6 +5,7 @@ mod jwt;
mod need_setup;
mod refresh_token;
mod reset_password_token;
+mod totp_request;
pub use self::jwt::*;
pub use access_token::AccessToken;
@@ -12,4 +13,5 @@ pub use basic_auth::BasicAuth;
pub use completed_setup::CompletedSetup;
pub use need_setup::NeedSetup;
pub use refresh_token::RefreshToken;
-pub use reset_password_token::RocketResetPasswordToken;
\ No newline at end of file
+pub use reset_password_token::RocketResetPasswordToken;
+pub use totp_request::TotpRequest;
diff --git a/crates/ezidam/src/guards/totp_request.rs b/crates/ezidam/src/guards/totp_request.rs
new file mode 100644
index 0000000..16cd50f
--- /dev/null
+++ b/crates/ezidam/src/guards/totp_request.rs
@@ -0,0 +1,25 @@
+use rocket::request::{FromRequest, Outcome};
+use rocket::Request;
+use users::totp_login_request::{TOTP_REQUEST_COOKIE_NAME, TOTP_REQUEST_LEN};
+
+pub struct TotpRequest(pub String);
+
+#[rocket::async_trait]
+impl<'r> FromRequest<'r> for TotpRequest {
+ type Error = std::convert::Infallible;
+
+ async fn from_request(request: &'r Request<'_>) -> Outcome