Post
#1
|
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ |
Witam,
Jestem w trakcie pisania CMSa, w którym ma znajdować się szerokie zróżnicowanie praw jakie posiadać będą użytkownicy. Administrator będzie miał możliwość nadawania bardzo szczegółowych "przywilejów", dla przykładu skrócona lista:
Nie ma więc możliwości stworzenia domyślnych rang typu redaktor, moderator itd. Rozwiązanie (znane np. z Drupala) polegające na tworzeniu dowolnej rangi z konkretnymi przywilejami, a później przydzielanie jej użytkownikowi nie wchodzi w rachubę (ze względu na zlecającego). Całość ma wyglądać w następujący sposób: administrator startuje z tworzeniem nowego użytkownika (bądź edytuje istniejącego), podaje jego dane (nazwę, maila i tym podobne) i w tym miejscu ma listę praw (coś na kształt tej powyżej), zaznacza część z nich (wedle uznania) i tworzy użytkownika z konkretnymi przywilejami. Zastanawiam się jednakże jak takie informacje przechowywać w bazie... być może zmęczenie materiału nie pozwala mi już "trzeźwo" myśleć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Rozważałam stworzenie tabeli z prawami do której przypisywany będzie użytkownik. Przykładowo kolumna opisana jako dodawanie treści na stronę a w wierszach klucze identyfikujące użytkowników. Nie mam jednak pewności co do tego na ile optymalne jest to rozwiązanie. Być może ktoś już projektował podobne rozwiązanie i ma jakiś pomysł? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Ja bym to zrobił na jeden z dwóch sposobów:
- oddzielna tabela z rangami, czyli kolumna user_id i kolumna function, i później możesz selectem w prosty sposób sprawdzić kto co może - kolumna w tabeli użytkowników pt. "prawa" i w niej ciąg funkcji które użytkownik może wykonywać, np. "edycja/usuwanie" i później również za pomocą SELECT (..) LIKE (..) możesz sprawdzić kto co może (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 7 Dołączył: 2.07.2005 Skąd: Lublin Ostrzeżenie: (0%)
|
Ja bym to zrobił na jeden z dwóch sposobów: - oddzielna tabela z rangami, czyli kolumna user_id i kolumna function, i później możesz selectem w prosty sposób sprawdzić kto co może Autor postu chyba nie może rozdzielić na rangi. Szkoda, że nie możesz zrobić ACL z prawdziwego zdarzenia :-/ Czy nie najprościej i najszybciej byloby trzymać uprawnienia np. w pliczku ini: Kod [perms] user1 = zasob1 zasob2 zasob3 user2 = zasob2 zasob4 Czyli definiować role (u Ciebie chyba nie może być rol, wiec tutaj trafialiby wszyscy uzytkownicy - niefajne) i przypisywać im identyfikatory zasobów. Plusem jest na pewno to, że nie trzeba na poziomie bazy przy każdym request'ście sprawdzać uprawnień, a czytac z pliku (parse_ini_file" title="Zobacz w manualu PHP" target="_manual). Ten post edytował omeck 7.07.2009, 19:23:15 |
|
|
|
Daiquiri Organizacja danych przechowujących uprawnienia użytkowników 7.07.2009, 17:50:35
blooregard Ja rozwiązałem podobny problem następująco (w upro... 7.07.2009, 17:56:34
Daiquiri Najchętniej wykorzystałabym mechanizm budowania pr... 7.07.2009, 21:10:47
witul A ja mam taki sposob. Mam tabelke przechowujaca ws... 11.07.2009, 03:06:45
AxZx rozwiązanie z pluginu sfguarduser do symfony:... 11.07.2009, 09:23:10 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 08:44 |