We have a transition to get the network printer list…but some non-admin users get an error message that they are not authorized for view on the transition (presumably because of the read on moqui.basic.print.NetworkPrinter)
org.moqui.context.ArtifactAuthorizationException: User k1234 is not authorized for View on Transition component://xyz/screen/xyz.xml/getNetworkPrinterList
Web Access Forbidden (no authz): User k1234 is not authorized for View on Transition component://xyz/screen/xyz.xml/getNetworkPrinterList
Where the transition looks like:
<transition name="getNetworkPrinterList">
<parameter name="term"/>
<parameter name="ignoreTerm"/> <!-- 'true' ignores term; e.g. for a non-server search dependent dropdown -->
<actions>
<set field="term" from="term ? (ignoreTerm == 'true' ? '': term) : ''"/>
<!-- The user is likely to type the pseudoId of a party; assume they are trying to do that. -->
<entity-find-one entity-name="mantle.party.PartyDetail" value-field="partyDetail">
<field-map field-name="pseudoId" from="term"/>
</entity-find-one>
<entity-find entity-name="moqui.basic.print.NetworkPrinter" list="printerList">
<econditions combine="or">
<econdition field-name="printerName" operator="like" value="%${term}%" ignore-case="true"/>
<econdition field-name="description" operator="like" value="%${term}%" ignore-case="true"/>
<econdition field-name="serverHost" operator="like" value="%${term}%" ignore-case="true"/>
</econditions>
<select-field field-name="serverHost,serverPort,printerName"/>
</entity-find>
<script>
def outList = []
for (printer in printerList) outList.add([value:printer.serverHost + ':' + printer.serverPort, label:printer.printerName + " (" + printer.serverHost + ")"])
ec.web.sendJsonResponse([options:outList, pageSize:null, count:printerList.size()])
</script>
</actions>
<default-response type="none"/>
</transition>