管理者ログイン後に前のURLにリダイレクト


9

ログイン後に管理者ユーザーが開いたURLにリダイレクトされるようにしたい。次のような管理領域のカスタムモジュールページへのリンクを取得する必要があります。

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

もちろん、すでにログインしていない限り、ログインページにリダイレクトされます。

ログイン後にこのページにリダイレクトするにはどうすればよいですか?

URLの秘密鍵は無効になり、そのまま使用できます。

代わりに、構成済みのデフォルトページ(デフォルトはダッシュボード)を取得します。


わかりました。基本的には、ログイン後にadminをダッシュ​​ボードではなくカスタムページにリダイレクトする必要があります。
amit_game 2015

いいえ、それは単なる設定です。ログインする前に開いていたURLにリダイレクトしたい。
ジョセフ氏は、2015

箱から出してこれを行うことはできないと思います。カスタマイズする必要があります
brentwpeterson

1
これはMagentoのデフォルトの動作ではありませんか?管理ページに移動しようとすると、ログインページにリダイレクトされ、ログインが成功すると、ダッシュボードではなくそのページに戻ります。
Javier Villanueva

1
これはフロントエンドのデフォルトの動作です。バックエンドの場合は、ダッシュボードに移動します。多分それを複製することができます。実装全体は、code / core / Mage / Customer / controllers / AccountController.phpで行われます。getBeforeAuthUrlおよびsetBeforeAuthUrlを探します。とにかく、それは5分の仕事ではありません。
Samuel Coman、2015

回答:


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を設定することは、これを試すのに最適な場所と思われます。

これはすべて理論的なものであり、まだ試していませんが、サンプルモジュールが必要な場合は、これを実行して提供することができます。

すべての管理者ユーザーが同じページを表示する場合は、かなり簡単に実行できます。動的な要素がある場合は、操作が少し難しくなります。幸運を!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.