use alembic to initialize the backend database
[pithos] / snf-pithos-backend / pithos / backends / lib / sqlalchemy / permissions.py
index af902f8..9644e85 100644 (file)
@@ -70,11 +70,11 @@ class Permissions(XFeatures, Groups, Public):
             self.xfeature_destroy(path)
             return
         feature = self.xfeature_create(path)
+        self.feature_clear(feature, READ)
+        self.feature_clear(feature, WRITE)
         if r:
-            self.feature_clear(feature, READ)
             self.feature_setmany(feature, READ, r)
         if w:
-            self.feature_clear(feature, WRITE)
             self.feature_setmany(feature, WRITE, w)
     
     def access_get(self, path):
@@ -115,6 +115,12 @@ class Permissions(XFeatures, Groups, Public):
         self.xfeature_destroy(path)
         self.public_unset(path)
     
+    def access_clear_bulk(self, paths):
+        """Revoke access to path (both permissions and public)."""
+        
+        self.xfeature_destroy_bulk(paths)
+        self.public_unset_bulk(paths)
+    
     def access_check(self, path, access, member):
         """Return true if the member has this access to the path."""