MIFOSX-9: ensure @Components are picked up in audit package. fix sql for retrieve of audit data.

This commit is contained in:
Keith Woodlock
2012-12-08 01:02:22 +00:00
parent 3b27bcc4d1
commit 3901a06ad8
5 changed files with 94 additions and 139 deletions
@@ -26,10 +26,8 @@ import org.springframework.stereotype.Component;
@Scope("singleton")
public class AuditApiResource {
private final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<String>(
Arrays.asList("id", "apiOperation", "resource", "resourceId",
"makerId", "madeOnDate", "checkerId", "checkedOnDate",
"commandAsJson"));
private final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "apiOperation", "resource", "resourceId",
"makerId", "madeOnDate", "checkerId", "checkedOnDate", "commandAsJson"));
private final String resourceNameForPermissions = "AUDIT";
private final PlatformSecurityContext context;
@@ -38,10 +36,8 @@ public class AuditApiResource {
private final DefaultToApiJsonSerializer<AuditData> toApiJsonSerializer;
@Autowired
public AuditApiResource(final PlatformSecurityContext context,
final AuditReadPlatformService auditReadPlatformService,
final ApiRequestParameterHelper apiRequestParameterHelper,
final DefaultToApiJsonSerializer<AuditData> toApiJsonSerializer) {
public AuditApiResource(final PlatformSecurityContext context, final AuditReadPlatformService auditReadPlatformService,
final ApiRequestParameterHelper apiRequestParameterHelper, final DefaultToApiJsonSerializer<AuditData> toApiJsonSerializer) {
this.context = context;
this.auditReadPlatformService = auditReadPlatformService;
this.apiRequestParameterHelper = apiRequestParameterHelper;
@@ -53,19 +49,15 @@ public class AuditApiResource {
@Produces({ MediaType.APPLICATION_JSON })
public String retrieveAuditEntries(@Context final UriInfo uriInfo) {
context.authenticatedUser().validateHasReadPermission(
resourceNameForPermissions);
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
// final String extraCriteria = getCriteria(sqlSearch, officeId,
// externalId, displayName, firstName, lastName, hierarchy);
final Collection<AuditData> auditEntries = this.auditReadPlatformService
.retrieveAuditEntries();
final Collection<AuditData> auditEntries = this.auditReadPlatformService.retrieveAuditEntries();
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper
.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, auditEntries,
RESPONSE_DATA_PARAMETERS);
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, auditEntries, RESPONSE_DATA_PARAMETERS);
}
}
@@ -7,20 +7,27 @@ import org.joda.time.LocalDate;
*/
final public class AuditData {
@SuppressWarnings("unused")
private final Long id;
@SuppressWarnings("unused")
private final String apiOperation;
@SuppressWarnings("unused")
private final String resource;
@SuppressWarnings("unused")
private final Long resourceId;
@SuppressWarnings("unused")
private final String maker;
@SuppressWarnings("unused")
private final LocalDate madeOnDate;
@SuppressWarnings("unused")
private final String checker;
@SuppressWarnings("unused")
private final LocalDate checkedOnDate;
@SuppressWarnings("unused")
private final String commandAsJson;
public AuditData(final Long id, final String apiOperation,
final String resource, final Long resourceId, final String maker,
final LocalDate madeOnDate, final String checker,
final LocalDate checkedOnDate, final String commandAsJson) {
public AuditData(final Long id, final String apiOperation, final String resource, final Long resourceId, final String maker,
final LocalDate madeOnDate, final String checker, final LocalDate checkedOnDate, final String commandAsJson) {
this.id = id;
this.apiOperation = apiOperation;
@@ -32,41 +39,4 @@ final public class AuditData {
this.checkedOnDate = checkedOnDate;
this.commandAsJson = commandAsJson;
}
public Long getId() {
return this.id;
}
public String getApiOperation() {
return this.apiOperation;
}
public String getResource() {
return this.resource;
}
public Long getResourceId() {
return this.resourceId;
}
public String getMaker() {
return this.maker;
}
public LocalDate getMadeOnDate() {
return this.madeOnDate;
}
public String getChecker() {
return this.checker;
}
public LocalDate getCheckedOnDate() {
return this.checkedOnDate;
}
public String getCommandAsJson() {
return this.commandAsJson;
}
}
@@ -20,8 +20,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService {
private final PlatformSecurityContext context;
@Autowired
public AuditReadPlatformServiceImpl(final PlatformSecurityContext context,
final TenantAwareRoutingDataSource dataSource) {
public AuditReadPlatformServiceImpl(final PlatformSecurityContext context, final TenantAwareRoutingDataSource dataSource) {
this.context = context;
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
@@ -31,29 +30,23 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService {
public String schema() {
return " mc.id as id, mc.api_operation as apiOperation, mc.api_resource as resource, mc.resource_id as resourceId,"
+ " mk.username as maker, mc.made_on_date as madeOnDate, ck.username as checker, mc.checked_on_date as checkedOnDate, mc.command_as_json as commandAsJson "
+ " from m_portfolio_command_source mc "
+ " left join m_appuser mk on mk.id = mc.maker_id"
+ " from m_portfolio_command_source mc " + " left join m_appuser mk on mk.id = mc.maker_id"
+ " left join m_appuser ck on ck.id = mc.checker_id";
}
@Override
public AuditData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum)
throws SQLException {
public AuditData mapRow(final ResultSet rs, @SuppressWarnings("unused") final int rowNum) throws SQLException {
final Long id = rs.getLong("id");
final String apiOperation = rs.getString("apiOperation");
final String resource = rs.getString("resource");
final Long resourceId = JdbcSupport.getLong(rs, "resourceId");
final String maker = rs.getString("maker");
final LocalDate madeOnDate = JdbcSupport.getLocalDate(rs,
"madeOnDate");
final LocalDate madeOnDate = JdbcSupport.getLocalDate(rs, "madeOnDate");
final String checker = rs.getString("checker");
final LocalDate checkedOnDate = JdbcSupport.getLocalDate(rs,
"checkedOnDate");
final String taskJson = rs.getString("taskJson");
return new AuditData(id, apiOperation, resource, resourceId, maker,
madeOnDate, checker, checkedOnDate, taskJson);
final LocalDate checkedOnDate = JdbcSupport.getLocalDate(rs, "checkedOnDate");
final String commandAsJson = rs.getString("commandAsJson");
return new AuditData(id, apiOperation, resource, resourceId, maker, madeOnDate, checker, checkedOnDate, commandAsJson);
}
}
@@ -62,8 +55,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService {
context.authenticatedUser();
final AuditMapper rm = new AuditMapper();
final String sql = "select "
+ rm.schema()
final String sql = "select " + rm.schema()
+ " where mc.checker_id is null order by mc.made_on_date DESC, mc.api_resource ASC, mc.api_operation ASC";
return this.jdbcTemplate.query(sql, rm, new Object[] {});
@@ -17,6 +17,7 @@
<context:component-scan base-package="org.mifosplatform.accounting.*,
org.mifosplatform.commands.*,
org.mifosplatform.audit.*,
org.mifosplatform.infrastructure.*,
org.mifosplatform.organisation.*,
org.mifosplatform.portfolio.loanaccount.*,