Yönetici girişinden sonra önceki URL'ye yönlendir


9

Yönetici kullanıcılarının giriş yaptıktan sonra açtıkları URL'ye yönlendirilmesini istiyorum . Yönetici alanındaki özel bir modül sayfasına bağlantılar almalıdır.

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

Açıkçası, önceden giriş yapmadığı sürece giriş sayfasına yönlendirileceklerdir.

Giriş yaptıktan sonra bu sayfaya nasıl yönlendirebilirim?

URL'deki gizli anahtarlar devre dışıdır ve bu şekilde kalabilir.

Şimdi bunun yerine yapılandırılmış varsayılan sayfayı (varsayılan Gösterge Tablosu) aldılar.


Tamam, temel olarak, yönetici giriş yaptıktan sonra kontrol paneli yerine özel sayfanıza yönlendirecek şekilde yönlendirmek istiyorsunuz, değil mi?
amit_game

Hayır, bu sadece bir ortam olurdu. Giriş yapmadan önce açık olan URL'lere yönlendirmesini istiyorum.
Josef, Reinstate Monica'ya

Bunu kutudan çıkarabileceğini sanmıyorum. Özelleştirme yapmanız gerekecek
brentwpeterson

1
Magento'daki varsayılan davranış bu değil mi? Bir yönetici sayfasına gitmeye çalışırsanız giriş sayfasına yönlendirilirsiniz ve başarılı bir giriş yaptıktan sonra kontrol paneline değil o sayfaya geri dönersiniz.
Javier Villanueva

1
Ön uç için varsayılan davranıştır. Arka uç için sizi Gösterge Tablosuna götürür. Belki kopyalayabilirsin. Tüm uygulama kod / çekirdek / Mage / Müşteri / denetleyiciler / AccountController.php içinde yapılır. GetBeforeAuthUrl ve setBeforeAuthUrl öğelerini arayın. Her neyse, 5 dakikalık bir iş değil.
Samuel Coman

Yanıtlar:


1

Daha önce belirtilen tüm yorumlar gibi, kutunun dışında değil. Aşağıda, nerede / ne ayarlamanız gerekebileceğine dair bazı ipuçları verilmiştir:

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

Hiç denemedim ama bu denilen yöntem gibi görünüyor

Mage_Adminhtml_IndexController

ve yukarıdaki işlevi çağıran IndexAction vardır. Bu yönetici olduğundan, Modeli yeniden yazmak muhtemelen daha kolay olacaktır.

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

Dolayısıyla, URL'nizi almak için getStartupPageUrl () öğesini değiştirmek, muhtemelen bunu denemek için en iyi yer gibi görünüyor.

Tüm bunlar teorik, henüz denemedim, ancak örnek bir modüle ihtiyacınız varsa, kesinlikle bunu çalıştırabilir ve sağlayabilirim.

Her yönetici kullanıcı aynı sayfaya ulaşacaksa, bunu yapmak oldukça kolaydır, bazı dinamik öğeler varsa, kolaylaştırmak biraz daha zor olacaktır. İyi şanslar!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.