This is an automated email from the ASF dual-hosted git repository. andreapatricelli 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 ca95724 [SYNCOPE-1597] Parametrized layout in console to enable non role-based customization (#225) ca95724 is described below commit ca957247ab62bb881ed7c9ab985cb9eda90f10fb Author: Andrea Patricelli <andreapatrice...@apache.org> AuthorDate: Fri Oct 30 16:33:09 2020 +0100 [SYNCOPE-1597] Parametrized layout in console to enable non role-based customization (#225) * [SYNCOPE-1597] Parametrized layout in console to enable non role-based customization --- .../org/apache/syncope/client/console/SyncopeWebApplication.java | 9 +++++++++ .../java/org/apache/syncope/client/console/layout/AnyLayout.java | 8 ++++++-- client/idrepo/console/src/main/resources/console.properties | 2 ++ fit/console-reference/src/main/resources/console.properties | 2 ++ fit/core-reference/src/test/resources/console.properties | 2 ++ 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java index ef8c8e3..7c30fc7 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java @@ -68,6 +68,7 @@ import org.apache.syncope.client.console.commons.PolicyTabProvider; import org.apache.syncope.client.console.commons.StatusProvider; import org.apache.syncope.client.console.commons.VirSchemaDetailsPanelProvider; import org.apache.syncope.client.console.pages.MustChangePassword; +import org.apache.syncope.client.console.panels.AnyPanel; import org.apache.syncope.client.ui.commons.SyncopeUIRequestCycleListener; import org.apache.syncope.client.ui.commons.Constants; import org.apache.syncope.common.keymaster.client.api.model.NetworkService; @@ -142,6 +143,8 @@ public class SyncopeWebApplication extends WicketBootSecuredWebApplication { private PolicyTabProvider policyTabProvider; private Map<String, Class<? extends BasePage>> pageClasses; + + private String defaultAnyLayoutClass; @SuppressWarnings("unchecked") protected void populatePageClasses(final Properties props) { @@ -229,6 +232,8 @@ public class SyncopeWebApplication extends WicketBootSecuredWebApplication { populatePageClasses(props); pageClasses = Collections.unmodifiableMap(pageClasses); + defaultAnyLayoutClass = props.getProperty("default.any.panel.class", AnyPanel.class.getName()); + // Application settings IBootstrapSettings settings = new BootstrapSettings(); @@ -393,6 +398,10 @@ public class SyncopeWebApplication extends WicketBootSecuredWebApplication { return queueCapacity; } + public String getDefaultAnyLayoutClass() { + return defaultAnyLayoutClass; + } + public SyncopeClientFactoryBean newClientFactory() { return new SyncopeClientFactoryBean(). setAddress(serviceOps.get(NetworkService.Type.CORE).getAddress()). diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/layout/AnyLayout.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/layout/AnyLayout.java index b15138c..9c00390 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/layout/AnyLayout.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/layout/AnyLayout.java @@ -24,13 +24,13 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.io.Serializable; import java.util.HashMap; import java.util.Map; -import org.apache.syncope.client.console.panels.AnyPanel; +import org.apache.syncope.client.console.SyncopeWebApplication; public class AnyLayout implements Serializable { private static final long serialVersionUID = 488645029994410970L; - private String anyPanelClass = AnyPanel.class.getName(); + private String anyPanelClass; @JsonProperty("USER") private UserFormLayoutInfo user; @@ -40,6 +40,10 @@ public class AnyLayout implements Serializable { private final Map<String, AnyObjectFormLayoutInfo> anyObjects = new HashMap<>(); + public AnyLayout() { + this.anyPanelClass = SyncopeWebApplication.get().getDefaultAnyLayoutClass(); + } + public String getAnyPanelClass() { return anyPanelClass; } diff --git a/client/idrepo/console/src/main/resources/console.properties b/client/idrepo/console/src/main/resources/console.properties index 06c08b9..3be739e 100644 --- a/client/idrepo/console/src/main/resources/console.properties +++ b/client/idrepo/console/src/main/resources/console.properties @@ -39,6 +39,8 @@ page.policies=org.apache.syncope.client.console.pages.Policies page.notifications=org.apache.syncope.client.console.pages.Notifications page.parameters=org.apache.syncope.client.console.pages.Parameters +default.any.panel.class=org.apache.syncope.client.console.panels.AnyPanel + topology.corePoolSize=10 topology.maxPoolSize=20 topology.queueCapacity=50 diff --git a/fit/console-reference/src/main/resources/console.properties b/fit/console-reference/src/main/resources/console.properties index c8ece6f..32737b9 100644 --- a/fit/console-reference/src/main/resources/console.properties +++ b/fit/console-reference/src/main/resources/console.properties @@ -39,6 +39,8 @@ page.policies=org.apache.syncope.client.console.pages.Policies page.notifications=org.apache.syncope.client.console.pages.Notifications page.parameters=org.apache.syncope.client.console.pages.Parameters +default.any.panel.class=org.apache.syncope.client.console.panels.AnyPanel + topology.corePoolSize=50 topology.maxPoolSize=100 topology.queueCapacity=10 diff --git a/fit/core-reference/src/test/resources/console.properties b/fit/core-reference/src/test/resources/console.properties index 2162ddb..5df90c4 100644 --- a/fit/core-reference/src/test/resources/console.properties +++ b/fit/core-reference/src/test/resources/console.properties @@ -39,6 +39,8 @@ page.policies=org.apache.syncope.client.console.pages.Policies page.notifications=org.apache.syncope.client.console.pages.Notifications page.parameters=org.apache.syncope.client.console.pages.Parameters +default.any.panel.class=org.apache.syncope.client.console.panels.AnyPanel + executor.corePoolSize=50 executor.maxPoolSize=100 executor.queueCapacity=10