From 58d540b7b75d6720e04a51886e51b8bed2952dba Mon Sep 17 00:00:00 2001 From: Deepak Dixit Date: Fri, 22 May 2026 12:54:29 +0530 Subject: [PATCH] Move EntityPermissionChecker from framework/entityext to application/content (OFBIZ-13393) Relocated EntityPermissionChecker from framework/entityext to application/content due to its strong dependency on the Content data model. - Moved EntityPermissionChecker implementation to applications/content - Removed framework-level dependencies related to EntityPermissionChecker - Removed if-entity-permission handling from framework code - Reduced framework coupling with Content application entities - Improved separation between framework and application-specific functionality --- .../content/ContentManagementWorker.java | 2 +- .../content/ContentPermissionServices.java | 2 +- .../permission/EntityPermissionChecker.java | 2 +- .../webapp/ftl/CheckPermissionTransform.java | 2 +- framework/widget/dtd/widget-common.xsd | 23 -------------- framework/widget/dtd/widget-screen.xsd | 1 - .../widget/model/AbstractModelCondition.java | 30 ------------------- .../widget/model/ModelConditionVisitor.java | 3 -- .../widget/model/ModelWidgetCondition.java | 21 ------------- .../model/XmlWidgetConditionVisitor.java | 8 ----- 10 files changed, 4 insertions(+), 90 deletions(-) rename {framework/entityext/src/main/java/org/apache/ofbiz/entityext => applications/content/src/main/java/org/apache/ofbiz/content}/permission/EntityPermissionChecker.java (99%) diff --git a/applications/content/src/main/java/org/apache/ofbiz/content/ContentManagementWorker.java b/applications/content/src/main/java/org/apache/ofbiz/content/ContentManagementWorker.java index 651335a9f20..092907f809f 100644 --- a/applications/content/src/main/java/org/apache/ofbiz/content/ContentManagementWorker.java +++ b/applications/content/src/main/java/org/apache/ofbiz/content/ContentManagementWorker.java @@ -49,7 +49,7 @@ import org.apache.ofbiz.entity.condition.EntityOperator; import org.apache.ofbiz.entity.util.EntityQuery; import org.apache.ofbiz.entity.util.EntityUtil; -import org.apache.ofbiz.entityext.permission.EntityPermissionChecker; +import org.apache.ofbiz.content.permission.EntityPermissionChecker; import org.apache.ofbiz.minilang.MiniLangException; import org.apache.ofbiz.security.Security; diff --git a/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentPermissionServices.java b/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentPermissionServices.java index 85767d382cc..ec17dbc7f52 100644 --- a/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentPermissionServices.java +++ b/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentPermissionServices.java @@ -34,7 +34,7 @@ import org.apache.ofbiz.entity.GenericEntityException; import org.apache.ofbiz.entity.GenericValue; import org.apache.ofbiz.entity.util.EntityQuery; -import org.apache.ofbiz.entityext.permission.EntityPermissionChecker; +import org.apache.ofbiz.content.permission.EntityPermissionChecker; import org.apache.ofbiz.security.Security; import org.apache.ofbiz.service.DispatchContext; import org.apache.ofbiz.service.GenericServiceException; diff --git a/framework/entityext/src/main/java/org/apache/ofbiz/entityext/permission/EntityPermissionChecker.java b/applications/content/src/main/java/org/apache/ofbiz/content/permission/EntityPermissionChecker.java similarity index 99% rename from framework/entityext/src/main/java/org/apache/ofbiz/entityext/permission/EntityPermissionChecker.java rename to applications/content/src/main/java/org/apache/ofbiz/content/permission/EntityPermissionChecker.java index b86b4c8b6ec..5a55041573a 100644 --- a/framework/entityext/src/main/java/org/apache/ofbiz/entityext/permission/EntityPermissionChecker.java +++ b/applications/content/src/main/java/org/apache/ofbiz/content/permission/EntityPermissionChecker.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. *******************************************************************************/ -package org.apache.ofbiz.entityext.permission; +package org.apache.ofbiz.content.permission; import java.util.ArrayList; import java.util.Arrays; diff --git a/applications/content/src/main/java/org/apache/ofbiz/content/webapp/ftl/CheckPermissionTransform.java b/applications/content/src/main/java/org/apache/ofbiz/content/webapp/ftl/CheckPermissionTransform.java index f25f04662a1..5a13ee840c4 100644 --- a/applications/content/src/main/java/org/apache/ofbiz/content/webapp/ftl/CheckPermissionTransform.java +++ b/applications/content/src/main/java/org/apache/ofbiz/content/webapp/ftl/CheckPermissionTransform.java @@ -36,7 +36,7 @@ import org.apache.ofbiz.content.content.PermissionRecorder; import org.apache.ofbiz.entity.Delegator; import org.apache.ofbiz.entity.GenericValue; -import org.apache.ofbiz.entityext.permission.EntityPermissionChecker; +import org.apache.ofbiz.content.permission.EntityPermissionChecker; import org.apache.ofbiz.security.Security; import org.apache.ofbiz.service.ModelService; import org.apache.ofbiz.webapp.ftl.LoopWriter; diff --git a/framework/widget/dtd/widget-common.xsd b/framework/widget/dtd/widget-common.xsd index 6b524290406..7efc8a83a00 100644 --- a/framework/widget/dtd/widget-common.xsd +++ b/framework/widget/dtd/widget-common.xsd @@ -27,7 +27,6 @@ under the License. - @@ -87,28 +86,6 @@ under the License. - - - - - - - - - - - Can have multiple pipe separated values, but don't use spaces. - - - - - Can have multiple pipe separated values, but don't use spaces. - - - - - diff --git a/framework/widget/dtd/widget-screen.xsd b/framework/widget/dtd/widget-screen.xsd index 3774d9a7f09..a75606732a2 100644 --- a/framework/widget/dtd/widget-screen.xsd +++ b/framework/widget/dtd/widget-screen.xsd @@ -63,7 +63,6 @@ under the License. - diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/AbstractModelCondition.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/AbstractModelCondition.java index 33cabd685ab..99022b37362 100644 --- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/AbstractModelCondition.java +++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/AbstractModelCondition.java @@ -38,7 +38,6 @@ import org.apache.ofbiz.base.util.collections.FlexibleMapAccessor; import org.apache.ofbiz.base.util.string.FlexibleStringExpander; import org.apache.ofbiz.entity.GenericValue; -import org.apache.ofbiz.entityext.permission.EntityPermissionChecker; import org.apache.ofbiz.minilang.operation.BaseCompare; import org.apache.ofbiz.security.Security; import org.apache.ofbiz.service.DispatchContext; @@ -209,8 +208,6 @@ protected ModelCondition newInstance(ModelConditionFactory factory, ModelWidget return new IfRegexp(factory, modelWidget, conditionElement); } else if ("if-empty".equals(nodeName)) { return new IfEmpty(factory, modelWidget, conditionElement); - } else if ("if-entity-permission".equals(nodeName)) { - return new IfEntityPermission(factory, modelWidget, conditionElement); } else { throw new IllegalArgumentException("Condition element not supported with name: " + conditionElement.getNodeName()); } @@ -406,33 +403,6 @@ public FlexibleMapAccessor getFieldAcsr() { } - /** - * Models the <if-entity-permission> element. - * @see widget-common.xsd - */ - public static final class IfEntityPermission extends AbstractModelCondition { - private final EntityPermissionChecker permissionChecker; - - private IfEntityPermission(ModelConditionFactory factory, ModelWidget modelWidget, Element condElement) { - super(factory, modelWidget, condElement); - this.permissionChecker = new EntityPermissionChecker(condElement); - } - - @Override - public void accept(ModelConditionVisitor visitor) throws Exception { - visitor.visit(this); - } - - @Override - public boolean eval(Map context) { - return permissionChecker.runPermissionCheck(context); - } - - public EntityPermissionChecker getPermissionChecker() { - return permissionChecker; - } - } - /** * Models the <if-has-permission> element. * @see widget-common.xsd diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelConditionVisitor.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelConditionVisitor.java index fd3934d2499..37a59901176 100644 --- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelConditionVisitor.java +++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelConditionVisitor.java @@ -22,7 +22,6 @@ import org.apache.ofbiz.widget.model.AbstractModelCondition.IfCompare; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfCompareField; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfEmpty; -import org.apache.ofbiz.widget.model.AbstractModelCondition.IfEntityPermission; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfHasPermission; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfRegexp; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfServicePermission; @@ -45,8 +44,6 @@ public interface ModelConditionVisitor { void visit(IfEmpty ifEmpty) throws Exception; - void visit(IfEntityPermission ifEntityPermission) throws Exception; - void visit(IfHasPermission ifHasPermission) throws Exception; void visit(IfRegexp ifRegexp) throws Exception; diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelWidgetCondition.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelWidgetCondition.java index 73e514c8dd1..0aad39f6f79 100644 --- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelWidgetCondition.java +++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelWidgetCondition.java @@ -38,7 +38,6 @@ import org.apache.ofbiz.base.util.collections.FlexibleMapAccessor; import org.apache.ofbiz.base.util.string.FlexibleStringExpander; import org.apache.ofbiz.entity.GenericValue; -import org.apache.ofbiz.entityext.permission.EntityPermissionChecker; import org.apache.ofbiz.minilang.operation.BaseCompare; import org.apache.ofbiz.security.Security; import org.apache.ofbiz.service.DispatchContext; @@ -181,8 +180,6 @@ public Condition newInstance(ModelWidget modelWidget, Element conditionElement) return new IfRegexp(this, modelWidget, conditionElement); } else if ("if-empty".equals(nodeName)) { return new IfEmpty(this, modelWidget, conditionElement); - } else if ("if-entity-permission".equals(nodeName)) { - return new IfEntityPermission(this, modelWidget, conditionElement); } else { throw new IllegalArgumentException("Condition element not supported with name: " + nodeName); } @@ -318,24 +315,6 @@ public boolean eval(Map context) { } } - /** - * Models the <if-entity-permission> element. - * @see widget-common.xsd - */ - public static final class IfEntityPermission extends ModelWidgetCondition implements Condition { - private final EntityPermissionChecker permissionChecker; - - private IfEntityPermission(ConditionFactory factory, ModelWidget modelWidget, Element condElement) { - super(factory, modelWidget, condElement); - this.permissionChecker = new EntityPermissionChecker(condElement); - } - - @Override - public boolean eval(Map context) { - return permissionChecker.runPermissionCheck(context); - } - } - /** * Models the <if-has-permission> element. * @see widget-common.xsd diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/XmlWidgetConditionVisitor.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/XmlWidgetConditionVisitor.java index 4e7f6fd0c6b..bb081cf2dea 100644 --- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/XmlWidgetConditionVisitor.java +++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/XmlWidgetConditionVisitor.java @@ -24,7 +24,6 @@ import org.apache.ofbiz.widget.model.AbstractModelCondition.IfCompare; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfCompareField; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfEmpty; -import org.apache.ofbiz.widget.model.AbstractModelCondition.IfEntityPermission; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfHasPermission; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfRegexp; import org.apache.ofbiz.widget.model.AbstractModelCondition.IfServicePermission; @@ -91,13 +90,6 @@ public void visit(IfEmptySection ifEmptySection) throws Exception { writer.append("/>"); } - @Override - public void visit(IfEntityPermission ifEntityPermission) throws Exception { - writer.append(""); - } - @Override public void visit(IfHasPermission ifHasPermission) throws Exception { writer.append("