diff options
author | Maria Odea B. Ching <oching@apache.org> | 2009-12-15 02:26:50 +0000 |
---|---|---|
committer | Maria Odea B. Ching <oching@apache.org> | 2009-12-15 02:26:50 +0000 |
commit | 95579174861d102355597d4c36335c4f2970d538 (patch) | |
tree | dd473223af8575330279e4f6d5ed954158153f17 | |
parent | 15768140ddc6fa717247ce115fccaf98d79816ee (diff) | |
download | archiva-95579174861d102355597d4c36335c4f2970d538.tar.gz archiva-95579174861d102355597d4c36335c4f2970d538.zip |
[MRM-1296] Audit Log Reports
o fixed query for recent audit logs
o added bits for pagination
git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1296@890604 13f79535-47bb-0310-9956-ffa450edef68
4 files changed, 49 insertions, 52 deletions
diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java index 2cf8e3ac3..a9c798f1f 100644 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java +++ b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaAuditLogsConstraint.java @@ -30,23 +30,13 @@ public class ArchivaAuditLogsConstraint extends RangeConstraint { private String whereClause; - - /** - * Complete custom query! - * - * @param desiredArtifact - * @param desiredRepositoryId - * @param desiredEvent - * @param startDate - * @param endDate - */ + private void createWhereClause( String desiredArtifact, String desiredRepositoryId, String desiredEvent, Date startDate, Date endDate ) { - whereClause = "eventDate >= desiredStartDate && eventDate <= desiredEndDate"; - + whereClause = "eventDate >= desiredStartDate && eventDate <= desiredEndDate"; declImports = new String[] { "import java.util.Date" }; - + List<String> declParamsList = new ArrayList<String>(); declParamsList.add( "Date desiredStartDate" ); declParamsList.add( "Date desiredEndDate" ); diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java index af3c791a3..8e2d00531 100644 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java +++ b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/MostRecentArchivaAuditLogsConstraint.java @@ -20,6 +20,7 @@ package org.apache.maven.archiva.database.constraints; */ import org.apache.maven.archiva.model.ArchivaAuditLogs; +import org.apache.maven.archiva.repository.audit.AuditEvent; public class MostRecentArchivaAuditLogsConstraint extends AbstractSimpleConstraint @@ -28,7 +29,12 @@ public class MostRecentArchivaAuditLogsConstraint public MostRecentArchivaAuditLogsConstraint() { - sql = "SELECT FROM " + ArchivaAuditLogs.class.getName() + " ORDER BY eventDate DESCENDING RANGE 0,1"; + sql = + "SELECT FROM " + ArchivaAuditLogs.class.getName() + + " WHERE event == uploadArtifact PARAMETERS String uploadArtifact" + + " ORDER BY eventDate DESCENDING RANGE 0,10"; + + super.params = new Object[] { AuditEvent.UPLOAD_FILE }; } public Class<?> getResultClass() diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java index 392622302..ea9d9c411 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java @@ -28,9 +28,10 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.maven.archiva.database.ArchivaAuditLogsDao; +import org.apache.maven.archiva.database.ArchivaDAO; import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.Constraint; import org.apache.maven.archiva.database.ObjectNotFoundException; +import org.apache.maven.archiva.database.SimpleConstraint; import org.apache.maven.archiva.database.constraints.ArchivaAuditLogsConstraint; import org.apache.maven.archiva.database.constraints.MostRecentArchivaAuditLogsConstraint; import org.apache.maven.archiva.model.ArchivaAuditLogs; @@ -66,6 +67,11 @@ public class ViewAuditLogReportAction */ private ArchivaAuditLogsDao auditLogsDao; + /** + * @plexus.requirement role-hint="jdo" + */ + private ArchivaDAO dao; + private String repository; private List<String> repositories; @@ -80,11 +86,13 @@ public class ViewAuditLogReportAction private int rowCount = 30; - private int page; + private int page = 1; private List<ArchivaAuditLogs> auditLogs; private static final String ALL_REPOSITORIES = "all"; + + protected int[] range = new int[2]; public SecureActionBundle getSecureActionBundle() throws SecureActionException @@ -97,6 +105,7 @@ public class ViewAuditLogReportAction this.request = request; } + @SuppressWarnings( "unchecked" ) public void prepare() throws Exception { @@ -106,34 +115,22 @@ public class ViewAuditLogReportAction auditLogs = null; - Constraint constraint = new MostRecentArchivaAuditLogsConstraint(); - - try - { - this.auditLogs = auditLogsDao.queryAuditLogs( constraint ); - } - catch( ObjectNotFoundException e ) - { - log.warn( "No audit logs found." ); - } - catch ( ArchivaDatabaseException e ) - { - log.warn( "Error occurred while querying audit logs." ); - } + SimpleConstraint constraint = new MostRecentArchivaAuditLogsConstraint(); + auditLogs = (List<ArchivaAuditLogs>) dao.query( constraint ); } public String execute() throws Exception { auditLogs = null; - String artifact = null; + String artifact = ""; - if( groupId != null || !"".equals( groupId ) ) + if( groupId != null || !"".equals( groupId.trim() ) ) { artifact = groupId; } - if( artifactId != null || !"".equals( artifactId ) ) + if( artifactId != null || !"".equals( artifactId.trim() ) ) { artifact = artifact + ":" + artifactId; } @@ -153,13 +150,13 @@ public class ViewAuditLogReportAction endDate = Calendar.getInstance().getTime(); } - int[] range = {1, 30 }; + range[0] = ( page - 1 ) * rowCount; + range[1] = ( page * rowCount ) + 1; ArchivaAuditLogsConstraint constraint = null; if( !repository.equals( ALL_REPOSITORIES ) ) { - //constraint = new ArchivaAuditLogsConstraint( range, artifact, repository, AuditEvent.UPLOAD_FILE, startDate, endDate ); - constraint = new ArchivaAuditLogsConstraint( artifact, repository, AuditEvent.UPLOAD_FILE, startDate, endDate ); + constraint = new ArchivaAuditLogsConstraint( range, artifact, repository, AuditEvent.UPLOAD_FILE, startDate, endDate ); } else { diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp index 6a84d1ebd..af853370b 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp @@ -80,30 +80,34 @@ <s:textfield label="Row Count" name="rowCount" /> <s:submit value="View Audit Log"/> - </div> - </s:form> + </div> + + </s:form> - <c:if test="${not empty (auditLogs)}"> + <c:if test="${not empty (auditLogs)}"> <table border="1"> - <tr> - <th align="center">Event</th> - <th align="center">Repository</th> - <th align="center">Artifact</th> - <th align="center">Event Date</th> - <th align="center">Username</th> - </tr> + <thead> + <tr> + <th align="center">Event</th> + <th align="center">Repository</th> + <th align="center">Artifact</th> + <th align="center">Event Date</th> + <th align="center">Username</th> + </tr> + </thead> <c:forEach items="${auditLogs}" var="auditLog" varStatus="i"> + <tbody> <tr> <td>${auditLog.event}</td> <td>${auditLog.repositoryId}</td> - <td>${auditLog.artifact}</td> - <td>${auditLog.eventDate}</td> - <td>${auditLog.username}</td> - </tr> + <td>${auditLog.artifact}</td> + <td>${auditLog.eventDate}</td> + <td>${auditLog.username}</td> + </tr> + </tbody> </c:forEach> </table> - </c:if> - + </c:if> </div> </body> |