couchdb-conduit 0.4.0 → 0.4.1
raw patch · 2 files changed
+23/−22 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Database.CouchDB.Conduit.DB: couchSecureDB :: MonadCouch m => Path -> [ByteString] -> [ByteString] -> [ByteString] -> [ByteString] -> ResourceT m ()
+ Database.CouchDB.Conduit.DB: couchSecureDB :: MonadCouch m => [ByteString] -> [ByteString] -> [ByteString] -> [ByteString] -> ResourceT m ()
Files
- couchdb-conduit.cabal +1/−1
- src/Database/CouchDB/Conduit/DB.hs +22/−21
couchdb-conduit.cabal view
@@ -1,5 +1,5 @@ name: couchdb-conduit-version: 0.4.0 +version: 0.4.1 cabal-version: >= 1.8 build-type: Simple stability: Experimental
src/Database/CouchDB/Conduit/DB.hs view
@@ -12,10 +12,10 @@ couchPutDB, couchPutDB_, couchDeleteDB, - -- * Replication - couchReplicateDB, -- * Security - couchSecureDB + couchSecureDB, + -- * Replication + couchReplicateDB ) where import qualified Data.ByteString as B @@ -26,7 +26,7 @@ import qualified Network.HTTP.Conduit as H import qualified Network.HTTP.Types as HT -import Database.CouchDB.Conduit (MonadCouch(..), Path) +import Database.CouchDB.Conduit (MonadCouch(..)) import Database.CouchDB.Conduit.LowLevel (couch, protect, protect') @@ -50,6 +50,24 @@ (H.RequestBodyBS B.empty) protect' >> return () +-- | Maintain DB security. +couchSecureDB :: MonadCouch m => + [B.ByteString] -- ^ Admin roles + -> [B.ByteString] -- ^ Admin names + -> [B.ByteString] -- ^ Readers roles + -> [B.ByteString] -- ^ Readers names + -> ResourceT m () +couchSecureDB adminRoles adminNames readersRoles readersNames = + couch HT.methodPut (`B.append` "/_security") [] [] + reqBody protect' + >> return () + where + reqBody = H.RequestBodyLBS $ A.encode $ A.object [ + "admins" A..= A.object [ "roles" A..= adminRoles, + "names" A..= adminNames ], + "readers" A..= A.object [ "roles" A..= readersRoles, + "names" A..= readersNames ] ] + -- | Database replication. -- -- See <http://guide.couchdb.org/editions/1/en/api.html#replication> for @@ -73,23 +91,6 @@ "continuous" A..= continuous, "cancel" A..= cancel ] -couchSecureDB :: MonadCouch m => - Path -- ^ Database - -> [B.ByteString] -- ^ Admin roles - -> [B.ByteString] -- ^ Admin names - -> [B.ByteString] -- ^ Readers roles - -> [B.ByteString] -- ^ Readers names - -> ResourceT m () -couchSecureDB p adminRoles adminNames readersRoles readersNames = - couch HT.methodPut (const $ p `B.append` "/_security") [] [] - reqBody protect' - >> return () - where - reqBody = H.RequestBodyLBS $ A.encode $ A.object [ - "admins" A..= A.object [ "roles" A..= adminRoles, - "names" A..= adminNames ], - "readers" A..= A.object [ "roles" A..= readersRoles, - "names" A..= readersNames ] ]