Es ist ein sehr häufiger Fehler, der in Magento angezeigt wird, wenn Sie eine neue Erweiterung mit der system.xml- Konfiguration installieren :
Wenn Sie zur System->Configuration->Extension
Registerkarte wechseln, wird ein 404-Fehler angezeigt. Sie müssen sich abmelden und erneut anmelden, und dann ist es in Ordnung. Aber gibt es eine Möglichkeit, dies zu vermeiden?
admin
extensions
system.xml
404-page
acl
JohnyFree
quelle
quelle
Antworten:
Wie @Cags sagte, ist dies nicht (leicht) möglich, da der ACL-Baum geladen wird, wenn die Sitzung initialisiert wird (AKA, wenn sich der Administrator anmeldet).
Eine mögliche Problemumgehung besteht darin, die
_isSectionAllowed
Methode in System Configuration Controller: (Mage_Adminhtml_System_ConfigController::_isSectionAllowed
) zu überschreiben und den ACL-Baum neu zu laden.So etwas wie:
Dies bedeutet jedoch, dass der ACL-Baum jedes Mal neu geladen wird, wenn Sie auf einen Konfigurationsabschnitt zugreifen. Ich sehe keinen Grund, dies zu tun.
Sie können dies auch nicht für eine bestimmte Erweiterung tun. Sie müssen die Kernklasse neu schreiben.
quelle
Ich habe einen Weg gefunden, dies mit sehr wenig Anpassung zu umgehen. Was wir brauchen ist:
Eine neue Controller-Aktion, die die ACL neu lädt (ohne sich abzumelden und wieder einzuloggen) und dann zur vorherigen Seite zurückleitet:
Ein Layout-Update für das
admin_noroute
Handle. Wir werden einen Link zu dieser neuen Controller-Aktion direkt auf der Admin 404-Seite hinzufügen:Und die Vorlage mit dem Link:
Ich habe es in einer kleinen Erweiterung auf Github zusammengefasst: SSE_AclReload (fügt den Link auch zum Menü System> Berechtigungen hinzu )
Sie können auch versuchen, die ACL automatisch neu zu laden, sobald die Aktion admin / noroute ausgeführt wird, aber ich möchte lieber 1) wissen, was los ist, und 2) eine Auswahl treffen.
quelle
Wenn Sie ein Problem haben, wenn Sie eine neue Erweiterung installieren und eine 404-Fehlerseite erhalten , müssen Sie nur auf Folgendes eingehen
System > Permissions > Roles
. Speichern Sie einfach die Rolle und vergessen Sie nicht zu löschenvar/cache
undvar/seesion
und Ihr Problem wurde behoben.quelle
Versuche dies:
quelle