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 ee88940efc [SYNCOPE-1708] added extension enable configuration to 
enduser form layout (#386)
ee88940efc is described below

commit ee88940efc0a256d3c8b5c03151ebfb87d9bf157
Author: Andrea Patricelli <andreapatrice...@apache.org>
AuthorDate: Thu Nov 3 12:10:51 2022 +0100

    [SYNCOPE-1708] added extension enable configuration to enduser form layout 
(#386)
---
 .../apache/syncope/client/enduser/layout/SidebarLayout.java  | 12 ++++++++++++
 .../org/apache/syncope/client/enduser/panels/Sidebar.java    |  8 +++++++-
 .../idrepo/enduser/src/main/resources/customFormLayout.json  |  4 +++-
 3 files changed, 22 insertions(+), 2 deletions(-)

diff --git 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/layout/SidebarLayout.java
 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/layout/SidebarLayout.java
index 030d9940a1..f9840a83f0 100644
--- 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/layout/SidebarLayout.java
+++ 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/layout/SidebarLayout.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.client.enduser.layout;
 
 import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
 
 public class SidebarLayout implements Serializable {
 
@@ -30,6 +32,8 @@ public class SidebarLayout implements Serializable {
 
     private boolean securityQuestionManagementEnabled = true;
 
+    private final Map<String, Boolean> extensionsEnabled = new HashMap<>();
+
     public boolean isEditUserEnabled() {
         return editUserEnabled;
     }
@@ -54,4 +58,12 @@ public class SidebarLayout implements Serializable {
         this.securityQuestionManagementEnabled = 
securityQuestionManagementEnabled;
     }
 
+    public Map<String, Boolean> getExtensionsEnabled() {
+        return extensionsEnabled;
+    }
+
+    public boolean isExtensionEnabled(final String key) {
+        return extensionsEnabled.getOrDefault(key, true);
+    }
+
 }
diff --git 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java
 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java
index b0b4459582..2abca3e356 100644
--- 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java
+++ 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java
@@ -19,7 +19,9 @@
 package org.apache.syncope.client.enduser.panels;
 
 import java.util.List;
+import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.enduser.BookmarkablePageLinkBuilder;
 import org.apache.syncope.client.enduser.SyncopeEnduserSession;
 import org.apache.syncope.client.enduser.SyncopeWebApplication;
@@ -121,7 +123,11 @@ public class Sidebar extends Panel {
         }
 
         ListView<Class<? extends BasePage>> extPages =
-            new ListView<>("extPages", extPageClasses) {
+                new ListView<>("extPages", extPageClasses.stream()
+                        .filter(epc -> 
SyncopeWebApplication.get().getCustomFormLayout().getSidebarLayout()
+                                
.isExtensionEnabled(StringUtils.remove(epc.getAnnotation(ExtPage.class).label(),
+                                                StringUtils.SPACE)))
+                        .collect(Collectors.toList())) {
 
                 private static final long serialVersionUID = 
4949588177564901031L;
 
diff --git a/client/idrepo/enduser/src/main/resources/customFormLayout.json 
b/client/idrepo/enduser/src/main/resources/customFormLayout.json
index f32bfb0ce7..c6bdc1ee5a 100644
--- a/client/idrepo/enduser/src/main/resources/customFormLayout.json
+++ b/client/idrepo/enduser/src/main/resources/customFormLayout.json
@@ -14,6 +14,8 @@
   "sidebarLayout": {
     "editUserEnabled": true,
     "passwordManagementEnabled": true,
-    "securityQuestionManagementEnabled": true
+    "securityQuestionManagementEnabled": true,
+    "extensionsEnabled": {
+    }
   }
 }

Reply via email to