Return paths shared to '*' in shared lists (in simple and modular backends).
authorAntony Chazapis <chazapis@gmail.com>
Mon, 5 Sep 2011 13:43:51 +0000 (16:43 +0300)
committerAntony Chazapis <chazapis@gmail.com>
Mon, 5 Sep 2011 13:43:51 +0000 (16:43 +0300)
pithos/backends/lib/permissions.py
pithos/backends/simple.py

index 02cefe5..f97746b 100644 (file)
@@ -118,7 +118,7 @@ class Permissions(XFeatures, Groups, Public):
         q = ("select distinct path from xfeatures inner join "
              "   (select distinct feature_id, key from xfeaturevals inner join "
              "      (select owner || ':' || name as value from groups "
-             "       where member = ? union select ?) "
+             "       where member = ? union select ? union select '*') "
              "    using (value)) "
              "using (feature_id)")
         p = (member, member)
index 6d6efa2..504af1b 100644 (file)
@@ -974,8 +974,10 @@ class SimpleBackend(BaseBackend):
             raise NotAllowedError
     
     def _allowed_paths(self, user, prefix=None):
-        sql = '''select distinct name from permissions where (user = ?
-                    or user in (select account || ':' || gname from groups where user = ?))'''
+        sql = '''select distinct name from permissions 
+                 where (user = '*' or
+                        user = ? or
+                        user in (select account || ':' || gname from groups where user = ?))'''
         param = (user, user)
         if prefix:
             sql += ' and name like ?'