diff --git a/Catalog.py b/Catalog.py index 37ff465c..414b739d 100644 --- a/Catalog.py +++ b/Catalog.py @@ -332,7 +332,10 @@ def uncatalogObject(self, uid): for x in self.indexes.values(): if hasattr(x, 'unindex_object'): - x.unindex_object(rid) + try: + x.unindex_object(rid) + except KeyError: + pass #fugedaboudit del self.data[rid] del self.uids[uid] diff --git a/ZCatalog.py b/ZCatalog.py index e0e7562c..19ea8e70 100644 --- a/ZCatalog.py +++ b/ZCatalog.py @@ -136,13 +136,22 @@ class ZCatalog(Folder, FindSupport, Persistent, Implicit): __ac_permissions__=( ('Manage ZCatalog Entries', - ['manage_catalogObject', 'manage_uncatalogObject', + ['manage_catalogObject', 'manage_uncatalogObject', + 'catalog_object', 'uncatalog_object', + 'manage_catalogView', 'manage_catalogFind', - 'manage_catalogFindResults', 'manage_main'], + 'manage_catalogSchema', 'manage_catalogIndexes', + 'manage_catalogStatus', + + 'manage_catalogReindex', 'manage_catalogFoundItems', + 'manage_catalogClear', 'manage_addColumn', 'manage_delColumns', + 'manage_addIndex', 'manage_delIndexs', 'manage_main',], ['Manager']), ('Search ZCatalog', - ['searchResults','__call__'], + ['searchResults', '__call__', 'uniqueValuesFor', + 'getpath', 'schema', 'indexes', 'index_objects', + 'all_meta_types', 'valid_roles', 'resolve_url',], ['Anonymous', 'Manager']), ) @@ -228,7 +237,7 @@ def manage_catalogReindex(self, REQUEST): references and refreshing objects""" items = tuple(self._catalog.uids.items()) - self._catalog.clear() +# self._catalog.clear() for path, i in items: try: