![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 10.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
jak rozumiem to idea Zend_Acl opiera się na takich zasadach
1)zdefiniowanie, stworzenie ról - niech będzie to -administrator -zlecacz -kontroler -instalator
2)na podstawie parametru z bazy danych przypisuje się aktualnie zalogowanego użytkownika do jakieś roli 3)zależy jak to ma zdefiniowane kontrolery tak sobie przypisuje uprawnienia, ja mam na zasadzie "obiektów" np uzytkownik, plik, zlecenie itp - do każdej akcji z tych obiektów dana rola ma lub nie ma dostępu - np do edycji swoich danych (z kontrolera użytkownik) ma dostepk każdy, a do dodawanie np tylko admin itp itd, no to sobie trzeba zdefiniować zasoby - tyle ile trzeba dla uzytkowników
4) i potem sprawdza się czy ma sie dostęp
ale jaka z tego jest korzyść skoro mozna sobie XML-a zrobić
i potem za pomocą parsera to sobie sprawdzić? może coś źle mówię, nie wiem, ale wydaje mi się, że taki sposób z XML-em jest szybszy do napisania i wygodniejszy ps - jeśli coś źle napisałem o zasadach tworzenia kontroli dostępu i samej kontroli Zend_Acl to prosze o wyprowadzenie mnie z błędu |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 17 Dołączył: 18.07.2007 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, nigdzie nie widzę przypisania ról do zasobów. Po drugie dodawanie zasobów z poziomu PHP w przypadku XML'a nie będzie sprawą najłatwiejszą, a chyba chciałbyś żeby admin mógł nadawac prawa z poziomu panelu admina ? Oczywiście można wykorzstac XML'a ale to do mnie nie przemawia. DB + cacheowanie i jest gitara. W momencie gdy będziesz miał dużo resource'ów i kilka ról sam stwierdzisz że XML to nie jest najlepszy pomysł ;-) Taka jest moja opinia
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Potwierdzę fakt, że trzymanie CZEGOKOLWIEK na XMLu, co nie jest transportem informacji między 2 systemami, albo skromniutkim plikiem konfiguracyjnym jest GRZECHEM SMIERTELNYM. I mowie to na bazie swojego doswiadczenia - ACL najlepiej jest implementowac na bazie z cache (jak napisal moj przedpisca), jedyna rzecz, ktora jest tutaj dyskusyjna to skalowalnosc uzytego rozwiazania - czy beda to raptem 3 czy 5 tabel. Z definicji bowiem jest tak, ze na poczatku wystacza nawet wpisanie rol i zasobow na sztywno w pliku, a po kilku miesiacach i zmianach koncepcji w aplikacji robi sie taki balagan, ze rzecz trzeba przepisywac od nowa.
Polecam ten artykul - zasadniczo cos takiego wlasnie wcielam w zycie w aplikacji. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja się pozwolę wciąć w wątek z zapytaniem o to jakie tworzycie przywileje.
Przykład: forum - admin może moderować dowolny post, użytkownik jedynie swoje. W zasadzie edycja przez admina i edycja przez użytkownika to ta sama operacja więc wystarczyłoby nadać jeden przywilej (edycji), przy czym zasobami admina byłyby wszystkie posty, zaś użytkownika - jedynie własne. Drugie rozwiązanie to nadanie adminowi uprawnień do edycji a użytkownikowi stworzenie czegoś na kształt przywileju editOwn - edycji tylko własnych postów. Przyznam, że to rozwiązanie do mnie raczej nie przemawia ze względu na dość ścisłe powiązanie ACL z resztą kodu (przy pierwszym rozwiązaniu mamy jedynie funkcjonalność edycji pojedynczego postu, przy drugim musimy obsłużyć dodatkowo edycję postów danego użytkownika). Chętnie jednak poznam wasze opinie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 01:03 |