Перенаправлення на попередню 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 / Клієнт / контролери / 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-адресу, здається, найкраще місце, щоб спробувати це.

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

Якщо кожен користувач адміністратора опиниться на одній сторінці, це зробити досить просто, якщо є якісь динамічні елементи, це буде трохи складніше. Щасти!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.