System uprawnień - przechowywanie praw - gdzie?

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
WebCM
Nowy
Nowy
Posty: 31
Rejestracja: sob wrz 10, 2005 6:57 pm

System uprawnień - przechowywanie praw - gdzie?

Post autor: WebCM »

Do rozważenia:
- uprawnienia wybranych użytkowników do danych kategorii
- globalne prawa edycji artów, plików, itd. dla wybranych użytkowników

Globalne prawa przechowywane są w polu "privs" w tabeli "users" (oddzielone przecinkiem, np. A,F,I,N). Tak raczej zostanie.

Zamierzam zaimplementować w CMS-ie system uprawnień pozwalający na ustawianie praw do danych kategorii. Są to np.
- zarządzanie własnymi pozycjami
- zarządzanie wszystkimi pozycjami

Wprawdzie możliwe będzie nadsyłanie własnych spraw. Można przypisać to prawo do kategorii, lecz niekoniecznie (np. do konfiguracji).

Mogę tak samo oddzielać prawa przecinkami - np. w 2 dodatkowych polach w tabeli "users". Wada - edycja tych praw tylko przy edycji uprawnień użytkownika (a nie w edycji kategorii). Innym sposobem jest utworzenie dodatkowej tabeli, np. prawa z polami:

Kod: Zaznacz cały

ID użytk. | ID kat. | typ (dodatkowo) | prawo
Przyjmijmy, że pole TYP istnieje wtedy, gdy przypisujemy prawa do innych rzeczy. Zaletą tego rozwiązania jest łatwy dostęp do praw dla każdego modułu. Wada - przy edycji uprawnień trzeba usuwać rekordy i wprowadzać je ponownie (fragmentacja danych?), a także wykonywać dodatkowe zapytanie(a) przy odczycie.

Co o tym myślicie?
ODPOWIEDZ