ACL estensioni Magento non correttamente definite

Ci sono alcuni sintomi che, tra altri, possono indicare che i file di configurazione delle ACL di un’estensione non siano scritti bene:

  • Non compare il nome del modulo nell’elenco delle risorse assegnabili ad un ruolo
  • Anche se la risorsa compare e spuntate la casella di assegnazione il salvataggio non funziona (e non da errori)
  • alcuni utenti non amministratori non riescono a vedere le risorse anche se correttamente assegnate al loro ruolo

In questi casi un controllo più approfondito dei file config-xml e adminhtml.xml delle estensioni in questione può tornare utile.

Nel mio caso di poco fa ad un controllo sommario (il venerdì si avvicina) non mi ero accorto di alcune definizioni mancanti nella definizione degli elementi del menù e dei relativi nomi modulo che erano scritti male.

Ecco un esempio:

</pre>
<pre>[...]
     <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <Mdlb_Mlayer>
                            <title>Mlayer Module</title>
                            <sort_order>10</sort_order>
                        </Mdlb_Mlayer>
                        (...)
                    </children>
                </admin>
            </resources>
        </acl>
[...]</pre>
<pre>

Corretto:

[...]
     <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <mlayer>
                            <title>Mlayer Module</title>
                            <sort_order>10</sort_order>
                            <children>
                                <items module="mlayer">
                                    <title>Manage Banners</title>
                                    <sort_order>0</sort_order>
                                    <action>mlayer/adminhtml_mlayer</action>
                                </items>
                            </children>
                        </mlayer>
                        (...)
                    </children>
                </admin>
            </resources>
        </acl>
[...]

A volte una distrazione ti ruba mezz’ora! :-O

NOTA: i motivi per cui le ACL non funzionano possono essere molti di più di questi, così come i sintomi, questo post è solo un esempio del classico errore “di sbaglio” di alcuni sviluppatori di estensioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.