module Snap.Snaplet.Auth
  (
  
    createUser
  , usernameExists
  , saveUser
  , destroyUser
  , loginByUsername
  , loginByRememberToken
  , forceLogin
  , logout
  , currentUser
  , isLoggedIn
  
  , markAuthSuccess
  , markAuthFail
  , checkPasswordAndLogin
  
  , AuthManager(..)
  , IAuthBackend(..)
  , AuthSettings(..)
  , defAuthSettings
  , AuthUser(..)
  , defAuthUser
  , UserId(..)
  , Password(..)
  , AuthFailure(..)
  , Role(..)
  
  , authSettingsFromConfig
  , withBackend
  , encryptPassword
  , checkPassword
  , authenticatePassword
  , setPassword
  , encrypt
  , verify
  
  , registerUser
  , loginUser
  , logoutUser
  , requireUser
  , setPasswordResetToken
  , clearPasswordResetToken
  
  , addAuthSplices
  , compiledAuthSplices
  , userCSplices
  , userISplices
  , ifLoggedIn
  , ifLoggedOut
  , loggedInUser
  )
  where
import Snap.Snaplet.Auth.AuthManager
import Snap.Snaplet.Auth.Handlers
import Snap.Snaplet.Auth.SpliceHelpers
import Snap.Snaplet.Auth.Types