From e86a6d6e535f5b85785b2eeebd5106eb02d16213 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 9 Jan 2017 12:45:29 +0100 Subject: [PATCH] IDEMPIERE-3220 read-only field can edit by development tool / case for toolbar buttons on slow connection, changed approach to not show the message, but save in log and stop operation on the read-only component --- .../webui/session/ValidateReadonlyComponent.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/ValidateReadonlyComponent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/ValidateReadonlyComponent.java index 51d811d633..c204dba7e3 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/ValidateReadonlyComponent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/ValidateReadonlyComponent.java @@ -17,10 +17,10 @@ package org.adempiere.webui.session; import java.util.logging.Level; import org.compiere.util.CLogger; +import org.compiere.util.Env; import org.zkoss.zk.au.AuRequest; import org.zkoss.zk.au.AuService; import org.zkoss.zk.ui.Component; -import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.ext.Disable; import org.zkoss.zk.ui.ext.Readonly; @@ -102,11 +102,13 @@ public class ValidateReadonlyComponent implements AuService { (comb != null && (Events.ON_CHANGE.equals(cmd) || Events.ON_SELECT.equals(cmd))) || (button != null && (Events.ON_CLICK.equals(cmd) || Events.ON_OK.equals(cmd) || Events.ON_UPLOAD.equals(cmd)));; - // for combobox each change have both event onchange and onselect, so will have duplicate message - // duplicate is acceptable for hack guy + // for combobox each change have both event onchange and onselect if (editing){ comp.invalidate(); - throw new WrongValueException ("Field is read only"); + String user = Env.getContext(Env.getCtx(), "#AD_User_Name") + "[" + Env.getContext(Env.getCtx(), "#AD_User_ID") + "]"; + log.log(Level.WARNING, String.format("Detected UI interaction with a read-only element: %1$s on event %2$s from user %3$s", + comp.getClass(), cmd, user)); + return true; } }