| Safe Haskell | None |
|---|
Snap.Snaplet.Auth.Backends.Persistent
Contents
- data PersistAuthManager
- initPersistAuthManager :: SnapletLens b SessionManager -> ConnectionPool -> SnapletInit b (AuthManager b)
- initPersistAuthManager' :: AuthSettings -> SnapletLens b SessionManager -> ConnectionPool -> SnapletInit b (AuthManager b)
- authEntityDefs :: [EntityDef SqlType]
- data SnapAuthUserGeneric backend = SnapAuthUser {
- snapAuthUserLogin :: !Text
- snapAuthUserEmail :: !Text
- snapAuthUserPassword :: !Text
- snapAuthUserActivatedAt :: !(Maybe UTCTime)
- snapAuthUserSuspendedAt :: !(Maybe UTCTime)
- snapAuthUserRememberToken :: !(Maybe Text)
- snapAuthUserLoginCount :: !Int
- snapAuthUserFailedLoginCount :: !Int
- snapAuthUserLockedOutUntil :: !(Maybe UTCTime)
- snapAuthUserCurrentLoginAt :: !(Maybe UTCTime)
- snapAuthUserLastLoginAt :: !(Maybe UTCTime)
- snapAuthUserCurrentIp :: !(Maybe Text)
- snapAuthUserLastIp :: !(Maybe Text)
- snapAuthUserCreatedAt :: !UTCTime
- snapAuthUserUpdatedAt :: !UTCTime
- snapAuthUserResetToken :: !(Maybe Text)
- snapAuthUserResetRequestedAt :: !(Maybe UTCTime)
- snapAuthUserRoles :: !String
- snapAuthUserMeta :: !String
- type SnapAuthUser = SnapAuthUserGeneric SqlBackend
- type SnapAuthUserId = KeyBackend SqlBackend SnapAuthUser
- migrateAuth :: forall m. (MonadBaseControl IO m, MonadIO m, MonadLogger m) => Migration (SqlPersistT m)
- db2au :: Entity SnapAuthUser -> AuthUser
- dbUserSplices :: Monad n => [(Text, Promise (Entity SnapAuthUser) -> Splice n)]
- userDBKey :: AuthUser -> Maybe SnapAuthUserId
- textPassword :: Password -> Text
Documentation
data PersistAuthManager Source
Instances
initPersistAuthManager :: SnapletLens b SessionManager -> ConnectionPool -> SnapletInit b (AuthManager b)Source
Initializer that gets AuthSettings from a config file.
initPersistAuthManager' :: AuthSettings -> SnapletLens b SessionManager -> ConnectionPool -> SnapletInit b (AuthManager b)Source
Initializer that lets you specify AuthSettings.
authEntityDefs :: [EntityDef SqlType]Source
The list of entity definitions this snaplet exposes. You need them so that you can append to your application's list of entity definitions and perform the migration in one block.
See how this example combined an app's own entity definitions and the auth snaplet's in one migration block:
share [mkMigrate "migrateAll"] $
authEntityDefs ++
$(persistFileWith lowerCaseSettings "schema.txt")
Persistent Auth Data Types
Persistent creates its own data types mirroring the database schema, so we
have to export this extra layer of types and conversion to AuthUser.
data SnapAuthUserGeneric backend Source
Constructors
| SnapAuthUser | |
Fields
| |
Instances
| PersistFieldSql (SnapAuthUserGeneric backend) | |
| PersistEntity (SnapAuthUserGeneric backend) | |
| PersistField (SnapAuthUserGeneric backend) |
migrateAuth :: forall m. (MonadBaseControl IO m, MonadIO m, MonadLogger m) => Migration (SqlPersistT m)Source
db2au :: Entity SnapAuthUser -> AuthUserSource
Function to convert a SnapAuthUser entity into the auth snaplet's
AuthUser.
dbUserSplices :: Monad n => [(Text, Promise (Entity SnapAuthUser) -> Splice n)]Source
Splices for SnapAuthUser that are equivalent to the ones for
AuthUser.
textPassword :: Password -> TextSource