String objId = "";
try {
objId = collectionAcl.getString("r_object_id");
logger.fine("ACL r_object_id is " + objId);
checkpoint.setAclCheckpoint(objId);
IAcl aclObj = fetchAcl(objId);
if (isRequiredGroupOrSet(aclObj)) {
logger.log(Level.FINE,
"ACL {0} has required groups or required group set", objId);
requiredGroupAclStack =
getSecureAclDocumentWithRequiredGroupOrSet(aclObj, objId);
retDoc = requiredGroupAclStack.pop();
} else {
retAclDocument =
getSecureAclDocument(aclObj, objId, ActionType.ADD);
logger.fine("Creation of a new ACL to add");
retDoc = retAclDocument;
}
} catch (RepositoryException e) {
logger.severe("impossible to get the r_object_id of the document");
return null;
}
} else if (isOpen(collectionAclToModify)
&& collectionAclToModify.next()) {
logger.fine("Looking through the collection of ACLs to modify");
String eventId = "";
ITime aclModifyDate = null;
eventId = collectionAclToModify.getString("r_object_id");
aclModifyDate = collectionAclToModify.getTime("time_stamp_utc");
logger.fine("audit event r_object_id is " + eventId
+ ", modifyDate is " + aclModifyDate.getDate());
checkpoint.setAclModifyCheckpoint(aclModifyDate.getDate(), eventId);
String chronicleId = collectionAclToModify.getString("chronicle_id");
if (aclModifiedIds.contains(chronicleId)) {
logger.fine("Skipping redundant modify of: "
+ chronicleId);
continue;
}
String objIdModify = collectionAclToModify.getString("audited_obj_id");
if (collectionAclToModify.getString("event_name").equalsIgnoreCase(
"dm_destroy")) {
logger.log(Level.FINE, "ACL to delete: {0}" + objIdModify);
retAclDocument = getSecureAclDocument(null, objIdModify,
ActionType.DELETE);
} else {
IAcl aclObj = fetchAcl(objIdModify);
if (isRequiredGroupOrSet(aclObj)) {
logger.log(Level.FINE, "ACL to modify: {0} has required groups "
+ "or required group set", objIdModify);
requiredGroupAclStack =
getSecureAclDocumentWithRequiredGroupOrSet(aclObj,