4

suppose in magento backend i have to 2 role one is admin, other is sales. just like admin set start page for admin is dashboard. I want to set sales order is to be start page for sales role user.i want to know is there is any way to assign a start page for different role in magento.

Code Killer
  • 133
  • 2
  • 11

1 Answers1

5

There is no native function too achieve this.

But you can use admin_session_user_login_success event for this.

To implement magento event observer refer this link

then add event in your config.xml file

<adminhtml>
    <events>
        <admin_session_user_login_success>
            <observers>
                <some_unique_handle>
                    <class>Namespace_Module_Model_Observer</class> 
                    <method>adminRedirect</method>
                    <type>singleton</type>
                </some_unique_handle>
            </observers>
        </admin_session_user_login_success>
    </events>
</adminhtml>

Then add this code in you observer file.

i.e., Path : app/code/{your-codepool}/{namespace}/{module}/Model/Observer.php

public function adminRedirect($observer)
{
    //get admin user id from observer
    $currentUserId = $observer->getuser()->getId();
    //get User Role
    $userRole = Mage::getModel('admin/user')->load($currentUserId)->getRole()->getRoleName();
    if($userRole == 'sales'){
             // If user role is sales then it'll redirect to the sales order list page
        $response = Mage::app()->getResponse();
        $response->clearHeaders()
                        ->setRedirect(Mage::helper("adminhtml")->getUrl('adminhtml/sales_order'))
                        ->sendHeadersAndExit();
    }
    return $this;
}
Murtuza Zabuawala
  • 14,814
  • 9
  • 44
  • 75
MeenakshiSundaram R
  • 9,577
  • 7
  • 33
  • 56