From f2b0c49ad50c490bc537862cfd1318c87b8c785a Mon Sep 17 00:00:00 2001 From: Jean-Paul Smets <jp@nexedi.com> Date: Sat, 22 Sep 2007 17:17:52 +0000 Subject: [PATCH] Added support for checked_permission parameter in objectValues and contentValues so that we are consistent with category accessors and related accessors. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@16552 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/Core/Folder.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/product/ERP5Type/Core/Folder.py b/product/ERP5Type/Core/Folder.py index 91dac71e80..f912dc627e 100644 --- a/product/ERP5Type/Core/Folder.py +++ b/product/ERP5Type/Core/Folder.py @@ -1135,7 +1135,8 @@ class Folder(CopyContainer, CMFBTreeFolder, CMFHBTreeFolder, Base, FolderMixIn, security.declareProtected( Permissions.AccessContentsInformation, 'objectValues' ) def objectValues(self, spec=None, meta_type=None, portal_type=None, - sort_on=None, sort_order=None, base_id=None,**kw): + sort_on=None, sort_order=None, base_id=None, + checked_permission=None, **kw): """ Returns a list containing object contained in this folder. """ @@ -1166,13 +1167,16 @@ class Folder(CopyContainer, CMFBTreeFolder, CMFHBTreeFolder, Base, FolderMixIn, portal_type = (portal_type,) object_list = filter(lambda x: x.getPortalType() in portal_type, object_list) + if checked_permission is not None: + checkPermission = getSecurityManager().checkPermission + object_list = [o for o in object_list if checkPermission(checked_permission, o)] object_list = sortValueList(object_list, sort_on, sort_order, **kw) return object_list security.declareProtected( Permissions.AccessContentsInformation, 'contentValues' ) def contentValues(self, spec=None, meta_type=None, portal_type=None, - sort_on=None, sort_order=None, **kw): + sort_on=None, sort_order=None, checked_permission=None, **kw): """ Returns a list containing object contained in this folder. Filter objects with appropriate permissions (as in contentValues) @@ -1187,6 +1191,9 @@ class Folder(CopyContainer, CMFBTreeFolder, CMFHBTreeFolder, Base, FolderMixIn, object_list = self._folder_handler.contentValues(self, spec=spec, filter=kw) except AttributeError: object_list = CMFBTreeFolder.contentValues(self, spec=spec, filter=kw) + if checked_permission is not None: + checkPermission = getSecurityManager().checkPermission + object_list = [o for o in object_list if checkPermission(checked_permission, o)] object_list = sortValueList(object_list, sort_on, sort_order, **kw) return object_list -- 2.30.9