Mercurial > p > roundup > code
diff test/db_test_base.py @ 8136:5a2b9435a04d permission-performance
Make permission filter functions configurable
For debugging and performance measurements it makes sense to allow
turning permission filter functions off.
| author | Ralf Schlatterbeck <rsc@runtux.com> |
|---|---|
| date | Wed, 23 Oct 2024 17:46:05 +0200 |
| parents | aa5ae3f84889 |
| children | e9af08743759 |
line wrap: on
line diff
--- a/test/db_test_base.py Wed Oct 23 16:29:43 2024 +0200 +++ b/test/db_test_base.py Wed Oct 23 17:46:05 2024 +0200 @@ -3033,6 +3033,22 @@ # User may see own and public queries self.assertEqual(r, ['5', '6', '4', '3', '2', '1']) + def testFilteringWithPermissionFilterFunctionOff(self): + view_query = self.setupQuery() + + def filter(db, userid, klass): + return [dict(filterspec = dict(private_for=['-1', userid]))] + perm = self.db.security.addPermission + p = perm(name='View', klass='query', check=view_query, filter=filter) + self.db.security.addPermissionToRole("User", p) + # Turn filtering off + self.db.config.RDBMS_DEBUG_FILTER = True + filt = self.db.query.filter_with_permissions + + r = filt(None, {}, sort=[('+', 'name')]) + # User may see own and public queries + self.assertEqual(r, ['5', '6', '4', '3', '2', '1']) + # XXX add sorting tests for other types # nuke and re-create db for restore
