You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2008/07/05 05:52:24 UTC

svn commit: r674149 - in /ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences: PreferenceServices.java PreferenceWorker.java

Author: hansbak
Date: Fri Jul  4 20:52:24 2008
New Revision: 674149

URL: http://svn.apache.org/viewvc?rev=674149&view=rev
Log:
user preference copy permission service did not take into account that the userLogin is an optional input value

Modified:
    ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceServices.java
    ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceWorker.java

Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceServices.java?rev=674149&r1=674148&r2=674149&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceServices.java (original)
+++ ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceServices.java Fri Jul  4 20:52:24 2008
@@ -115,6 +115,7 @@
         GenericDelegator delegator = ctx.getDelegator();
         LocalDispatcher dispatcher = ctx.getDispatcher();
         Locale locale = (Locale) context.get("locale");
+        GenericValue userLogin = (GenericValue) context.get("userLogin");
 
         String userPrefGroupId = (String) context.get("userPrefGroupId");
         if (UtilValidate.isEmpty(userPrefGroupId)) {
@@ -129,7 +130,7 @@
             
             // if preference map not found, copy from the "_NA_" userlogin being the default settings
             if (UtilValidate.isEmpty(userPrefMap)) {
-            	dispatcher.runSync("copyUserPrefGroup", UtilMisc.toMap("userLogin", context.get("userLogin"), "fromUserLoginId", "_NA_", "userPrefGroupId", userPrefGroupId)); 
+            	dispatcher.runSync("copyUserPrefGroup", UtilMisc.toMap("userLogin", userLogin, "fromUserLoginId", "_NA_", "userPrefGroupId", userPrefGroupId)); 
                 userPrefMap = PreferenceWorker.createUserPrefMap(delegator.findByAnd("UserPreference", fieldMap));
             }
             

Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceWorker.java?rev=674149&r1=674148&r2=674149&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceWorker.java (original)
+++ ofbiz/trunk/framework/common/src/org/ofbiz/common/preferences/PreferenceWorker.java Fri Jul  4 20:52:24 2008
@@ -18,7 +18,6 @@
  *******************************************************************************/
 package org.ofbiz.common.preferences;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -28,11 +27,13 @@
 import org.ofbiz.base.util.ObjectType;
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.Debug;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.security.Security;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.ServiceUtil;
 
+
 /**
  * User preference worker methods.
  */
@@ -81,11 +82,10 @@
         boolean hasPermission = false;
         GenericValue userLogin = (GenericValue) context.get("userLogin");
         if (userLogin != null) {
-            String userLoginId = userLogin.getString("userLoginId");
-            String userLoginIdArg = (String) context.get("userLoginId");
-            if (userLoginId.equals(userLoginIdArg)) {
-                // users can copy to their own preferences
-                hasPermission = true;
+            String userLoginId = userLogin.getString("userLoginId"); 
+            String userLoginIdArg = (String) context.get("userLoginId"); // is an optional parameters which defaults to the logged on user
+            if (userLoginIdArg == null || (userLoginIdArg != null && userLoginId.equals(userLoginIdArg))) {
+                hasPermission = true; // users can copy to their own preferences
             } else {
                 Security security = ctx.getSecurity();
                 hasPermission = security.hasPermission(ADMIN_PERMISSION, userLogin);