diff --git a/org.adempiere.base/src/org/compiere/model/MInfoWindow.java b/org.adempiere.base/src/org/compiere/model/MInfoWindow.java index 3cb5124094..5ef35477cd 100644 --- a/org.adempiere.base/src/org/compiere/model/MInfoWindow.java +++ b/org.adempiere.base/src/org/compiere/model/MInfoWindow.java @@ -170,8 +170,8 @@ public class MInfoWindow extends X_AD_InfoWindow Iterator iterator = lsInfoProcess.iterator(); while (iterator.hasNext()){ MInfoProcess testInfoProcess = iterator.next(); - // need more review - if (MRole.getDefault().getProcessAccess(testInfoProcess.getAD_Process_ID()) == null){ + Boolean access = MRole.getDefault().getProcessAccess(testInfoProcess.getAD_Process_ID()); + if (access == null || !access.booleanValue()) { iterator.remove(); } } diff --git a/org.adempiere.server/src/main/servlet/org/adempiere/web/server/command/ExecuteProcessCommand.java b/org.adempiere.server/src/main/servlet/org/adempiere/web/server/command/ExecuteProcessCommand.java index f80cbeeda3..4263ae8988 100644 --- a/org.adempiere.server/src/main/servlet/org/adempiere/web/server/command/ExecuteProcessCommand.java +++ b/org.adempiere.server/src/main/servlet/org/adempiere/web/server/command/ExecuteProcessCommand.java @@ -57,7 +57,8 @@ public class ExecuteProcessCommand extends ServerResource { String procedureName = (String) entity.get("procedureName"); MRole role = MRole.get(context, Env.getAD_Role_ID(context), Env.getAD_User_ID(context), false); - if (!role.getProcessAccess(pi.getAD_Process_ID())) { + Boolean access = role.getProcessAccess(pi.getAD_Process_ID()); + if (access == null || !access.booleanValue()) { throw new AdempiereException("Access denied."); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java index d58d8ab447..3f127b3629 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java @@ -62,6 +62,7 @@ import org.compiere.model.GridWindow; import org.compiere.model.I_AD_Preference; import org.compiere.model.MLookup; import org.compiere.model.MPreference; +import org.compiere.model.MRole; import org.compiere.model.MTab; import org.compiere.model.MTable; import org.compiere.model.MToolBarButton; @@ -632,8 +633,11 @@ DataStatusListener, IADTabpanel, IdSpace, IFieldEditorContainer //get extra toolbar process buttons MToolBarButton[] mToolbarButtons = MToolBarButton.getProcessButtonOfTab(gridTab.getAD_Tab_ID(), null); for(MToolBarButton mToolbarButton : mToolbarButtons) { - ToolbarProcessButton toolbarProcessButton = new ToolbarProcessButton(mToolbarButton, this, windowPanel, windowNo); - toolbarProcessButtons.add(toolbarProcessButton); + Boolean access = MRole.getDefault().getProcessAccess(mToolbarButton.getAD_Process_ID()); + if (access != null && access.booleanValue()) { + ToolbarProcessButton toolbarProcessButton = new ToolbarProcessButton(mToolbarButton, this, windowPanel, windowNo); + toolbarProcessButtons.add(toolbarProcessButton); + } } if (toolbarProcessButtons.size() > 0) {