Chuyển hướng đến URL trước đó sau khi đăng nhập quản trị viên


9

Tôi muốn người dùng quản trị được chuyển hướng đến url họ đã mở sau khi đăng nhập. Họ sẽ nhận được liên kết đến một trang mô-đun tùy chỉnh trong khu vực quản trị , như

https: //magento.example/index.php/admin/admin_mycoolmodule/adminhtml_viewawclaw/view/showpage/awclaw/howmuch/9001/

Rõ ràng, họ sẽ được chuyển hướng đến trang đăng nhập, trừ khi họ đã đăng nhập.

Làm thế nào tôi có thể chuyển hướng họ trở lại trang này sau khi đăng nhập?

Các khóa bí mật trong URL bị vô hiệu hóa và có thể giữ nguyên như vậy.

Bây giờ họ nhận được trang mặc định được cấu hình (mặc định là Bảng điều khiển) thay vào đó.


ok, về cơ bản bạn muốn chuyển hướng quản trị viên để chuyển hướng đến trang tùy chỉnh của bạn thay vì bảng điều khiển, sau khi đăng nhập, phải không?
amit_game

Không, đó sẽ chỉ là một thiết lập. Tôi muốn nó chuyển hướng đến bất kỳ URL nào đã được mở trước khi đăng nhập.
Josef nói Phục hồi lại

Tôi không nghĩ bạn có thể làm điều này ra khỏi hộp. Bạn sẽ cần thực hiện một tùy chỉnh
brentwpeterson

1
Đây không phải là hành vi mặc định trong Magento sao? Nếu bạn cố gắng truy cập trang quản trị, bạn sẽ được chuyển hướng đến trang đăng nhập và sau khi đăng nhập thành công, bạn quay lại trang đó không phải bảng điều khiển.
Javier Villanueva

1
Đây là hành vi mặc định cho frontend. Đối với phần phụ trợ, nó sẽ đưa bạn đến Bảng điều khiển. Có lẽ bạn có thể sao chép nó. Toàn bộ việc thực hiện được thực hiện trong mã / lõi / Mage / Khách hàng / bộ điều khiển / AccountControll.php. Tìm kiếm getB BeforeAuthUrl và setB BeforeAuthUrl. Dù sao, đó không phải là công việc 5 phút.
Samuel Coman

Câu trả lời:


1

Như tất cả các ý kiến ​​đã nêu trước đó, nó không nằm ngoài hộp. Dưới đây là một số gợi ý về nơi / những gì bạn có thể cần điều chỉnh:

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

Tôi chưa bao giờ thử nó nhưng đây dường như là phương pháp được gọi từ

Mage_Adminhtml_IndexController

và có IndexAction gọi hàm trên. Vì đây là quản trị viên, nên việc viết lại Mô hình có thể sẽ dễ dàng hơn.

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

Vì vậy, sửa đổi getStartupPageUrl () để URL của bạn dường như là nơi tốt nhất để thử điều này.

Đây chỉ là lý thuyết, tôi chưa thử, nhưng nếu bạn cần một mô-đun mẫu, tôi chắc chắn có thể chạy qua cái này và cung cấp nó.

Nếu mọi người dùng quản trị sẽ kết thúc trên cùng một trang, điều này khá dễ thực hiện, nếu có một số yếu tố động, sẽ khó hơn một chút để tạo điều kiện. Chúc may mắn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.