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": { + } } }