Magento: Erweiterung der Kunden-Account-Controller zum hinzufügen von Aktionen zu den Passwort vergessen Schritten

Wir versuchen ein paar Aktionen zu dem AccountController zum hinzufügen einer weiteren Aktion nach dem forgotpasswordpost Aktion. Das problem ist, wenn wir fügen Sie die Aktion, um die preDispatch logict, um sicherzustellen, dass Sie nicht eingeloggt sein müssen, der es immer noch leitet zurück auf die login-Seite.

public function preDispatch()
    {
        //a brute-force protection here would be nice

        parent::preDispatch();

        if (!$this->getRequest()->isDispatched()) {
            return;
        }

        $action = $this->getRequest()->getActionName();
        if (!preg_match('/^(create|login|logoutSuccess|forgotpassword|forgotpasswordpost|confirm|confirmation|newactionhere)/i', $action)) {
            if (!$this->_getSession()->authenticate($this)) {
                $this->setFlag('', 'no-dispatch', true);
            }
        } else {
            $this->_getSession()->setNoReferer(true);
        }
    }

Funktioniert das nicht, weil wir den Aufruf der parent zuerst die läuft auch, aber natürlich ist das preg_match nicht mit dem übereinstimmt, und es läuft die authenticate-Methode, die läuft über die Methode $action->getResponse()->setRedirect($url) was natürlich legt die Kopfzeile und wenn es dann zurück zu unserem code ist es egal, und dann umleitet.

Könnten wir entfernen Sie einfach den Anruf an die Eltern, aber ich bin nicht sicher, dass ist der beste Ansatz, da die Eltern anrufen, die Ihre Eltern, wie gut die läuft noch ein paar Sachen, setzen Sie die layout-Fläche und dann ruft auch die übergeordnete Methode. Ich dachte, rufen Sie die Eltern mit Mage_Core_Controller_Front_Action war aber nicht sicher, das war der richtige Ansatz entweder.

InformationsquelleAutor dan.codes | 2010-09-23
Schreibe einen Kommentar