Skip to content

Commit

Permalink
Use new-style security declarations everywhere possible. This means
Browse files Browse the repository at this point in the history
remove the use of __ac_permissions__, foo__roles__ and
default__class_init__. A few corner cases can't be converted because of
circular imports.
  • Loading branch information
Florent Guillaume committed Nov 21, 2005
1 parent 9dbd029 commit 4527534
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 21 deletions.
24 changes: 13 additions & 11 deletions AcceleratedHTTPCacheManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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',
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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):
Expand All @@ -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
Expand All @@ -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.
Expand All @@ -215,7 +217,7 @@ def sort_link(self, name, id):
return '<a href="%s">%s</a>' % (escape(url, 1), escape(name))


Globals.default__class_init__(AcceleratedHTTPCacheManager)
InitializeClass(AcceleratedHTTPCacheManager)


manage_addAcceleratedHTTPCacheManagerForm = DTMLFile('dtml/addAccel',
Expand Down
23 changes: 13 additions & 10 deletions RAMCacheManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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',
Expand Down Expand Up @@ -391,15 +387,18 @@ 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()
if not res.has_key('max_age'):
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:
Expand All @@ -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):
Expand All @@ -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
Expand All @@ -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.
Expand All @@ -458,6 +460,7 @@ def sort_link(self, name, id):
url = url + '&sort_reverse=' + (newsr and '1' or '0')
return '<a href="%s">%s</a>' % (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:
Expand All @@ -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:
Expand Down

0 comments on commit 4527534

Please sign in to comment.