From 1dd2706199705dbf0cfdd49fbcef85390e349de1 Mon Sep 17 00:00:00 2001 From: Swrup Date: Fri, 1 Apr 2022 05:31:52 +0200 Subject: [PATCH] fix update_email to already a taken one --- src/user.ml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/user.ml b/src/user.ml index 9be917b..b29381a 100644 --- a/src/user.ml +++ b/src/user.ml @@ -139,7 +139,9 @@ let () = (Array.map (fun query -> Db.exec query ()) tables) then Dream.error (fun log -> log "can't create user tables") -let exist_nick nick = Result.is_ok (Db.find Q.get_user nick) +let exist_nick nick = Result.is_ok (Db.find Q.get_user_id_from_nick nick) + +let exist_email email = Result.is_ok (Db.find Q.get_user_id_from_email email) let get_metadata nick = let^ metadata = Db.find Q.get_metadata nick in @@ -286,8 +288,10 @@ let update_nick nick user_id = let update_email email user_id = if valid_email email then - let^ () = Db.exec Q.update_email (email, user_id) in - Ok () + if not (exist_email email) then + let^ () = Db.exec Q.update_email (email, user_id) in + Ok () + else Error "email already taken" else Error "invalid email" let update_password password user_id =