This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new 0bc3ee08ec [SYNCOPE-1715] Invoking AuditService#delete to remove events
0bc3ee08ec is described below
commit 0bc3ee08eca1217f546a2d00ab949e6840ec1071
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Fri Dec 16 10:40:00 2022 +0100
[SYNCOPE-1715] Invoking AuditService#delete to remove events
---
.../apache/syncope/client/console/pages/Audit.java | 22 ++++++++++++++--
.../client/console/rest/AuditRestClient.java | 30 +++++++---------------
.../org/apache/syncope/core/logic/AuditLogic.java | 10 +++-----
3 files changed, 33 insertions(+), 29 deletions(-)
diff --git
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Audit.java
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Audit.java
index aa2048b563..f42968e23b 100644
---
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Audit.java
+++
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Audit.java
@@ -19,6 +19,7 @@
package org.apache.syncope.client.console.pages;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
@@ -33,6 +34,7 @@ import org.apache.syncope.common.lib.types.IdRepoEntitlement;
import org.apache.wicket.event.IEvent;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.util.ListModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -40,18 +42,34 @@ public class Audit extends BasePage {
private static final long serialVersionUID = -1100228004207271271L;
+ private final LoadableDetachableModel<List<EventCategory>> eventCategories
=
+ new LoadableDetachableModel<List<EventCategory>>() {
+
+ private static final long serialVersionUID = 4659376149825914247L;
+
+ @Override
+ protected List<EventCategory> load() {
+ return AuditRestClient.listEvents();
+ }
+ };
+
public Audit(final PageParameters parameters) {
super(parameters);
body.add(BookmarkablePageLinkBuilder.build("dashboard", "dashboardBr",
Dashboard.class));
List<String> events = AuditRestClient.list().stream().
+ filter(audit -> eventCategories.getObject().stream().
+ anyMatch(c -> audit.getType() == c.getType()
+ && Objects.equals(audit.getCategory(), c.getCategory())
+ && Objects.equals(audit.getSubcategory(),
c.getSubcategory()))).
map(audit -> AuditLoggerName.buildEvent(
audit.getType(),
audit.getCategory(),
audit.getSubcategory(),
audit.getEvent(),
audit.getResult())).
+ sorted().
collect(Collectors.toList());
WebMarkupContainer content = new WebMarkupContainer("content");
@@ -62,7 +80,7 @@ public class Audit extends BasePage {
form.add(new EventCategoryPanel(
"auditPanel",
- AuditRestClient.listEvents(),
+ eventCategories.getObject(),
new ListModel<>(events)) {
private static final long serialVersionUID = 6113164334533550277L;
@@ -80,7 +98,7 @@ public class Audit extends BasePage {
@Override
public void onEventAction(final IEvent<?> event) {
if (event.getPayload() instanceof
SelectedEventsPanel.EventSelectionChanged) {
- final SelectedEventsPanel.EventSelectionChanged
eventSelectionChanged =
+ SelectedEventsPanel.EventSelectionChanged
eventSelectionChanged =
(SelectedEventsPanel.EventSelectionChanged)
event.getPayload();
eventSelectionChanged.getToBeRemoved().forEach(toBeRemoved
-> {
diff --git
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AuditRestClient.java
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AuditRestClient.java
index d47efda1d8..45477ade82 100644
---
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AuditRestClient.java
+++
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AuditRestClient.java
@@ -18,18 +18,16 @@
*/
package org.apache.syncope.client.console.rest;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Objects;
-import java.util.Set;
import java.util.stream.Collectors;
+import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.audit.AuditEntry;
import org.apache.syncope.common.lib.audit.EventCategory;
import org.apache.syncope.common.lib.to.AuditConfTO;
import org.apache.syncope.common.lib.types.AuditElements;
import org.apache.syncope.common.lib.types.AuditLoggerName;
+import org.apache.syncope.common.lib.types.ClientExceptionType;
import org.apache.syncope.common.rest.api.beans.AuditQuery;
import org.apache.syncope.common.rest.api.service.AuditService;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
@@ -52,19 +50,6 @@ public class AuditRestClient extends BaseRestClient {
collect(Collectors.toList());
}
- public static Map<String, Set<AuditLoggerName>> listAuditsByCategory() {
- Map<String, Set<AuditLoggerName>> result = new HashMap<>();
- list().forEach(audit -> {
- if (!result.containsKey(audit.getCategory())) {
- result.put(audit.getCategory(), new HashSet<>());
- }
-
- result.get(audit.getCategory()).add(audit);
- });
-
- return result;
- }
-
public static void enableAudit(final AuditLoggerName auditLoggerName) {
AuditConfTO audit = new AuditConfTO();
audit.setKey(auditLoggerName.toAuditKey());
@@ -73,10 +58,13 @@ public class AuditRestClient extends BaseRestClient {
}
public static void disableAudit(final AuditLoggerName auditLoggerName) {
- AuditConfTO audit = new AuditConfTO();
- audit.setKey(auditLoggerName.toAuditKey());
- audit.setActive(false);
- getService(AuditService.class).set(audit);
+ try {
+
getService(AuditService.class).delete(auditLoggerName.toAuditKey());
+ } catch (SyncopeClientException e) {
+ if (e.getType() != ClientExceptionType.NotFound) {
+ LOG.error("Unexpected error when deleting {}",
auditLoggerName.toAuditKey(), e);
+ }
+ }
}
public static List<EventCategory> listEvents() {
diff --git
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java
index 98794a55bc..40858082c8 100644
---
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java
+++
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java
@@ -120,16 +120,14 @@ public class AuditLogic extends
AbstractTransactionalLogic<AuditConfTO> {
public void set(final AuditConfTO auditTO) {
AuditConf audit =
Optional.ofNullable(auditConfDAO.find(auditTO.getKey())).
orElseGet(() -> {
- AuditConf a = entityFactory.newEntity(AuditConf.class);
- a.setKey(auditTO.getKey());
- return a;
+ AuditConf ac = entityFactory.newEntity(AuditConf.class);
+ ac.setKey(auditTO.getKey());
+ return ac;
});
audit.setActive(auditTO.isActive());
audit = auditConfDAO.save(audit);
- if (audit.isActive()) {
- setLevel(audit.getKey(), Level.OFF);
- }
+ setLevel(audit.getKey(), audit.isActive() ? Level.DEBUG : Level.OFF);
}
@PreAuthorize("hasRole('" + IdRepoEntitlement.AUDIT_DELETE + "')")