5

Jestem nowy w Symfony2, a na potrzeby mojej firmy używam pakietów Sonata Admin i User.Wyświetlanie elementów na desce rozdzielczej zgodnie z rolą użytkownika

Chciałbym wiedzieć, czy można ukryć lub pokazać elementy na desce rozdzielczej zgodnie z rolą zalogowanego użytkownika.

Na przykład mam kilka podmiotów, którymi zarządza Sonata AdminBundle (użytkownik, firma, misja, witryna itp. Zarządzanie) i chcę wyświetlać zarządzanie użytkownikami tylko superużytkownikowi, firmie i zarządzaniu witryną do innej roli (na przykład SITE_ADMIN) i misji do trzeciej roli.

Czy kiedykolwiek spotkałeś się z taką sytuacją? Czy możesz dać mi rozwiązanie lub wskazówki, aby przejść bezpośrednio do rozwiązania?

Dziękujemy,

Enes

Odpowiedz

5

Zastosowanie Role handler i umożliwiają prawa użytkowników związane jedynie z, na przykład, grupy Administratorzy (utwórz go). Następnie przypisz administratorów do grupy Administratorzy. Sonata Admin wykryje ograniczenia i wyświetli tylko elementy pulpitu nawigacyjnego dla administratorów.

+2

Tak, musisz ustawić 'sonata_admin: security: handler: sonata.admin.security.handler.role' w swojej konfiguracji. Wtedy będziesz mógł ustawić wymagane role, aby uzyskać dostęp do różnych części administratora. –

+0

Bardzo dziękuję za odpowiedzi, trochę za późno, ale wszystko jest już dla mnie w porządku :) – Enessari

2

Ponadto można ukryć i blokuje wyświetlanie w userboard ten sposób:

# app/config/config.yml 
sonata_admin: 
dashboard: 
    groups: 
     acme.admin.group.content: 
      label: acme.admin.group.content 
      label_catalogue: AcmeDemoBundle 
      items: 
       - sonata.admin.post 
     acme.admin.group.blog: 
      items: ~ 
      item_adds: 
       - sonata.admin.page 
      roles: [ ROLE_ONE, ROLE_TWO ] 
     acme.admin.group.misc: ~ 

Jak wspomniano in the docs.

Należy pamiętać, że zmienia to tylko widoczność bloku, a nie dostępność. Jeśli nie ma ograniczeń, ludzie nadal mogą otworzyć link w przeglądarce, jeśli o tym wiedzą.

Jeśli użyjesz poprzedniej odpowiedzi implementującej sonata.admin.security.handler.role, blok powinien zostać automatycznie ukryty, jeśli użytkownik nie ma odpowiedniej roli.

Powiązane problemy