Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP5] Autoryzacja z drzwkami
Forum PHP.pl > Forum > PHP > Object-oriented programming
radziel
Po miesięcznej przerwie, znowu nie daje mi spokoju sprawa autoryzacji użytkownika w moim skrypcie.

Otóż, na podstawie artykułu rzSeattle'a opracowałem własną klasę pod PHP5 i sqlite do obsługi drzewek, następnie zaczełem pisać klasę do obsługi autoryzacji, lecz natknołem się na problem hm... "teoretyczny" winksmiley.jpg

Tak jak w artykule u mnie "adres" ma postać nie np 000111; lecz 6=0;0;0;1;1;1
6 w tym przypadku to głębokość a ; oddziela od siebie kolejne wartości dzięki temu uniknęłem ograniczenia 9 dzieci. Lecz teraz nie wiem w jaki sposób określać uprawnienia dla każdego wiersza w tabeli, którym jest użytkownić. Nadmieniam iż używam klasy drzewka do obsługi autoryzacji.

Nie wiem jak je zapisywać na początku myślałem np. tak jak w sieci określa się chmod pliku, ale to wykluczyłem ze względu na małą ilość kombinacji, dalej przyszło mi na myśl "nazewnictwo" stosowane w Linuxie d-r--x-r-- (przepraszam tu za błędy ale chcę tylko przekazać sens winksmiley.jpg). To rozwiązanie ma także ograniczenia.

Chcę mieć szeroką możliwość określania uprawnień np. ktoś może otworzyć stronę, może komentować, ale nie może edytować i kasować innych niż swoich np. postów.

Chciałbym stworzyć system uniwersalny który mógłby współpracować i z np. DOWNLOAD'em i artykułami itp. Nie chcę dla każdego tworzyć oddzielnego nazewnictwa.

Aha, operam się na idei MVC więc tego typu rozwiązania jaknajbardziej mile widziane winksmiley.jpg

Jeżeli taki temat istnieje to przepraszam za zamieszanie, ale kafejka nieco mnie ogranicza czasowo, więc nie mogę szukać
Vengeance
Cytat
Nie wiem jak je zapisywać na początku myślałem np. tak jak w sieci określa się chmod pliku, ale to wykluczyłem ze względu na małą ilość kombinacji, dalej przyszło mi na myśl "nazewnictwo" stosowane w Linuxie d-r--x-r-- (przepraszam tu za błędy ale chcę tylko przekazać sens ). To rozwiązanie ma także ograniczenia.


To jedno i to samo rozwiązanie smile.gif to chmod i to chmod tylko tam bardziej swojsko przedstawiony smile.gif
Co do ograniczen to mozliwosci jest nieskonczenie wiele (kolejne potegi liczby 2). Tylko dla mnie to jest troche sztywne rozwiazanie smile.gif

Zainteresuj sie moze ACL-em np. phpGACL
radziel
[quote=Vengeance,2004-11-03 17:52:03] [QUOTE]Zainteresuj sie moze ACL-em np. phpGACL [/quote]
phpGACL znam, ale wolę sam zbudować tego typu "system", gdyż jedno z założeń jakie sobie postawiłem to - nie korzystać z gotowych rozwiązań, wyjątek stanowi u mnie smarty smile.gif
bela
stwórz własną implementacje tego rozwiązania i no problem winksmiley.jpg
radziel
Cytat(bela_666 @ 2004-11-04 16:05:33)
stwórz własną implementacje tego rozwiązania i no problem winksmiley.jpg

w tym problem, że zaciąłem się na przyznawaniu i określaniu uprawnień
Vengeance
to po to masz phpGACL i OpenSource aby sobie zajrzec i porownac.
aleksander
mój system uprawnień który wymysliłem (i który nie jest idealny) wygląda mniej więcej tak:

- mam tabele users w niej kazdy user jest przyporządkowany do konkretnej grupy
- tabela groups ma kolumny typu add_news edit_news, add_comments itp, które określają akcje. Każda kolumna jest typu enum('0','1') więc grupa userów ma określone co może zrobić a czego nie.

Ograniczenia/problemy do rozwiązania:
- nie można przyporządkowywać uprawnień do konkretnego usera tylko do grupy (obejście - grupa z tylko jednym userem)
- instalując nowe akcje trzeba dodawać kolumny w tabeli

więcej grzechów nie pamiętam... smile.gif
bela
ja ostatnio "wymyslilem" autoryzacje role-based w ktorej jest mozliwosc przypisania usera do grupy i przejecie uprawnien grupowych, indywidualne dodawanie i odejmowanie uprawnie
user moze byc przypisany do wielu grup, wtedy uprawnienia sie sumują

ma ktos pomysl co tu zmienić winksmiley.jpg
aleksander
@bela_666: wez to dokładniej opisz, albo zarzuć jakimś linkiem...

a ja idę polukać system uprawnień w IPB smile.gif
bela
@olek:
masz 3 tabele: z grupami, userami, dostepnymi rolami

1. W tabeli groups masz uprawnienia dla danej grupy
2. W tabeli users masz uzytkownikow
2.1. User moze byc przypisany do grupy, wtedy dziedziczy uprawnienia dla danej grupy
2.2. User moze miec zakazane role
2.3. User moze miec osobiste role
Vengeance
Cytat
ja ostatnio "wymyslilem"

pamietam ze w jakims watku ktory poruszylem odnosnie wlasnie permow tez podalem taki opis i jakas tam dyskusja na temat tego byla.
mozna poszukac w archiwach.
hawk
Tak naprawdę to role-based auth wymyślono dawno temu na jakimś uniwerku. Jest z tego nawet sporo prac naukowych.
bela
@hawk : wiem, napisałem to w cudzysłowiu dry.gif
tahat
Cytat(radziel @ 2004-11-03 16:07:18)
Chciałbym stworzyć system uniwersalny który mógłby współpracować i z np. DOWNLOAD'em i artykułami itp. Nie chcę dla każdego tworzyć oddzielnego nazewnictwa.

radziel

Cos wymysliles? Glowie sie nad tym samym. Wydaje mi sie, ze jedynym rozsadnym i uniwersalnym zarazem rozwiazaniem bedzie tworzenie osobnych grup uprawnien dla kazdego modulu i sprawdzanie ich w momencie wywolania danego modulu.
hawk
@bela666: wiem, nie chciałem bynajmniej nic imputować, ale raczej zaznaczyć, że jak ktoś chce to powinno być sporo naukowej literatury. Chyba można się dostać do różnych artykułów/prac ze stron binarycloud.
radziel
Cytat(tahat @ 2004-11-29 14:59:06)
Cos wymysliles?

Narazie dalem sobie z tym spokoj. Poki co auth. wraca mi zawsze true przy wywolywaniu akcji winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.