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();
     }


Reply via email to