+module Rakka.Resource.CheckAuth
+ ( resCheckAuth
+ )
+ where
+
+import Network.HTTP.Lucu
+import Rakka.Authorization
+import Rakka.Environment
+
+
+resCheckAuth :: Environment -> ResourceDef
+resCheckAuth env
+ = ResourceDef {
+ resUsesNativeThread = False
+ , resIsGreedy = False
+ , resGet
+ = Just $
+ do authM <- getAuthorization
+ case authM of
+ Just (BasicAuthCredential userID password)
+ -> do valid <- isValidPair (envAuthDB env) userID password
+ if valid then
+ setStatus NoContent
+ else
+ setStatus Forbidden
+ _ -> setStatus Forbidden
+ , resHead = Nothing
+ , resPost = Nothing
+ , resPut = Nothing
+ , resDelete = Nothing
+ }