From 67d64ec4b368c48188c746f2dba2967ec4615fe5 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Mon, 24 Jun 2024 14:54:54 +0100 Subject: feat: add user account verification (#2190) * add verified column to users table * add database functions to check if verified, or to verify * getting there * verification check * use base64 urlsafe no pad * add verification client * clippy * correct docs * fix integration tests --- crates/atuin-server-database/src/lib.rs | 5 +++++ crates/atuin-server-database/src/models.rs | 1 + 2 files changed, 6 insertions(+) (limited to 'crates/atuin-server-database/src') diff --git a/crates/atuin-server-database/src/lib.rs b/crates/atuin-server-database/src/lib.rs index d2c16b3d..f6933b94 100644 --- a/crates/atuin-server-database/src/lib.rs +++ b/crates/atuin-server-database/src/lib.rs @@ -53,6 +53,11 @@ pub trait Database: Sized + Clone + Send + Sync + 'static { async fn get_user(&self, username: &str) -> DbResult; async fn get_user_session(&self, u: &User) -> DbResult; async fn add_user(&self, user: &NewUser) -> DbResult; + + async fn user_verified(&self, id: i64) -> DbResult; + async fn verify_user(&self, id: i64) -> DbResult<()>; + async fn user_verification_token(&self, id: i64) -> DbResult; + async fn update_user_password(&self, u: &User) -> DbResult<()>; async fn total_history(&self) -> DbResult; diff --git a/crates/atuin-server-database/src/models.rs b/crates/atuin-server-database/src/models.rs index b71a9bc9..894ac7f6 100644 --- a/crates/atuin-server-database/src/models.rs +++ b/crates/atuin-server-database/src/models.rs @@ -32,6 +32,7 @@ pub struct User { pub username: String, pub email: String, pub password: String, + pub verified: Option, } pub struct Session { -- cgit v1.3.1