{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} module Yesod.Auth.Rpxnow ( authRpxnow ) where #include "qq.h" import Yesod.Auth import qualified Web.Authenticate.Rpxnow as Rpxnow import Control.Monad (mplus) import Yesod.Handler import Yesod.Widget import Yesod.Request import Text.Hamlet (hamlet) import Control.Monad.IO.Class (liftIO) import Data.Text (pack, unpack) import Control.Arrow ((***)) authRpxnow :: YesodAuth m => String -- ^ app name -> String -- ^ key -> AuthPlugin m authRpxnow app apiKey = AuthPlugin "rpxnow" dispatch login where login tm = do let url = {- FIXME urlEncode $ -} tm $ PluginR "rpxnow" [] addHamlet [QQ(hamlet)|