-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Happstack Authentication Library
--
-- A themeable authentication library with support for username+password
-- and OpenId.
@package happstack-authenticate
@version 2.3.4.6
module Happstack.Authenticate.OpenId.PartialsURL
data PartialURL
UsingGoogle :: PartialURL
UsingYahoo :: PartialURL
RealmForm :: PartialURL
rRealmForm :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rUsingYahoo :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rUsingGoogle :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
partialURL :: Router () (PartialURL :- ())
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.OpenId.PartialsURL.PartialURL
instance GHC.Show.Show Happstack.Authenticate.OpenId.PartialsURL.PartialURL
instance GHC.Read.Read Happstack.Authenticate.OpenId.PartialsURL.PartialURL
instance GHC.Generics.Generic Happstack.Authenticate.OpenId.PartialsURL.PartialURL
instance Data.Data.Data Happstack.Authenticate.OpenId.PartialsURL.PartialURL
instance GHC.Classes.Ord Happstack.Authenticate.OpenId.PartialsURL.PartialURL
instance GHC.Classes.Eq Happstack.Authenticate.OpenId.PartialsURL.PartialURL
module Happstack.Authenticate.Password.PartialsURL
data PartialURL
LoginInline :: PartialURL
Login :: PartialURL
Logout :: PartialURL
SignupPassword :: PartialURL
ChangePassword :: PartialURL
RequestResetPasswordForm :: PartialURL
ResetPasswordForm :: PartialURL
rResetPasswordForm :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rRequestResetPasswordForm :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rChangePassword :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rSignupPassword :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rLogout :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rLogin :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
rLoginInline :: forall tok e r. Boomerang e tok r ((:-) PartialURL r)
partialURL :: Router () (PartialURL :- ())
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.Password.PartialsURL.PartialURL
instance GHC.Generics.Generic Happstack.Authenticate.Password.PartialsURL.PartialURL
instance Data.Data.Data Happstack.Authenticate.Password.PartialsURL.PartialURL
instance GHC.Classes.Ord Happstack.Authenticate.Password.PartialsURL.PartialURL
instance GHC.Classes.Eq Happstack.Authenticate.Password.PartialsURL.PartialURL
module Happstack.Authenticate.Core
-- | Various configuration options that apply to all authentication methods
data AuthenticateConfig
AuthenticateConfig :: (UserId -> IO Bool) -> (Username -> Maybe CoreError) -> Bool -> AuthenticateConfig
-- | can user administrate the authentication system?
[_isAuthAdmin] :: AuthenticateConfig -> UserId -> IO Bool
-- | enforce username policies, valid email, etc. Nothing == ok,
-- 'Just Text' == error message
[_usernameAcceptable] :: AuthenticateConfig -> Username -> Maybe CoreError
[_requireEmail] :: AuthenticateConfig -> Bool
isAuthAdmin :: Lens' AuthenticateConfig (UserId -> IO Bool)
usernameAcceptable :: Lens' AuthenticateConfig (Username -> Maybe CoreError)
requireEmail :: Lens' AuthenticateConfig Bool
data HappstackAuthenticateI18N
HappstackAuthenticateI18N :: HappstackAuthenticateI18N
-- | a UserId uniquely identifies a user.
newtype UserId :: *
UserId :: Integer -> UserId
[_unUserId] :: UserId -> Integer
unUserId :: Functor f => (Integer -> f Integer) -> UserId -> f UserId
rUserId :: Boomerang e tok ((:-) Integer r) ((:-) UserId r)
-- | get the next UserId
succUserId :: UserId -> UserId
-- | when creating JSON field names, drop the first character. Since we are
-- using lens, the leading character should always be _.
jsonOptions :: Options
-- | convert a value to a JSON encoded Response
toJSONResponse :: (RenderMessage HappstackAuthenticateI18N e, ToJSON a) => Either e a -> Response
-- | convert a value to a JSON encoded Response
toJSONSuccess :: (ToJSON a) => a -> Response
-- | convert an error to a JSON encoded Response
--
-- FIXME: I18N
toJSONError :: forall e. (RenderMessage HappstackAuthenticateI18N e) => e -> Response
-- | an arbitrary, but unique string that the user uses to identify
-- themselves
newtype Username
Username :: Text -> Username
[_unUsername] :: Username -> Text
unUsername :: Iso' Username Text
rUsername :: forall tok e r. Boomerang e tok ((:-) Text r) ((:-) Username r)
-- | a very basic policy for userAcceptable
--
-- Enforces:
--
-- Username can not be empty
usernamePolicy :: Username -> Maybe CoreError
-- | an Email address. No validation in performed.
newtype Email
Email :: Text -> Email
[_unEmail] :: Email -> Text
unEmail :: Iso' Email Text
-- | A unique User
data User
User :: UserId -> Username -> Maybe Email -> User
[_userId] :: User -> UserId
[_username] :: User -> Username
[_email] :: User -> Maybe Email
userId :: Lens' User UserId
username :: Lens' User Username
email :: Lens' User (Maybe Email)
type UserIxs = '[UserId, Username, Email]
type IxUser = IxSet UserIxs User
-- | The shared secret is used to encrypt a users data on a per-user basis.
-- We can invalidate a JWT value by changing the shared secret.
newtype SharedSecret
SharedSecret :: Text -> SharedSecret
[_unSharedSecret] :: SharedSecret -> Text
unSharedSecret :: Iso' SharedSecret Text
-- | Generate a Salt from 128 bits of data from
-- /dev/urandom, with the system RNG as a fallback. This is the
-- function used to generate salts by makePassword.
genSharedSecret :: (MonadIO m) => m SharedSecret
-- | Generate a SharedSecret from /dev/urandom.
--
-- see: genSharedSecret
genSharedSecretDevURandom :: IO SharedSecret
-- | Generate a SharedSecret from Random.
--
-- see: genSharedSecret
genSharedSecretSysRandom :: IO SharedSecret
-- | A map which stores the SharedSecret for each UserId
type SharedSecrets = Map UserId SharedSecret
-- | An empty SharedSecrets
initialSharedSecrets :: SharedSecrets
-- | the CoreError type is used to represent errors in a language
-- agnostic manner. The errors are translated into human readable form
-- via the I18N translations.
data CoreError
HandlerNotFound :: CoreError
URLDecodeFailed :: CoreError
UsernameAlreadyExists :: CoreError
AuthorizationRequired :: CoreError
Forbidden :: CoreError
JSONDecodeFailed :: CoreError
InvalidUserId :: CoreError
UsernameNotAcceptable :: CoreError
InvalidEmail :: CoreError
TextError :: Text -> CoreError
-- | This value is used to configure the type of new user registrations
-- permitted for this system.
data NewAccountMode
-- | new users can create their own accounts
OpenRegistration :: NewAccountMode
-- | new users can apply to create their own accounts, but a moderator must
-- approve them before they are active
ModeratedRegistration :: NewAccountMode
-- | only the admin can create a new account
ClosedRegistration :: NewAccountMode
-- | this acid-state value contains the state common to all authentication
-- methods
data AuthenticateState
AuthenticateState :: SharedSecrets -> IxUser -> UserId -> Int -> NewAccountMode -> AuthenticateState
[_sharedSecrets] :: AuthenticateState -> SharedSecrets
[_users] :: AuthenticateState -> IxUser
[_nextUserId] :: AuthenticateState -> UserId
-- | default session time out in seconds
[_defaultSessionTimeout] :: AuthenticateState -> Int
[_newAccountMode] :: AuthenticateState -> NewAccountMode
sharedSecrets :: Lens' AuthenticateState SharedSecrets
users :: Lens' AuthenticateState IxUser
nextUserId :: Lens' AuthenticateState UserId
defaultSessionTimeout :: Lens' AuthenticateState Int
newAccountMode :: Lens' AuthenticateState NewAccountMode
-- | a reasonable initial AuthenticateState
initialAuthenticateState :: AuthenticateState
data SetSharedSecret
SetSharedSecret :: UserId -> SharedSecret -> SetSharedSecret
newtype GetSharedSecret
GetSharedSecret :: UserId -> GetSharedSecret
newtype SetDefaultSessionTimeout
SetDefaultSessionTimeout :: Int -> SetDefaultSessionTimeout
data GetDefaultSessionTimeout
GetDefaultSessionTimeout :: GetDefaultSessionTimeout
newtype SetNewAccountMode
SetNewAccountMode :: NewAccountMode -> SetNewAccountMode
data GetNewAccountMode
GetNewAccountMode :: GetNewAccountMode
newtype CreateUser
CreateUser :: User -> CreateUser
data CreateAnonymousUser
CreateAnonymousUser :: CreateAnonymousUser
newtype UpdateUser
UpdateUser :: User -> UpdateUser
newtype DeleteUser
DeleteUser :: UserId -> DeleteUser
newtype GetUserByUsername
GetUserByUsername :: Username -> GetUserByUsername
newtype GetUserByUserId
GetUserByUserId :: UserId -> GetUserByUserId
newtype GetUserByEmail
GetUserByEmail :: Email -> GetUserByEmail
data GetAuthenticateState
GetAuthenticateState :: GetAuthenticateState
-- | get the SharedSecret for UserId. Generate one if they
-- don't have one yet.
getOrGenSharedSecret :: (MonadIO m) => AcidState AuthenticateState -> UserId -> m (SharedSecret)
-- | The Token type represents the encrypted data used to identify a
-- user.
data Token
Token :: User -> Bool -> Token
[_tokenUser] :: Token -> User
[_tokenIsAuthAdmin] :: Token -> Bool
tokenUser :: Lens' Token User
tokenIsAuthAdmin :: Lens' Token Bool
-- | TokenText is the encrypted form of the Token which is
-- passed between the server and the client.
type TokenText = Text
-- | create a Token for User
--
-- The isAuthAdmin paramater is a function which will be called
-- to determine if UserId is a user who should be given
-- Administrator privileges. This includes the ability to things such as
-- set the OpenId realm, change the registeration mode, etc.
issueToken :: (MonadIO m) => AcidState AuthenticateState -> AuthenticateConfig -> User -> m TokenText
-- | decode and verify the TokenText. If successful, return the
-- Token otherwise Nothing.
decodeAndVerifyToken :: (MonadIO m) => AcidState AuthenticateState -> UTCTime -> TokenText -> m (Maybe (Token, JWT VerifiedJWT))
-- | name of the Cookie used to hold the TokenText
authCookieName :: String
-- | create a Token for User and add a Cookie to the
-- Response
--
-- see also: issueToken
addTokenCookie :: (Happstack m) => AcidState AuthenticateState -> AuthenticateConfig -> User -> m TokenText
-- | delete the Token Cookie
deleteTokenCookie :: (Happstack m) => m ()
-- | get, decode, and verify the Token from the Cookie.
getTokenCookie :: (Happstack m) => AcidState AuthenticateState -> m (Maybe (Token, JWT VerifiedJWT))
-- | get, decode, and verify the Token from the
-- Authorization HTTP header
getTokenHeader :: (Happstack m) => AcidState AuthenticateState -> m (Maybe (Token, JWT VerifiedJWT))
-- | get, decode, and verify the Token looking first in the
-- Authorization header and then in Cookie.
--
-- see also: getTokenHeader, getTokenCookie
getToken :: (Happstack m) => AcidState AuthenticateState -> m (Maybe (Token, JWT VerifiedJWT))
-- | get the UserId
--
-- calls getToken but returns only the UserId
getUserId :: (Happstack m) => AcidState AuthenticateState -> m (Maybe UserId)
-- | AuthenticationMethod is used by the routing system to select
-- which authentication backend should handle this request.
newtype AuthenticationMethod
AuthenticationMethod :: Text -> AuthenticationMethod
[_unAuthenticationMethod] :: AuthenticationMethod -> Text
unAuthenticationMethod :: Iso' AuthenticationMethod Text
rAuthenticationMethod :: forall tok e r. Boomerang e tok ((:-) Text r) ((:-) AuthenticationMethod r)
type AuthenticationHandler = [Text] -> RouteT AuthenticateURL (ServerPartT IO) Response
type AuthenticationHandlers = Map AuthenticationMethod AuthenticationHandler
data AuthenticateURL
AuthenticationMethods :: (Maybe (AuthenticationMethod, [Text])) -> AuthenticateURL
Controllers :: AuthenticateURL
rAuthenticationMethods :: forall tok e r. Boomerang e tok ((:-) (Maybe (AuthenticationMethod, [Text])) r) ((:-) AuthenticateURL r)
rControllers :: forall tok e r. Boomerang e tok r ((:-) AuthenticateURL r)
-- | a Router for AuthenicateURL
authenticateURL :: Router () (AuthenticateURL :- ())
-- | helper function which converts a URL for an authentication backend
-- into an AuthenticateURL.
nestAuthenticationMethod :: (PathInfo methodURL) => AuthenticationMethod -> RouteT methodURL m a -> RouteT AuthenticateURL m a
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.Core.AuthenticateURL
instance GHC.Generics.Generic Happstack.Authenticate.Core.AuthenticateURL
instance Data.Data.Data Happstack.Authenticate.Core.AuthenticateURL
instance GHC.Show.Show Happstack.Authenticate.Core.AuthenticateURL
instance GHC.Read.Read Happstack.Authenticate.Core.AuthenticateURL
instance GHC.Classes.Ord Happstack.Authenticate.Core.AuthenticateURL
instance GHC.Classes.Eq Happstack.Authenticate.Core.AuthenticateURL
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.AuthenticationMethod
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.AuthenticationMethod
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.AuthenticationMethod
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.Core.AuthenticationMethod
instance GHC.Generics.Generic Happstack.Authenticate.Core.AuthenticationMethod
instance Data.Data.Data Happstack.Authenticate.Core.AuthenticationMethod
instance GHC.Show.Show Happstack.Authenticate.Core.AuthenticationMethod
instance GHC.Read.Read Happstack.Authenticate.Core.AuthenticationMethod
instance GHC.Classes.Ord Happstack.Authenticate.Core.AuthenticationMethod
instance GHC.Classes.Eq Happstack.Authenticate.Core.AuthenticationMethod
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.Token
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.Token
instance GHC.Generics.Generic Happstack.Authenticate.Core.Token
instance Data.Data.Data Happstack.Authenticate.Core.Token
instance GHC.Show.Show Happstack.Authenticate.Core.Token
instance GHC.Read.Read Happstack.Authenticate.Core.Token
instance GHC.Classes.Ord Happstack.Authenticate.Core.Token
instance GHC.Classes.Eq Happstack.Authenticate.Core.Token
instance Data.Acid.Common.IsAcidic Happstack.Authenticate.Core.AuthenticateState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.SetDefaultSessionTimeout
instance Data.Acid.Core.Method Happstack.Authenticate.Core.SetDefaultSessionTimeout
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Core.SetDefaultSessionTimeout
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.GetDefaultSessionTimeout
instance Data.Acid.Core.Method Happstack.Authenticate.Core.GetDefaultSessionTimeout
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Core.GetDefaultSessionTimeout
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.SetSharedSecret
instance Data.Acid.Core.Method Happstack.Authenticate.Core.SetSharedSecret
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Core.SetSharedSecret
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.GetSharedSecret
instance Data.Acid.Core.Method Happstack.Authenticate.Core.GetSharedSecret
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Core.GetSharedSecret
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.SetNewAccountMode
instance Data.Acid.Core.Method Happstack.Authenticate.Core.SetNewAccountMode
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Core.SetNewAccountMode
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.GetNewAccountMode
instance Data.Acid.Core.Method Happstack.Authenticate.Core.GetNewAccountMode
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Core.GetNewAccountMode
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.CreateUser
instance Data.Acid.Core.Method Happstack.Authenticate.Core.CreateUser
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Core.CreateUser
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.CreateAnonymousUser
instance Data.Acid.Core.Method Happstack.Authenticate.Core.CreateAnonymousUser
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Core.CreateAnonymousUser
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.UpdateUser
instance Data.Acid.Core.Method Happstack.Authenticate.Core.UpdateUser
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Core.UpdateUser
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.DeleteUser
instance Data.Acid.Core.Method Happstack.Authenticate.Core.DeleteUser
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Core.DeleteUser
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.GetUserByUsername
instance Data.Acid.Core.Method Happstack.Authenticate.Core.GetUserByUsername
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Core.GetUserByUsername
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.GetUserByUserId
instance Data.Acid.Core.Method Happstack.Authenticate.Core.GetUserByUserId
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Core.GetUserByUserId
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.GetUserByEmail
instance Data.Acid.Core.Method Happstack.Authenticate.Core.GetUserByEmail
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Core.GetUserByEmail
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.GetAuthenticateState
instance Data.Acid.Core.Method Happstack.Authenticate.Core.GetAuthenticateState
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Core.GetAuthenticateState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.AuthenticateState
instance GHC.Generics.Generic Happstack.Authenticate.Core.AuthenticateState
instance GHC.Show.Show Happstack.Authenticate.Core.AuthenticateState
instance GHC.Classes.Eq Happstack.Authenticate.Core.AuthenticateState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.NewAccountMode
instance GHC.Generics.Generic Happstack.Authenticate.Core.NewAccountMode
instance GHC.Show.Show Happstack.Authenticate.Core.NewAccountMode
instance GHC.Classes.Eq Happstack.Authenticate.Core.NewAccountMode
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.SharedSecret
instance GHC.Generics.Generic Happstack.Authenticate.Core.SharedSecret
instance Data.Data.Data Happstack.Authenticate.Core.SharedSecret
instance GHC.Show.Show Happstack.Authenticate.Core.SharedSecret
instance GHC.Read.Read Happstack.Authenticate.Core.SharedSecret
instance GHC.Classes.Ord Happstack.Authenticate.Core.SharedSecret
instance GHC.Classes.Eq Happstack.Authenticate.Core.SharedSecret
instance GHC.Generics.Generic Happstack.Authenticate.Core.AuthenticateConfig
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.User
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.User
instance Data.IxSet.Typed.Indexable Happstack.Authenticate.Core.UserIxs Happstack.Authenticate.Core.User
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.User
instance GHC.Generics.Generic Happstack.Authenticate.Core.User
instance Data.Data.Data Happstack.Authenticate.Core.User
instance GHC.Show.Show Happstack.Authenticate.Core.User
instance GHC.Read.Read Happstack.Authenticate.Core.User
instance GHC.Classes.Ord Happstack.Authenticate.Core.User
instance GHC.Classes.Eq Happstack.Authenticate.Core.User
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.Email
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.Email
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.Core.Email
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.Email
instance GHC.Generics.Generic Happstack.Authenticate.Core.Email
instance Data.Data.Data Happstack.Authenticate.Core.Email
instance GHC.Show.Show Happstack.Authenticate.Core.Email
instance GHC.Read.Read Happstack.Authenticate.Core.Email
instance GHC.Classes.Ord Happstack.Authenticate.Core.Email
instance GHC.Classes.Eq Happstack.Authenticate.Core.Email
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.Username
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.Username
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.Core.Username
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.Username
instance GHC.Generics.Generic Happstack.Authenticate.Core.Username
instance Data.Data.Data Happstack.Authenticate.Core.Username
instance GHC.Show.Show Happstack.Authenticate.Core.Username
instance GHC.Read.Read Happstack.Authenticate.Core.Username
instance GHC.Classes.Ord Happstack.Authenticate.Core.Username
instance GHC.Classes.Eq Happstack.Authenticate.Core.Username
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.JSONResponse
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.JSONResponse
instance GHC.Generics.Generic Happstack.Authenticate.Core.JSONResponse
instance Data.Data.Data Happstack.Authenticate.Core.JSONResponse
instance GHC.Show.Show Happstack.Authenticate.Core.JSONResponse
instance GHC.Read.Read Happstack.Authenticate.Core.JSONResponse
instance GHC.Classes.Eq Happstack.Authenticate.Core.JSONResponse
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.Status
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.Status
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.Status
instance GHC.Generics.Generic Happstack.Authenticate.Core.Status
instance Data.Data.Data Happstack.Authenticate.Core.Status
instance GHC.Show.Show Happstack.Authenticate.Core.Status
instance GHC.Read.Read Happstack.Authenticate.Core.Status
instance GHC.Classes.Ord Happstack.Authenticate.Core.Status
instance GHC.Classes.Eq Happstack.Authenticate.Core.Status
instance Text.Shakespeare.I18N.RenderMessage Happstack.Authenticate.Core.HappstackAuthenticateI18N Happstack.Authenticate.Core.CoreError
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Core.CoreError
instance GHC.Generics.Generic Happstack.Authenticate.Core.CoreError
instance Data.Data.Data Happstack.Authenticate.Core.CoreError
instance GHC.Show.Show Happstack.Authenticate.Core.CoreError
instance GHC.Read.Read Happstack.Authenticate.Core.CoreError
instance GHC.Classes.Ord Happstack.Authenticate.Core.CoreError
instance GHC.Classes.Eq Happstack.Authenticate.Core.CoreError
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Core.CoreError
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Core.CoreError
instance Language.Javascript.JMacro.Base.ToJExpr Happstack.Authenticate.Core.CoreError
module Happstack.Authenticate.Controller
authenticateCtrl :: (Monad m) => RouteT AuthenticateURL m JStat
authenticateCtrlJs :: (AuthenticateURL -> [(Text, Maybe Text)] -> Text) -> JStat
module Happstack.Authenticate.Route
route :: [RouteT AuthenticateURL (ServerPartT IO) JStat] -> AuthenticationHandlers -> AuthenticateURL -> RouteT AuthenticateURL (ServerPartT IO) Response
initAuthentication :: Maybe FilePath -> AuthenticateConfig -> [FilePath -> AcidState AuthenticateState -> AuthenticateConfig -> IO (Bool -> IO (), (AuthenticationMethod, AuthenticationHandler), RouteT AuthenticateURL (ServerPartT IO) JStat)] -> IO (IO (), AuthenticateURL -> RouteT AuthenticateURL (ServerPartT IO) Response, AcidState AuthenticateState)
instance (GHC.Base.Functor m, Control.Monad.IO.Class.MonadIO m) => HSP.JMacro.IntegerSupply (Web.Routes.RouteT.RouteT Happstack.Authenticate.Core.AuthenticateURL m)
module Happstack.Authenticate.Password.URL
passwordAuthenticationMethod :: AuthenticationMethod
data AccountURL
Password :: AccountURL
rPassword :: forall tok e r. Boomerang e tok r ((:-) AccountURL r)
accountURL :: Router () (AccountURL :- ())
data PasswordURL
Token :: PasswordURL
Account :: (Maybe (UserId, AccountURL)) -> PasswordURL
Partial :: PartialURL -> PasswordURL
PasswordRequestReset :: PasswordURL
PasswordReset :: PasswordURL
UsernamePasswordCtrl :: PasswordURL
rUsernamePasswordCtrl :: forall tok e r. Boomerang e tok r ((:-) PasswordURL r)
rPasswordReset :: forall tok e r. Boomerang e tok r ((:-) PasswordURL r)
rPasswordRequestReset :: forall tok e r. Boomerang e tok r ((:-) PasswordURL r)
rPartial :: forall tok e r. Boomerang e tok ((:-) PartialURL r) ((:-) PasswordURL r)
rAccount :: forall tok e r. Boomerang e tok ((:-) (Maybe (UserId, AccountURL)) r) ((:-) PasswordURL r)
rToken :: forall tok e r. Boomerang e tok r ((:-) PasswordURL r)
passwordURL :: Router () (PasswordURL :- ())
nestPasswordURL :: RouteT PasswordURL m a -> RouteT AuthenticateURL m a
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.Password.URL.PasswordURL
instance GHC.Generics.Generic Happstack.Authenticate.Password.URL.PasswordURL
instance Data.Data.Data Happstack.Authenticate.Password.URL.PasswordURL
instance GHC.Classes.Ord Happstack.Authenticate.Password.URL.PasswordURL
instance GHC.Classes.Eq Happstack.Authenticate.Password.URL.PasswordURL
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.Password.URL.AccountURL
instance GHC.Generics.Generic Happstack.Authenticate.Password.URL.AccountURL
instance Data.Data.Data Happstack.Authenticate.Password.URL.AccountURL
instance GHC.Show.Show Happstack.Authenticate.Password.URL.AccountURL
instance GHC.Read.Read Happstack.Authenticate.Password.URL.AccountURL
instance GHC.Classes.Ord Happstack.Authenticate.Password.URL.AccountURL
instance GHC.Classes.Eq Happstack.Authenticate.Password.URL.AccountURL
module Happstack.Authenticate.Password.Controllers
usernamePasswordCtrl :: (Monad m) => RouteT AuthenticateURL m JStat
usernamePasswordCtrlJs :: (PasswordURL -> [(Text, Maybe Text)] -> Text) -> JStat
module Happstack.Authenticate.Password.Core
data PasswordConfig
PasswordConfig :: Text -> Text -> (Text -> Maybe Text) -> PasswordConfig
[_resetLink] :: PasswordConfig -> Text
[_domain] :: PasswordConfig -> Text
[_passwordAcceptable] :: PasswordConfig -> Text -> Maybe Text
resetLink :: Lens' PasswordConfig Text
passwordAcceptable :: Lens' PasswordConfig (Text -> Maybe Text)
domain :: Lens' PasswordConfig Text
data PasswordError
NotAuthenticated :: PasswordError
NotAuthorized :: PasswordError
InvalidUsername :: PasswordError
InvalidPassword :: PasswordError
InvalidUsernamePassword :: PasswordError
NoEmailAddress :: PasswordError
MissingResetToken :: PasswordError
InvalidResetToken :: PasswordError
PasswordMismatch :: PasswordError
UnacceptablePassword :: Text -> PasswordError
[passwordErrorMessageMsg] :: PasswordError -> Text
CoreError :: CoreError -> PasswordError
[passwordErrorMessageE] :: PasswordError -> CoreError
newtype HashedPass
HashedPass :: ByteString -> HashedPass
[_unHashedPass] :: HashedPass -> ByteString
unHashedPass :: Iso' HashedPass ByteString
-- | hash a password string
mkHashedPass :: (Functor m, MonadIO m) => Text -> m HashedPass
-- | verify a password
verifyHashedPass :: Text -> HashedPass -> Bool
data PasswordState
PasswordState :: Map UserId HashedPass -> PasswordState
[_passwords] :: PasswordState -> Map UserId HashedPass
passwords :: Iso' PasswordState (Map UserId HashedPass)
initialPasswordState :: PasswordState
-- | set the password for UserId
setPassword :: UserId -> HashedPass -> Update PasswordState ()
-- | delete the password for UserId
deletePassword :: UserId -> Update PasswordState ()
-- | verify that the supplied password matches the stored hashed password
-- for UserId
verifyPasswordForUserId :: UserId -> Text -> Query PasswordState Bool
data SetPassword
SetPassword :: UserId -> HashedPass -> SetPassword
newtype DeletePassword
DeletePassword :: UserId -> DeletePassword
data VerifyPasswordForUserId
VerifyPasswordForUserId :: UserId -> Text -> VerifyPasswordForUserId
-- | verify that the supplied username/password is valid
verifyPassword :: (MonadIO m) => AcidState AuthenticateState -> AcidState PasswordState -> Username -> Text -> m Bool
data UserPass
UserPass :: Username -> Text -> UserPass
[_user] :: UserPass -> Username
[_password] :: UserPass -> Text
user :: Lens' UserPass Username
password :: Lens' UserPass Text
token :: (Happstack m) => AcidState AuthenticateState -> AuthenticateConfig -> AcidState PasswordState -> m Response
-- | JSON record for new account data
data NewAccountData
NewAccountData :: User -> Text -> Text -> NewAccountData
[_naUser] :: NewAccountData -> User
[_naPassword] :: NewAccountData -> Text
[_naPasswordConfirm] :: NewAccountData -> Text
naUser :: Lens' NewAccountData User
naPasswordConfirm :: Lens' NewAccountData Text
naPassword :: Lens' NewAccountData Text
-- | JSON record for change password data
data ChangePasswordData
ChangePasswordData :: Text -> Text -> Text -> ChangePasswordData
[_cpOldPassword] :: ChangePasswordData -> Text
[_cpNewPassword] :: ChangePasswordData -> Text
[_cpNewPasswordConfirm] :: ChangePasswordData -> Text
cpOldPassword :: Lens' ChangePasswordData Text
cpNewPasswordConfirm :: Lens' ChangePasswordData Text
cpNewPassword :: Lens' ChangePasswordData Text
-- | account handler
account :: (Happstack m) => AcidState AuthenticateState -> AcidState PasswordState -> AuthenticateConfig -> PasswordConfig -> Maybe (UserId, AccountURL) -> m (Either PasswordError UserId)
-- | JSON record for new account data
data RequestResetPasswordData
RequestResetPasswordData :: Username -> RequestResetPasswordData
[_rrpUsername] :: RequestResetPasswordData -> Username
rrpUsername :: Iso' RequestResetPasswordData Username
-- | request reset password
passwordRequestReset :: (Happstack m) => PasswordConfig -> AcidState AuthenticateState -> AcidState PasswordState -> m (Either PasswordError Text)
-- | issueResetToken
issueResetToken :: (MonadIO m) => AcidState AuthenticateState -> User -> m (Either PasswordError JSON)
sendResetEmail :: (MonadIO m) => Email -> Email -> Text -> m ()
-- | JSON record for new account data
data ResetPasswordData
ResetPasswordData :: Text -> Text -> Text -> ResetPasswordData
[_rpPassword] :: ResetPasswordData -> Text
[_rpPasswordConfirm] :: ResetPasswordData -> Text
[_rpResetToken] :: ResetPasswordData -> Text
rpResetToken :: Lens' ResetPasswordData Text
rpPasswordConfirm :: Lens' ResetPasswordData Text
rpPassword :: Lens' ResetPasswordData Text
passwordReset :: (Happstack m) => AcidState AuthenticateState -> AcidState PasswordState -> PasswordConfig -> m (Either PasswordError Text)
decodeAndVerifyResetToken :: (MonadIO m) => AcidState AuthenticateState -> Text -> m (Maybe (User, JWT VerifiedJWT))
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Password.Core.ResetPasswordData
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Password.Core.ResetPasswordData
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.ResetPasswordData
instance Data.Data.Data Happstack.Authenticate.Password.Core.ResetPasswordData
instance GHC.Show.Show Happstack.Authenticate.Password.Core.ResetPasswordData
instance GHC.Read.Read Happstack.Authenticate.Password.Core.ResetPasswordData
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.ResetPasswordData
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.ResetPasswordData
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance Data.Data.Data Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance GHC.Show.Show Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance GHC.Read.Read Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.RequestResetPasswordData
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Password.Core.ChangePasswordData
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Password.Core.ChangePasswordData
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.ChangePasswordData
instance Data.Data.Data Happstack.Authenticate.Password.Core.ChangePasswordData
instance GHC.Show.Show Happstack.Authenticate.Password.Core.ChangePasswordData
instance GHC.Read.Read Happstack.Authenticate.Password.Core.ChangePasswordData
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.ChangePasswordData
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.ChangePasswordData
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Password.Core.NewAccountData
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Password.Core.NewAccountData
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.NewAccountData
instance Data.Data.Data Happstack.Authenticate.Password.Core.NewAccountData
instance GHC.Show.Show Happstack.Authenticate.Password.Core.NewAccountData
instance GHC.Read.Read Happstack.Authenticate.Password.Core.NewAccountData
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.NewAccountData
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.NewAccountData
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Password.Core.UserPass
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Password.Core.UserPass
instance Language.Javascript.JMacro.Base.ToJExpr Happstack.Authenticate.Password.Core.UserPass
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.UserPass
instance Data.Data.Data Happstack.Authenticate.Password.Core.UserPass
instance GHC.Show.Show Happstack.Authenticate.Password.Core.UserPass
instance GHC.Read.Read Happstack.Authenticate.Password.Core.UserPass
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.UserPass
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.UserPass
instance Data.Acid.Common.IsAcidic Happstack.Authenticate.Password.Core.PasswordState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Password.Core.SetPassword
instance Data.Acid.Core.Method Happstack.Authenticate.Password.Core.SetPassword
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Password.Core.SetPassword
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Password.Core.DeletePassword
instance Data.Acid.Core.Method Happstack.Authenticate.Password.Core.DeletePassword
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.Password.Core.DeletePassword
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Password.Core.VerifyPasswordForUserId
instance Data.Acid.Core.Method Happstack.Authenticate.Password.Core.VerifyPasswordForUserId
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.Password.Core.VerifyPasswordForUserId
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Password.Core.PasswordState
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.PasswordState
instance Data.Data.Data Happstack.Authenticate.Password.Core.PasswordState
instance GHC.Show.Show Happstack.Authenticate.Password.Core.PasswordState
instance GHC.Read.Read Happstack.Authenticate.Password.Core.PasswordState
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.PasswordState
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.PasswordState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.Password.Core.HashedPass
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.HashedPass
instance Data.Data.Data Happstack.Authenticate.Password.Core.HashedPass
instance GHC.Show.Show Happstack.Authenticate.Password.Core.HashedPass
instance GHC.Read.Read Happstack.Authenticate.Password.Core.HashedPass
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.HashedPass
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.HashedPass
instance Text.Shakespeare.I18N.RenderMessage Happstack.Authenticate.Core.HappstackAuthenticateI18N Happstack.Authenticate.Password.Core.PasswordError
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.PasswordError
instance Data.Data.Data Happstack.Authenticate.Password.Core.PasswordError
instance GHC.Show.Show Happstack.Authenticate.Password.Core.PasswordError
instance GHC.Read.Read Happstack.Authenticate.Password.Core.PasswordError
instance GHC.Classes.Ord Happstack.Authenticate.Password.Core.PasswordError
instance GHC.Classes.Eq Happstack.Authenticate.Password.Core.PasswordError
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.Password.Core.PasswordError
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.Password.Core.PasswordError
instance Language.Javascript.JMacro.Base.ToJExpr Happstack.Authenticate.Password.Core.PasswordError
instance GHC.Generics.Generic Happstack.Authenticate.Password.Core.PasswordConfig
module Happstack.Authenticate.Password.Partials
type Partial' m = RouteT AuthenticateURL (ReaderT [Lang] m)
type Partial m = XMLGenT (RouteT AuthenticateURL (ReaderT [Lang] m))
data PartialMsgs
UsernameMsg :: PartialMsgs
EmailMsg :: PartialMsgs
PasswordMsg :: PartialMsgs
PasswordConfirmationMsg :: PartialMsgs
SignUpMsg :: PartialMsgs
SignInMsg :: PartialMsgs
LogoutMsg :: PartialMsgs
OldPasswordMsg :: PartialMsgs
NewPasswordMsg :: PartialMsgs
NewPasswordConfirmationMsg :: PartialMsgs
ChangePasswordMsg :: PartialMsgs
RequestPasswordResetMsg :: PartialMsgs
routePartial :: (Functor m, Monad m, Happstack m) => AcidState AuthenticateState -> PartialURL -> Partial m XML
signupPasswordForm :: (Functor m, Monad m) => Partial m XML
usernamePasswordForm :: (Functor m, Monad m) => Bool -> Partial m XML
logoutForm :: (Functor m, MonadIO m) => Partial m XML
changePasswordForm :: (Functor m, MonadIO m) => UserId -> Partial m XML
requestResetPasswordForm :: (Functor m, MonadIO m) => Partial m XML
resetPasswordForm :: (Functor m, MonadIO m) => Partial m XML
instance Text.Shakespeare.I18N.RenderMessage Happstack.Authenticate.Core.HappstackAuthenticateI18N Happstack.Authenticate.Password.Partials.PartialMsgs
instance (GHC.Base.Functor m, GHC.Base.Monad m) => HSP.XMLGenerator.EmbedAsChild (Happstack.Authenticate.Password.Partials.Partial' m) Happstack.Authenticate.Password.Partials.PartialMsgs
instance (GHC.Base.Functor m, GHC.Base.Monad m) => HSP.XMLGenerator.EmbedAsAttr (Happstack.Authenticate.Password.Partials.Partial' m) (HSP.XMLGenerator.Attr Data.Text.Internal.Lazy.Text Happstack.Authenticate.Password.Partials.PartialMsgs)
module Happstack.Authenticate.Password.Route
routePassword :: (Happstack m) => PasswordConfig -> AcidState AuthenticateState -> AuthenticateConfig -> AcidState PasswordState -> [Text] -> RouteT AuthenticateURL (ReaderT [Lang] m) Response
initPassword :: PasswordConfig -> FilePath -> AcidState AuthenticateState -> AuthenticateConfig -> IO (Bool -> IO (), (AuthenticationMethod, AuthenticationHandler), RouteT AuthenticateURL (ServerPartT IO) JStat)
module Happstack.Authenticate.OpenId.URL
openIdAuthenticationMethod :: AuthenticationMethod
data OpenIdURL
Partial :: PartialURL -> OpenIdURL
BeginDance :: Text -> OpenIdURL
ReturnTo :: OpenIdURL
Realm :: OpenIdURL
rRealm :: forall tok e r. Boomerang e tok r ((:-) OpenIdURL r)
rReturnTo :: forall tok e r. Boomerang e tok r ((:-) OpenIdURL r)
rBeginDance :: forall tok e r. Boomerang e tok ((:-) Text r) ((:-) OpenIdURL r)
rPartial :: forall tok e r. Boomerang e tok ((:-) PartialURL r) ((:-) OpenIdURL r)
openIdURL :: Router () (OpenIdURL :- ())
nestOpenIdURL :: RouteT OpenIdURL m a -> RouteT AuthenticateURL m a
instance Web.Routes.PathInfo.PathInfo Happstack.Authenticate.OpenId.URL.OpenIdURL
instance GHC.Show.Show Happstack.Authenticate.OpenId.URL.OpenIdURL
instance GHC.Read.Read Happstack.Authenticate.OpenId.URL.OpenIdURL
instance GHC.Generics.Generic Happstack.Authenticate.OpenId.URL.OpenIdURL
instance Data.Data.Data Happstack.Authenticate.OpenId.URL.OpenIdURL
instance GHC.Classes.Ord Happstack.Authenticate.OpenId.URL.OpenIdURL
instance GHC.Classes.Eq Happstack.Authenticate.OpenId.URL.OpenIdURL
module Happstack.Authenticate.OpenId.Core
data OpenIdError
UnknownIdentifier :: OpenIdError
CoreError :: CoreError -> OpenIdError
[openIdErrorMessageE] :: OpenIdError -> CoreError
data OpenIdState_1
OpenIdState_1 :: Map Identifier UserId -> OpenIdState_1
[_identifiers_1] :: OpenIdState_1 -> Map Identifier UserId
identifiers_1 :: Iso' OpenIdState_1 (Map Identifier UserId)
data OpenIdState
OpenIdState :: Map Identifier UserId -> Maybe Text -> OpenIdState
[_identifiers] :: OpenIdState -> Map Identifier UserId
[_openIdRealm] :: OpenIdState -> Maybe Text
openIdRealm :: Lens' OpenIdState (Maybe Text)
identifiers :: Lens' OpenIdState (Map Identifier UserId)
initialOpenIdState :: OpenIdState
identifierToUserId :: Identifier -> Query OpenIdState (Maybe UserId)
associateIdentifierWithUserId :: Identifier -> UserId -> Update OpenIdState ()
-- | Get the OpenId realm to use for authentication
getOpenIdRealm :: Query OpenIdState (Maybe Text)
-- | set the realm used for OpenId Authentication
--
-- IMPORTANT: Changing this value after users have registered is likely
-- to invalidate existing OpenId tokens resulting in users no longer
-- being able to access their old accounts.
setOpenIdRealm :: Maybe Text -> Update OpenIdState ()
newtype IdentifierToUserId
IdentifierToUserId :: Identifier -> IdentifierToUserId
data AssociateIdentifierWithUserId
AssociateIdentifierWithUserId :: Identifier -> UserId -> AssociateIdentifierWithUserId
data GetOpenIdRealm
GetOpenIdRealm :: GetOpenIdRealm
newtype SetOpenIdRealm
SetOpenIdRealm :: (Maybe Text) -> SetOpenIdRealm
data SetRealmData
SetRealmData :: Maybe Text -> SetRealmData
[_srOpenIdRealm] :: SetRealmData -> Maybe Text
srOpenIdRealm :: Iso' SetRealmData (Maybe Text)
realm :: (Happstack m) => AcidState AuthenticateState -> AcidState OpenIdState -> m Response
getIdentifier :: (Happstack m) => m Identifier
token :: (Alternative m, Happstack m) => AcidState AuthenticateState -> AuthenticateConfig -> AcidState OpenIdState -> m Response
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.OpenId.Core.SetRealmData
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.OpenId.Core.SetRealmData
instance GHC.Generics.Generic Happstack.Authenticate.OpenId.Core.SetRealmData
instance Data.Data.Data Happstack.Authenticate.OpenId.Core.SetRealmData
instance GHC.Show.Show Happstack.Authenticate.OpenId.Core.SetRealmData
instance GHC.Read.Read Happstack.Authenticate.OpenId.Core.SetRealmData
instance GHC.Classes.Ord Happstack.Authenticate.OpenId.Core.SetRealmData
instance GHC.Classes.Eq Happstack.Authenticate.OpenId.Core.SetRealmData
instance Data.Acid.Common.IsAcidic Happstack.Authenticate.OpenId.Core.OpenIdState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.OpenId.Core.IdentifierToUserId
instance Data.Acid.Core.Method Happstack.Authenticate.OpenId.Core.IdentifierToUserId
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.OpenId.Core.IdentifierToUserId
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.OpenId.Core.AssociateIdentifierWithUserId
instance Data.Acid.Core.Method Happstack.Authenticate.OpenId.Core.AssociateIdentifierWithUserId
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.OpenId.Core.AssociateIdentifierWithUserId
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.OpenId.Core.GetOpenIdRealm
instance Data.Acid.Core.Method Happstack.Authenticate.OpenId.Core.GetOpenIdRealm
instance Data.Acid.Common.QueryEvent Happstack.Authenticate.OpenId.Core.GetOpenIdRealm
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.OpenId.Core.SetOpenIdRealm
instance Data.Acid.Core.Method Happstack.Authenticate.OpenId.Core.SetOpenIdRealm
instance Data.Acid.Common.UpdateEvent Happstack.Authenticate.OpenId.Core.SetOpenIdRealm
instance Data.SafeCopy.SafeCopy.Migrate Happstack.Authenticate.OpenId.Core.OpenIdState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.OpenId.Core.OpenIdState
instance GHC.Generics.Generic Happstack.Authenticate.OpenId.Core.OpenIdState
instance Data.Data.Data Happstack.Authenticate.OpenId.Core.OpenIdState
instance GHC.Show.Show Happstack.Authenticate.OpenId.Core.OpenIdState
instance GHC.Read.Read Happstack.Authenticate.OpenId.Core.OpenIdState
instance GHC.Classes.Ord Happstack.Authenticate.OpenId.Core.OpenIdState
instance GHC.Classes.Eq Happstack.Authenticate.OpenId.Core.OpenIdState
instance Data.SafeCopy.SafeCopy.SafeCopy Happstack.Authenticate.OpenId.Core.OpenIdState_1
instance GHC.Generics.Generic Happstack.Authenticate.OpenId.Core.OpenIdState_1
instance Data.Data.Data Happstack.Authenticate.OpenId.Core.OpenIdState_1
instance GHC.Show.Show Happstack.Authenticate.OpenId.Core.OpenIdState_1
instance GHC.Read.Read Happstack.Authenticate.OpenId.Core.OpenIdState_1
instance GHC.Classes.Ord Happstack.Authenticate.OpenId.Core.OpenIdState_1
instance GHC.Classes.Eq Happstack.Authenticate.OpenId.Core.OpenIdState_1
instance Text.Shakespeare.I18N.RenderMessage Happstack.Authenticate.Core.HappstackAuthenticateI18N Happstack.Authenticate.OpenId.Core.OpenIdError
instance GHC.Generics.Generic Happstack.Authenticate.OpenId.Core.OpenIdError
instance Data.Data.Data Happstack.Authenticate.OpenId.Core.OpenIdError
instance GHC.Show.Show Happstack.Authenticate.OpenId.Core.OpenIdError
instance GHC.Read.Read Happstack.Authenticate.OpenId.Core.OpenIdError
instance GHC.Classes.Ord Happstack.Authenticate.OpenId.Core.OpenIdError
instance GHC.Classes.Eq Happstack.Authenticate.OpenId.Core.OpenIdError
instance Data.SafeCopy.SafeCopy.SafeCopy OpenId2.Types.Identifier
instance Data.Aeson.Types.ToJSON.ToJSON Happstack.Authenticate.OpenId.Core.OpenIdError
instance Data.Aeson.Types.FromJSON.FromJSON Happstack.Authenticate.OpenId.Core.OpenIdError
instance Language.Javascript.JMacro.Base.ToJExpr Happstack.Authenticate.OpenId.Core.OpenIdError
module Happstack.Authenticate.OpenId.Controllers
openIdCtrl :: (Happstack m) => AcidState AuthenticateState -> AcidState OpenIdState -> RouteT AuthenticateURL m JStat
openIdCtrlJs :: Maybe Text -> (OpenIdURL -> [(Text, Maybe Text)] -> Text) -> JStat
module Happstack.Authenticate.OpenId.Partials
type Partial' m = RouteT AuthenticateURL (ReaderT [Lang] m)
type Partial m = XMLGenT (RouteT AuthenticateURL (ReaderT [Lang] m))
data PartialMsgs
UsingGoogleMsg :: PartialMsgs
UsingYahooMsg :: PartialMsgs
SetRealmMsg :: PartialMsgs
OpenIdRealmMsg :: PartialMsgs
routePartial :: (Functor m, Monad m, Happstack m) => AcidState AuthenticateState -> AcidState OpenIdState -> PartialURL -> Partial m XML
usingGoogle :: (Functor m, Monad m) => Partial m XML
usingYahoo :: (Functor m, Monad m) => Partial m XML
realmForm :: (Functor m, MonadIO m) => AcidState OpenIdState -> Partial m XML
instance Text.Shakespeare.I18N.RenderMessage Happstack.Authenticate.Core.HappstackAuthenticateI18N Happstack.Authenticate.OpenId.Partials.PartialMsgs
instance (GHC.Base.Functor m, GHC.Base.Monad m) => HSP.XMLGenerator.EmbedAsChild (Happstack.Authenticate.OpenId.Partials.Partial' m) Happstack.Authenticate.OpenId.Partials.PartialMsgs
instance (GHC.Base.Functor m, GHC.Base.Monad m) => HSP.XMLGenerator.EmbedAsAttr (Happstack.Authenticate.OpenId.Partials.Partial' m) (HSP.XMLGenerator.Attr Data.Text.Internal.Lazy.Text Happstack.Authenticate.OpenId.Partials.PartialMsgs)
module Happstack.Authenticate.OpenId.Route
routeOpenId :: (Happstack m) => AcidState AuthenticateState -> AuthenticateConfig -> AcidState OpenIdState -> [Text] -> RouteT AuthenticateURL (ReaderT [Lang] m) Response
initOpenId :: FilePath -> AcidState AuthenticateState -> AuthenticateConfig -> IO (Bool -> IO (), (AuthenticationMethod, AuthenticationHandler), RouteT AuthenticateURL (ServerPartT IO) JStat)