管理员登录后重定向到上一个URL


9

我希望将管理员用户重定向到他们登录后打开的URL。他们应该在管理区域中获得指向自定义模块页面的链接,例如

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

显然,除非它们已经登录,否则它们将被重定向到登录页面。

登录后如何将他们重定向回此页面?

URL中的秘密密钥被禁用并且可以保持这种状态。

现在,他们改为获取配置的默认页面(默认为仪表板)。


好的,基本上,您想在登录后将admin重定向到您的自定义页面而不是仪表板,对吗?
amit_game

不,那只是一个设置。我希望它重定向到登录之前打开的任何URL。
约瑟夫(Josef)说恢复莫妮卡(Monica)2015年

我认为您不能开箱即用。您将需要进行自定义
brentwpeterson 2015年

1
这不是Magento的默认行为吗?如果尝试进入管理页面,则会重定向到登录页面,成功登录后,您将返回该页面,而不是仪表板。
哈维尔·维拉纽瓦

1
这是前端的默认行为。对于后端,它将带您到仪表板。也许您可以复制它。整个实现在code / core / Mage / Customer / controllers / AccountController.php中完成。查找getBeforeAuthUrl和setBeforeAuthUrl。无论如何,这不是5分钟的工作。
塞缪尔·科曼

Answers:


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似乎是尝试此操作的最佳位置。

这完全是理论上的,我还没有尝试过,但是如果您需要一个示例模块,我当然可以运行并提供它。

如果每个管理员用户最终都将停留在同一页面上,则非常容易实现,如果有一些动态元素,将很难使用。祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.