Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] grupy, użytkownicy i uprawnienia
Forum PHP.pl > Forum > PHP
Vengeance
No właśnie ;] Jak Wy to rozwiązujecie ?
Jakieś doświadczenia itp. Chętnie posłucham rad doświadczonych.

Zależy mi na czymś naprawdę elastycznym i szybkim.

Ja od siebie na razie nic ciekawego nie moge powiedziec (co wymyslilem) bo malo wymyslilem ;]

Z góry thx za wszelką pomoc.

ps. nie wiedzialem czy sie nadaje do php pro wiec nie dalem ;] moze jak sie dyskusja rozciagnie to sie tam nada.
invx
grupy zapisuje w bazie, z mozliwoscia dodawania/edycji z www , kazda grupa ma jakies tam id i jak potrzebuje np jakiemus ogloszeniu nadac jakies tam prawa to w bazie mam tabelke i w niej zapisany nr grupy, która moze miec dostep, jesli jest taka potrzeba zapisuje dwie lub wiecej grup
pracuje nad tym zeby mozna bylo szybko zmieniac prawa dla poszczegulnyc grup z www.
NuLL
Ja mam wszystkie jkie sa mozliwe uprawnienia zapisane w bazie. Sa zestawy uprawnien i grupy. Grupy posiadaja grupy nadrzedne i tyle.
Vengeance
ja myslalem o czyms takim, ze uprawnienia _jakoś tam działają_
a teraz:
+ user moze nalezec do roznych grup
+ kazda grupa ma osobno ustawiane permy
+ kazdy user moze tez miec swoje indywidualne permy

Przy wyliczaniu co user moze jest obliczana jakby suma srednia wszystkich uprawnien indywidualnych i tych z grup.

dobre by to bylo? niby nawet uniwersalne. nie trza tworzyc np. nowej grupy dla jednego usera gdy chcemy mu dac specyficzne uprawnienia.
albo dajemy go do danej grupy i odejmujemy jedno uprawneinie jakie posiada reszta grupy. tylko trza by bylo ustalic range co jest wazniejsze. perm indywidualny czy grupowy.

Teraz tylko jak zrobic uniwersalne w miare ustawianie mozliwych poziomow dostepu. np. dopisuje modul newsow i do niego panel admina. i jak to teraz wszystko zegrac aby bylo polautomatyczne smile.gif

myslalem nad operacjami bitowymi albo trzymania mozliwych permow dla danych dzialow strony jako drzewa (chyba ciut do glupie).

wiec ? ;]
patrycjusz
google i phpGACL i ogólnie poczytać o ACL
pzdr
Vengeance
dzieki jutro poczytam.

a co sadzice lepiej samemu stworzyc mini acl czy skozystac z tego phpGACL ?

ta pl dokumentacja z php.pl juz sciagnieta snitch.gif jutro zabieram sie do czytania.
matid
Wg. mnie uprawnienia grupowe powinny mieć mniejszą rangę niż uprawnienia indywidualne.
Druga sprawa to to, że każde uprawnienie powinno dzielić się na (zapis, odczyt, itp.) a każde z nich na 3 pozycje:
0 - brak uprawnień, może odziedziczyć
1 (zezwól) - posiada uprawnienia
-1(odmów) - brak uprawnień, nie może odziedziczyć

W takim wypadku. Jeśli user ma 0, a jakakolwiek grupa do której należy ma 1 to user ma 1.
Jeśli user ma 1 a wszystkie grupy do których należy ma 0 to user ma 1.
Jeśli user ma 1 a jakaś grupa (bądź wszystkie) mają -1 to user też powinien mieć 1.
Natomiast jeśli user ma -1 to niezależnie od tego jakie uprawnienia mają grupy to i tak ma -1.
Vengeance
tez wlasnie o czyms takim myslalem.
tyle ze nie zapis/odczyt itp. ala unix bo to troszke dla mnie
nieporęczne :/ gdy np. masz moduł newsów i chcesz bardzo rozdzielić
zadania. np uprawnienia dla:
+ dodawania newsow
+ usuwania newsów
+ edycji newsów
+ aktywacji newsów
+ deaktywacji newsów

czyli np. user moze:
+ dodawac newsy
+ aktywować

innych rzeczy już nie moze. od tego jest np. moderator na poziomie wyżyszym ;]

i wlasnie chodzi oto ze liczba takich "stanów" uprawnień czyli to co wymieniałem powyżej jest zmienna dla każdej części strony i trza napisać coś czemu nie bedzie to wadziło.

Ok ide właśnie poczytać o phpGACL. jak ktos cos jeszcze ma do powiedzenia to zapraszam ;]
rogrog
można to rozwiązać tak jak jest w Phiendzie, to znaczy:
- każda akcja ma określone role, jakie są dla niej wymagane
- użytkownicy mają swoje role i użytkownik może wykonać daną akcję jeśli ma wszystkie role dla niej wymagane

więcej o tej koncepcji w dokumentacji Phienda
Vengeance
hmm przeczytac nie zaszkodzi ale raczej to nie dla mnie
gdyz to co pisze chyba nie jest zgodne z modelem MVC ;]

--edit

poczytałem o tym ACL i dobra rzecz. w sumie coś podobnego do tego co ja miałem w zamyśle korzystając z drzewa do ustalania uprawnień.

Jednak chyba sam napisze mini obsługe takiego ACL zamiast korzystać z phpGACL.

ma ktos jeszcze jakies swoje przemyslenia odnosnie permow ;]
NuLL
Mam napisany system uprawnien taki jak opisalem- myslicie aby to opublikowac na GPL?? Samo dzialanie oprocz panelu to jest jedna funkcja smile.gif
Vengeance
pewnie, że możesz smile.gif sadze ze nikt sie nie obrazi smile.gif
hawk
1) To co ma phiend to tzw role-based auth. Najlepiej opisany, i najlepiej zaimplementowany okazji binarycloud. A binarycloud jest oparty o jakieś poważne teoretyczne traktaty i opracowania akademickie.

2) Role-based auth nie jest niezgodne z MVC. Nie jest też zgodne. Po prostu nie ma nic wspólnego.

3) Mi się najbardziej podoba rozwiązanie oparte o grupy, tak jak w winnt. Ładnie pasuje do MVC: akcja == plik, akcje podzielone na "katalogi", dziedziczenie, itd. Pozostaje tylko implementacja smile.gif
Vertical
Ja to robię tak, że do bazy danych razem z loginem i hasłem idą uprawnienia:
0 - Zablokowany użytkownik
1 - Zwykły użytkownik
2 - Moderator
3 - Administrator
NuLL
@Vertical - slabo z elastycznoscia takiego rozwiazanie - Masz zdefiniowane grupy - trudno zrobic sobie cos nowego - typu newsman czy download Admin. Ja np zapisuje w bazie wszystkie dostepne uprawnienia - i potem lacze w grupy, zestawy itp
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.