def content_added_moved_or_duplicated(event): """ Generates ContentAdded (and ContentMoved/ContentDuplicated) audit events """ if event.moving is not None: return _add_record('ContentMoved', event, [event.object]) elif event.duplicating is not None: return _add_record('ContentDuplicated', event, [event.object]) else: return _add_record('ContentAdded', event, postorder(event.object))
def remove_bogus_auditlogs(root): i = 0 # Blow away even the root auditlog, as it will have references to # AuditLogEntry objects that inherit from Persistent for resource in postorder(root): i += 1 if hasattr(resource, '__auditlog__'): del resource.__auditlog__ resource._p_deactivate() if i % 1000 == 0: resource._p_jar.cacheGC()
def evolve(root): logger.info("Running substanced evolve step 2: add PRINCIPAL_TO_ACL_BEARING " "relationships") objectmap = find_objectmap(root) if objectmap is None: return for obj in postorder(root): logger.info("Substanced evolve step 2: trying %s" % (obj,)) acl = getattr(obj, "__acl__", _marker) if acl is _marker: continue for princid in _referenceable_principals(acl): objectmap.connect(princid, obj, PrincipalToACLBearing)
def evolve(root): logger.info( 'Running substanced evolve step 3: evolve __services__ into ' '__is_service__' ) for obj in postorder(root): logger.info( 'Substanced evolve step 3: trying %s' % (obj,) ) services = getattr(obj, '__services__', None) if services: for name in services: obj[name].__is_service__ = True del obj.__services__
def add_path_to_acl_to_objectmap(root): objectmap = root.__objectmap__ objectmap.path_to_acl = objectmap.family.OO.BTree() logger.info('Populating path_to_acl in objectmap (expensive evolve step)') for obj in postorder(root): oid = objectmap.objectid_for(obj) path = objectmap.path_for(oid) upath = _SLASH.join(path) acl = get_acl(obj, None) suffix = '(no acl)' if acl is not None: objectmap.set_acl(obj, acl) suffix = '(indexed acl)' logger.info('%s %s' % (upath, suffix))
def evolve(root): logger.info( 'Running substanced evolve step 1: convert __objectid__ to __oid__' ) for obj in postorder(root): logger.info( 'Substanced evolve step 1: trying %s' % (obj,) ) objectid = getattr(obj, '__objectid__', _marker) if objectid is _marker: continue if hasattr(obj, '__oid__'): continue obj.__oid__ = objectid del obj.__objectid__
def evolve(root): logger.info( 'Running substanced evolve step 2: add PRINCIPAL_TO_ACL_BEARING ' 'relationships') objectmap = find_objectmap(root) if objectmap is None: return for obj in postorder(root): logger.info('Substanced evolve step 2: trying %s' % (obj, )) acl = getattr(obj, '__acl__', _marker) if acl is _marker: continue for princid in _referenceable_principals(acl): objectmap.connect( princid, obj, PrincipalToACLBearing, )