Le patch 5994 provoque une erreur d'état du module Adminhtml 404


18

J'ai appliqué le patch 5994 l'autre jour et cela a provoqué la section admin d'un module que je construis pour lancer un 404. Quelqu'un d'autre a-t-il cela. Le module est bien sur le frontend cependant.

C'est Magento 1.8.1.0 et après avoir annulé mes commits, c'est définitivement le patch 5994 où tout s'est mal passé.

Quelqu'un d'autre a-t-il rencontré le même problème?

Ci-dessous, mon fichier config.xml pour le module dont je soupçonne la réponse:

<config>
    <modules>
        <Company_Playzone>
            <version>0.1.0</version>
        </Company_Playzone>
    </modules>
    <frontend>
        <routers>
            <playzone>
                <use>standard</use>
                <args>
                    <module>Company_Playzone</module>
                    <frontName>playzone</frontName>
                </args>
            </playzone>
        </routers>
        <layout>
            <updates>
                <playzone>
                    <file>playzone.xml</file>
                </playzone>
            </updates>
        </layout>
    </frontend>
    <adminhtml>
        <layout>
            <updates>
                <playzone>
                    <file>playzone.xml</file>
                </playzone>
            </updates>
        </layout>
        <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <playzone>
                            <title>Play Zone</title>
                            <sort_order>10</sort_order>
                        </playzone>
                    </children>
                </admin>
            </resources>
        </acl>
        <menu>
            <cms>
                <children>
                    <playzone_adminform module="playzone">
                        <title>Play Zone</title>
                        <children>
                            <activity module="playzone">
                                <title>Activities</title>
                                <action>playzone/adminhtml_activity</action>
                            </activity>
                            <category module="playzone">
                                <title>Categories</title>
                                <action>playzone/adminhtml_category</action>
                            </category>
                            <competition module="playzone">
                                <title>Competitions</title>
                                <action>playzone/adminhtml_competition</action>
                            </competition>
                        </children>
                    </playzone_adminform>
                </children>
            </cms>
        </menu>
    </adminhtml>
    <global>
        <helpers>
            <playzone>
                <class>Company_Playzone_Helper</class>
            </playzone>
        </helpers>
        <blocks>
            <playzone>
                <class>Company_Playzone_Block</class>
            </playzone>
        </blocks>
        <models>
            <playzone>
                <class>Company_Playzone_Model</class>
                <resourceModel>playzone_resource</resourceModel>
            </playzone>
            <playzone_resource>
                <class>Company_Playzone_Model_Resource</class>
                <entities>
                    <activity>
                        <table>playzone_activity</table>
                    </activity>
                    <category>
                        <table>playzone_category</table>
                    </category>
                    <competition>
                        <table>playzone_competition</table>
                    </competition>
                </entities>
            </playzone_resource>
        </models>
        <resources>
            <playzone_setup>
                <setup>
                    <module>Company_Playzone</module>
                    <class>Company_Playzone_Model_Resource_Setup</class>
                </setup>
            </playzone_setup>
            <playzone_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </playzone_write>
            <playzone_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </playzone_read>
        </resources>
    </global>
</config>

Arrêt des tests de module pour les ruptures ...
Fiasco Labs

Réponses:


14

Il s'agit de la nouvelle fonctionnalité de sécurité en vigueur, comme l'a souligné Cyrill Schumacher . Il a également eu la gentillesse de fournir le correctif :

le contrôleur doit étendre le contrôleur admin html et la section des routeurs config.xml doit également utiliser admin.

Il y a une très bonne explication à Solving Magento - Magento Routers: a Look under the Hood .

Si vous avez besoin d'un nom de routeur personnalisé, la section qui doit être ajoutée devrait ressembler à ceci:

<config>
    ...
    <admin>
        <routers>
            <playzone>
                <use>admin</use>
                <args>
                    <module>Limesharp_Playzone</module>
                    <frontName>playzone</frontName>
                </args>
            </playzone>
        </routers>
    </admin>
    ...
</config>

Il est plus courant d'étendre la configuration du routeur:

Mise à jour : depuis Magento CE 1.9.2.2, l'exemple précédent ne s'applique qu'aux routes frontales. Étendre la configuration du routeur est la voie à suivre:

<config>
    ...
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Limesharp_Playzone before="Mage_Adminhtml">Limesharp_Playzone_Adminhtml</Limesharp_Playzone>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    ...
</config>

3
C'est donc un indicateur d'avertissement rouge pour les modules qui n'ont pas été créés en toute sécurité.
Fiasco Labs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.