Patch 5994 verursacht den Statusfehler des Moduls Adminhtml 404

18

Ich habe neulich den Patch 5994 angewendet und er hat dazu geführt, dass der Admin-Bereich eines von mir erstellten Moduls einen 404-Fehler verursacht hat. Hat dies jemand anderes gehabt? Das Modul ist jedoch im Frontend in Ordnung.

Es ist Magento 1.8.1.0 und nachdem ich meine Commits rückgängig gemacht habe, ist es definitiv Patch 5994, bei dem alles schief gelaufen ist.

Hat jemand das gleiche Problem erlebt?

Unten ist meine config.xml-Datei für das Modul, von dem ich vermute, dass es die Antwort enthält:

<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>
Hammygoonan
quelle
Auf zur
Fiasco Labs

Antworten:

14

Dies ist das neue Sicherheitsmerkmal in vollem Umfang, wie von Cyrill Schumacher beschrieben . Er war auch so freundlich , die Lösung zu liefern :

controller muss admin html controller erweitern und config.xml router müssen ebenfalls admin verwenden.

Es gibt eine sehr gute Erklärung für das Lösen von Magento - Magento Routern: Ein Blick unter die Haube .

Wenn Sie einen benutzerdefinierten Routernamen benötigen, sollte der Abschnitt, der hinzugefügt werden muss, folgendermaßen aussehen:

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

Es ist jedoch üblicher, die Routerkonfiguration zu erweitern:

Update : Ab Magento CE 1.9.2.2 gilt das vorherige Beispiel nur für Frontend-Routen. Das Erweitern der Routerkonfiguration ist der richtige Weg:

<config>
    ...
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Limesharp_Playzone before="Mage_Adminhtml">Limesharp_Playzone_Adminhtml</Limesharp_Playzone>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    ...
</config>
mam08ixo
quelle
3
Es handelt sich also um ein rotes Warnflag für Module, die nicht sicher erstellt wurden.
Fiasco Labs