Create a user for Joe Block and log in to web store. Create an order and skip the credit card payment. Check "my orders" and try to void the just created order. Result is
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
Create a user for Joe Block and log in to web store.
Create an order and skip the credit card payment.
Check "my orders" and try to void the just created order.
Result is
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.adempiere.exceptions.AdempiereException: SaveError
org.compiere.model.PO.saveEx(PO.java:2148)
org.compiere.model.PO.saveEx(PO.java:2257)
org.compiere.model.MOrder.voidIt(MOrder.java:2120)
org.compiere.process.DocumentEngine.voidIt(DocumentEngine.java:509)
org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:343)
org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:257)
org.compiere.model.MOrder.processIt(MOrder.java:1142)
org.compiere.wstore.OrderServlet.processOrder(OrderServlet.java:303)
org.compiere.wstore.OrderServlet.doPost(OrderServlet.java:149)
org.compiere.wstore.OrderServlet.doGet(OrderServlet.java:110)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.compiere.wstore.StoreFilter.doFilter(StoreFilter.java:116)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
note The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.
The cause seems related to application of https://idempiere.atlassian.net/browse/IDEMPIERE-111#icft=IDEMPIERE-111 which is very restrictive.
Proposed patch is:
Index: /base/src/org/compiere/model/PO.java
===================================================================
— /base/src/org/compiere/model/PO.java
+++ /base/src/org/compiere/model/PO.java
@@ -2857,5 +2857,5 @@
// Carlos Ruiz - globalqss - https://idempiere.atlassian.net/browse/IDEMPIERE-111#icft=IDEMPIERE-111
// Check if the role has access to this client
- if (!MRole.getDefault().isClientAccess(getAD_Client_ID(), true))
+ if (!MRole.getDefault().isClientAccess(getAD_Client_ID(), true) && (Env.getAD_Role_ID(getCtx()) != 0))
{
log.warning("You cannot delete this record, role doesn't have access");