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ò <ilgro...@apache.org>
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 + "')")

Reply via email to