Перенаправить на предыдущий URL после входа администратора

9

Я хочу, чтобы пользователи с правами администратора были перенаправлены на URL, который они открыли после входа в систему. Они должны получить ссылки на пользовательскую страницу модуля в админке , например

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

Очевидно, они будут перенаправлены на страницу входа, если они уже не вошли в систему.

Как я могу перенаправить их обратно на эту страницу после входа в систему?

Секретные ключи в URL отключены и могут оставаться такими.

Теперь они получают настроенную страницу по умолчанию (по умолчанию была Dashboard).

Джозеф говорит восстановить Монику
источник
Хорошо, в основном вы хотите перенаправить администратора, чтобы перенаправить на вашу пользовательскую страницу вместо панели мониторинга, после входа в систему, верно?
amit_game
Нет, это было бы просто урегулирование. Я хочу, чтобы он перенаправлял на любой URL, открытый до входа в систему.
Джозеф говорит восстановить Монику
Я не думаю, что вы можете сделать это из коробки. Вам нужно будет сделать настройку
brentwpeterson
1
Разве это не поведение по умолчанию в Magento? Если вы попытаетесь перейти на страницу администратора, вы будете перенаправлены на страницу входа в систему, и после успешного входа вы вернетесь на эту страницу, а не на панель управления.
Хавьер Вильянуэва,
1
Это поведение по умолчанию для внешнего интерфейса. В качестве бэкэнда вы попадете на панель инструментов. Может быть, вы могли бы повторить это. Вся реализация выполняется в коде / core / Mage / Customer / controllers / AccountController.php. Найдите getBeforeAuthUrl и setBeforeAuthUrl. Во всяком случае, это не 5 минут работы.
Самуэль Коман

Ответы:

1

Как все комментарии, заявленные ранее, это не из коробки. Вот несколько советов о том, где / что вам может понадобиться настроить:

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

Я никогда не пробовал, но это, кажется, метод, вызванный из

Mage_Adminhtml_IndexController

и есть IndexAction, который вызывает вышеуказанную функцию. Поскольку это администратор, переписывание модели, вероятно, будет проще.

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

Таким образом, изменение getStartupPageUrl (), чтобы ваш URL был, вероятно, лучшим местом, чтобы попробовать это.

Это все теоретически, я еще не пробовал, но если вам нужен пример модуля, я, конечно, могу пройти через это и предоставить его.

Если каждый пользователь-администратор окажется на той же странице, это довольно легко сделать, если есть какие-то динамические элементы, его будет немного сложнее выполнить. Удачи!

RussellAlbin
источник