packages feed

yesod-auth 0.8.1.1 → 1.0.0

raw patch · 11 files changed

+110/−87 lines, 11 filesdep ~authenticatedep ~basedep ~hamlet

Dependency ranges changed: authenticate, base, hamlet, http-conduit, persistent, persistent-template, shakespeare-css, transformers, wai, yesod-core, yesod-form, yesod-json, yesod-persistent

Files

Yesod/Auth.hs view
@@ -1,9 +1,9 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-}-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DeriveDataTypeable #-} {-# OPTIONS_GHC -fno-warn-orphans #-}@@ -27,8 +27,6 @@     , AuthException (..)     ) where -#include "qq.h"- import Control.Monad                 (when)   import Control.Monad.Trans.Maybe @@ -132,7 +130,7 @@     [ ClassP ''YesodAuth [VarT $ mkName "master"]     ] #define STRINGS *Texts-    [QQ(parseRoutes)|+    [parseRoutes| /check                 CheckR      GET /login                 LoginR      GET /logout                LogoutR     GET POST@@ -151,7 +149,7 @@         Nothing ->           when doRedirects $ do             case authRoute y of-              Nothing -> do rh <- defaultLayout $ addHtml [QQ(shamlet)| <h1>Invalid login |]+              Nothing -> do rh <- defaultLayout $ toWidget [shamlet| <h1>Invalid login |]                             sendResponse rh               Just ar -> do setMessageI Msg.InvalidLogin                             redirect ar@@ -166,10 +164,10 @@     creds <- maybeAuthId     defaultLayoutJson (do         setTitle "Authentication Status"-        addHtml $ html' creds) (jsonCreds creds)+        toWidget $ html' creds) (jsonCreds creds)   where     html' creds =-        [QQ(shamlet)|+        [shamlet| <h1>Authentication Status $maybe _ <- creds     <p>Logged in.
Yesod/Auth/BrowserId.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} module Yesod.Auth.BrowserId     ( authBrowserId@@ -16,8 +15,6 @@ import Control.Monad.IO.Class (liftIO) import Control.Exception (throwIO) -#include "qq.h"- pid :: Text pid = "browserid" @@ -64,7 +61,7 @@             _ -> notFound     , apLogin = \toMaster -> do         addScriptRemote browserIdJs-        addHamlet [QQ(hamlet)|+        toWidget [hamlet| <p>     <a href="javascript:navigator.id.getVerifiedEmail(function(a){if(a)document.location='@{toMaster complete}/'+a});">         <img src="https://browserid.org/i/sign_in_green.png">
Yesod/Auth/Dummy.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} -- | Provides a dummy authentication module that simply lets a user specify -- his/her identifier. This is not intended for real world use, just for@@ -8,13 +7,11 @@     ( authDummy     ) where -#include "qq.h"- import Yesod.Auth import Yesod.Form (runInputPost, textField, ireq) import Yesod.Handler (notFound) import Text.Hamlet (hamlet)-import Yesod.Widget (addHamlet)+import Yesod.Widget (toWidget)  authDummy :: YesodAuth m => AuthPlugin m authDummy =@@ -26,9 +23,9 @@     dispatch _ _ = notFound     url = PluginR "dummy" []     login authToMaster =-        addHamlet [QQ(hamlet)|+        toWidget [hamlet| <form method="post" action="@{authToMaster url}">-    \Your new identifier is: +    Your new identifier is: #     <input type="text" name="ident">     <input type="submit" value="Dummy Login"> |]
Yesod/Auth/Email.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies #-}-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleContexts #-} module Yesod.Auth.Email@@ -15,8 +14,6 @@     , isValidPass     ) where -#include "qq.h"- import Network.Mail.Mime (randomString) import Yesod.Auth import System.Random@@ -33,8 +30,7 @@ import Yesod.Form import Yesod.Handler import Yesod.Content-import Yesod.Widget-import Yesod.Core+import Yesod.Core (PathPiece, fromPathPiece, whamlet, defaultLayout, setTitleI, toPathPiece) import Control.Monad.IO.Class (liftIO) import qualified Yesod.Auth.Message as Msg @@ -82,7 +78,7 @@ authEmail :: YesodAuthEmail m => AuthPlugin m authEmail =     AuthPlugin "email" dispatch $ \tm ->-        [QQ(whamlet)|+        [whamlet| <form method="post" action="@{tm loginR}">     <table>         <tr>@@ -115,8 +111,7 @@     toMaster <- getRouteToMaster     defaultLayout $ do         setTitleI Msg.RegisterLong-        addWidget-            [QQ(whamlet)|+        [whamlet| <p>_{Msg.EnterEmail} <form method="post" action="@{toMaster registerR}">     <label for="email">_{Msg.Email}@@ -146,8 +141,7 @@     sendVerifyEmail email verKey verUrl     defaultLayout $ do         setTitleI Msg.ConfirmationEmailSentTitle-        addWidget-            [QQ(whamlet)| <p>_{Msg.ConfirmationEmailSent email} |]+        [whamlet| <p>_{Msg.ConfirmationEmailSent email} |]  getVerifyR :: YesodAuthEmail m            => AuthEmailId m -> Text -> GHandler Auth m RepHtml@@ -167,8 +161,7 @@         _ -> return ()     defaultLayout $ do         setTitleI Msg.InvalidKey-        addWidget-            [QQ(whamlet)| <p>_{Msg.InvalidKey} |]+        [whamlet| <p>_{Msg.InvalidKey} |]  postLoginR :: YesodAuthEmail master => GHandler Auth master () postLoginR = do@@ -206,8 +199,7 @@             redirect $ toMaster LoginR     defaultLayout $ do         setTitleI Msg.SetPassTitle-        addWidget-            [QQ(whamlet)|+        [whamlet| <h3>_{Msg.SetPass} <form method="post" action="@{toMaster setpassR}">     <table>
Yesod/Auth/GoogleEmail.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} -- | Use an email address as an identifier via Google's OpenID login system. --@@ -18,9 +17,8 @@ import Yesod.Auth import qualified Web.Authenticate.OpenId as OpenId -import Yesod.Form import Yesod.Handler-import Yesod.Widget+import Yesod.Widget (whamlet) import Yesod.Request import Text.Blaze (toHtml) import Data.Text (Text)@@ -39,7 +37,6 @@     AuthPlugin "googleemail" dispatch login   where     complete = PluginR "googleemail" ["complete"]-    name = "openid_identifier"     login tm =         [whamlet|<a href=@{tm forwardUrl}>_{Msg.LoginGoogle}|]     dispatch "GET" ["forward"] = do
Yesod/Auth/HashDB.hs view
@@ -2,7 +2,6 @@ {-# LANGUAGE FlexibleContexts           #-} {-# LANGUAGE TypeFamilies               #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE CPP                        #-} {-# LANGUAGE TemplateHaskell            #-} {-# LANGUAGE OverloadedStrings          #-} {-# LANGUAGE GADTs                      #-}@@ -72,13 +71,11 @@     , migrateUsers     ) where -#include "qq.h"- import Yesod.Persist import Yesod.Handler import Yesod.Form import Yesod.Auth-import Yesod.Widget (addHamlet)+import Yesod.Widget (toWidget) import Text.Hamlet (hamlet, shamlet)  import Control.Applicative         ((<$>), (<*>))@@ -179,7 +176,7 @@                  (validateUser <$> (uniq =<< mu) <*> mp)     if isValid         then setCreds True $ Creds "hashdb" (fromMaybe "" mu) []-       else do setMessage [QQ(shamlet)| Invalid username/password |]+       else do setMessage [shamlet| Invalid username/password |]                toMaster <- getRouteToMaster                redirect $ toMaster LoginR @@ -210,7 +207,7 @@                 -- user exists                 Just (Entity uid _) -> return $ Just uid                 Nothing       -> do-                    setMessage [QQ(shamlet)| User not found |]+                    setMessage [shamlet| User not found |]                     redirect $ authR LoginR  -- | Prompt for username and password, validate that against a database@@ -223,8 +220,7 @@               , PersistStore b (GHandler Auth m)               , PersistUnique b (GHandler Auth m))            => (Text -> Maybe (Unique user b)) -> AuthPlugin m-authHashDB uniq = AuthPlugin "hashdb" dispatch $ \tm -> addHamlet-    [QQ(hamlet)|+authHashDB uniq = AuthPlugin "hashdb" dispatch $ \tm -> toWidget [hamlet|     <div id="header">         <h1>Login @@ -261,7 +257,7 @@  -- | Generate data base instances for a valid user share [mkPersist sqlSettings, mkMigrate "migrateUsers"]-         [QQ(persistUpperCase)|+         [persistUpperCase| User     username Text Eq     password Text
Yesod/Auth/Message.hs view
@@ -6,6 +6,8 @@       -- * All languages     , englishMessage     , portugueseMessage+    , swedishMessage+    , germanMessage     ) where  import Data.Monoid (mappend)@@ -113,3 +115,71 @@ portugueseMessage LoginTitle = "Entrar no site" portugueseMessage PleaseProvideUsername = "Por favor digite seu nome de usuário" portugueseMessage PleaseProvidePassword = "Por favor digite sua senha"++swedishMessage :: AuthMessage -> Text+swedishMessage NoOpenID = "Fann ej OpenID identifierare"+swedishMessage LoginOpenID = "Logga in via OpenID"+swedishMessage LoginGoogle = "Logga in via Google"+swedishMessage LoginYahoo = "Logga in via Yahoo"+swedishMessage Email = "Epost"+swedishMessage Password = "Lösenord"+swedishMessage Register = "Registrera"+swedishMessage RegisterLong = "Registrera ett nytt konto"+swedishMessage EnterEmail = "Skriv in din epost nedan så kommer ett konfirmationsmail skickas till adressen."+swedishMessage ConfirmationEmailSentTitle = "Konfirmationsmail skickat"+swedishMessage (ConfirmationEmailSent email) =+    "Ett konfirmationsmeddelande har skickats till" `mappend`+    email `mappend`+    "."+swedishMessage AddressVerified = "Adress verifierad, vänligen välj nytt lösenord"+swedishMessage InvalidKeyTitle = "Ogiltig verifikationsnyckel"+swedishMessage InvalidKey = "Tyvärr, du angav en ogiltig verifimationsnyckel."+swedishMessage InvalidEmailPass = "Ogiltig epost/lösenord kombination"+swedishMessage BadSetPass = "Du måste vara inloggad för att ange ett lösenord"+swedishMessage SetPassTitle = "Ange lösenord"+swedishMessage SetPass = "Ange nytt lösenord"+swedishMessage NewPass = "Nytt lösenord"+swedishMessage ConfirmPass = "Godkänn"+swedishMessage PassMismatch = "Lösenorden matcha ej, vänligen försök igen"+swedishMessage PassUpdated = "Lösenord updaterades"+swedishMessage Facebook = "Logga in med Facebook"+swedishMessage LoginViaEmail = "Logga in via epost"+swedishMessage InvalidLogin = "Ogiltigt login"+swedishMessage NowLoggedIn = "Du är nu inloggad"+swedishMessage LoginTitle = "Logga in"+swedishMessage PleaseProvideUsername = "Vänligen fyll i användarnamn"+swedishMessage PleaseProvidePassword = "Vänligen fyll i lösenord"++germanMessage :: AuthMessage -> Text+germanMessage NoOpenID = "Kein OpenID-Identifier gefunden"+germanMessage LoginOpenID = "Login via OpenID"+germanMessage LoginGoogle = "Login via Google"+germanMessage LoginYahoo = "Login via Yahoo"+germanMessage Email = "Email"+germanMessage Password = "Passwort"+germanMessage Register = "Registrieren"+germanMessage RegisterLong = "Neuen Account registrieren"+germanMessage EnterEmail = "Bitte die e-Mail Adresse angeben, eine Bestätigungsmail wird verschickt."+germanMessage ConfirmationEmailSentTitle = "Bestätigung verschickt."+germanMessage (ConfirmationEmailSent email) =+    "Eine Bestätigung wurde an " `mappend`+    email `mappend`+    "versandt."+germanMessage AddressVerified = "Adresse bestätigt, bitte neues Passwort angeben"+germanMessage InvalidKeyTitle = "Ungültiger Bestätigungsschlüssel"+germanMessage InvalidKey = "Das war leider ein ungültiger Bestätigungsschlüssel"+germanMessage InvalidEmailPass = "Ungültiger Nutzername oder Passwort"+germanMessage BadSetPass = "Um das Passwort zu ändern muss man eingeloggt sein"+germanMessage SetPassTitle = "Passwort angeben"+germanMessage SetPass = "Neues Passwort angeben"+germanMessage NewPass = "Neues Passwort"+germanMessage ConfirmPass = "Bestätigen"+germanMessage PassMismatch = "Die Passwörter stimmten nicht überein"+germanMessage PassUpdated = "Passwort überschrieben"+germanMessage Facebook = "Login über Facebook"+germanMessage LoginViaEmail = "Login via e-Mail"+germanMessage InvalidLogin = "Ungültiger Login"+germanMessage NowLoggedIn = "Login erfolgreich"+germanMessage LoginTitle = "Login"+germanMessage PleaseProvideUsername = "Bitte Nutzername angeben"+germanMessage PleaseProvidePassword = "Bitte Passwort angeben"
Yesod/Auth/OpenId.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} module Yesod.Auth.OpenId     ( authOpenId@@ -7,14 +6,12 @@     , forwardUrl     ) where -#include "qq.h"- import Yesod.Auth import qualified Web.Authenticate.OpenId as OpenId  import Yesod.Form import Yesod.Handler-import Yesod.Widget+import Yesod.Widget (toWidget, whamlet) import Yesod.Request import Text.Cassius (cassius) import Text.Blaze (toHtml)@@ -36,12 +33,11 @@     name = "openid_identifier"     login tm = do         ident <- lift newIdent-        addCassius-            [QQ(cassius)|##{ident}+        toWidget [cassius|##{ident}     background: #fff url(http://www.myopenid.com/static/openid-icon-small.gif) no-repeat scroll 0pt 50%;     padding-left: 18px; |]-        [QQ(whamlet)|+        [whamlet| <form method="get" action="@{tm forwardUrl}">     <input type="hidden" name="openid_identifier" value="https://www.google.com/accounts/o8/id">     <button .openid-google>_{Msg.LoginGoogle}
Yesod/Auth/Rpxnow.hs view
@@ -1,12 +1,9 @@ {-# 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)@@ -27,8 +24,7 @@   where     login tm = do         let url = {- FIXME urlEncode $ -} tm $ PluginR "rpxnow" []-        addHamlet-            [QQ(hamlet)|+        toWidget [hamlet| <iframe src="http://#{app}.rpxnow.com/openid/embed?token_url=@{url}" scrolling="no" frameBorder="no" allowtransparency="true" style="width:400px;height:240px"> |]     dispatch _ [] = do
− include/qq.h
@@ -1,10 +0,0 @@---- CPP macro which choses which quasyquotes syntax to use depending--- on GHC version.------ QQ stands for quasyquote.-#if GHC7-# define QQ(x) x-#else-# define QQ(x) $x-#endif
yesod-auth.cabal view
@@ -1,6 +1,6 @@ name:            yesod-auth-version:         0.8.1.1-license:         BSD3+version:         1.0.0+license:         MIT license-file:    LICENSE author:          Michael Snoyman, Patrick Brisbin maintainer:      Michael Snoyman <michael@snoyman.com>@@ -10,39 +10,34 @@ cabal-version:   >= 1.6.0 build-type:      Simple homepage:        http://www.yesodweb.com/-extra-source-files: include/qq.h description:     Authentication for Yesod.  flag ghc7  library-    if flag(ghc7)-        build-depends:   base                >= 4.3      && < 5-        cpp-options:     -DGHC7-    else-        build-depends:   base                >= 4        && < 4.3-    build-depends:   authenticate            >= 1.0       && < 1.1+    build-depends:   base                    >= 4         && < 5+                   , authenticate            >= 1.2       && < 1.3                    , bytestring              >= 0.9.1.4   && < 0.10-                   , yesod-core              >= 0.10.1    && < 0.11-                   , wai                     >= 1.1       && < 1.2+                   , yesod-core              >= 1.0       && < 1.1+                   , wai                     >= 1.2       && < 1.3                    , template-haskell                    , pureMD5                 >= 2.0       && < 2.2                    , random                  >= 1.0.0.2  && < 1.1                    , text                    >= 0.7       && < 0.12                    , mime-mail               >= 0.3       && < 0.5                    , blaze-html              >= 0.4.1.3   && < 0.5-                   , yesod-persistent        >= 0.3.1     && < 0.4-                   , hamlet                  >= 0.10      && < 0.11-                   , shakespeare-css         >= 0.10      && < 0.11-                   , yesod-json              >= 0.3.1     && < 0.4+                   , yesod-persistent        >= 1.0       && < 1.1+                   , hamlet                  >= 1.0       && < 1.1+                   , shakespeare-css         >= 1.0       && < 1.1+                   , yesod-json              >= 1.0       && < 1.1                    , containers                    , unordered-containers-                   , yesod-form              >= 0.4.1     && < 0.5-                   , transformers            >= 0.2.2     && < 0.3-                   , persistent              >= 0.8       && < 0.9-                   , persistent-template     >= 0.8       && < 0.9+                   , yesod-form              >= 1.0       && < 1.1+                   , transformers            >= 0.2.2     && < 0.4+                   , persistent              >= 0.9       && < 0.10+                   , persistent-template     >= 0.9       && < 0.10                    , SHA                     >= 1.4.1.3   && < 1.6-                   , http-conduit            >= 1.2.5     && < 1.3+                   , http-conduit            >= 1.4       && < 1.5                    , aeson                   >= 0.5                    , pwstore-fast            >= 2.2       && < 3                    , lifted-base             >= 0.1       && < 0.2@@ -57,7 +52,6 @@                      Yesod.Auth.Message                      Yesod.Auth.GoogleEmail     ghc-options:     -Wall-    include-dirs: include  source-repository head   type:     git