From c786b30afbc4217419f95d62d710fca72754adf4 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Sat, 2 Feb 2013 19:51:15 +0200 Subject: [PATCH] email-validate 1.0.0 --- yesod-form/Yesod/Form/Fields.hs | 11 +++++++++++ yesod-form/yesod-form.cabal | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/yesod-form/Yesod/Form/Fields.hs b/yesod-form/Yesod/Form/Fields.hs index a2a93d89..7917ce27 100644 --- a/yesod-form/Yesod/Form/Fields.hs +++ b/yesod-form/Yesod/Form/Fields.hs @@ -60,6 +60,10 @@ import Text.Blaze (ToMarkup (toMarkup), preEscapedToMarkup, unsafeByteString) import Text.Cassius import Data.Time (Day, TimeOfDay(..)) import qualified Text.Email.Validate as Email +#if MIN_VERSION_email_validate(1, 0, 0) +import Data.Text.Encoding (encodeUtf8, decodeUtf8With) +import Data.Text.Encoding.Error (lenientDecode) +#endif import Network.URI (parseURI) import Database.Persist (PersistField) import Database.Persist.Store (Entity (..)) @@ -291,9 +295,16 @@ timeParser = do emailField :: RenderMessage master FormMessage => Field sub master Text emailField = Field { fieldParse = parseHelper $ +#if MIN_VERSION_email_validate(1, 0, 0) + \s -> + case Email.canonicalizeEmail $ encodeUtf8 s of + Just e -> Right $ decodeUtf8With lenientDecode e + Nothing -> Left $ MsgInvalidEmail s +#else \s -> if Email.isValid (unpack s) then Right s else Left $ MsgInvalidEmail s +#endif , fieldView = \theId name attrs val isReq -> toWidget [hamlet| $newline never diff --git a/yesod-form/yesod-form.cabal b/yesod-form/yesod-form.cabal index fd9a031b..a0d2a801 100644 --- a/yesod-form/yesod-form.cabal +++ b/yesod-form/yesod-form.cabal @@ -1,5 +1,5 @@ name: yesod-form -version: 1.2.1 +version: 1.2.1.1 license: MIT license-file: LICENSE author: Michael Snoyman