Reindirizzare all'URL precedente dopo l'accesso dell'amministratore


9

Voglio che gli utenti amministratori vengano reindirizzati all'URL che hanno aperto dopo il login. Dovrebbero ottenere collegamenti a una pagina del modulo personalizzata nell'area di amministrazione , come

https: //magento.example/index.php/admin/admin_mycoolmodule/adminhtml_viewawesome/view/showpage/awesome/howmuch/9001/

Ovviamente, verranno reindirizzati alla pagina di accesso, a meno che non siano già registrati.

Come posso reindirizzarli a questa pagina dopo il login?

Le chiavi segrete nell'URL sono disabilitate e possono rimanere così.

Ora ottengono invece la pagina predefinita configurata (l'impostazione predefinita era Dashboard).


ok, in pratica vuoi reindirizzare l'amministratore per reindirizzare alla tua pagina personalizzata anziché alla dashboard, dopo il login, giusto?
amit_game,

No, sarebbe solo un'ambientazione. Voglio che reindirizzi a qualunque URL sia stato aperto prima dell'accesso.
Josef dice di reintegrare Monica il

Non penso che tu possa farlo immediatamente. Dovrai effettuare una personalizzazione
brentwpeterson

1
Non è questo il comportamento predefinito in Magento? Se si tenta di accedere a una pagina di amministrazione, si viene reindirizzati alla pagina di accesso e, dopo un accesso riuscito, si torna a quella pagina non alla dashboard.
Javier Villanueva,

1
È il comportamento predefinito per il frontend. Per il backend ti porta alla Dashboard. Forse potresti replicarlo. L'intera implementazione viene eseguita in codice / core / Mage / Customer / controller / AccountController.php. Cerca getBeforeAuthUrl e setBeforeAuthUrl. Comunque, non è un lavoro di 5 minuti.
Samuel Coman,

Risposte:


1

Come tutti i commenti indicati in precedenza, non è pronto all'uso. Ecco alcuni suggerimenti su dove / cosa potrebbe essere necessario regolare:

Mage_Admin_Model_User

public function getStartupPageUrl()
    {
        $startupPage = Mage::getStoreConfig(self::XML_PATH_STARTUP_PAGE);
        $aclResource = 'admin/' . $startupPage;
        if (Mage::getSingleton('admin/session')->isAllowed($aclResource)) {
            $nodePath = 'menu/' . join('/children/', explode('/', $startupPage)) . '/action';
            $url = (string)Mage::getSingleton('admin/config')->getAdminhtmlConfig()->getNode($nodePath);
            if ($url) {
                return $url;
            }
        }
        return $this->findFirstAvailableMenu();
    }

Non l'ho mai provato, ma questo sembra essere il metodo chiamato da

Mage_Adminhtml_IndexController

e c'è IndexAction che chiama la funzione sopra. Poiché si tratta dell'amministratore, probabilmente sarà più semplice eseguire una riscrittura del modello.

/**
 * Admin area entry point
 * Always redirects to the startup page url
 */
public function indexAction()
{
    $session = Mage::getSingleton('admin/session');
    $url = $session->getUser()->getStartupPageUrl();
    if ($session->isFirstPageAfterLogin()) {
        // retain the "first page after login" value in session (before redirect)
        $session->setIsFirstPageAfterLogin(true);
    }
    $this->_redirect($url);
}

Quindi, modificando getStartupPageUrl () per avere il tuo URL sembra molto probabilmente il posto migliore per provare questo.

Tutto ciò è teorico, non l'ho ancora provato, ma se hai bisogno di un modulo di esempio, posso sicuramente eseguirlo e fornirlo.

Se ogni utente amministratore finirà sulla stessa pagina, è abbastanza facile da fare, se ci sono alcuni elementi dinamici, sarà un po 'più difficile da facilitare. In bocca al lupo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.