From 4527534b164f364486f554567498bd244631d2cf Mon Sep 17 00:00:00 2001 From: Florent Guillaume Date: Mon, 21 Nov 2005 16:54:03 +0000 Subject: [PATCH] Use new-style security declarations everywhere possible. This means remove the use of __ac_permissions__, foo__roles__ and default__class_init__. A few corner cases can't be converted because of circular imports. --- AcceleratedHTTPCacheManager.py | 24 +++++++++++++----------- RAMCacheManager.py | 23 +++++++++++++---------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/AcceleratedHTTPCacheManager.py b/AcceleratedHTTPCacheManager.py index c8369b3..3d5ea68 100644 --- a/AcceleratedHTTPCacheManager.py +++ b/AcceleratedHTTPCacheManager.py @@ -21,8 +21,10 @@ from OFS.Cache import Cache, CacheManager from OFS.SimpleItem import SimpleItem import time -import Globals +from Globals import InitializeClass from Globals import DTMLFile +from AccessControl import ClassSecurityInfo +from AccessControl.Permissions import view_management_screens import urlparse, httplib from cgi import escape from urllib import quote @@ -108,14 +110,8 @@ def ZCache_set(self, ob, data, view_name, keywords, mtime_func): class AcceleratedHTTPCacheManager (CacheManager, SimpleItem): ' ' - __ac_permissions__ = ( - ('View management screens', ('getSettings', - 'manage_main', - 'manage_stats', - 'getCacheReport', - 'sort_link')), - ('Change cache managers', ('manage_editProps',), ('Manager',)), - ) + security = ClassSecurityInfo() + security.setPermissionDefault('Change cache managers', ('Manager',)) manage_options = ( {'label':'Properties', 'action':'manage_main', @@ -138,7 +134,7 @@ def getId(self): ' ' return self.id - ZCacheManager_getCache__roles__ = () + security.declarePrivate('ZCacheManager_getCache') def ZCacheManager_getCache(self): cacheid = self.__cacheid try: @@ -149,12 +145,15 @@ def ZCacheManager_getCache(self): caches[cacheid] = cache return cache + security.declareProtected(view_management_screens, 'getSettings') def getSettings(self): ' ' return self._settings.copy() # Don't let DTML modify it. + security.declareProtected(view_management_screens, 'manage_main') manage_main = DTMLFile('dtml/propsAccel', globals()) + security.declareProtected('Change cache managers', 'manage_editProps') def manage_editProps(self, title, settings=None, REQUEST=None): ' ' if settings is None: @@ -170,6 +169,7 @@ def manage_editProps(self, title, settings=None, REQUEST=None): return self.manage_main( self, REQUEST, manage_tabs_message='Properties changed.') + security.declareProtected(view_management_screens, 'manage_stats') manage_stats = DTMLFile('dtml/statsAccel', globals()) def _getSortInfo(self): @@ -182,6 +182,7 @@ def _getSortInfo(self): sort_reverse = int(req.get('sort_reverse', 1)) return sort_by, sort_reverse + security.declareProtected(view_management_screens, 'getCacheReport') def getCacheReport(self): """ Returns the list of objects in the cache, sorted according to @@ -201,6 +202,7 @@ def getCacheReport(self): rval.reverse() return rval + security.declareProtected(view_management_screens, 'sort_link') def sort_link(self, name, id): """ Utility for generating a sort link. @@ -215,7 +217,7 @@ def sort_link(self, name, id): return '%s' % (escape(url, 1), escape(name)) -Globals.default__class_init__(AcceleratedHTTPCacheManager) +InitializeClass(AcceleratedHTTPCacheManager) manage_addAcceleratedHTTPCacheManagerForm = DTMLFile('dtml/addAccel', diff --git a/RAMCacheManager.py b/RAMCacheManager.py index 078f1f3..d0f3237 100644 --- a/RAMCacheManager.py +++ b/RAMCacheManager.py @@ -23,8 +23,10 @@ from thread import allocate_lock from cgi import escape import time -import Globals +from Globals import InitializeClass from Globals import DTMLFile +from AccessControl import ClassSecurityInfo +from AccessControl.Permissions import view_management_screens try: from cPickle import Pickler, HIGHEST_PROTOCOL except: from pickle import Pickler, HIGHEST_PROTOCOL @@ -347,14 +349,8 @@ class RAMCacheManager (CacheManager, SimpleItem): caching. """ - __ac_permissions__ = ( - ('View management screens', ('getSettings', - 'manage_main', - 'manage_stats', - 'getCacheReport', - 'sort_link',)), - ('Change cache managers', ('manage_editProps','manage_invalidate'), ('Manager',)), - ) + security = ClassSecurityInfo() + security.setPermissionDefault('Change cache managers', ('Manager',)) manage_options = ( {'label':'Properties', 'action':'manage_main', @@ -391,6 +387,7 @@ def ZCacheManager_getCache(self): caches[cacheid] = cache return cache + security.declareProtected(view_management_screens, 'getSettings') def getSettings(self): 'Returns the current cache settings.' res = self._settings.copy() @@ -398,8 +395,10 @@ def getSettings(self): res['max_age'] = 0 return res + security.declareProtected(view_management_screens, 'manage_main') manage_main = DTMLFile('dtml/propsRCM', globals()) + security.declareProtected('Change cache managers', 'manage_editProps') def manage_editProps(self, title, settings=None, REQUEST=None): 'Changes the cache settings.' if settings is None: @@ -419,6 +418,7 @@ def manage_editProps(self, title, settings=None, REQUEST=None): return self.manage_main( self, REQUEST, manage_tabs_message='Properties changed.') + security.declareProtected(view_management_screens, 'manage_stats') manage_stats = DTMLFile('dtml/statsRCM', globals()) def _getSortInfo(self): @@ -431,6 +431,7 @@ def _getSortInfo(self): sort_reverse = int(req.get('sort_reverse', 1)) return sort_by, sort_reverse + security.declareProtected(view_management_screens, 'getCacheReport') def getCacheReport(self): """ Returns the list of objects in the cache, sorted according to @@ -446,6 +447,7 @@ def getCacheReport(self): rval.reverse() return rval + security.declareProtected(view_management_screens, 'sort_link') def sort_link(self, name, id): """ Utility for generating a sort link. @@ -458,6 +460,7 @@ def sort_link(self, name, id): url = url + '&sort_reverse=' + (newsr and '1' or '0') return '%s' % (escape(url, 1), escape(name)) + security.declareProtected('Change cache managers', 'manage_invalidate') def manage_invalidate(self, paths, REQUEST=None): """ ZMI helper to invalidate an entry """ for path in paths: @@ -472,7 +475,7 @@ def manage_invalidate(self, paths, REQUEST=None): msg = 'Cache entries invalidated' return self.manage_stats(manage_tabs_message=msg) -Globals.default__class_init__(RAMCacheManager) +InitializeClass(RAMCacheManager) class _ByteCounter: