diff --git a/api/src/main/java/org/vivoweb/webapp/controller/freemarker/CreateAndLinkResourceController.java b/api/src/main/java/org/vivoweb/webapp/controller/freemarker/CreateAndLinkResourceController.java index e6c14905d..f2533a9d4 100644 --- a/api/src/main/java/org/vivoweb/webapp/controller/freemarker/CreateAndLinkResourceController.java +++ b/api/src/main/java/org/vivoweb/webapp/controller/freemarker/CreateAndLinkResourceController.java @@ -21,6 +21,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; import edu.cornell.mannlib.vitro.webapp.dao.InsertException; import edu.cornell.mannlib.vitro.webapp.dao.NewURIMakerVitro; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.N3EditUtils; import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames; import edu.cornell.mannlib.vitro.webapp.rdfservice.ChangeSet; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService; @@ -391,7 +392,7 @@ protected ResponseValues processRequest(VitroRequest vreq) { } // Finished processing confirmation, write the differences between the existing and updated model - writeChanges(vreq.getRDFService(), existingModel, updatedModel); + writeChanges(vreq.getRDFService(), existingModel, updatedModel, N3EditUtils.getEditorUri(vreq)); } // Get any IDs that have not yet been processed from the form @@ -1815,8 +1816,9 @@ protected boolean isResourceOfType(Resource resource, String typeUri) { * @param rdfService * @param existingModel * @param updatedModel + * @param editroUri */ - protected void writeChanges(RDFService rdfService, Model existingModel, Model updatedModel) { + protected void writeChanges(RDFService rdfService, Model existingModel, Model updatedModel, String editorUri) { Model removeModel = existingModel.difference(updatedModel); Model addModel = updatedModel.difference(existingModel); @@ -1829,12 +1831,12 @@ protected void writeChanges(RDFService rdfService, Model existingModel, Model up if (!addModel.isEmpty()) { addStream = makeN3InputStream(addModel); - changeSet.addAddition(addStream, RDFService.ModelSerializationFormat.N3, ModelNames.ABOX_ASSERTIONS); + changeSet.addAddition(addStream, RDFService.ModelSerializationFormat.N3, ModelNames.ABOX_ASSERTIONS, editorUri); } if (!removeModel.isEmpty()) { removeStream = makeN3InputStream(removeModel); - changeSet.addRemoval(removeStream, RDFService.ModelSerializationFormat.N3, ModelNames.ABOX_ASSERTIONS); + changeSet.addRemoval(removeStream, RDFService.ModelSerializationFormat.N3, ModelNames.ABOX_ASSERTIONS, editorUri); } try { diff --git a/home/src/main/resources/config/example.applicationSetup.n3 b/home/src/main/resources/config/example.applicationSetup.n3 index 0acd91f0f..ce5dfa2fd 100644 --- a/home/src/main/resources/config/example.applicationSetup.n3 +++ b/home/src/main/resources/config/example.applicationSetup.n3 @@ -26,10 +26,22 @@ :hasSearchIndexer :basicSearchIndexer ; :hasImageProcessor :iioImageProcessor ; :hasFileStorage :ptiFileStorage ; +# :hasAuditModule :tdbAuditModule ; :hasContentTripleSource :tdbContentTripleSource ; :hasConfigurationTripleSource :tdbConfigurationTripleSource ; :hasTBoxReasonerModule :jfactTBoxReasonerModule . +# ---------------------------- +# +# Audit module: +# + +#:tdbAuditModule +# a , +# ; +# :hasTdbDirectory "tdbAuditModels" . + + # ---------------------------- # # Image processor module: diff --git a/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt b/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt index 3061e655d..5128e9486 100644 --- a/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt +++ b/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt @@ -92,3 +92,6 @@ edu.cornell.mannlib.vitro.webapp.controller.individual.VIVOIndividualResponseBui # This should be near the end, because it will issue a warning if the connection to the SearchEngine times out. edu.cornell.mannlib.vitro.webapp.servlet.setup.SearchEngineSmokeTest + +edu.cornell.mannlib.vitro.webapp.audit.AuditSetup +