inter-hub-haskell/Web/Controller/Sessions.hs

30 lines
835 B
Haskell
Raw Normal View History

module Web.Controller.Sessions where
import Web.Types
import Web.View.Sessions.New
import Generated.Types
import IHP.LoginSupport.Helper.Controller
import IHP.Prelude
import IHP.ControllerPrelude
instance Controller SessionsController where
action NewSessionAction = do
let user = newRecord @User
render NewView { user }
action CreateSessionAction = do
(user, token) <- authenticate @User
case user of
Just user -> do
setSession "userId" (show user.id)
redirectTo HubsAction
Nothing -> do
setErrorMessage "Invalid email or password"
redirectTo NewSessionAction
action DeleteSessionAction = do
unsetSession "userId"
redirectTo NewSessionAction
instance SessionsControllerConfig User