This is an automated email from the ASF dual-hosted git repository. deepak pushed a commit to branch release17.12 in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release17.12 by this push: new fe3c06c3fb Added support to allow direct view rendering in override view functionality (OFBIZ-13117) Added allow-direct-view-rendering in view-mapping tag, default values will be false. i.e by default now view is allowed to be used as OOTB overridden view functionality. In order to allow the view redirection (override) on all workflows allow-direct-view-rendering must be set to true. fe3c06c3fb is described below commit fe3c06c3fb7ab1abdd6e0dd55220b7192ec2b8c1 Author: Deepak Dixit <dee...@apache.org> AuthorDate: Sat Jun 15 11:38:34 2024 +0530 Added support to allow direct view rendering in override view functionality (OFBIZ-13117) Added allow-direct-view-rendering in view-mapping tag, default values will be false. i.e by default now view is allowed to be used as OOTB overridden view functionality. In order to allow the view redirection (override) on all workflows allow-direct-view-rendering must be set to true. --- applications/content/webapp/content/WEB-INF/controller.xml | 2 +- framework/webapp/dtd/site-conf.xsd | 11 +++++++++++ .../java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java | 2 ++ .../java/org/apache/ofbiz/webapp/control/RequestHandler.java | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/applications/content/webapp/content/WEB-INF/controller.xml b/applications/content/webapp/content/WEB-INF/controller.xml index a1535f2e84..c784650444 100644 --- a/applications/content/webapp/content/WEB-INF/controller.xml +++ b/applications/content/webapp/content/WEB-INF/controller.xml @@ -1993,7 +1993,7 @@ under the License. <view-map name="EditWebSitePathAlias" type="screen" page="component://content/widget/WebSiteScreens.xml#EditWebSitePathAlias"/> <view-map name="WebSiteContent" type="screen" page="component://content/widget/WebSiteScreens.xml#WebSiteContent"/> <view-map name="WebSiteCMS" type="screen" page="component://content/widget/WebSiteScreens.xml#WebSiteCMS"/> - <view-map name="WebSiteCMSContent" type="screen" page="component://content/widget/WebSiteScreens.xml#WebSiteCMSContent"/> + <view-map name="WebSiteCMSContent" type="screen" page="component://content/widget/WebSiteScreens.xml#WebSiteCMSContent" allow-direct-view-rendering="true"/> <view-map name="WebSiteCMSEditor" type="screen" page="component://content/widget/WebSiteScreens.xml#WebSiteCMSEditor"/> <view-map name="WebSiteCMSMetaInfo" type="screen" page="component://content/widget/WebSiteScreens.xml#WebSiteCMSMetaInfo"/> <view-map name="WebSiteCMSPathAlias" type="screen" page="component://content/widget/WebSiteScreens.xml#WebSiteCMSPathAlias"/> diff --git a/framework/webapp/dtd/site-conf.xsd b/framework/webapp/dtd/site-conf.xsd index 1541aeeb3d..8007ae636f 100644 --- a/framework/webapp/dtd/site-conf.xsd +++ b/framework/webapp/dtd/site-conf.xsd @@ -784,6 +784,17 @@ under the License. </xs:restriction> </xs:simpleType> </xs:attribute> + <xs:attribute type="xs:boolean" name="allow-direct-view-rendering" default="false"> + <xs:annotation> + <xs:documentation> + This attribute determines whether direct rendering of the view is allowed when using the override view functionality. + If set to true, + the system permits the view to be rendered directly using the override view functionality. + If false or not specified, + direct rendering is not allowed, and system throws Unknown request exception. + </xs:documentation> + </xs:annotation> + </xs:attribute> <xs:attribute name="x-frame-options" default="sameorigin"> <xs:annotation> <xs:documentation> diff --git a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java index 226514ad35..013caf69a5 100644 --- a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java +++ b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java @@ -648,6 +648,7 @@ public class ConfigXMLReader { public String strictTransportSecurity; public String description; public boolean noCache = false; + public boolean allowDirectViewRendering = false; public ViewMap(Element viewMapElement) { this.name = viewMapElement.getAttribute("name"); @@ -656,6 +657,7 @@ public class ConfigXMLReader { this.info = viewMapElement.getAttribute("info"); this.contentType = viewMapElement.getAttribute("content-type"); this.noCache = "true".equals(viewMapElement.getAttribute("no-cache")); + this.allowDirectViewRendering = "true".equals(viewMapElement.getAttribute("allow-direct-view-rendering")); this.encoding = viewMapElement.getAttribute("encoding"); this.xFrameOption = viewMapElement.getAttribute("x-frame-options"); this.strictTransportSecurity = viewMapElement.getAttribute("strict-transport-security"); diff --git a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java index d694ff9b17..379d093ac7 100644 --- a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java +++ b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java @@ -193,7 +193,7 @@ public class RequestHandler { ConfigXMLReader.ViewMap viewMap; try { viewMap = getControllerConfig().getViewMapMap().get(overrideViewUri); - if (viewMap == null) { + if (viewMap == null || !viewMap.allowDirectViewRendering) { String defaultRequest = controllerConfig.getDefaultRequest(); if (defaultRequest != null) { // required! to avoid a null pointer exception and generate a requesthandler exception if default request not found. requestMap = requestMapMap.get(defaultRequest);