ostatnio zastanawiam sie nad zmiana kontroli dostępu do poszczególnych funkcjonalności mojego systemu.
Powiedzmy, że interesuje mnie sprecyzowanie dostępu użytkowników w zależności od posiadanej rangi / poziomu dostępu do wykonania jakiej czynności:
coś na przykładzie:
mam kilka rodzajów typów wiadomosci: np artykuły, filmy, zdjęcia itd:
dla każdego typu występuje możliwość: dodaj, edytuj, usuń, publikuj, edytuj po publikacji, usuń po publikacji,
tak jak w tabeli:

jak to wykonać?
myślałem nad stworzeniem tabeli: access z polami: ranga, type, dodaj, edit_wlasne_przed_publikacja, edit_wlane_po publikacji, edit_cudze_przed_publikacja,edit_cudze_po_publikacji - --- itd. (wszystkie pola z tabeli powyzej)
tabela: user która juz ma pola: user, ranga
w tabeli access: kolumny od dodaj do publikacja zawierały by wartos 0,1 (flaga)
przy logowaniu użytkownika do serwisu - zapisuje range i wszystkie flagi dostępu do jakiejś zmiennej sesyjnej (access)
nastepnie tworze klase access z odpowiednimi regułami która będzie miala za zadanie sprawdzenia dostępu użytkownika do danej funkcjonalnosci..
i na końcu przy docelowej stronie - przed wyświetleniem danej ikonki (z mozliwoscia zmiany czyli usun , dodaj itp) sprawdzam dostęp czy użytkownik w ogóle ma do niej dostęp.