Объединенный ACL проверяется в режиме разработки с помощью ./vendor/magento/framework/Acl/etc/acl_merged.xsd
. Здесь требуется атрибут title
:
<xs:attribute name="title" type="typeTitle" use="required" />
Попробуйте установить точку останова в ./vendor/magento/framework/Config/Reader/Filesystem.php:169
и объедините XML с:
$configMerger->getDom()->saveXML();
Затем используйте онлайн-валидатор, например https://www.freeformatter.com/xml-validator-xsd.html для проверки вашего XML на XSD (используйте ./vendor/magento/framework/Acl/etc/acl.xsd
с обязательным атрибутом title
).
В моем случае я отключил некоторые модули magento (Magento_InventoryApi
, Magento_InventoryInStorePickupApi
):
<resource id="Magento_InventoryApi::inventory" title="Inventory" ... />
<resource id="Magento_InventoryInStorePickupApi::inStorePickup" title="In-Store Pickup" ... />
но я не отключил зависимый модуль (Magento_InventoryInStorePickupSalesApi
):
<resource id="Magento_InventoryApi::inventory">
<resource id="Magento_InventoryInStorePickupApi::inStorePickup">
<resource id="Magento_InventoryInStorePickupApi::notify_orders_are_ready_for_pickup" title="Notify Orders Are Ready For Pickup" ... />
</resource>
</resource>
Итак, мой объединенный ACL был примерно таким:
<resource id="Magento_InventoryApi::inventory">
<resource id="Magento_InventoryInStorePickupApi::inStorePickup">
<resource id="Magento_InventoryInStorePickupApi::notify_orders_are_ready_for_pickup"
title="Notify Orders Are Ready For Pickup" translate="title" sortOrder="30"/>
</resource>
</resource>
без обязательного атрибута title
для узла resource
.