[Symfony][Symfony2] ACL - jak tego używać? |
[Symfony][Symfony2] ACL - jak tego używać? |
14.12.2011, 19:35:48
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 2 Dołączył: 25.06.2009 Skąd: Nowy Sącz Ostrzeżenie: (0%) |
Witam,
piszę projekt w Symfony2 i chciałem użyć ACL, gdyż jest to dlaczego by nie skorzystać ? Włączyłem acl, napisałem przy dodawaniu taki otoż kod:
i teraz mam pytanie, jak sprawdzić, czy zalogowany użytkownik ma do niego prawa? Przypuśćmy taką sytuację: mam dwa obiekty klas $user oraz $project. Jak sprawdzić, czy wybrany użytkownik ma prawa do tego obiektu? To jest raz, dwa: chcę stworzyć grupę użytkowników, którzy mają prawo np dodawać projekty oraz edytować ale tylko te, które sami stworzyli. Można to zrobić za pomocą acl? Ogólnie chcę zrobić tak: jest użytkownik, który należy do jakiejś grupy. Na początku ten user wraz ze wszystkimi w grupie ma prawo do edycji/usuwania projektów. Następnie pozwala innej grupie np grupie X na to, aby mogli przeglądać zawartość projektu, ale bez edycji. Natomiast grupie Y daję uprawnienia podglądu oraz na przykład dodawania komentarzy. Można to jakoś ładnie zrobić w acl czy muszę to zrobić za pomocą jakiś dodatkowych obiektów typu grupa? |
|
|
20.12.2011, 14:13:57
Post
#2
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 22.06.2009 Skąd: Londyn, UK Ostrzeżenie: (0%) |
Tutaj masz opisane jak sprawdzać czy zalogowany użytkownik ma prawo do tego obiektu. Oczywiście biorąc pod uwagę ze używasz standardowego providera użytkownika.
http://symfony.com/doc/current/cookbook/se...checking-access Co do drugiego pytania, nie widzę żadnej różnicy, nie potrzeba robić żadnych grup jeśli tylko indywidualni użytkownicy maja dostęp do obiektu, wiec zastosowanie takie samo. |
|
|
31.05.2012, 20:42:13
Post
#3
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 2 Dołączył: 25.06.2009 Skąd: Nowy Sącz Ostrzeżenie: (0%) |
witam,
to moje drugie podejście do ACL'a i przyznam, że nie wszystko rozumiem. Chcę wykonać następujące czynności: 1. Tworzenie nowego użytkownika - czy tutaj muszę jakoś zainicjować dla niego obiekt ACL? Coś na wzór:
2. Dodaję nowy projekt, do którego użytkownik ma prawa OWNER'a (w innej akcji), więc zapewne ten kod wchodzi w grę:
3. Dać innemu użytkownikowi prawda do tego projektu, powiedzmy VIEW, czyli
zgadza się? Czy przypadkiem w 3 punkcie zamiast createAcl nie powinno być coś innego? Samą idee ACL'a rozumiem, tylko nie wiem za bardzo jak z niego korzystać. |
|
|
1.06.2012, 13:34:08
Post
#4
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Ad. 1. Nie wiek co jest w zmiennej $acl. Generalnie nie musisz tworzyć ACL przy rejestracji. Twój kawałek kodu działa mniej więcej tak, że chcesz sterować dostępem do encji użytkownika.
Ad. 3. Tutaj moim zdaniem powinno być findAcl. |
|
|
Wersja Lo-Fi | Aktualny czas: 25.05.2024 - 00:11 |