You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2020/02/05 08:30:52 UTC
[ofbiz-framework] branch trunk updated: Fixed: setUserTimeZone
should ran only once based on error (OFBIZ-11329)
This is an automated email from the ASF dual-hosted git repository.
jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push:
new 350c71f Fixed: setUserTimeZone should ran only once based on error (OFBIZ-11329)
350c71f is described below
commit 350c71f4df45cbe5671b54e61f74f9a352d78e05
Author: Jacques Le Roux <ja...@les7arts.com>
AuthorDate: Wed Feb 5 09:30:55 2020 +0100
Fixed: setUserTimeZone should ran only once based on error
(OFBIZ-11329)
This will be notably useful when committing CSRF solution as explained in
OFBIZ-11306:
SetTimeZoneFromBrowser when starting gives a RequestHandlerException:
Invalid or missing CSRF token for AJAX call to path '/SetTimeZoneFromBrowser'.
Also not only when starting.
Thanks: James Yong for review
---
framework/common/groovyScripts/SetTimeZoneFromBrowser.groovy | 5 +++--
themes/common-theme/webapp/common/js/util/setUserTimeZone.js | 9 ++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/framework/common/groovyScripts/SetTimeZoneFromBrowser.groovy b/framework/common/groovyScripts/SetTimeZoneFromBrowser.groovy
index 9a0201a..21f9607 100644
--- a/framework/common/groovyScripts/SetTimeZoneFromBrowser.groovy
+++ b/framework/common/groovyScripts/SetTimeZoneFromBrowser.groovy
@@ -20,13 +20,14 @@
import org.apache.ofbiz.service.ServiceUtil
public Map SetTimeZoneFromBrowser() {
- Map results = ServiceUtil.returnSuccess()
userLogin = from("UserLogin").where("userLoginId", parameters.userLogin.userLoginId).queryFirst();
if (userLogin) {
if (!userLogin.lastTimeZone || "null".equals(userLogin.lastTimeZone)) {
userLogin.lastTimeZone = parameters.localeName
userLogin.store()
+ return ServiceUtil.returnSuccess()
}
+ } else {
+ return ServiceUtil.returnError()
}
- return results
}
diff --git a/themes/common-theme/webapp/common/js/util/setUserTimeZone.js b/themes/common-theme/webapp/common/js/util/setUserTimeZone.js
index 4c29928..b74504b 100644
--- a/themes/common-theme/webapp/common/js/util/setUserTimeZone.js
+++ b/themes/common-theme/webapp/common/js/util/setUserTimeZone.js
@@ -17,18 +17,17 @@ specific language governing permissions and limitations
under the License.
*/
-// Only once by session
+// Only once by session (ref https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)
if (sessionStorage.getItem("SetTimeZoneFromBrowser") === null || sessionStorage.getItem("SetTimeZoneFromBrowser") !== "done") {
- sessionStorage.setItem("SetTimeZoneFromBrowser", "done");
var timezone = moment.tz.guess();
$.ajax({
url: "SetTimeZoneFromBrowser",
type: "POST",
async: false,
data: "localeName=" + timezone,
- error: function(error) {
- if (error != "") {
- console.error("Error while setting user locale: ", error);
+ success: function(success) {
+ if (success._ERROR_MESSAGE_ === undefined && success._ERROR_MESSAGE_LIST_ === undefined) {
+ sessionStorage.setItem("SetTimeZoneFromBrowser", "done");
}
}
});