From bb2d8fed451803c31df51789e1e6133123ac6f45 Mon Sep 17 00:00:00 2001
From: Philippe Loctaux
Date: Thu, 4 May 2023 21:28:07 +0200
Subject: [PATCH] admin/users: force delete totp secret, totp backup
---
crates/ezidam/src/routes/admin.rs | 2 +
crates/ezidam/src/routes/admin/users.rs | 80 +++++++++++++++++
.../pages/admin/users/view.html.tera | 90 +++++++++++++++++++
3 files changed, 172 insertions(+)
diff --git a/crates/ezidam/src/routes/admin.rs b/crates/ezidam/src/routes/admin.rs
index 3451588..0edacea 100644
--- a/crates/ezidam/src/routes/admin.rs
+++ b/crates/ezidam/src/routes/admin.rs
@@ -28,6 +28,8 @@ pub fn routes() -> Vec {
admin_users_archive,
admin_users_password_reset,
admin_users_paper_key_reset,
+ admin_users_totp_secret_disable,
+ admin_users_totp_backup_delete,
]
}
diff --git a/crates/ezidam/src/routes/admin/users.rs b/crates/ezidam/src/routes/admin/users.rs
index 5bb8cb5..1c87c9c 100644
--- a/crates/ezidam/src/routes/admin/users.rs
+++ b/crates/ezidam/src/routes/admin/users.rs
@@ -351,6 +351,7 @@ pub async fn admin_users_paper_key_reset(
.await?
.ok_or_else(|| Error::not_found("Could not find user"))?;
+ // Delete paper key
user.set_paper_key(&mut transaction, None).await?;
transaction.commit().await?;
@@ -366,3 +367,82 @@ pub async fn admin_users_paper_key_reset(
flash_message,
))
}
+
+#[derive(Debug, FromForm)]
+pub struct TotpSecretDisableForm {
+ pub disable: Option,
+}
+
+#[post("/admin/users//totp_secret", data = "