Export routes from Email plugin

This commit is contained in:
Michael Snoyman 2011-04-03 14:17:31 +03:00
parent 46f8a9abc9
commit ef635dc07d
2 changed files with 19 additions and 14 deletions

View File

@ -1,10 +1,15 @@
{-# LANGUAGE QuasiQuotes, TypeFamilies #-} {-# LANGUAGE QuasiQuotes, TypeFamilies #-}
{-# LANGUAGE CPP #-} {-# LANGUAGE CPP #-}
module Yesod.Helpers.Auth.Email module Yesod.Helpers.Auth.Email
( authEmail ( -- * Plugin
authEmail
, YesodAuthEmail (..) , YesodAuthEmail (..)
, EmailCreds (..) , EmailCreds (..)
, saltPass , saltPass
-- * Routes
, loginR
, registerR
, setpassR
) where ) where
import Network.Mail.Mime (randomString) import Network.Mail.Mime (randomString)
@ -25,10 +30,10 @@ import Text.Hamlet (hamlet)
import Control.Monad.IO.Class (liftIO) import Control.Monad.IO.Class (liftIO)
import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Class (lift)
login, register, setpass :: AuthRoute loginR, registerR, setpassR :: AuthRoute
login = PluginR "email" ["login"] loginR = PluginR "email" ["login"]
register = PluginR "email" ["register"] registerR = PluginR "email" ["register"]
setpass = PluginR "email" ["set-password"] setpassR = PluginR "email" ["set-password"]
verify :: String -> String -> AuthRoute -- FIXME verify :: String -> String -> AuthRoute -- FIXME
verify eid verkey = PluginR "email" ["verify", eid, verkey] verify eid verkey = PluginR "email" ["verify", eid, verkey]
@ -78,7 +83,7 @@ authEmail =
#else #else
[$hamlet| [$hamlet|
#endif #endif
<form method="post" action="@{tm login}"> <form method="post" action="@{tm loginR}">
<table> <table>
<tr> <tr>
<th>#{messageEmail y} <th>#{messageEmail y}
@ -91,7 +96,7 @@ authEmail =
<tr> <tr>
<td colspan="2"> <td colspan="2">
<input type="submit" value="Login via email"> <input type="submit" value="Login via email">
<a href="@{tm register}">I don't have an account <a href="@{tm registerR}">I don't have an account
|] |]
where where
dispatch "GET" ["register"] = getRegisterR >>= sendResponse dispatch "GET" ["register"] = getRegisterR >>= sendResponse
@ -119,7 +124,7 @@ getRegisterR = do
[$hamlet| [$hamlet|
#endif #endif
<p>#{messageEnterEmail y} <p>#{messageEnterEmail y}
<form method="post" action="@{toMaster register}"> <form method="post" action="@{toMaster registerR}">
<label for="email">#{messageEmail y} <label for="email">#{messageEmail y}
<input type="email" name="email" width="150"> <input type="email" name="email" width="150">
<input type="submit" value="#{messageRegister y}"> <input type="submit" value="#{messageRegister y}">
@ -171,7 +176,7 @@ getVerifyR lid key = do
setCreds False $ Creds "email" email [("verifiedEmail", email)] -- FIXME uid? setCreds False $ Creds "email" email [("verifiedEmail", email)] -- FIXME uid?
toMaster <- getRouteToMaster toMaster <- getRouteToMaster
setMessage $ messageAddressVerified y setMessage $ messageAddressVerified y
redirect RedirectTemporary $ toMaster setpass redirect RedirectTemporary $ toMaster setpassR
_ -> return () _ -> return ()
defaultLayout $ do defaultLayout $ do
setTitle $ messageInvalidKey y setTitle $ messageInvalidKey y
@ -219,7 +224,7 @@ getPasswordR = do
Just _ -> return () Just _ -> return ()
Nothing -> do Nothing -> do
setMessage $ messageBadSetPass y setMessage $ messageBadSetPass y
redirect RedirectTemporary $ toMaster login redirect RedirectTemporary $ toMaster loginR
defaultLayout $ do defaultLayout $ do
setTitle $ messageSetPassTitle y setTitle $ messageSetPassTitle y
addHamlet addHamlet
@ -229,7 +234,7 @@ getPasswordR = do
[$hamlet| [$hamlet|
#endif #endif
<h3>#{messageSetPass y} <h3>#{messageSetPass y}
<form method="post" action="@{toMaster setpass}"> <form method="post" action="@{toMaster setpassR}">
<table> <table>
<tr> <tr>
<th>#{messageNewPass y} <th>#{messageNewPass y}
@ -253,12 +258,12 @@ postPasswordR = do
y <- getYesod y <- getYesod
when (new /= confirm) $ do when (new /= confirm) $ do
setMessage $ messagePassMismatch y setMessage $ messagePassMismatch y
redirect RedirectTemporary $ toMaster setpass redirect RedirectTemporary $ toMaster setpassR
maid <- maybeAuthId maid <- maybeAuthId
aid <- case maid of aid <- case maid of
Nothing -> do Nothing -> do
setMessage $ messageBadSetPass y setMessage $ messageBadSetPass y
redirect RedirectTemporary $ toMaster login redirect RedirectTemporary $ toMaster loginR
Just aid -> return aid Just aid -> return aid
salted <- liftIO $ saltPass new salted <- liftIO $ saltPass new
setPassword aid salted setPassword aid salted

View File

@ -1,5 +1,5 @@
name: yesod-auth name: yesod-auth
version: 0.3.1 version: 0.3.2
license: BSD3 license: BSD3
license-file: LICENSE license-file: LICENSE
author: Michael Snoyman, Patrick Brisbin author: Michael Snoyman, Patrick Brisbin