| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Polysemy.Account.Effect.Accounts
Description
Synopsis
- data Accounts i p :: Effect where
- Authenticate :: AccountName -> RawPassword -> Accounts i p m (Uid i (AccountAuth i))
- GeneratePassword :: i -> Maybe Datetime -> Accounts i p m GeneratedPassword
- Create :: AccountName -> Accounts i p m (Uid i (Account p))
- FinalizeCreate :: i -> Accounts i p m (Uid i (Account p))
- AddPassword :: i -> RawPassword -> Maybe Datetime -> Accounts i p m (Uid i (AccountAuth i))
- SetStatus :: i -> AccountStatus -> Accounts i p m ()
- ById :: i -> Accounts i p m (Uid i (Account p))
- ByName :: AccountName -> Accounts i p m (Uid i (Account p))
- Authed :: i -> Accounts i p m (AuthedAccount i p)
- Update :: Uid i (Account p) -> Accounts i p m ()
- Privileges :: i -> Accounts i p m p
- UpdatePrivileges :: i -> (p -> p) -> Accounts i p m ()
- All :: Accounts i p m [Uid i (Account p)]
- AllAuths :: Accounts i p m [Uid i (AccountAuth i)]
- allAuths :: forall i p r. Member (Accounts i p) r => Sem r [Uid i (AccountAuth i)]
- all :: forall i p r. Member (Accounts i p) r => Sem r [Uid i (Account p)]
- updatePrivileges :: forall i p r. Member (Accounts i p) r => i -> (p -> p) -> Sem r ()
- privileges :: forall i p r. Member (Accounts i p) r => i -> Sem r p
- update :: forall i p r. Member (Accounts i p) r => Uid i (Account p) -> Sem r ()
- authed :: forall i p r. Member (Accounts i p) r => i -> Sem r (AuthedAccount i p)
- byName :: forall i p r. Member (Accounts i p) r => AccountName -> Sem r (Uid i (Account p))
- byId :: forall i p r. Member (Accounts i p) r => i -> Sem r (Uid i (Account p))
- setStatus :: forall i p r. Member (Accounts i p) r => i -> AccountStatus -> Sem r ()
- addPassword :: forall i p r. Member (Accounts i p) r => i -> RawPassword -> Maybe Datetime -> Sem r (Uid i (AccountAuth i))
- finalizeCreate :: forall i p r. Member (Accounts i p) r => i -> Sem r (Uid i (Account p))
- create :: forall i p r. Member (Accounts i p) r => AccountName -> Sem r (Uid i (Account p))
- generatePassword :: forall i p r. Member (Accounts i p) r => i -> Maybe Datetime -> Sem r GeneratedPassword
- authenticate :: forall i p r. Member (Accounts i p) r => AccountName -> RawPassword -> Sem r (Uid i (AccountAuth i))
- type AccountsP i = Accounts i [Privilege]
Documentation
data Accounts i p :: Effect where Source #
This effect provides common operations for account and password management.
The first parameter is the ID type for both accounts and authentication data, which might be UUID or
Int.
The second parameter encodes an accounts basic privileges, mainly used for API authorization.
Constructors
| Authenticate :: AccountName -> RawPassword -> Accounts i p m (Uid i (AccountAuth i)) | Check credentials against the storage backend. |
| GeneratePassword :: i -> Maybe Datetime -> Accounts i p m GeneratedPassword | Generate a fresh password. |
| Create :: AccountName -> Accounts i p m (Uid i (Account p)) | Add an account to the storage backend, without authentication. |
| FinalizeCreate :: i -> Accounts i p m (Uid i (Account p)) | Mark an account as fully created. |
| AddPassword :: i -> RawPassword -> Maybe Datetime -> Accounts i p m (Uid i (AccountAuth i)) | Associate an account with a new password, with optional expiry time. |
| SetStatus :: i -> AccountStatus -> Accounts i p m () | Update the status of an account. |
| ById :: i -> Accounts i p m (Uid i (Account p)) | Look up an account by its ID. |
| ByName :: AccountName -> Accounts i p m (Uid i (Account p)) | Look up an account by its name. |
| Authed :: i -> Accounts i p m (AuthedAccount i p) | Look up an account and return its auth info. |
| Update :: Uid i (Account p) -> Accounts i p m () | Overwrite an existing account. |
| Privileges :: i -> Accounts i p m p | Look up an account's privileges. |
| UpdatePrivileges :: i -> (p -> p) -> Accounts i p m () | Update an account's privileges. |
| All :: Accounts i p m [Uid i (Account p)] | Fetch all accounts. |
| AllAuths :: Accounts i p m [Uid i (AccountAuth i)] | Fetch all auth records. |
allAuths :: forall i p r. Member (Accounts i p) r => Sem r [Uid i (AccountAuth i)] Source #
Fetch all auth records.
all :: forall i p r. Member (Accounts i p) r => Sem r [Uid i (Account p)] Source #
Fetch all accounts.
updatePrivileges :: forall i p r. Member (Accounts i p) r => i -> (p -> p) -> Sem r () Source #
Update an account's privileges.
privileges :: forall i p r. Member (Accounts i p) r => i -> Sem r p Source #
Look up an account's privileges.
update :: forall i p r. Member (Accounts i p) r => Uid i (Account p) -> Sem r () Source #
Overwrite an existing account.
authed :: forall i p r. Member (Accounts i p) r => i -> Sem r (AuthedAccount i p) Source #
Look up an account and return its auth info.
byName :: forall i p r. Member (Accounts i p) r => AccountName -> Sem r (Uid i (Account p)) Source #
Look up an account by its name.
byId :: forall i p r. Member (Accounts i p) r => i -> Sem r (Uid i (Account p)) Source #
Look up an account by its ID.
setStatus :: forall i p r. Member (Accounts i p) r => i -> AccountStatus -> Sem r () Source #
Update the status of an account.
addPassword :: forall i p r. Member (Accounts i p) r => i -> RawPassword -> Maybe Datetime -> Sem r (Uid i (AccountAuth i)) Source #
Associate an account with a new password, with optional expiry time.
finalizeCreate :: forall i p r. Member (Accounts i p) r => i -> Sem r (Uid i (Account p)) Source #
Mark an account as fully created.
create :: forall i p r. Member (Accounts i p) r => AccountName -> Sem r (Uid i (Account p)) Source #
Add an account to the storage backend, without authentication.
generatePassword :: forall i p r. Member (Accounts i p) r => i -> Maybe Datetime -> Sem r GeneratedPassword Source #
Generate a fresh password.
authenticate :: forall i p r. Member (Accounts i p) r => AccountName -> RawPassword -> Sem r (Uid i (AccountAuth i)) Source #
Check credentials against the storage backend.