fradrive/src/Handler/Error.hs

18 lines
516 B
Haskell

module Handler.Error
( getErrorR
) where
import Import
import Yesod.Core.Types (HandlerContents(HCError))
getErrorR :: Handler Void
getErrorR = do
encodedErrResponse <- maybe (redirect NewsR) return =<< lookupGlobalGetParam GetError
errResponse <- throwExceptT (encodedAuthVerify encodedErrResponse)
isAuthed <- is _Just <$> maybeAuthId
case errResponse of
NotAuthenticated | isAuthed -> permissionDeniedI MsgUnauthorizedNotAuthenticatedInDifferentApproot
_ -> throwM $ HCError errResponse