Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Uprawnienia użytkowników - jaki efektywny sposób by to rozwiązać?
Forum PHP.pl > Forum > Przedszkole
Marr
Witam.
Zastanawiam się jak najefektywniej rozwiązać sprawę uprawnień użytkowników. Chciałbym gdzieś zdefiniować wszystkie możliwe akcje do przeprowadzenia w "systemie" a później zapisywać je w profilu użytkownika i sprawdzać przed wykonaniem określonej akcji. Jedynym rozwiązaniem, które przychodzi mi teraz do głowy to ustawienie w tabeli kolumn odpowiadających za każde konkretne uprawnienie i wstawianie tam,np. wartości 1 i 0 i w każdym miejscu w serwisie sprawdzanie warunku odwołując się do konkretnej kolumny... tyle że wydaje mi się to strasznie nieefektywne i nieeleganckie i zastanawia mnie jak taką sprawę z reguły się rozwiązuje? Na jakiej zasadzie mam działać? Dzięki za wszelkie odpowiedzi.
vokiel
Z zasady uprawnień nie przypisuje się użytkownikom, tylko rolom.
Tworzysz role, później do nich dodajesz uprawnienia (z zachowaniem zasady minimum), i dodajesz użytkownika do wybranych ról.
Dzięki temu przy zmienie jakiegoś uprawnienia nie musisz go zmieniać u wszystkich użytkowników, tylko w jednej roli.
Poza tym role można łączyć u danego użytkownika i wiele innych.

Jeśli chodzi o tabele:
permissions -> ustawienie zdefiniowanych uprawnień
| id | name | description | action |

role_permission -> połączenie uprawnień w role
| id | name | permission_id |

usr_role -> przypisanie dla użytkownika roli
| usr_id | role_id |

Coś w tym tonie smile.gif
-Marr-
Kurcze to zburzyło mój światopogląd;] a tak powaznie to dzięki za pomoc, troche mi to zarysowałeś - będę się musiał teraz z tym przegryźć nieco, jeśeli mógłbys mi pokazać na jakimś przykładzie dla 5 latka to byłbym wdzieczny, a jak nie to bede sam kombinowac zeby to zrozumiec do konca.
vokiel
Tak z grubsza:


Potem dla danego użytkownika pobierasz ID ról, do których jest przypisany, i do tych ID ról pobierasz uprawnienia.
Albo w drugą stronę, jakaś akcja wymaga uprawnień, sprawdzasz role dla danego ID urpawnienia, i sprawdzasz czy dany usr należy do danej roli.
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.