Removed cookie as a parameter type

This commit is contained in:
Michael Snoyman 2010-01-24 01:44:54 +02:00
parent 309757c22d
commit 9ccfe9ba90
3 changed files with 10 additions and 14 deletions

View File

@ -26,7 +26,6 @@ import qualified Web.Authenticate.OpenId as OpenId
import Yesod
import Yesod.Constants
import Control.Applicative ((<$>))
import Control.Monad.Attempt
import Data.Maybe (fromMaybe)
@ -114,10 +113,14 @@ authOpenidForward = do
(redirect RedirectTemporary)
res
authOpenidComplete :: Handler y HtmlObject
authOpenidComplete :: YesodApproot y => Handler y HtmlObject
authOpenidComplete = do
gets' <- rawGetParams <$> getRawRequest
dest <- runRequest $ cookieParam "DEST"
ar <- getApproot
rr <- getRawRequest
let gets' = rawGetParams rr
let dest = case cookies rr "DEST" of
[] -> ar
(x:_) -> x
res <- runAttemptT $ OpenId.authenticate gets'
let onFailure err = redirect RedirectTemporary
$ "/auth/openid/?message="
@ -125,7 +128,7 @@ authOpenidComplete = do
let onSuccess (OpenId.Identifier ident) = do
deleteCookie "DEST"
header authCookieName ident
redirect RedirectTemporary $ fromMaybe "/" dest
redirect RedirectTemporary dest
attempt onFailure onSuccess res
rpxnowLogin :: YesodAuth y => Handler y HtmlObject

View File

@ -42,14 +42,11 @@ import Data.Convertible.Text
data ParamType =
GetParam
| PostParam
| CookieParam
deriving (Eq, Show)
-- | In GET parameters, the key. In cookies, the cookie name. So on and so
-- forth.
type ParamName = String
-- | The 'String' value of a parameter, such as cookie content.
-- | The 'String' value of a parameter.
type ParamValue = String
-- | Anything which can be converted from a list of 'String's.

View File

@ -26,13 +26,13 @@ module Yesod.Request
, getParam
, postParam
, anyParam
, cookieParam
, identifier
, displayName
, acceptedLanguages
, requestPath
, parseEnv
, runRequest
, cookies
-- * Building actual request
, Request (..)
, Hack.RequestMethod (..)
@ -130,10 +130,6 @@ postParam = genParam postParams PostParam
anyParam :: (Parameter a) => ParamName -> Request a
anyParam = genParam anyParams PostParam -- FIXME
-- | Parse a value passed as a raw cookie.
cookieParam :: (Parameter a) => ParamName -> Request a
cookieParam = genParam cookies CookieParam
-- | Extract the cookie which specifies the identifier for a logged in
-- user, if available.
identifier :: (Functor m, Monad m, RequestReader m) => m (Maybe String)