Author: adrianc
Date: Mon May 12 19:25:55 2008 New Revision: 655712 URL: http://svn.apache.org/viewvc?rev=655712&view=rev Log: Added JavaScript detection to the framework. See https://issues.apache.org/jira/browse/OFBIZ-1648. Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java ofbiz/trunk/framework/common/webcommon/login.ftl ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java?rev=655712&r1=655711&r2=655712&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java (original) +++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilHttp.java Mon May 12 19:25:55 2008 @@ -54,10 +54,9 @@ import javolution.util.FastList; import javolution.util.FastMap; -import javolution.util.FastSet; /** - * HttpUtil - Misc TTP Utility Functions + * HttpUtil - Misc HTTP Utility Functions */ public class UtilHttp { @@ -690,6 +689,34 @@ return requestUri; } + /** Returns the query string contained in a request target - basically everything + * after and including the ? character. + * @param target The request target + * @return The query string or null if none is found + */ + public static String getQueryStringFromTarget(String target) { + if (target == null || target.length() == 0) return null; + int queryStart = target.indexOf('?'); + if (queryStart != -1) { + return target.substring(queryStart); + } + return null; + } + + /** Removes the query string from a request target - basically everything + * after and including the ? character. + * @param target The request target + * @return The request target string + */ + public static String removeQueryStringFromTarget(String target) { + if (target == null || target.length() == 0) return null; + int queryStart = target.indexOf('?'); + if (queryStart < 0) { + return target; + } + return target.substring(0, queryStart); + } + public static String getWebappMountPointFromTarget(String target) { int firstChar = 0; if (target == null || target.length() == 0) return null; @@ -1122,4 +1149,16 @@ return result; } + /** Returns true if the user has JavaScript enabled. + * @param request + * @return + */ + public static boolean isJavaScriptEnabled(HttpServletRequest request) { + HttpSession session = request.getSession(); + Boolean javaScriptEnabled = (Boolean) session.getAttribute("javaScriptEnabled"); + if (javaScriptEnabled != null) { + return javaScriptEnabled.booleanValue(); + } + return false; + } } Modified: ofbiz/trunk/framework/common/webcommon/login.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/login.ftl?rev=655712&r1=655711&r2=655712&view=diff ============================================================================== --- ofbiz/trunk/framework/common/webcommon/login.ftl (original) +++ ofbiz/trunk/framework/common/webcommon/login.ftl Mon May 12 19:25:55 2008 @@ -52,12 +52,14 @@ </td> </tr> </table> + <input type="hidden" name="JavaScriptEnabled" value="N"/> </form> </div> </div> </center> <script language="JavaScript" type="text/javascript"> + document.loginform.JavaScriptEnabled.value = "Y"; <#if focusName> document.loginform.USERNAME.focus(); <#else> Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java?rev=655712&r1=655711&r2=655712&view=diff ============================================================================== --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java (original) +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java Mon May 12 19:25:55 2008 @@ -18,14 +18,18 @@ *******************************************************************************/ package org.ofbiz.webapp.control; -import java.util.*; -import java.util.regex.Pattern; -import java.util.regex.Matcher; -import java.security.cert.X509Certificate; +import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.net.URLEncoder; -import java.io.UnsupportedEncodingException; +import java.security.cert.X509Certificate; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.security.auth.x500.X500Principal; import javax.servlet.ServletContext; import javax.servlet.ServletRequest; import javax.servlet.http.Cookie; @@ -34,18 +38,25 @@ import javax.servlet.http.HttpSession; import javax.servlet.jsp.PageContext; import javax.transaction.Transaction; -import javax.security.auth.x500.X500Principal; import javolution.util.FastList; import org.ofbiz.base.component.ComponentConfig; -import org.ofbiz.base.util.*; +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.GeneralException; +import org.ofbiz.base.util.KeyStoreUtil; +import org.ofbiz.base.util.UtilFormatOut; +import org.ofbiz.base.util.UtilHttp; +import org.ofbiz.base.util.UtilMisc; +import org.ofbiz.base.util.UtilProperties; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.common.login.LoginServices; import org.ofbiz.entity.GenericDelegator; import org.ofbiz.entity.GenericEntityException; import org.ofbiz.entity.GenericValue; +import org.ofbiz.entity.condition.EntityConditionList; import org.ofbiz.entity.condition.EntityExpr; import org.ofbiz.entity.condition.EntityOperator; -import org.ofbiz.entity.condition.EntityConditionList; import org.ofbiz.entity.model.ModelEntity; import org.ofbiz.entity.transaction.GenericTransactionException; import org.ofbiz.entity.transaction.TransactionUtil; @@ -55,7 +66,6 @@ import org.ofbiz.service.ModelService; import org.ofbiz.service.ServiceUtil; import org.ofbiz.webapp.stats.VisitHandler; -import org.ofbiz.common.login.LoginServices; /** * Common Workers @@ -375,6 +385,15 @@ if (userLogin != null && "Y".equals(userLogin.getString("requirePasswordChange"))) { return "requirePasswordChange"; } + String javaScriptEnabled = "N"; + if ("Y".equals(request.getParameter("JavaScriptEnabled"))) { + javaScriptEnabled = "Y"; + } + try { + result = dispatcher.runSync("setUserPreference", UtilMisc.toMap("userPrefTypeId", "javaScriptEnabled", "userPrefGroupId", "GLOBAL_PREFS", "userPrefValue", javaScriptEnabled, "userLogin", userLogin)); + } catch (GenericServiceException e) { + Debug.logError(e, "Error setting user preference", module); + } return doMainLogin(request, response, userLogin, userLoginSession); } else { Map messageMap = UtilMisc.toMap("errorMessage", (String) result.get(ModelService.ERROR_MESSAGE)); @@ -412,6 +431,16 @@ HttpSession session = request.getSession(); session.setAttribute("userLogin", userLogin); + String javaScriptEnabled = null; + try { + LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher"); + Map<String, Object> result = dispatcher.runSync("getUserPreference", UtilMisc.toMap("userPrefTypeId", "javaScriptEnabled", "userPrefGroupId", "GLOBAL_PREFS", "userLogin", userLogin)); + javaScriptEnabled = (String) result.get("userPrefValue"); + } catch (GenericServiceException e) { + Debug.logError(e, "Error getting user preference", module); + } + session.setAttribute("javaScriptEnabled", new Boolean("Y".equals(javaScriptEnabled))); + ModelEntity modelUserLogin = userLogin.getModelEntity(); if (modelUserLogin.isField("partyId")) { // if partyId is a field, then we should have these relations defined Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java?rev=655712&r1=655711&r2=655712&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java Mon May 12 19:25:55 2008 @@ -26,7 +26,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import java.util.TimeZone; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; @@ -37,7 +36,6 @@ import javolution.util.FastMap; import javolution.util.FastSet; -import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.GeneralException; import org.ofbiz.base.util.UtilDateTime; import org.ofbiz.base.util.UtilFormatOut; @@ -226,6 +224,7 @@ context.put("https", https); } } + context.put("javaScriptEnabled", new Boolean(UtilHttp.isJavaScriptEnabled(request))); // these ones are FreeMarker specific and will only work in FTL templates, mainly here for backward compatibility BeansWrapper wrapper = BeansWrapper.getDefaultInstance(); |
Free forum by Nabble | Edit this page |