[#1289] Revamp permissions for performance

This commit introduces a Credentials object and a RoleCache object whose purpose
is to cache permission-related queries in memory rather than executing loads of
mongodb round-trips. Basically, any time you need to touch a ProjectRole, you
should check to see if the Credentials object can be used to satisfy your query instead.

Rick Copeland Rick Copeland 2011-01-13

removed Allura/allura/ext/admin/templates/project_perms.html
changed Allura/allura/config/middleware.py
changed Allura/allura/controllers/project.py
changed Allura/allura/ext/admin/templates/project_groups.html
changed Allura/allura/ext/admin/admin_main.py
changed Allura/allura/ext/admin/widgets.py
changed Allura/allura/lib/app_globals.py
changed Allura/allura/lib/helpers.py
changed Allura/allura/lib/security.py
changed Allura/allura/model/auth.py
changed Allura/allura/model/notification.py
changed Allura/allura/model/project.py
changed Allura/allura/templates/app_admin_permissions.html
changed Allura/allura/tests/functional/test_auth.py
changed Allura/allura/tests/model/test_auth.py
changed Allura/allura/tests/model/test_project.py
changed Allura/allura/tests/tscript.py
changed Allura/allura/app.py
changed ForgeBlog/forgeblog/main.py
changed ForgeChat/forgechat/main.py
changed ForgeTracker/forgetracker/tests/functional/test_root.py
changed ForgeTracker/forgetracker/tracker_main.py
changed ForgeWiki/forgewiki/wiki_main.py
Allura/allura/config/middleware.py Diff Switch to side-by-side view
Loading...
Allura/allura/controllers/project.py Diff Switch to side-by-side view
Loading...
Allura/allura/ext/admin/templates/project_groups.html Diff Switch to side-by-side view
Loading...
Allura/allura/ext/admin/admin_main.py Diff Switch to side-by-side view
Loading...
Allura/allura/ext/admin/widgets.py Diff Switch to side-by-side view
Loading...
Allura/allura/lib/app_globals.py Diff Switch to side-by-side view
Loading...
Allura/allura/lib/helpers.py Diff Switch to side-by-side view
Loading...
Allura/allura/lib/security.py Diff Switch to side-by-side view
Loading...
Allura/allura/model/auth.py Diff Switch to side-by-side view
Loading...
Allura/allura/model/notification.py Diff Switch to side-by-side view
Loading...
Allura/allura/model/project.py Diff Switch to side-by-side view
Loading...
Allura/allura/templates/app_admin_permissions.html Diff Switch to side-by-side view
Loading...
Allura/allura/tests/functional/test_auth.py Diff Switch to side-by-side view
Loading...
Allura/allura/tests/model/test_auth.py Diff Switch to side-by-side view
Loading...
Allura/allura/tests/model/test_project.py Diff Switch to side-by-side view
Loading...
Allura/allura/tests/tscript.py Diff Switch to side-by-side view
Loading...
Allura/allura/app.py Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/main.py Diff Switch to side-by-side view
Loading...
ForgeChat/forgechat/main.py Diff Switch to side-by-side view
Loading...
ForgeTracker/forgetracker/tests/functional/test_root.py Diff Switch to side-by-side view
Loading...
ForgeTracker/forgetracker/tracker_main.py Diff Switch to side-by-side view
Loading...
ForgeWiki/forgewiki/wiki_main.py Diff Switch to side-by-side view
Loading...