Reindirizzamento a Admin Customer Modifica (con chiave) da un controller frontend
-
12-12-2019 - |
Domanda
Sto cercando di effettuare un reindirizzamento da uno dei miei moduli a admin> Gestisci cliente> Modifica.
Mage::app()->getResponse()->setRedirect(Mage::helper("adminhtml")->getUrl("adminhtml/customer/edit/", array("id"=>$customer_id)));
.
L'URL chiamato sembra essere buono, con un tasto URL.Ma questo URL conduce a una risposta di 302 e reindirizza automaticamente al cruscotto.
In effetti sembra che l'URL generato sia diverso dall'URL reale: i tasti non sono gli stessi per entrambi, il che spiega perché sono reindirizzato, immagino.
Se disabilita i tasti in URL dall'amministratore, il reindirizzamento è OK.
Puoi aiutarmi con questo problema? Grazie mille.
Soluzione
Dai un'occhiata a Come possoGenera un collegamento amministratore da un controller frontend?
Risposta breve: non è possibile, ma se si crea un controller amministratore che fungerà come un proxy per ottenere il tasto URL, quindi eseguire il reindirizzamento (dal momento che è possibile disabilitare la convalida dell'URL di amministrazione utilizzando $_publicActions
). nel tuo osservatore
Mage::app()->getResponse()->setRedirect(Mage::helper("adminhtml")->getUrl("adminhtml/redirecttocustomer/edit/", array("id"=>$customer_id)));
.
Vedi Mage_Adminhtml_Controller_Action
protected function _validateSecretKey()
{
if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) {
return true;
}
if (!($secretKey = $this->getRequest()->getParam(Mage_Adminhtml_Model_Url::SECRET_KEY_PARAM_NAME, null))
|| $secretKey != Mage::getSingleton('adminhtml/url')->getSecretKey()) {
return false;
}
return true;
}
.