![]() ![]() |
20.02.2008, 15:06:33
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 30 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%)
|
Witam,
implementuję u siebie kontrolę dostępu opartą na tym: http://www.sqlrecipes.com/database_design/..._rbac_system-3/ Mam pytanie, szczególnie do tych, którzy korzystali z tego (o ile tacy są). Próbuję zrozumieć, po kiego są domeny (tabela rbac_domains)? W załączonych tam plikach jest metoda IsAllowedTo():
Sprawdzanie dostępu jak rozumiem polega na sprawdzeniu, czy $user_id ma pozwolenie (is_allowed) na wykonanie akcji (np. "edit") na danym obiekcie (np. "member_page"). W takim razie po co są domeny (domains) i uprawnienia (privileges)? Niby są sprawdzane, czy są pojedyncze czy nie, ale nie widzę, żeby miało to jakieś znaczenie... Albo czegoś nie widzę albo jest to niepotrzebne... Będę wdzięczny za wskazówki. -------------------- in wartime, truth is so precious that she should always be attended by a bodyguard of lies
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
|
20.02.2008, 15:31:29
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%)
|
z kodu wynika, że ma znaczenie, jeżeli w bazie jest kilka wpisów (inne dla usera inne dla domeny), to wg tego fragmentu:
zastosowane zostaną uprawnienia o wyższej "wadze" -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
|
26.02.2008, 21:34:06
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 30 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%)
|
Hm... ale spójrz do tej funkcji... albo to nie jest zaimplementowane, albo tego nie ma po prostu... nie widzę, żeby gdziekolwiek było użyte $weight... Chyba po prostu to jest do rozbudowania.
-------------------- in wartime, truth is so precious that she should always be attended by a bodyguard of lies
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
|
26.02.2008, 21:53:23
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 187 Pomógł: 27 Dołączył: 6.02.2005 Ostrzeżenie: (0%)
|
hmm... myślicie że instrukcja zawarta w tym bloku się kiedyś wykona ? -------------------- |
|
|
|
26.02.2008, 22:00:50
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 30 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%)
|
Właśnie siedzę i mam wrażenie, że to:
nie działa poprawnie... ta funkcja chyba jest zdecydowanie do przepisania. Ale jakby ktoś mi jeszcze podpowiedział, do czego służy sprawdzanie wagi i jak w praktyce je wykorzystać... Szczególnie dlaczego pojedyncze (singular) domeny i uprawnienia mają większą wagę.. -------------------- in wartime, truth is so precious that she should always be attended by a bodyguard of lies
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
|
27.02.2008, 08:30:25
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%)
|
faktycznie cały ten kod kupy sie nie trzyma... całą pętle while() można zastąpć prostym pobraniem is_allowed z ostatniego wiersz wyniku $conn (ten warunek na break też nigdy nie jest spełniony) - ten kod wygląda albo na totalna niedoróbkę, albo na jakąś mocno testową wersję w trakcie rozwoju....
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
|
27.02.2008, 11:43:56
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 30 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%)
|
No i nim chyba jest. Szkoda, że autor nie wspomniał o tym gdzieś... W każdym razie przepisałem sobie to jakoś. Struktura bazy wydaje się, że jest w porządku. Narazie utknąłem na znaczeniu tych wag, nie wiem, dlaczego pojedyncze domeny i uprawnienia mają większe i jak to się przekłada na wynik, ale mam nadzieję, że dojdę. Póki co działa mi bez tego tak jak powinno...
-------------------- in wartime, truth is so precious that she should always be attended by a bodyguard of lies
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
|
![]() ![]() |
|
Wersja Lo-Fi | Aktualny czas: 31.07.2010 - 02:43 |