![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%)
|
Witam
Stawiam pierwsze kroki z zaawansowanymi systemami autoryzacji użytkownika. Natknąłem się na podstawowy problem, którego jakoś nie mogę rozwiązać: Mam tabelę 'dane': id owner_id jakies_dane i chcę by użytkownik z grupy 'user' mógł przeprowadzać operacje jedynie na swoich rekordach (wg. owner_id). Czy da się to zrobić używając Zend_Acl? Jeśli tak, to w jaki sposób (czy dołoby radę skonstruować zasób (Zend_Acl_Resource) reprezentujący wszystkie rekordy wybranego użytkownika)? Ponieważ mój projekt bazuje na Zend Framework najchętniej wykorzystałbym autoryzację w nim zaimplementowaną, jestem jednak otwarty na inne propozycje. Ten post edytował konys 21.01.2007, 03:40:27 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 1 Dołączył: 12.08.2005 Ostrzeżenie: (10%)
|
o fajny temat tak jest taka mozliwosc ACL, ACO czyli twoj rekord(jest obiektem kontorli dostepu) i lapiesz kto o niego sie ubiega. Jedyny problem jest w masie informacji ktora bedzie musiala zostac zapisana do kazdego rekordu na temat praw i tu pojawia sie problem jako ze natykasz sie na przerost formy nad trescia mi natomiast wystarczylo takie rozwiazanie
to stary kod ale powinien cos zobrazowac |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%)
|
Też mi nie pasowało wpisywanie wszystkich rekordów "z góry" do ACL, ale udało mi się poradzić z tym problemem dzięki zastosowaniu Assertu w Zend_Acl, który porównuje pole w bazie danych z odpowiadającą mu wartością zapisywaną w trakcie autentykacji. Mimo wszystko dzięki za nadesłane rozwiązanie.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 1 Dołączył: 12.08.2005 Ostrzeżenie: (10%)
|
kurcze gdzie to jest opisane bo w dokumentacji jakos tego nie widze
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Do ACL można wstawić ogólną regułę kontroli autorstwa zasobu. Przykładowo, jeśli stwierdzisz, że użytkownik ma prawa do "akcja_allow_all" (nazwij to sobie, jak chcesz), to może on modyfikować wszystkie rekordy, w przeciwnym razie w PHP sam już odpalasz własny kod, który sprawdza zgodność autora. W ACL'u nie trzeba wszystkiego ładować do tej struktury uprawnień, bo to się mija z celem. W swoim kodzie umieszczam tam jedynie te dane, o których wiem, że na danej stronie się mogą przydać, czyli naraz jest ładowana tylko jedna rola oraz część uprawnień.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 23:17 |