IDEMPIERE-1160 Hide potentially dangerous stuff from non-admin users / fix a NPE shown on logout after a non-access exception is thrown when opening window
This commit is contained in:
parent
e7d2a7a293
commit
bc2f43b356
|
|
@ -24,7 +24,9 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.webui.desktop.IDesktop;
|
import org.adempiere.webui.desktop.IDesktop;
|
||||||
|
import org.adempiere.webui.exception.ApplicationException;
|
||||||
import org.adempiere.webui.part.AbstractUIPart;
|
import org.adempiere.webui.part.AbstractUIPart;
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.compiere.model.MImage;
|
import org.compiere.model.MImage;
|
||||||
|
|
@ -88,7 +90,12 @@ public class ADWindow extends AbstractUIPart
|
||||||
this.adWindowId = adWindowId;
|
this.adWindowId = adWindowId;
|
||||||
windowNo = SessionManager.getAppDesktop().registerWindow(this);
|
windowNo = SessionManager.getAppDesktop().registerWindow(this);
|
||||||
this.query = query;
|
this.query = query;
|
||||||
init();
|
try {
|
||||||
|
init();
|
||||||
|
} catch (Exception e) {
|
||||||
|
SessionManager.getAppDesktop().unregisterWindow(windowNo);
|
||||||
|
throw new ApplicationException(e.getMessage(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init()
|
private void init()
|
||||||
|
|
|
||||||
|
|
@ -602,7 +602,7 @@ public class DefaultDesktop extends TabbedDesktop implements MenuListener, Seria
|
||||||
if (windows != null) {
|
if (windows != null) {
|
||||||
for (int idx = 0; idx < windows.size(); idx++) {
|
for (int idx = 0; idx < windows.size(); idx++) {
|
||||||
Object ad = windows.get(idx);
|
Object ad = windows.get(idx);
|
||||||
if (ad != null && ad instanceof ADWindow) {
|
if (ad != null && ad instanceof ADWindow && ((ADWindow)ad).getADWindowContent() != null) {
|
||||||
if ( ((ADWindow)ad).getADWindowContent().isPendingChanges()) {
|
if ( ((ADWindow)ad).getADWindowContent().isPendingChanges()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue