Magento 2.x – Menu Not Showing for Custom Role in Custom Module

extensionsmagento-2.1magento2module

I am working Magento 2.x custom module. I have setup ACL rules for this but it is not showing Menu of custom module for custom user roles.

acl.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
    <acl>
        <resources>
            <resource id="Magento_Backend::admin">
                <resource id="technologymindz::base" title="TM Tag Manager" sortOrder="10" >
                    <resource id="technologymindz_googletagmanager::googletagmanager" title="General Settings" sortOrder="10" />
                </resource>
            </resource>
        </resources>
    </acl>
</config>

menu.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Backend/etc/menu.xsd">
    <menu>
        <add id="technologymindz::base" title="TM Tag Manager" module="Technologymindz_GoogleTagManager" sortOrder="10" resource="Technologymindz_GoogleTagManager::sample"/>

        <add id="technologymindz_googletagmanager::googletagmanager" title="General Settings" module="Technologymindz_GoogleTagManager" sortOrder="10" parent="technologymindz::base" action="technologymindz_googletagmanager/items/" resource="Technologymindz_GoogleTagManager::items"/>
    </menu>
</config>

custom module menu listing in resource list and setting is saved.
enter image description here

But when login and check for custom user role, it is not showing.
enter image description here

Index Controller is using permission

protected function _isAllowed()
{
 return $this->_authorization->isAllowed('technologymindz::base');
}

I have used static content deploy and cache flush

Best Answer

Change your acl code as below

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
    <acl>
        <resources>
            <resource id="Magento_Backend::admin">
                <resource id="Technologymindz_GoogleTagManager::sample" title="TM Tag Manager" sortOrder="10" >
                    <resource id="Technologymindz_GoogleTagManager::items" title="General Settings" sortOrder="10" />
                </resource>
            </resource>
        </resources>
    </acl>
</config>