diff --git a/framework/template/XmlActions.groovy.ftl b/framework/template/XmlActions.groovy.ftl index 3d2a1555b..0671c30ae 100644 --- a/framework/template/XmlActions.groovy.ftl +++ b/framework/template/XmlActions.groovy.ftl @@ -122,7 +122,7 @@ ${.node} <#macro "entity-find-one"> <#assign autoFieldMap = .node["@auto-field-map"]?if_exists> if (true) { - org.moqui.entity.EntityValue find_one_result = ec.entity.find("${.node["@entity-name"]}")<#if .node["@cache"]?has_content>.useCache(${.node["@cache"]})<#if .node["@for-update"]?has_content>.forUpdate(${.node["@for-update"]})<#if .node["@use-clone"]?has_content>.useClone(${.node["@use-clone"]}) + org.moqui.entity.EntityValue find_one_result = ec.entity.find("${.node["@entity-name"]}")<#if .node["@cache"]?has_content>.useCache(${.node["@cache"]})<#if .node["@for-update"]?has_content>.forUpdate(${.node["@for-update"]})<#if .node["@use-clone"]?has_content>.useClone(${.node["@use-clone"]})<#if .node["@disable-authz"]?if_exists == "true">.disableAuthz() <#if autoFieldMap?has_content><#if autoFieldMap == "true">.condition(context)<#elseif autoFieldMap != "false">.condition(${autoFieldMap})<#elseif !.node["field-map"]?has_content>.condition(context)<#list .node["field-map"] as fieldMap>.condition("${fieldMap["@field-name"]}", <#if fieldMap["@from"]?has_content>${fieldMap["@from"]}<#elseif fieldMap["@value"]?has_content>"""${fieldMap["@value"]}"""<#else>${fieldMap["@field-name"]})<#list .node["select-field"] as sf>.selectField("${sf["@field-name"]}").one() if (${.node["@value-field"]} instanceof Map && !(${.node["@value-field"]} instanceof org.moqui.entity.EntityValue)) { if (find_one_result) ${.node["@value-field"]}.putAll(find_one_result) } else { ${.node["@value-field"]} = find_one_result } } @@ -131,7 +131,7 @@ ${.node} <#assign useCache = (.node["@cache"]?if_exists == "true")> <#assign listName = .node["@list"]> <#assign doPaginate = .node["search-form-inputs"]?has_content && !(.node["search-form-inputs"][0]["@paginate"]?if_exists == "false")> - ${listName}_xafind = ec.entity.find("${.node["@entity-name"]}")<#if .node["@cache"]?has_content>.useCache(${.node["@cache"]})<#if .node["@for-update"]?has_content>.forUpdate(${.node["@for-update"]})<#if .node["@distinct"]?has_content>.distinct(${.node["@distinct"]})<#if .node["@use-clone"]?has_content>.useClone(${.node["@use-clone"]})<#if .node["@offset"]?has_content>.offset(${.node["@offset"]})<#if .node["@limit"]?has_content>.limit(${.node["@limit"]})<#list .node["select-field"] as sf>.selectField("${sf["@field-name"]}")<#list .node["order-by"] as ob>.orderBy("${ob["@field-name"]}") + ${listName}_xafind = ec.entity.find("${.node["@entity-name"]}")<#if .node["@cache"]?has_content>.useCache(${.node["@cache"]})<#if .node["@for-update"]?has_content>.forUpdate(${.node["@for-update"]})<#if .node["@distinct"]?has_content>.distinct(${.node["@distinct"]})<#if .node["@use-clone"]?has_content>.useClone(${.node["@use-clone"]})<#if .node["@disable-authz"]?if_exists == "true">.disableAuthz()<#if .node["@offset"]?has_content>.offset(${.node["@offset"]})<#if .node["@limit"]?has_content>.limit(${.node["@limit"]})<#list .node["select-field"] as sf>.selectField("${sf["@field-name"]}")<#list .node["order-by"] as ob>.orderBy("${ob["@field-name"]}") <#if !useCache><#list .node["date-filter"] as df>.condition(<#visit df/>)<#list .node["econdition"] as ecn>.condition(<#visit ecn/>)<#list .node["econditions"] as ecs>.condition(<#visit ecs/>) <#list .node["econdition-object"] as eco><#if eco["@field"]?has_content> if (${eco["@field"]} != null) { ${listName}_xafind.condition(${eco["@field"]}) } @@ -205,6 +205,7 @@ ${.node} ${.node["@count-field"]} = ec.entity.find("${.node["@entity-name"]}") <#t><#if .node["@cache"]?has_content>.useCache(${.node["@cache"]}) <#t><#if .node["@distinct"]?has_content>.distinct(${.node["@distinct"]}) + <#t><#if .node["@disable-authz"]?if_exists == "true">.disableAuthz() <#t><#if .node["search-form-inputs"]?has_content>.searchFormMap(${"ec.context"}, efSfiDefParams, "${sfiNode["@skip-fields"]!("")}", null, false) <#t><#list .node["select-field"] as sf>.selectField("${sf["@field-name"]}") <#t><#list .node["date-filter"] as df>.condition(<#visit df/>) diff --git a/framework/xsd/xml-actions-3.xsd b/framework/xsd/xml-actions-3.xsd index 01587c0f6..ac173ffa2 100644 --- a/framework/xsd/xml-actions-3.xsd +++ b/framework/xsd/xml-actions-3.xsd @@ -349,6 +349,10 @@ along with this software (see the LICENSE.md file). If not, see Use a datasource clone, if one is configured + + Disable authorization checks (and row-level EntityFilters) for this + find. Equivalent to ec.entity.find(...).disableAuthz() in script. + @@ -410,6 +414,10 @@ along with this software (see the LICENSE.md file). If not, see Get back only this many results. + + Disable authorization checks (and row-level EntityFilters) for this + find. Equivalent to ec.entity.find(...).disableAuthz() in script. + @@ -657,6 +665,10 @@ along with this software (see the LICENSE.md file). If not, see Get only distinct results, based on the combination of all fields selected. Defaults to false. + + Disable authorization checks (and row-level EntityFilters) for this + find. Equivalent to ec.entity.find(...).disableAuthz() in script. +