diff --git a/product/ERP5Catalog/CatalogTool.py b/product/ERP5Catalog/CatalogTool.py index c4445feb0d3e5a00a948c982348015c34db24d70..a039bfbf041c24b1660b78cada3d7c767e2d5615 100644 --- a/product/ERP5Catalog/CatalogTool.py +++ b/product/ERP5Catalog/CatalogTool.py @@ -509,10 +509,6 @@ class CatalogTool (UniqueObject, ZCatalog, CMFCoreCatalogTool, ActiveObject): allowedRolesAndUsers, role_column_dict = self.getAllowedRolesAndUsers(**kw) catalog = self.getSQLCatalog(sql_catalog_id) method = getattr(catalog, catalog.sql_search_security, None) - if method is None: - raise DeprecationWarning, "The usage of allowedRolesAndUsers is "\ - "deprecated. Please update your catalog "\ - "business template." if allowedRolesAndUsers: allowedRolesAndUsers.sort() cache_key = tuple(allowedRolesAndUsers) @@ -524,10 +520,20 @@ class CatalogTool (UniqueObject, ZCatalog, CMFCoreCatalogTool, ActiveObject): try: security_uid_list = security_uid_cache[cache_key] except KeyError: - # XXX: What with this string transformation ?! Souldn't it be done in - # dtml instead ? - allowedRolesAndUsers = ["'%s'" % (role, ) for role in allowedRolesAndUsers] - security_uid_list = [x.uid for x in method(security_roles_list = allowedRolesAndUsers)] + if method is None: + warnings.warn("The usage of allowedRolesAndUsers is "\ + "deprecated. Please update your catalog "\ + "business template.", DeprecationWarning) + security_uid_list = [x.security_uid for x in \ + self.unrestrictedSearchResults( + allowedRolesAndUsers=allowedRolesAndUsers, + select_expression="security_uid", + group_by_expression="security_uid")] + else: + # XXX: What with this string transformation ?! Souldn't it be done in + # dtml instead ? + allowedRolesAndUsers = ["'%s'" % (role, ) for role in allowedRolesAndUsers] + security_uid_list = [x.uid for x in method(security_roles_list = allowedRolesAndUsers)] security_uid_cache[cache_key] = security_uid_list else: security_uid_list = []