Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 1.25 KB

README.md

File metadata and controls

48 lines (35 loc) · 1.25 KB

snaplet-auth-acid

An AcidState backend for Snap's Auth Snaplet

Zopa is the author of this package and is attributed as such.

cabal update && cabal install snaplet-auth-acid
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell   #-}

module Main where

-- imports..
import           Snap.Snaplet.Auth.Backends.Acid             (initAcidAuthManager)

data App = App { _heist :: Snaplet (Heist App)
               , _sess  :: Snaplet SessionManager
               , _auth  :: Snaplet (AuthManager App)
               }

makeLenses ''App

instance HasHeist App where
    heistLens = subSnaplet heist

-- handles, forms and routes go here...

------------------------------------------------------------------------------
-- | The application initializer.
app :: SnapletInit App App
app = makeSnaplet "app" "An snaplet example application." Nothing $ do
    h <- nestSnaplet "" heist $ heistInit "templates"
    s <- nestSnaplet "sess" sess $ initCookieSessionManager "site_key.txt" "sess" (Just 3600)
    a <- nestSnaplet "auth" auth $ initAcidAuthManager defAuthSettings sess 
    addRoutes routes
    addAuthSplices h auth
    return $ App h s a

main :: IO ()
main = do
  (_, site, _) <- runSnaplet Nothing app
  quickHttpServe site