You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by an...@apache.org on 2020/10/30 13:11:53 UTC
[syncope] branch 2_1_X updated: [SYNCOPE-1597] Parametrized console
to enable non role-based customization (#224)
This is an automated email from the ASF dual-hosted git repository.
andreapatricelli 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 f8d0fee [SYNCOPE-1597] Parametrized console to enable non role-based customization (#224)
f8d0fee is described below
commit f8d0feec359fb75dca31a0ad88ff521c0e61c3ef
Author: Andrea Patricelli <an...@apache.org>
AuthorDate: Fri Oct 30 14:11:23 2020 +0100
[SYNCOPE-1597] Parametrized console to enable non role-based customization (#224)
* [SYNCOPE-1597] Parametrized layout in console to enable non role-based customization
---
.../apache/syncope/client/console/SyncopeConsoleApplication.java | 9 +++++++++
.../java/org/apache/syncope/client/console/layout/AnyLayout.java | 8 ++++++--
client/console/src/main/resources/console.properties | 2 ++
docker/console/src/main/resources/console.properties.template | 2 ++
fit/console-reference/src/main/resources/console.properties | 2 ++
fit/core-reference/src/test/resources/console.properties | 2 ++
6 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
index 214298a..b0e457d 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
@@ -44,6 +44,7 @@ import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.pages.Dashboard;
import org.apache.syncope.client.console.pages.MustChangePassword;
import org.apache.syncope.client.console.pages.Login;
+import org.apache.syncope.client.console.panels.AnyPanel;
import org.apache.syncope.client.console.themes.AdminLTE;
import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
@@ -116,6 +117,8 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
private List<String> domains;
private Map<String, Class<? extends BasePage>> pageClasses;
+
+ private String defaultAnyLayoutClass;
@SuppressWarnings("unchecked")
protected void populatePageClasses(final Properties props) {
@@ -187,6 +190,8 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
populatePageClasses(props);
pageClasses = Collections.unmodifiableMap(pageClasses);
+ defaultAnyLayoutClass = props.getProperty("default.any.panel.class", AnyPanel.class.getName());
+
// Application settings
IBootstrapSettings settings = new BootstrapSettings();
@@ -325,6 +330,10 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
return queueCapacity;
}
+ public String getDefaultAnyLayoutClass() {
+ return defaultAnyLayoutClass;
+ }
+
public SyncopeClientFactoryBean newClientFactory() {
return new SyncopeClientFactoryBean().
setAddress(scheme + "://" + host + ":" + port + StringUtils.prependIfMissing(rootPath, "/")).
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyLayout.java b/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyLayout.java
index b15138c..e742f26 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/layout/AnyLayout.java
+++ b/client/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.SyncopeConsoleApplication;
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 = SyncopeConsoleApplication.get().getDefaultAnyLayoutClass();
+ }
+
public String getAnyPanelClass() {
return anyPanelClass;
}
diff --git a/client/console/src/main/resources/console.properties b/client/console/src/main/resources/console.properties
index 8353183..5abb761 100644
--- a/client/console/src/main/resources/console.properties
+++ b/client/console/src/main/resources/console.properties
@@ -44,6 +44,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/docker/console/src/main/resources/console.properties.template b/docker/console/src/main/resources/console.properties.template
index 0c1b820..b5bddce 100644
--- a/docker/console/src/main/resources/console.properties.template
+++ b/docker/console/src/main/resources/console.properties.template
@@ -44,6 +44,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 d4e8b3f..9c13d73 100644
--- a/fit/console-reference/src/main/resources/console.properties
+++ b/fit/console-reference/src/main/resources/console.properties
@@ -44,6 +44,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 39eaa8c..a0bbc2f 100644
--- a/fit/core-reference/src/test/resources/console.properties
+++ b/fit/core-reference/src/test/resources/console.properties
@@ -44,6 +44,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