From 609933d98f9940e99a8cc7ad4d3bcd73d5aa0b2e Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Sat, 18 Mar 2023 13:44:17 +0100 Subject: [PATCH] ezidam: oauth: redirect: check if user is archived --- crates/ezidam/src/error.rs | 4 ++++ crates/ezidam/src/routes/oauth/redirect.rs | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/crates/ezidam/src/error.rs b/crates/ezidam/src/error.rs index 96ea2ef..35f1290 100644 --- a/crates/ezidam/src/error.rs +++ b/crates/ezidam/src/error.rs @@ -47,4 +47,8 @@ impl Error { pub fn bad_request(value: M) -> Self { Self::new(Status::BadRequest, value) } + + pub fn forbidden(value: M) -> Self { + Self::new(Status::Forbidden, value) + } } diff --git a/crates/ezidam/src/routes/oauth/redirect.rs b/crates/ezidam/src/routes/oauth/redirect.rs index e125e3b..aaae0c2 100644 --- a/crates/ezidam/src/routes/oauth/redirect.rs +++ b/crates/ezidam/src/routes/oauth/redirect.rs @@ -40,6 +40,11 @@ pub async fn redirect_page( .await? .ok_or_else(|| Error::not_found("Could not find user"))?; + // Check if user is archived + if user.is_archived() { + return Err(Error::forbidden("User is archived")); + } + // Mark code as used code.use_code(&mut transaction).await?;