You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2019/12/20 16:00:57 UTC

[syncope] branch 2_1_X updated: [SYNCOPE-1517] Initial changes (part three)

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/2_1_X by this push:
     new 19b9bf6  [SYNCOPE-1517] Initial changes (part three)
19b9bf6 is described below

commit 19b9bf6f95e104652abc1993e2f768244d9d3f85
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Dec 20 17:00:42 2019 +0100

    [SYNCOPE-1517] Initial changes (part three)
---
 .../client/console/audit/AuditHistoryDetails.java       | 17 ++++++++++++-----
 .../console/audit/AuditHistoryDirectoryPanel.java       |  6 +++---
 .../syncope/client/console/audit/AuditHistoryModal.java |  6 +++---
 .../client/console/panels/AnyObjectDirectoryPanel.java  |  3 ++-
 .../client/console/panels/GroupDirectoryPanel.java      |  3 ++-
 .../client/console/panels/UserDirectoryPanel.java       |  3 ++-
 .../client/console/topology/TopologyTogglePanel.java    |  6 ++++--
 7 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
index cf37124..8d491df 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
@@ -94,16 +94,23 @@ public abstract class AuditHistoryDetails<T extends EntityTO> extends Multilevel
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
-                restore(currentEntity, target);
-
-                mlp.prev(target);
+                try {
+                    String json = selected.getBefore() == null
+                            ? MAPPER.readTree(selected.getOutput()).get("entity").toPrettyString()
+                            : selected.getBefore();
+                    restore(json, target);
+
+                    mlp.prev(target);
+                } catch (JsonProcessingException e) {
+                    throw new WicketRuntimeException(e);
+                }
             }
         };
-        MetaDataRoleAuthorizationStrategy.authorize(restore, RENDER, auditRestoreEntitlement);
+        MetaDataRoleAuthorizationStrategy.authorize(restore, ENABLE, auditRestoreEntitlement);
         add(restore);
     }
 
-    protected abstract void restore(T entity, AjaxRequestTarget target);
+    protected abstract void restore(String json, AjaxRequestTarget target);
 
     private Model<String> toJSON(final AuditEntryTO auditEntry, final Class<T> reference) {
         try {
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java
index ee2066e..394eab4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java
@@ -118,7 +118,7 @@ public abstract class AuditHistoryDirectoryPanel<T extends EntityTO> extends Dir
         resultTableBuilder.setMultiLevelPanel(baseModal, mlp);
     }
 
-    protected abstract void restore(T entity, AjaxRequestTarget target);
+    protected abstract void restore(String json, AjaxRequestTarget target);
 
     @Override
     protected ActionsPanel<AuditEntryTO> getActions(final IModel<AuditEntryTO> model) {
@@ -144,8 +144,8 @@ public abstract class AuditHistoryDirectoryPanel<T extends EntityTO> extends Dir
                     private static final long serialVersionUID = -5311898419151367494L;
 
                     @Override
-                    protected void restore(final T entity, final AjaxRequestTarget target) {
-                        AuditHistoryDirectoryPanel.this.restore(entity, target);
+                    protected void restore(final String json, final AjaxRequestTarget target) {
+                        AuditHistoryDirectoryPanel.this.restore(json, target);
                     }
                 }, target);
 
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryModal.java b/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryModal.java
index 615cecd..8ec4b18 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryModal.java
@@ -55,11 +55,11 @@ public abstract class AuditHistoryModal<T extends EntityTO> extends Panel implem
             private static final long serialVersionUID = 1952220682903768286L;
 
             @Override
-            protected void restore(final T entity, final AjaxRequestTarget target) {
-                AuditHistoryModal.this.restore(entity, target);
+            protected void restore(final String json, final AjaxRequestTarget target) {
+                AuditHistoryModal.this.restore(json, target);
             }
         }));
     }
 
-    protected abstract void restore(T entity, AjaxRequestTarget target);
+    protected abstract void restore(String json, AjaxRequestTarget target);
 }
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
index 4327d69..78128a6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
@@ -194,9 +194,10 @@ public class AnyObjectDirectoryPanel extends AnyDirectoryPanel<AnyObjectTO, AnyO
                     private static final long serialVersionUID = -7440902560249531201L;
 
                     @Override
-                    protected void restore(final AnyObjectTO updated, final AjaxRequestTarget target) {
+                    protected void restore(final String json, final AjaxRequestTarget target) {
                         AnyObjectTO original = model.getObject();
                         try {
+                            AnyObjectTO updated = MAPPER.readValue(json, AnyObjectTO.class);
                             AnyObjectPatch anyObjectPatch = AnyOperations.diff(updated, original, false);
                             ProvisioningResult<AnyObjectTO> result =
                                     restClient.update(original.getETagValue(), anyObjectPatch);
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
index 93d9f03..f81c5fe 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
@@ -365,9 +365,10 @@ public class GroupDirectoryPanel extends AnyDirectoryPanel<GroupTO, GroupRestCli
                     private static final long serialVersionUID = -5819724478921691835L;
 
                     @Override
-                    protected void restore(final GroupTO updated, final AjaxRequestTarget target) {
+                    protected void restore(final String json, final AjaxRequestTarget target) {
                         GroupTO original = model.getObject();
                         try {
+                            GroupTO updated = MAPPER.readValue(json, GroupTO.class);
                             GroupPatch groupPatch = AnyOperations.diff(updated, original, false);
                             ProvisioningResult<GroupTO> result = restClient.update(original.getETagValue(), groupPatch);
                             model.getObject().setLastChangeDate(result.getEntity().getLastChangeDate());
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
index 79b2607..dff5a73 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
@@ -366,7 +366,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO, UserRestClient
                     private static final long serialVersionUID = 959378158400669867L;
 
                     @Override
-                    protected void restore(final UserTO updated, final AjaxRequestTarget target) {
+                    protected void restore(final String json, final AjaxRequestTarget target) {
                         // The original audit record masks the password and the security
                         // answer; so we cannot use the audit record to resurrect the entry based on mask data.
                         //
@@ -375,6 +375,7 @@ public class UserDirectoryPanel extends AnyDirectoryPanel<UserTO, UserRestClient
                         // user cannot be restored using audit records.
                         UserTO original = model.getObject();
                         try {
+                            UserTO updated = MAPPER.readValue(json, UserTO.class);
                             UserPatch userPatch = AnyOperations.diff(updated, original, false);
                             userPatch.setPassword(null);
                             userPatch.setSecurityAnswer(null);
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
index 9f79016..40c8f16 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
@@ -350,8 +350,9 @@ public class TopologyTogglePanel extends TogglePanel<Serializable> {
                     private static final long serialVersionUID = -3225348282675513648L;
 
                     @Override
-                    protected void restore(final ConnInstanceTO updated, final AjaxRequestTarget target) {
+                    protected void restore(final String json, final AjaxRequestTarget target) {
                         try {
+                            ConnInstanceTO updated = MAPPER.readValue(json, ConnInstanceTO.class);
                             connectorRestClient.update(updated);
 
                             SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
@@ -604,8 +605,9 @@ public class TopologyTogglePanel extends TogglePanel<Serializable> {
                     private static final long serialVersionUID = -3712506022627033811L;
 
                     @Override
-                    protected void restore(final ResourceTO updated, final AjaxRequestTarget target) {
+                    protected void restore(final String json, final AjaxRequestTarget target) {
                         try {
+                            ResourceTO updated = MAPPER.readValue(json, ResourceTO.class);
                             resourceRestClient.update(updated);
 
                             SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));