Ролевые целевые страницы


10

У нас есть несколько разных пользователей, использующих серверную часть Magento для разных целей.

Например, у нас есть люди, которые, по сути, просто отправляют посылки, и все, что мы действительно хотим, чтобы они видели, - это страница отгрузки - и если не только эта страница, они должны приземлиться там при входе в систему.

При попытке получить эту настройку я создал нового пользователя «корабль» и связал его с новой ролью «грузоотправитель». Этой роли был предоставлен доступ к ресурсу Продажи -> Отгрузки.

Я вошел как корабль, и вуаля! Отлично! Приземлившись прямо в сетке отгрузок, я смог открыть груз - и тут я заметил проблему. Этому пользователю не удалось отправить информацию отслеживания, которая необходима для этой роли.

Мне удалось заставить эту кнопку отображаться / функционировать на экране отгрузки, активировав ресурс роли Sales -> Orders -> Actions -> Send Sales Emails.

Однако теперь, когда судно входит в систему, оно сбрасывается в сетку заказов, а не в сетку поставок. Я предполагаю, что это просто потому, что «Заказы» выше в дереве ресурсов, чем «Отгрузки». Это правда?

Короче говоря : существует ли эффективный способ вывести пользователя-администратора на определенный экран / сетку?

Желательно из экрана конфигурации - я не сомневаюсь, что это может быть реализовано одним из наших разработчиков.

Существует целый ряд различных ролей, которые нам требуются, и их можно было бы значительно упростить, разместив этих пользователей там, где они должны находиться в 99% случаев.


1
@ j0k: теперь ты будешь редактировать каждое сообщение?
user487772

@ Не каждый, а тот, у кого внутри опечатка.
J0K

Ответы:


8

Вот один из способов сделать это:

  • Сделайте наблюдателя, чтобы наблюдать, когда администратор входит в систему, а именно admin_session_user_login_successсобытие
  • Проверьте роль текущего администратора, используйте следующий код:

    $roleId = implode('', Mage::getSingleton('admin/session')->getUser()->getRoles());
    $roleName = Mage::getModel('admin/roles')->load($roleId)->getRoleName();
    
  • Перенаправьте на нужную страницу в зависимости от роли, используйте следующий код:

    Mage::app()->getResponse()
               ->setRedirect(Mage::helper('adminhtml')
               ->getUrl("admin/sales_order/view", array('id'=>'1')));
    

Надеюсь, это было полезно :)


Интересно - а это будет работать с включенной функцией «Добавить секретный ключ к URL»?
blckgrffn

должен работать, хотя никогда не проверял его
pzirkind
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.