관리자 로그인 후 이전 URL로 리디렉션


9

관리자 사용자가 로그인 후 연 URL로 리디렉션 되기를 원합니다 . 관리자 영역 의 사용자 정의 모듈 페이지에 대한 링크를 가져와야 합니다.

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

분명히 로그인하지 않은 경우 로그인 페이지로 리디렉션됩니다.

로그인 후이 페이지로 다시 리디렉션하려면 어떻게해야합니까?

URL의 비밀 키는 비활성화되어 있으며 그대로 유지할 수 있습니다.

이제 그들은 구성된 기본 페이지 (기본값은 Dashboard)를 얻습니다.


좋아, 기본적으로 로그인 후 관리자 대신 대시 보드 대신 사용자 정의 페이지로 리디렉션하도록 관리자를 리디렉션하고 싶습니까?
amit_game

아니, 그것은 단지 설정 일 것입니다. 로그인하기 전에 열려있는 URL로 리디렉션하고 싶습니다.
Josef는 Reinstate Monica

나는 당신이 이것을 즉시 할 수 있다고 생각하지 않습니다.
brentwpeterson

1
이것이 마젠 토의 기본 동작이 아닙니까? 관리자 페이지로 이동하려고하면 로그인 페이지로 리디렉션되고 로그인에 성공하면 대시 보드가 아닌 해당 페이지로 돌아갑니다.
Javier Villanueva

1
프런트 엔드의 기본 동작입니다. 백엔드의 경우 대시 보드로 이동합니다. 아마도 당신은 그것을 복제 할 수 있습니다. 전체 구현은 code / core / Mage / Customer / controllers / AccountController.php에서 수행됩니다. getBeforeAuthUrl 및 setBeforeAuthUrl을 찾으십시오. 어쨌든, 그것은 5 분 일이 아닙니다.
Samuel Coman

답변:


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

따라서 URL을 사용하도록 getStartupPageUrl ()을 수정하면이 작업을 수행하는 가장 좋은 장소 인 것 같습니다.

이것은 모두 이론적이며 아직 시도하지는 않았지만 샘플 모듈이 필요한 경우이 과정을 거쳐 제공 할 수 있습니다.

모든 관리자가 동일한 페이지에있게되면 매우 쉬운 작업을 수행 할 수 있으며 동적 요소가 있으면 사용하기가 조금 더 어려워집니다. 행운을 빕니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.