Addressed some yesod-auth FIXMEs

This commit is contained in:
Michael Snoyman 2013-01-02 14:13:56 +02:00
parent 3c301cdb75
commit 7c72f11b21
3 changed files with 11 additions and 4 deletions

View File

@ -162,7 +162,6 @@ mkYesodSub "Auth"
/page/#Text/STRINGS PluginR
|]
-- | FIXME: won't show up till redirect
setCreds :: YesodAuth m => Bool -> Creds m -> GHandler s m ()
setCreds doRedirects creds = do
y <- getYesod
@ -214,7 +213,9 @@ getLoginR :: YesodAuth m => GHandler Auth m RepHtml
getLoginR = setUltDestReferer' >> loginHandler
getLogoutR :: YesodAuth m => GHandler Auth m ()
getLogoutR = setUltDestReferer' >> postLogoutR -- FIXME redirect to post
getLogoutR = do
tm <- getRouteToMaster
setUltDestReferer' >> redirectToPost (tm LogoutR)
postLogoutR :: YesodAuth m => GHandler Auth m ()
postLogoutR = do

View File

@ -13,7 +13,10 @@ import Yesod.Widget
import Yesod.Request
import Text.Hamlet (hamlet)
import Data.Text (pack, unpack)
import Data.Text.Encoding (encodeUtf8, decodeUtf8With)
import Data.Text.Encoding.Error (lenientDecode)
import Control.Arrow ((***))
import Network.HTTP.Types (renderQuery)
authRpxnow :: YesodAuth m
=> String -- ^ app name
@ -23,10 +26,12 @@ authRpxnow app apiKey =
AuthPlugin "rpxnow" dispatch login
where
login tm = do
let url = {- FIXME urlEncode $ -} tm $ PluginR "rpxnow" []
render <- lift getUrlRender
let queryString = decodeUtf8With lenientDecode
$ renderQuery True [("token_url", Just $ encodeUtf8 $ render $ tm $ PluginR "rpxnow" [])]
toWidget [hamlet|
$newline never
<iframe src="http://#{app}.rpxnow.com/openid/embed?token_url=@{url}" scrolling="no" frameBorder="no" allowtransparency="true" style="width:400px;height:240px">
<iframe src="http://#{app}.rpxnow.com/openid/embed#{queryString}" scrolling="no" frameBorder="no" allowtransparency="true" style="width:400px;height:240px">
|]
dispatch _ [] = do
token1 <- lookupGetParams "token"

View File

@ -42,6 +42,7 @@ library
, blaze-html >= 0.5 && < 0.6
, blaze-markup >= 0.5.1 && < 0.6
, network
, http-types
exposed-modules: Yesod.Auth
Yesod.Auth.BrowserId