{-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE OverloadedStrings #-} {-| This module contains all the central authentication functionality. It exports a number of high-level functions to be used directly in your application handlers. We also export a number of mid-level functions that should be helpful when you are integrating with another way of confirming the authentication of login requests. -} module Snap.Snaplet.Auth ( -- * Higher Level Handler Functions createUser , usernameExists , saveUser , destroyUser , loginByUsername , loginByRememberToken , forceLogin , logout , currentUser , isLoggedIn -- * Lower Level Functions , markAuthSuccess , markAuthFail , checkPasswordAndLogin -- * Types , AuthManager(..) , IAuthBackend(..) , AuthSettings(..) , defAuthSettings , AuthUser(..) , defAuthUser , UserId(..) , Password(..) , AuthFailure(..) , BackendError(..) , Role(..) -- * Other Utilities , withBackend , encryptPassword , checkPassword , authenticatePassword , setPassword -- * Handlers , registerUser , loginUser , logoutUser , requireUser -- * Splice helpers , addAuthSplices , ifLoggedIn , ifLoggedOut ) where import Snap.Snaplet.Auth.AuthManager import Snap.Snaplet.Auth.Handlers import Snap.Snaplet.Auth.SpliceHelpers import Snap.Snaplet.Auth.Types