|
- {-# OPTIONS -Wall #-}
-
- module Database (
- connect, addUser, validate, Connection, isLoggedIn, isAvailable,
- Username, Password
- ) where
-
- import Control.Monad.State
-
- import Network.CGI
-
- import AppMonad
- import DatabaseData
- import Shared
-
- validate :: Username -> Password -> App Bool
- validate username password = do
- c <- gets connection
- isValid <- liftIO $ validateC c username password
- when isValid $ do
- setCookie $ newCookie "username" username
- (Just str) <- liftIO $ getLoginStringC c username
- setCookie $ newCookie "login_string" str
- return isValid
-
- isLoggedIn :: App Bool
- isLoggedIn = defRunMaybeT False $ do
- c <- gets connection
- name <- MaybeT $ getCookie "username"
- loginString <- MaybeT $ getCookie "login_string"
- liftIO $ isLoggedInC c name loginString
-
- isAvailable :: Username -> App Bool
- isAvailable username = do
- c <- gets connection
- liftIO $ isAvailableC c username
-
- addUser :: Username -> Password -> App ()
- addUser username password = do
- c <- gets connection
- liftIO $ addUserC c username password
|