Strony docelowe roli

10

Mamy wielu różnych użytkowników korzystających z zaplecza Magento do różnych zastosowań.

Na przykład mamy ludzi, którzy w zasadzie wysyłają paczki i naprawdę chcemy, aby zobaczyli stronę wysyłki - a jeśli nie tylko tę stronę, powinni tam wylądować podczas logowania.

Próbując uzyskać tę konfigurację, utworzyłem nowego użytkownika „wysyłkę” i powiązałem go z nową rolą „wysyłający”. Ta rola uzyskała dostęp do zasobu Sprzedaż -> Przesyłki.

Zalogowałem się jako statek i voila! Doskonały! Wylądowałem w siatce przesyłek, byłem w stanie otworzyć przesyłkę - i wtedy zauważyłem problem. Ten użytkownik nie mógł wysłać informacji o śledzeniu, które są niezbędne do tej roli.

Byłem w stanie uzyskać ten przycisk, aby pojawił się / działał na ekranie wysyłki, włączając zasób roli Sprzedaż -> Zamówienia -> Działania -> Wyślij e-maile dotyczące sprzedaży.

Teraz, gdy statek się loguje, jest on jednak zrzucany do siatki zamówień, a nie do siatki przesyłek. Podejrzewam, że dzieje się tak po prostu dlatego, że „Zamówienia” znajdują się wyżej w drzewie zasobów niż „Przesyłki”. Czy to prawda?

Krótko mówiąc : czy istnieje skuteczny sposób na umieszczenie użytkownika administratora na określonym ekranie / siatce?

Najlepiej z poziomu ekranu konfiguracji - nie mam wątpliwości, że może to zostać zaimplementowane przez jednego z naszych programistów.

Istnieje wiele różnych ról, które wymagamy, które można znacznie usprawnić, umieszczając tych użytkowników tam, gdzie muszą być w 99% przypadków.

blckgrffn
źródło
1
@ j0k: czy będziesz teraz edytować każdy post?
user487772,
@ Czas nie każdy, tylko ci z literówką w środku.
j0k

Odpowiedzi:

8

Oto jeden ze sposobów, aby to zrobić:

  • Niech obserwator będzie obserwował, kiedy administrator się zaloguje, a mianowicie admin_session_user_login_successzdarzenie
  • Sprawdź, jaka jest rola bieżących administratorów, użyj następującego kodu:

    $roleId = implode('', Mage::getSingleton('admin/session')->getUser()->getRoles());
    $roleName = Mage::getModel('admin/roles')->load($roleId)->getRoleName();
    
  • Przekieruj do żądanej strony na podstawie roli, użyj następującego kodu:

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

Mam nadzieję, że to było pomocne :)

pzirkind
źródło
Ciekawe - a to będzie działać z włączoną funkcją „Dodaj tajny klucz do adresów URL”?
blckgrffn
powinien działać, ale nigdy go nie testowałem
pzirkind