svn commit: r1831831 - in /ofbiz/ofbiz-framework/trunk: applications/product/minilang/product/product/ applications/product/minilang/product/store/ framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1831831 - in /ofbiz/ofbiz-framework/trunk: applications/product/minilang/product/product/ applications/product/minilang/product/store/ framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/

jleroux@apache.org
Author: jleroux
Date: Fri May 18 08:11:55 2018
New Revision: 1831831

URL: http://svn.apache.org/viewvc?rev=1831831&view=rev
Log:
Fixed:: Dynamic values not rendering properly in property tag of fail-property
attribute
(OFBIZ-10406)

While calling checkProductRelatedPermission, if permission is failed ten
fail-property tag uses ${checkActionLabel} which is not handled properly in
MessageElement.java.
There are 2-3 other occurrences as well of such type but not in working
condition.

Thanks: Suraj

Modified:
    ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/product/ProductServices.xml
    ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/store/ProductStoreServices.xml
    ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/MessageElement.java

Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/product/ProductServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/product/ProductServices.xml?rev=1831831&r1=1831830&r2=1831831&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/product/ProductServices.xml (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/product/ProductServices.xml Fri May 18 08:11:55 2018
@@ -686,6 +686,7 @@ under the License.
             </condition>
             <then>
                 <set field="checkActionLabel" value="${groovy: 'ProductCatalog' + checkAction.charAt(0) + checkAction.substring(1).toLowerCase() + 'PermissionError'}"/>
+                <set field="resourceDescription" from-field="callingMethodName"/>
                 <add-error>
                     <fail-property resource="ProductUiLabels" property="${checkActionLabel}"/>
                 </add-error>

Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/store/ProductStoreServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/store/ProductStoreServices.xml?rev=1831831&r1=1831830&r2=1831831&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/store/ProductStoreServices.xml (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/product/store/ProductStoreServices.xml Fri May 18 08:11:55 2018
@@ -478,6 +478,7 @@ under the License.
             <then>
                 <log level="verbose" message="Permission check failed, user does not have permission"/>
                 <set field="checkActionLabel" value="${groovy: 'ProductCatalog' + checkAction.charAt(0) + checkAction.substring(1).toLowerCase() + 'PermissionError'}"/>
+                <set field="resourceDescription" from-field="callingMethodName"/>
                 <add-error>
                     <fail-property resource="ProductUiLabels" property="${checkActionLabel}"/>
                 </add-error>

Modified: ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/MessageElement.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/MessageElement.java?rev=1831831&r1=1831830&r2=1831831&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/MessageElement.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/MessageElement.java Fri May 18 08:11:55 2018
@@ -29,7 +29,6 @@ import org.w3c.dom.Element;
 
 /**
  * Implements the &lt;fail-message&gt; and &lt;fail-property&gt; elements.
- *
  * @see <a href="https://cwiki.apache.org/confluence/display/OFBIZ/Mini+Language+-+minilang+-+simple-method+-+Reference">Mini-language Reference</a>
  */
 public final class MessageElement extends MiniLangElement {
@@ -49,7 +48,7 @@ public final class MessageElement extend
     }
 
     private final FlexibleStringExpander messageFse;
-    private final String propertykey;
+    private final FlexibleStringExpander propertyFse;
     private final String propertyResource;
 
     public MessageElement(Element element, SimpleMethod simpleMethod) throws MiniLangException {
@@ -61,7 +60,7 @@ public final class MessageElement extend
                 MiniLangValidate.constantPlusExpressionAttributes(simpleMethod, element, "message");
             }
             this.messageFse = FlexibleStringExpander.getInstance(element.getAttribute("message"));
-            this.propertykey = null;
+            this.propertyFse = null;
             this.propertyResource = null;
         } else {
             if (MiniLangValidate.validationOn()) {
@@ -70,7 +69,7 @@ public final class MessageElement extend
                 MiniLangValidate.constantAttributes(simpleMethod, element, "property", "resource");
             }
             this.messageFse = null;
-            this.propertykey = element.getAttribute("property");
+            this.propertyFse = FlexibleStringExpander.getInstance(element.getAttribute("property"));
             this.propertyResource = element.getAttribute("resource");
         }
     }
@@ -79,7 +78,7 @@ public final class MessageElement extend
         if (messageFse != null) {
             return messageFse.expandString(methodContext.getEnvMap());
         } else {
-            return UtilProperties.getMessage(propertyResource, propertykey, methodContext.getEnvMap(), methodContext.getLocale());
+            return UtilProperties.getMessage(propertyResource, propertyFse.expandString(methodContext.getEnvMap()), methodContext.getEnvMap(), methodContext.getLocale());
         }
     }
 
@@ -89,8 +88,8 @@ public final class MessageElement extend
         if (this.messageFse != null) {
             sb.append("<fail-message message=\"").append(this.messageFse).append("\" />");
         }
-        if (this.propertykey != null) {
-            sb.append("<fail-property property=\"").append(this.propertykey).append(" resource=\"").append(this.propertyResource).append("\" />");
+        if (this.propertyFse != null) {
+            sb.append("<fail-property property=\"").append(this.propertyFse).append(" resource=\"").append(this.propertyResource).append("\" />");
         }
         return sb.toString();
     }