From baa6bfb3a8a906d73f476ef94af629c47f054471 Mon Sep 17 00:00:00 2001 From: 3v0k4 Date: Fri, 23 Aug 2019 00:48:17 +0200 Subject: [PATCH] Dummy: Check for JSON first --- yesod-auth/Yesod/Auth/Dummy.hs | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/yesod-auth/Yesod/Auth/Dummy.hs b/yesod-auth/Yesod/Auth/Dummy.hs index b768a72f..b768b3ae 100644 --- a/yesod-auth/Yesod/Auth/Dummy.hs +++ b/yesod-auth/Yesod/Auth/Dummy.hs @@ -36,10 +36,9 @@ module Yesod.Auth.Dummy ) where import Yesod.Auth -import Yesod.Form (FormResult(..), runInputPostResult, textField, ireq) +import Yesod.Form (runInputPost, textField, ireq) import Yesod.Core import Data.Text (Text) -import qualified Data.Text as T import Data.Aeson.Types (Result(..), Parser) import qualified Data.Aeson.Types as A (parseEither, withObject) @@ -51,18 +50,16 @@ authDummy = AuthPlugin "dummy" dispatch login where dispatch "POST" [] = do - formResult <- runInputPostResult $ ireq textField "ident" - eIdent <- case formResult of - FormSuccess ident -> - return $ Right ident - _ -> do - (jsonResult :: Result Value) <- parseCheckJsonBody - case jsonResult of - Success val -> return $ A.parseEither identParser val - Error err -> return $ Left err + (jsonResult :: Result Value) <- parseCheckJsonBody + eIdent <- case jsonResult of + Success val -> return $ A.parseEither identParser val + Error err -> return $ Left err case eIdent of - Right ident -> setCredsRedirect $ Creds "dummy" ident [] - Left err -> invalidArgs [T.pack err] + Right ident -> + setCredsRedirect $ Creds "dummy" ident [] + Left _ -> do + ident <- runInputPost $ ireq textField "ident" + setCredsRedirect $ Creds "dummy" ident [] dispatch _ _ = notFound url = PluginR "dummy" [] login authToMaster = do