diff options
author | Joris Guyonvarch | 2015-07-19 20:24:54 +0200 |
---|---|---|
committer | Joris Guyonvarch | 2015-07-19 20:24:54 +0200 |
commit | a40c4825996c90d107901b0d71162f9356f1395a (patch) | |
tree | 6fea2cdaf18ebc181b2ff60c929970d71abc3a15 /src/server | |
parent | 3aeb5db40424863039651d10593c1c0be49efd7b (diff) |
Showing login token error message in the UI
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/Application.hs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/server/Application.hs b/src/server/Application.hs index 739fe33..7e93fe1 100644 --- a/src/server/Application.hs +++ b/src/server/Application.hs @@ -23,6 +23,7 @@ import Control.Monad.IO.Class (liftIO) import Data.Text (Text) import qualified Data.Text as T +import qualified Data.Text.Lazy as TL import qualified Data.Text.Encoding as TE import Data.String (fromString) import Data.Time.Clock (getCurrentTime, diffUTCTime) @@ -109,18 +110,22 @@ validateSignInAction token = do Just signIn -> if signInIsUsed . entityVal $ signIn then - errorResponse "The token has already been used." + redirectError "The token has already been used." else let diffTime = now `diffUTCTime` (signInCreation . entityVal $ signIn) in if diffTime > 2 * 60 -- 2 minutes then - errorResponse "The token has expired." + redirectError "The token has expired." else do LoginSession.put (signInEmail . entityVal $ signIn) liftIO . runDb . signInTokenToUsed . entityKey $ signIn redirect "/" Nothing -> - errorResponse "The token is invalid." + redirectError "The token is invalid." + +redirectError :: Text -> ActionM () +redirectError msg = + redirect . TL.fromStrict . T.concat $ ["/?signInError=", msg] signOutAction :: ActionM () signOutAction = do |