diff options
Diffstat (limited to 'fig-web/src/Fig/Web/Auth.hs')
| -rw-r--r-- | fig-web/src/Fig/Web/Auth.hs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/fig-web/src/Fig/Web/Auth.hs b/fig-web/src/Fig/Web/Auth.hs new file mode 100644 index 0000000..5017b3e --- /dev/null +++ b/fig-web/src/Fig/Web/Auth.hs @@ -0,0 +1,27 @@ +module Fig.Web.Auth + ( Credentials(..) + , authed + ) where + +import Fig.Prelude + +import qualified Web.Scotty as Sc + +import Fig.Web.Types +import Fig.Web.Utils + +data Credentials = Credentials + { user :: Text + , email :: Text + } +authed :: SecureModuleArgs -> (Credentials -> Sc.ActionM ()) -> Sc.ActionM () +authed args h = do + muser <- header "Remote-User" + memail <- header "Remote-Email" + case (muser, memail) of + (Just user, Just email) -> do + let auth = Credentials{..} + h auth + _else -> do + status status401 + respondText "you're not logged in buddy (this is probably a bug, go message clonk)" |
