couchdb-conduit 0.2.0.1 → 0.2.1
raw patch · 2 files changed
+36/−4 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Database.CouchDB.Conduit.DB: couchSecureDB :: MonadCouch m => Path -> [ByteString] -> [ByteString] -> [ByteString] -> [ByteString] -> ResourceT m ()
Files
couchdb-conduit.cabal view
@@ -1,5 +1,5 @@ name: couchdb-conduit-version: 0.2.0.1 +version: 0.2.1 cabal-version: >= 1.8 build-type: Simple stability: Experimental
src/Database/CouchDB/Conduit/DB.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE OverloadedStrings #-} {- | CouchDB database methods. @@ -13,11 +14,18 @@ couchPutDB, couchPutDB_, couchDeleteDB, - couchReplicateDB + -- * Replication + couchReplicateDB, + -- * Security + couchSecureDB ) where +--import Control.Applicative ((<$>), (<*>), empty) + import qualified Data.ByteString as B import qualified Data.Aeson as A +--import Data.Generics (Data, Typeable) +--import Data.Default (Default (def)) import Data.Conduit (ResourceT) @@ -27,6 +35,7 @@ import Database.CouchDB.Conduit (MonadCouch(..), Path) import Database.CouchDB.Conduit.LowLevel (couch, protect, protect') + -- | Create CouchDB database. couchPutDB :: MonadCouch m => Path -- ^ CouchDB Database name. @@ -75,5 +84,28 @@ "target" A..= target, "create_target" A..= createTarget, "continuous" A..= continuous, - "cancel" A..= cancel - ]+ "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 (`B.append` B.append "/" p) [] [] + 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 ] ] + + + + + +