From 1f0f26ddcf7846113713a7c7ba2a40296a6faac8 Mon Sep 17 00:00:00 2001 From: Arash Rouhani Date: Sun, 14 Aug 2011 21:32:53 +0200 Subject: [PATCH 1/5] version bump authenticate --- yesod-auth/yesod-auth.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yesod-auth/yesod-auth.cabal b/yesod-auth/yesod-auth.cabal index 3436a8d4..b1d49cb2 100644 --- a/yesod-auth/yesod-auth.cabal +++ b/yesod-auth/yesod-auth.cabal @@ -20,7 +20,7 @@ library cpp-options: -DGHC7 else build-depends: base >= 4 && < 4.3 - build-depends: authenticate >= 0.9.2 && < 0.10 + build-depends: authenticate >= 0.9.2.3 && < 0.10 , bytestring >= 0.9.1.4 && < 0.10 , yesod-core >= 0.9 && < 0.10 , wai >= 0.4 && < 0.5 From fbf4d9c4d359ecea244331e587209fa6fa66c30b Mon Sep 17 00:00:00 2001 From: Arash Rouhani Date: Sun, 14 Aug 2011 21:43:08 +0200 Subject: [PATCH 2/5] Added Kerberos yesod wrapper and added to modules --- yesod-auth/Yesod/Auth/Kerberos.hs | 97 +++++++++++++++++++++++++++++++ yesod-auth/yesod-auth.cabal | 1 + 2 files changed, 98 insertions(+) create mode 100644 yesod-auth/Yesod/Auth/Kerberos.hs diff --git a/yesod-auth/Yesod/Auth/Kerberos.hs b/yesod-auth/Yesod/Auth/Kerberos.hs new file mode 100644 index 00000000..c30d86ff --- /dev/null +++ b/yesod-auth/Yesod/Auth/Kerberos.hs @@ -0,0 +1,97 @@ +{-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE CPP #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE OverloadedStrings #-} +module Yesod.Auth.Kerberos + ( authKerberos, + genericAuthKerberos, + KerberosConfig(..) + ) where + +#include "qq.h" + +import Yesod.Auth +import Web.Authenticate.Kerberos +import Data.Text (Text) +import qualified Data.Text as T +import Text.Hamlet +import Yesod.Handler +import Yesod.Widget +import Control.Monad.IO.Class (liftIO) +import Yesod.Form +import Control.Applicative ((<$>), (<*>)) + +data KerberosConfig = KerberosConfig { + -- | When a user gives username x, f(x) will be passed to Kerberos + usernameModifier :: Text -> Text + -- | When a user gives username x, f(x) will be passed to Yesod + , identifierModifier :: Text -> Text + } + +defaultKerberosConfig :: KerberosConfig +defaultKerberosConfig = KerberosConfig id id + +genericAuthKerberos :: YesodAuth m => KerberosConfig -> AuthPlugin m +genericAuthKerberos config = AuthPlugin "kerberos" dispatch $ \tm -> addHamlet + [hamlet| +