Revision 6e0f3e65 snf-pithos-backend/pithos/backends/lib/sqlalchemy/permissions.py

b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/permissions.py
184 184
                          self.xfeaturevals.c.value == u.c.value)
185 185
        s = select([self.xfeatures.c.path], from_obj=[inner_join]).distinct()
186 186
        if prefix:
187
            s = s.where(self.xfeatures.c.path.like(
188
                self.escape_like(prefix) + '%', escape=ESCAPE_CHAR
189
            ))
187
            like = lambda p: self.xfeatures.c.path.like(
188
                self.escape_like(p) + '%', escape=ESCAPE_CHAR)
189
            s = s.where(or_(*map(like,
190
                                 self.access_inherit(prefix) or [prefix])))
190 191
        r = self.conn.execute(s)
191 192
        l = [row[0] for row in r.fetchall()]
192 193
        r.close()
......
208 209
    def access_list_shared(self, prefix=''):
209 210
        """Return the list of shared paths."""
210 211

  
211
        s = select([self.xfeatures.c.path],
212
                   self.xfeatures.c.path.like(
213
                       self.escape_like(prefix) + '%',
214
                       escape=ESCAPE_CHAR)).order_by(
215
                           self.xfeatures.c.path.asc())
212
        s = select([self.xfeatures.c.path])
213
        like = lambda p: self.xfeatures.c.path.like(
214
            self.escape_like(p) + '%', escape=ESCAPE_CHAR)
215
        s = s.where(or_(*map(like, self.access_inherit(prefix) or [prefix])))
216
        s = s.order_by(self.xfeatures.c.path.asc())
216 217
        r = self.conn.execute(s)
217 218
        l = [row[0] for row in r.fetchall()]
218 219
        r.close()

Also available in: Unified diff