Wpis z mikrobloga

[ #symfony2 #symfony #php ]

Mam:
- FOS + grupy
w FOS mam: role: ROLEUSER i ROLEADMIN

co chcę osiągnąć:

www.example.com/strona/nazwastrony1
www.example.com/strona/nazwastrony2
www.example.com/strona/nazwastrony3
itd...

teraz potrzebuję zrobić tak, aby odpowiednia grupa miała dostęp tylko do strony1, inna grupa miała dostęp do strony2 itd...

jak to zrobić?
Sprawdzać za każdym razem przed wyświetleniem strony w kontrolerze klasy czy użytkownik posiada grupę która pozwala na wyświetlanie danej strony?
Jak zdefiniować która grupa ma dostęp do strony1, która do strony2 itd?
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: Nie decydujesz na podstawie grup, tylko na podstawie ról. Grupy traktuj jedynie jako kolekcje ról, czyli np grupa nauczyciel może posiadać role uczy + wystawia_oceny + sprawdza_liste_obecnosci.

Wtedy jak masz wielu nauczycieli, przydzielasz ich do grupy i wszyscy zyskują ten zestaw ról. Jak potem chcesz zmienić masowo uprawnienia nauczycieli, to modyfikujesz tylko role przypisane do grupy, a nie role dla każdego nauczyciela z
  • Odpowiedz
@MacDada: hmm, czyli na podstawie tego co piszesz to musiałbym zdefiniować 7 ról (po role na stronie) i wtedy z tego stworzyć grupy i przypisywać użytkownikom daną grupę która posiada zestaw ról..

czyli w moim przypadku byłoby to:
grupa 1: ROLESITE1
grupa 2: ROLESITE2
i tak
  • Odpowiedz
@MacDada: dlatego zastanawiam się jak zrobić to w ten sposób aby to administrator mógł decydować jaka grupa/rola odpowiada za jakąś stronę/kanał... bo inaczej przy dodawaniu kolejnej pozycji
example.com/101 będę musiał ręcznie w kodzie definiować 101 ról co jest bez sensu...
  • Odpowiedz
@qwelukasz: na pewno da się jakoś edytować w locie acl w symfony - potem sobie np zapisujesz to do ramu i do pliku przy edycji, a na starcie aplikacji wczytujesz to z pliku do ramu i tyle
  • Odpowiedz
Czym są „strony/kanały”?


@MacDada:
Najprościej rzecz ujmując. Są przez API pobierane dane bilingowe z różnych systemów.
Każdy użytkownik ma mieć dostęp do tego samego zestawu danych (np. bilingi, płatności, faktury, itp..) ale z innego
  • Odpowiedz
@qwelukasz: No to dostawców telefonii masz kilku(nastu) – skąd więc ma być ich 101?

Tzn wyjaśniłeś do czego mają mieć użytkownicy dostęp – a nie „dlaczego” – inaczej mówiąc co decyduje, że akurat użytkownik „A” ma dostęp do kanału „7”? Jak reprezentujesz kanał? Skąd wiesz, co ma się pokazać po wejściu na /7? To jest jakiś obiekt w bazie? Jakaś konfiguracja?

Inaczej mówiąc: od czego Ty chcesz, żeby było
  • Odpowiedz