Fix email verification

This commit is contained in:
Saku Laesvuori 2023-09-29 09:56:44 +03:00
parent 12e2d2a3e0
commit cbcf23e316
Signed by: slaesvuo
GPG Key ID: 257D284A2A1D3A32
1 changed files with 4 additions and 3 deletions

View File

@ -96,10 +96,11 @@ isMember user = not_ $ isApplicant user
verifyEmailSecret :: MonadDB m => Text -> m Bool verifyEmailSecret :: MonadDB m => Text -> m Bool
verifyEmailSecret secret = runQuery $ do verifyEmailSecret secret = runQuery $ do
update $ \email -> do update $ \email -> do
verification <- from $ table @DBEmailVerification
set email [DBEmailVid =. val Nothing] set email [DBEmailVid =. val Nothing]
where_ $ email ^. DBEmailVid ==. just (verification ^. DBEmailVerificationId) where_ $ (>. val (0 :: Int)) $ subSelectCount $ do
&&. verification ^. DBEmailVerificationSecret ==. val secret verification <- from $ table @DBEmailVerification
where_ $ email ^. DBEmailVid ==. just (verification ^. DBEmailVerificationId)
&&. verification ^. DBEmailVerificationSecret ==. val secret
fmap (> 0) $ deleteCount $ do fmap (> 0) $ deleteCount $ do
verification <- from (table @DBEmailVerification) verification <- from (table @DBEmailVerification)
where_ $ verification ^. DBEmailVerificationSecret ==. val secret where_ $ verification ^. DBEmailVerificationSecret ==. val secret