Commit 00900141 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[FEAT] rmUser + gargMail (WIP)

parent fb027ced
...@@ -14,14 +14,17 @@ Portability : POSIX ...@@ -14,14 +14,17 @@ Portability : POSIX
module Gargantext.Database.Action.User module Gargantext.Database.Action.User
where where
-- import Data.Maybe (catMaybes)
import Gargantext.Database.Query.Table.User import Gargantext.Database.Query.Table.User
import Gargantext.Core.Types.Individu import Gargantext.Core.Types.Individu
import Gargantext.Database.Prelude import Gargantext.Database.Prelude
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.Database.Query.Table.Node.Error (HasNodeError(..)) import Gargantext.Prelude.Mail (gargMail)
import Gargantext.Database.Query.Table.Node.Error (HasNodeError(..), nodeError, NodeError(..))
import Gargantext.Database.Action.Flow (getOrMkRoot) import Gargantext.Database.Action.Flow (getOrMkRoot)
------------------------------------------------------------------------
mkUser :: HasNodeError err => NewUser GargPassword -> Cmd err Int64 mkUser :: HasNodeError err => NewUser GargPassword -> Cmd err Int64
mkUser u = mkUsers [u] mkUser u = mkUsers [u]
...@@ -30,8 +33,15 @@ mkUsers us = do ...@@ -30,8 +33,15 @@ mkUsers us = do
us' <- liftBase $ mapM toUserHash us us' <- liftBase $ mapM toUserHash us
r <- insertUsers $ map toUserWrite us' r <- insertUsers $ map toUserWrite us'
_ <- mapM getOrMkRoot $ map (\u -> UserName (_nu_username u)) us _ <- mapM getOrMkRoot $ map (\u -> UserName (_nu_username u)) us
_ <- liftBase gargMail
pure r pure r
-- | TODO ------------------------------------------------------------------------
rmUser :: HasNodeError err => User -> Cmd err Int64 rmUser :: HasNodeError err => User -> Cmd err Int64
rmUser = undefined rmUser (UserName un) = deleteUsers [un]
rmUser _ = nodeError NotImplYet
-- TODO
rmUsers :: HasNodeError err => [User] -> Cmd err Int64
rmUsers [] = pure 0
rmUsers _ = undefined
...@@ -20,6 +20,7 @@ Functions to deal with users, database side. ...@@ -20,6 +20,7 @@ Functions to deal with users, database side.
module Gargantext.Database.Query.Table.User module Gargantext.Database.Query.Table.User
( insertUsers ( insertUsers
, toUserWrite , toUserWrite
, deleteUsers
, queryUserTable , queryUserTable
, getUser , getUser
, insertUsersDemo , insertUsersDemo
...@@ -52,6 +53,10 @@ insertUsers us = mkCmd $ \c -> runInsert_ c insert ...@@ -52,6 +53,10 @@ insertUsers us = mkCmd $ \c -> runInsert_ c insert
where where
insert = Insert userTable us rCount Nothing insert = Insert userTable us rCount Nothing
deleteUsers :: [Username] -> Cmd err Int64
deleteUsers us = mkCmd $ \c -> runDelete c userTable
(\user -> in_ (map pgStrictText us) (user_username user))
----------------------------------------------------------------------- -----------------------------------------------------------------------
toUserWrite :: NewUser HashPassword -> UserWrite toUserWrite :: NewUser HashPassword -> UserWrite
toUserWrite (NewUser u m (Auth.PasswordHash p)) = toUserWrite (NewUser u m (Auth.PasswordHash p)) =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment