Magento: Estendendo o Controlador de Conta do Cliente para adicionar ações às etapas da senha esquecida

Estamos tentando adicionar algumas ações ao AccountController para adicionar outra ação após a ação forgotpasswordpost. O problema é que, se adicionarmos a ação ao registro de pré-expedição para garantir que você não precise fazer login, ele ainda será redirecionado de volta à página de login.

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);
        }
    }

Isso não funciona porque estamos chamando o pai primeiro, que também executa isso, mas é claro que o preg_match não corresponde e ele executa o método authenticate, que executa o método $ action-> getResponse () -> setRedirect ($ url) que, é claro, define o cabeçalho e, quando retorna ao nosso código, não importa e depois redireciona.

Poderíamos simplesmente remover a chamada para o pai, mas não tenho certeza de que é a melhor abordagem, pois o pai também chama seu pai, que executa algumas coisas para definir a área de layout e também chama o método pai. Eu estava pensando em ligar para o pai com Mage_Core_Controller_Front_Action, mas também não tinha certeza de que era a abordagem correta.

questionAnswers(5)

yourAnswerToTheQuestion