Safe Haskell | None |
---|---|
Language | Haskell98 |
Happstack.Authenticate.Password.Core
- data PasswordConfig = PasswordConfig {
- _resetLink :: Text
- _domain :: Text
- _passwordAcceptable :: Text -> Maybe Text
- resetLink :: Lens' PasswordConfig Text
- passwordAcceptable :: Lens' PasswordConfig (Text -> Maybe Text)
- domain :: Lens' PasswordConfig Text
- data PasswordError
- newtype HashedPass = HashedPass {}
- unHashedPass :: Iso' HashedPass ByteString
- mkHashedPass :: (Functor m, MonadIO m) => Text -> m HashedPass
- verifyHashedPass :: Text -> HashedPass -> Bool
- data PasswordState = PasswordState {}
- passwords :: Iso' PasswordState (Map UserId HashedPass)
- initialPasswordState :: PasswordState
- setPassword :: UserId -> HashedPass -> Update PasswordState ()
- deletePassword :: UserId -> Update PasswordState ()
- verifyPasswordForUserId :: UserId -> Text -> Query PasswordState Bool
- data SetPassword = SetPassword UserId HashedPass
- newtype DeletePassword = DeletePassword UserId
- data VerifyPasswordForUserId = VerifyPasswordForUserId UserId Text
- verifyPassword :: MonadIO m => AcidState AuthenticateState -> AcidState PasswordState -> Username -> Text -> m Bool
- data UserPass = UserPass {}
- user :: Lens' UserPass Username
- password :: Lens' UserPass Text
- token :: Happstack m => AcidState AuthenticateState -> AuthenticateConfig -> AcidState PasswordState -> m Response
- data NewAccountData = NewAccountData {
- _naUser :: User
- _naPassword :: Text
- _naPasswordConfirm :: Text
- naUser :: Lens' NewAccountData User
- naPasswordConfirm :: Lens' NewAccountData Text
- naPassword :: Lens' NewAccountData Text
- data ChangePasswordData = ChangePasswordData {}
- cpOldPassword :: Lens' ChangePasswordData Text
- cpNewPasswordConfirm :: Lens' ChangePasswordData Text
- cpNewPassword :: Lens' ChangePasswordData Text
- account :: Happstack m => AcidState AuthenticateState -> AcidState PasswordState -> AuthenticateConfig -> PasswordConfig -> Maybe (UserId, AccountURL) -> m (Either PasswordError UserId)
- data RequestResetPasswordData = RequestResetPasswordData {}
- rrpUsername :: Iso' RequestResetPasswordData Username
- passwordRequestReset :: Happstack m => PasswordConfig -> AcidState AuthenticateState -> AcidState PasswordState -> m (Either PasswordError Text)
- issueResetToken :: MonadIO m => AcidState AuthenticateState -> User -> m (Either PasswordError JSON)
- sendResetEmail :: MonadIO m => Email -> Email -> Text -> m ()
- data ResetPasswordData = ResetPasswordData {}
- 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))
Documentation
data PasswordConfig Source
Constructors
PasswordConfig | |
Fields
|
Instances
resetLink :: Lens' PasswordConfig Text Source
passwordAcceptable :: Lens' PasswordConfig (Text -> Maybe Text) Source
domain :: Lens' PasswordConfig Text Source
data PasswordError Source
Constructors
NotAuthenticated | |
NotAuthorized | |
InvalidUsername | |
InvalidPassword | |
InvalidUsernamePassword | |
NoEmailAddress | |
MissingResetToken | |
InvalidResetToken | |
PasswordMismatch | |
UnacceptablePassword | |
Fields | |
CoreError | |
Fields |
Instances
unHashedPass :: Iso' HashedPass ByteString Source
Arguments
:: (Functor m, MonadIO m) | |
=> Text | password in plain text |
-> m HashedPass | salted and hashed |
hash a password string
Arguments
:: Text | password in plain text |
-> HashedPass | hashed version of password |
-> Bool |
verify a password
data PasswordState Source
Constructors
PasswordState | |
Fields |
passwords :: Iso' PasswordState (Map UserId HashedPass) Source
Arguments
:: UserId | UserId |
-> HashedPass | the hashed password |
-> Update PasswordState () |
set the password for UserId
Arguments
:: UserId | UserId |
-> Update PasswordState () |
delete the password for UserId
verifyPasswordForUserId Source
Arguments
:: UserId | UserId |
-> Text | plain-text password |
-> Query PasswordState Bool |
verify that the supplied password matches the stored hashed password for UserId
data SetPassword Source
Constructors
SetPassword UserId HashedPass |
Instances
UpdateEvent SetPassword Source | |
Method SetPassword Source | |
SafeCopy SetPassword Source | |
type MethodState SetPassword = PasswordState Source | |
type MethodResult SetPassword = () Source |
newtype DeletePassword Source
Constructors
DeletePassword UserId |
Instances
UpdateEvent DeletePassword Source | |
Method DeletePassword Source | |
SafeCopy DeletePassword Source | |
type MethodState DeletePassword = PasswordState Source | |
type MethodResult DeletePassword = () Source |
data VerifyPasswordForUserId Source
Constructors
VerifyPasswordForUserId UserId Text |
verifyPassword :: MonadIO m => AcidState AuthenticateState -> AcidState PasswordState -> Username -> Text -> m Bool Source
verify that the supplied username/password is valid
token :: Happstack m => AcidState AuthenticateState -> AuthenticateConfig -> AcidState PasswordState -> m Response Source
data NewAccountData Source
JSON record for new account data
Constructors
NewAccountData | |
Fields
|
naUser :: Lens' NewAccountData User Source
naPasswordConfirm :: Lens' NewAccountData Text Source
naPassword :: Lens' NewAccountData Text Source
data ChangePasswordData Source
JSON record for change password data
Constructors
ChangePasswordData | |
Fields |
cpOldPassword :: Lens' ChangePasswordData Text Source
cpNewPasswordConfirm :: Lens' ChangePasswordData Text Source
cpNewPassword :: Lens' ChangePasswordData Text Source
account :: Happstack m => AcidState AuthenticateState -> AcidState PasswordState -> AuthenticateConfig -> PasswordConfig -> Maybe (UserId, AccountURL) -> m (Either PasswordError UserId) Source
account handler
data RequestResetPasswordData Source
JSON record for new account data
Constructors
RequestResetPasswordData | |
Fields |
Instances
passwordRequestReset :: Happstack m => PasswordConfig -> AcidState AuthenticateState -> AcidState PasswordState -> m (Either PasswordError Text) Source
request reset password
issueResetToken :: MonadIO m => AcidState AuthenticateState -> User -> m (Either PasswordError JSON) Source
issueResetToken
data ResetPasswordData Source
JSON record for new account data
Constructors
ResetPasswordData | |
Fields
|
rpResetToken :: Lens' ResetPasswordData Text Source
rpPasswordConfirm :: Lens' ResetPasswordData Text Source
rpPassword :: Lens' ResetPasswordData Text Source
passwordReset :: Happstack m => AcidState AuthenticateState -> AcidState PasswordState -> PasswordConfig -> m (Either PasswordError Text) Source
decodeAndVerifyResetToken :: MonadIO m => AcidState AuthenticateState -> Text -> m (Maybe (User, JWT VerifiedJWT)) Source