![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 11.03.2007 Skąd: Łódzkie Ostrzeżenie: (0%) ![]() ![]() |
witajcie
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: (IMG:http://www.kosmosnews.pl/data/tabela.jpg) 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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tabele:
tabela TYP_DANYCH ID NAZWA tabela RANGA ID NAZWA tabela DOSTEP ID_TYP_DANYCH ID_RANGA PRAWA - typu smallint unsigned. Bedziesz tu zapisywal prawa jako wartosci bitowe. Tu masz arta http://nospor.pl/opcje-dwuwartosciowe-przechowywanie.html Mozesz zrezygnowac z wartosci bitowych, ale wowczas dochodzi tabela tabela PRAWA ID NAZWA oraz zmienia sie tabela DOSTEP ID_TYP_DANYCH ID_RANGA ID_PRAWA Obydwa rozwiazania umozliwiaja dobrą uniwersalnosc, gdy np. dojdą prawa. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 13:53 |