RM-853 File Record audit event is absent

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@54561 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Craig Tan
2013-08-28 11:37:18 +00:00
parent 040d6610dd
commit abc744d85d
5 changed files with 77 additions and 92 deletions

View File

@@ -97,6 +97,43 @@ sendEmail.description=Send an email
setPropertyValue.title=Set property value
setPropertyValue.description=Set a property value
# Edit Hold Reason
editHoldReason.title=Edit hold reason
editHoldReason.description=Edit hold reason
# Relinquish Hold
relinquishHold.title=Relinquish hold
relinquishHold.description=Relinquish hold
# Edit Review As Of Date
editReviewAsOfDate.title=Edit review as of date
editReviewAsOfDate.description=Edit review as of date
# Edit Disposition Action As Of Date
editDispositionActionAsOfDate.title=Edit disposition action as of date
editDispositionActionAsOfDate.description=Edit disposition action as of date
# Broadcast Vital Record Definition
broadcastVitalRecordDefinition.title=Broadcast vital record definition
broadcastVitalRecordDefinition.description=Broadcast vital record definition
# Broadcast Disposition Action Definition Update
broadcastDispositionActionDefinitionUpdate.title=Broadcast disposition action definition update
broadcastDispositionActionDefinitionUpdate.description=Broadcast disposition action definition update
# Undo Event
undoEvent.title=Undo event
undoEvent.description=Undo event
# Transfer Complete
transferComplete.title=Transfer complete
transferComplete.description=Transfer complete
# Accession Complete
accessionComplete.title=Accession complete
accessionComplete.description=Accession complete
# Split Email
splitEmail.title=Split email
splitEmail.description=Split email
# Create Disposition Schedule
createDispositionSchedule.title=Create disposition schedule
createDispositionSchedule.description=Create disposition schedule
# File Destruction Report
fileDestructionReport.title=File destruction report
fileDestructionReport.description=File destruction report
# Action parameter constraints
rm-ac-is-kind-kinds.record_category=Record Category
rm-ac-is-kind-kinds.record_folder=Record Folder

View File

@@ -145,6 +145,7 @@
abstract="true">
<property name="runtimeActionService" ref="actionService"/>
<property name="recordsManagementActionService" ref="recordsManagementActionService"/>
<property name="recordsManagementAuditService" ref="recordsManagementAuditService"/>
<property name="proxyInterfaces">
<list>
<value>org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction</value>
@@ -852,7 +853,7 @@
</list>
</property>
</bean>
<bean id="executeScript" class="org.alfresco.module.org_alfresco_module_rm.action.impl.DelegateAction">
<bean id="executeScript" class="org.alfresco.module.org_alfresco_module_rm.action.impl.DelegateAction" parent="rmAction">
<property name="publicAction" value="true"/>
<property name="delegateAction" ref="rmscript" />
</bean>
@@ -888,7 +889,7 @@
</list>
</property>
</bean>
<bean id="sendEmail" class="org.alfresco.module.org_alfresco_module_rm.action.impl.DelegateAction">
<bean id="sendEmail" class="org.alfresco.module.org_alfresco_module_rm.action.impl.DelegateAction" parent="rmAction">
<property name="publicAction" value="true"/>
<property name="delegateAction" ref="mail" />
</bean>
@@ -905,7 +906,7 @@
</list>
</property>
</bean>
<bean id="setPropertyValue" class="org.alfresco.module.org_alfresco_module_rm.action.impl.DelegateAction">
<bean id="setPropertyValue" class="org.alfresco.module.org_alfresco_module_rm.action.impl.DelegateAction" parent="rmAction">
<property name="publicAction" value="true"/>
<property name="delegateAction" ref="set-property-value" />
<property name="adhocPropertiesAllowed" value="true" />

View File

@@ -208,4 +208,11 @@ public interface RecordsManagementAuditService
* @return List of audit events
*/
List<AuditEvent> getAuditEvents();
/**
* Register records management action
*
* @param rmAction records management action
*/
void register(RecordsManagementAction rmAction);
}

View File

@@ -50,9 +50,9 @@ import org.alfresco.repo.policy.JavaBehaviour;
import org.alfresco.repo.policy.PolicyComponent;
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.repo.transaction.TransactionListenerAdapter;
import org.alfresco.repo.transaction.TransactionalResourceHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.audit.AuditQueryParameters;
import org.alfresco.service.cmr.audit.AuditService;
import org.alfresco.service.cmr.audit.AuditService.AuditQueryCallback;
@@ -103,36 +103,8 @@ public class RecordsManagementAuditServiceImpl
private static final String MSG_DELETE_OBJECT = "rm.audit.delte-object";
private static final String MSG_LOGIN_SUCCEEDED = "rm.audit.login-succeeded";
private static final String MSG_LOGIN_FAILED = "rm.audit.login-failed";
private static final String MSG_REVIEWED = "rm.audit.reviewed";
private static final String MSG_CUT_OFF = "rm.audit.cut-off";
private static final String MSG_REVERSED_CUT_OFF = "rm.audit.reversed-cut-off";
private static final String MSG_DESTROYED_ITEM = "rm.audit.destroyed-item";
private static final String MSG_OPENED_RECORD_FOLDER = "rm.audit.opened-record-folder";
private static final String MSG_CLOSED_RECORD_FOLDER = "rm.audit.closed-record-folder";
private static final String MSG_DECLARED_RECORD = "rm.audit.declared-record";
private static final String MSG_UNDECLARED_RECORD = "rm.audit.undeclared-record";
private static final String MSG_FROZE_ITEM = "rm.audit.froze-item";
private static final String MSG_RELINQUISED_HOLD = "rm.audit.relinquised-hold";
private static final String MSG_UPDATED_HOLD_REASON = "rm.audit.updated-hold-reason";
private static final String MSG_UPDATED_REVIEW_AS_OF_DATE = "rm.audit.updated-review-as-of-date";
private static final String MSG_UPDATED_DISPOSITION_AS_OF_DATE = "rm.audit.updated-disposition-as-of-date";
private static final String MSG_UPDATED_VITAL_RECORD_DEFINITION = "rm.audit.updated-vital-record-definition";
private static final String MSG_UPDATED_DISPOSITOIN_ACTION_DEFINITION = "rm.audit.updated-disposition-action-definition";
private static final String MSG_COMPELTED_EVENT = "rm.audit.completed-event";
private static final String MSG_REVERSED_COMPLETE_EVENT = "rm.audit.revered-complete-event";
private static final String MSG_TRANSFERRED_ITEM = "rm.audit.transferred-item";
private static final String MSG_COMPLETED_TRANSFER = "rm.audit.completed-transfer";
private static final String MSG_ACCESSION = "rm.audit.accession";
private static final String MSG_COMPLETED_ACCESSION = "rm.audit.copmleted-accession";
private static final String MSG_SCANNED_RECORD = "rm.audit.scanned-record";
private static final String MSG_PDF_RECORD = "rm.audit.pdf-record";
private static final String MSG_PHOTO_RECORD = "rm.audit.photo-record";
private static final String MSG_WEB_RECORD = "rm.audit.web-record";
private static final String MSG_TRAIL_FILE_FAIL = "rm.audit.trail-file-fail";
private static final String MSG_AUDIT_REPORT = "rm.audit.audit-report";
private static final String MSG_CREATE_DISPOSITION_SCHEDULE = "rm.audit.create-disposition-schedule";
private static final String MSG_UNFREEZE = "rm.audit.unfreeze";
private static final String MSG_REJECT_RECORD = "rm.audit.reject-record";
/** Logger */
private static Log logger = LogFactory.getLog(RecordsManagementAuditServiceImpl.class);
@@ -157,7 +129,9 @@ public class RecordsManagementAuditServiceImpl
private boolean shutdown = false;
private RMAuditTxnListener txnListener;
private Map<String, AuditEvent> auditEvents;
/** Registered and initialised records management auditEvents */
private Map<String, AuditEvent> auditEvents = new HashMap<String, AuditEvent>();
/**
* Set the component used to bind to behaviour callbacks
@@ -239,6 +213,17 @@ public class RecordsManagementAuditServiceImpl
this.filePlanService = filePlanService;
}
/**
* @see org.alfresco.module.org_alfresco_module_rm.RecordsManagementAuditService#register(org.alfresco.module.org_alfresco_module_rm.RecordsManagementAction)
*/
public void register(RecordsManagementAction rmAction)
{
if (this.auditEvents.containsKey(rmAction.getName()) == false)
{
this.auditEvents.put(rmAction.getName(), new AuditEvent(rmAction.getName(), rmAction.getLabel()));
}
}
/**
* Checks that all necessary properties have been set.
*/
@@ -261,8 +246,6 @@ public class RecordsManagementAuditServiceImpl
protected void initAuditEvents()
{
// TODO: make this map configurable and localisable.
this.auditEvents = new HashMap<String, AuditEvent>(32);
this.auditEvents.put(RM_AUDIT_EVENT_UPDATE_RM_OBJECT,
new AuditEvent(RM_AUDIT_EVENT_UPDATE_RM_OBJECT, MSG_UPDATED_METADATA));
@@ -275,63 +258,6 @@ public class RecordsManagementAuditServiceImpl
this.auditEvents.put(RM_AUDIT_EVENT_LOGIN_FAILURE,
new AuditEvent(RM_AUDIT_EVENT_LOGIN_FAILURE, MSG_LOGIN_FAILED));
this.auditEvents.put("reviewed",
new AuditEvent("reviewed", MSG_REVIEWED));
this.auditEvents.put("cutoff",
new AuditEvent("cutoff", MSG_CUT_OFF));
this.auditEvents.put("unCutoff",
new AuditEvent("unCutoff", MSG_REVERSED_CUT_OFF));
this.auditEvents.put("destroy",
new AuditEvent("destroy", MSG_DESTROYED_ITEM));
this.auditEvents.put("openRecordFolder",
new AuditEvent("openRecordFolder", MSG_OPENED_RECORD_FOLDER));
this.auditEvents.put("closeRecordFolder",
new AuditEvent("closeRecordFolder", MSG_CLOSED_RECORD_FOLDER));
this.auditEvents.put("declareRecord",
new AuditEvent("declareRecord", MSG_DECLARED_RECORD));
this.auditEvents.put("undeclareRecord",
new AuditEvent("undeclareRecord", MSG_UNDECLARED_RECORD));
this.auditEvents.put("freeze",
new AuditEvent("freeze", MSG_FROZE_ITEM));
this.auditEvents.put("relinquishHold",
new AuditEvent("relinquishHold", MSG_RELINQUISED_HOLD));
this.auditEvents.put("editHoldReason",
new AuditEvent("editHoldReason", MSG_UPDATED_HOLD_REASON));
this.auditEvents.put("editReviewAsOfDate",
new AuditEvent("editReviewAsOfDate", MSG_UPDATED_REVIEW_AS_OF_DATE));
this.auditEvents.put("editDispositionActionAsOfDate",
new AuditEvent("editDispositionActionAsOfDate", MSG_UPDATED_DISPOSITION_AS_OF_DATE));
this.auditEvents.put("broadcastVitalRecordDefinition",
new AuditEvent("broadcastVitalRecordDefinition", MSG_UPDATED_VITAL_RECORD_DEFINITION));
this.auditEvents.put("broadcastDispositionActionDefinitionUpdate",
new AuditEvent("broadcastDispositionActionDefinitionUpdate", MSG_UPDATED_DISPOSITOIN_ACTION_DEFINITION));
this.auditEvents.put("completeEvent",
new AuditEvent("completeEvent", MSG_COMPELTED_EVENT));
this.auditEvents.put("undoEvent",
new AuditEvent("undoEvent", MSG_REVERSED_COMPLETE_EVENT));
this.auditEvents.put("transfer",
new AuditEvent("transfer", MSG_TRANSFERRED_ITEM));
this.auditEvents.put("transferComplete",
new AuditEvent("transferComplete", MSG_COMPLETED_TRANSFER));
this.auditEvents.put("accession",
new AuditEvent("accession", MSG_ACCESSION));
this.auditEvents.put("accessionComplete",
new AuditEvent("accessionComplete", MSG_COMPLETED_ACCESSION));
this.auditEvents.put("applyScannedRecord",
new AuditEvent("applyScannedRecord", MSG_SCANNED_RECORD));
this.auditEvents.put("applyPdfRecord",
new AuditEvent("applyPdfRecord", MSG_PDF_RECORD));
this.auditEvents.put("applyDigitalPhotographRecord",
new AuditEvent("applyDigitalPhotographRecord", MSG_PHOTO_RECORD));
this.auditEvents.put("applyWebRecord",
new AuditEvent("applyWebRecord", MSG_WEB_RECORD));
this.auditEvents.put("createDispositionSchedule",
new AuditEvent("createDispositionSchedule", MSG_CREATE_DISPOSITION_SCHEDULE));
this.auditEvents.put("unfreeze",
new AuditEvent("unfreeze", MSG_UNFREEZE));
this.auditEvents.put("reject",
new AuditEvent("reject", MSG_REJECT_RECORD));
// Added for DOD compliance
this.auditEvents.put("createPerson",
new AuditEvent("createPerson", "User Created"));

View File

@@ -20,6 +20,7 @@ package org.alfresco.module.org_alfresco_module_rm.capability;
import org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction;
import org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementActionService;
import org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService;
import org.alfresco.repo.action.RuntimeActionService;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.springframework.aop.framework.ProxyFactoryBean;
@@ -32,6 +33,8 @@ public class RMActionProxyFactoryBean extends ProxyFactoryBean
private RecordsManagementActionService recordsManagementActionService;
private RecordsManagementAuditService recordsManagementAuditService;
/**
* Set action service
*
@@ -52,6 +55,16 @@ public class RMActionProxyFactoryBean extends ProxyFactoryBean
this.recordsManagementActionService = recordsManagementActionService;
}
/**
* Set records management service
*
* @param recordsManagementAuditService
*/
public void setRecordsManagementAuditService(RecordsManagementAuditService recordsManagementAuditService)
{
this.recordsManagementAuditService = recordsManagementAuditService;
}
public void registerAction()
{
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Void>()
@@ -63,6 +76,7 @@ public class RMActionProxyFactoryBean extends ProxyFactoryBean
// runtimeActionService.registerActionExecuter((ActionExecuter) getObject());
// }
recordsManagementActionService.register((RecordsManagementAction) getObject());
recordsManagementAuditService.register((RecordsManagementAction) getObject());
return null;
}
}, AuthenticationUtil.getSystemUserName());