![]() |
![]() ![]() |
![]() |
-Wieviór- |
![]()
Post
#1
|
Goście ![]() |
Do tej pory pisząc przeróżne panele administracyjne używałem prostego sposobu z numerkami, szło w górę i po prostu zwiększały się uprawnienia.
Teraz szukam czegoś bardziej skomplikowanego. Żeby łatwo można było wybrać, co dany użytkownik może robić. W php-Fusion widziałem w tabeli users, w polu uprawnień mniej więcej taki zapis: Kod A.B.C.D.H.L.K.W.Z Domyślam, się że każda literka po prostu odpowiada jakiemuś blokowi akcji w adminie. Pytanie moje natomiast polega na tym, czy to dobry sposób na stosowanie przywilejów i jak to z bazy dobrze wyciągać dla użytkownika. Ten post edytował Wieviór 14.08.2006, 19:49:18 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie nie. Najlepiej zastosowac do tego np. 4 tabele :
- uzytkownicy ( uzytkownik_id, grupa_id) - grupy_uzytkownikow ( grupa_id ) - prawa ( prawo_id ) - grupa_uzytkownika_posiada_prawo ( grupa_id, prawo_id ) -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 25.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
A co w przypadku gdy uzytkownik nalezy do wiecej niz jednej grupy?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
A co w przypadku gdy uzytkownik nalezy do wiecej niz jednej grupy? - uzytkownicy ( uzytkownik_id) - grupy_uzytkownikow ( grupa_id ) - uzytkownik_nalezy_do_grupy(uzytkownik_id, grupa_id) - prawa ( prawo_id ) - grupa_uzytkownika_posiada_prawo ( grupa_id, prawo_id ) Standardowy sposob na relacje wiele do wielu -------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 25.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
No tak, encja intersekcji czy tam tabela asocjacyjna, ale to moze dawac ilosc_grup x ilosc_uzytkownikow rekordow. Sporo, choc nieskomplikowanych. To taka tylko dygresja.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
No tak, encja intersekcji czy tam tabela asocjacyjna, ale to moze dawac ilosc_grup x ilosc_uzytkownikow rekordow. Sporo, choc nieskomplikowanych. To taka tylko dygresja. Może dawać tyle rekordów jeżeli każdy użytkownik będzie należał do każdej grupy ale nie ma co czarować. Standardowy sposób (i jedyny możliwy) w modelu relacyjnym. -------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
A nie prościej byłoby zastosować takie coś?
W tabeli, np tabuser masz następujące pola: - iduser, - slogin, - nrules W pole nrules wpisujesz sumę wartości dziesiętnych zdefiniowanych stałych. Np chcesz by użytkownik jan.kowalski mógł zarządzać dokumentami i pocztą. Przypisujesz mu wartość 10 (2 + 8). By sprawdzić jakie prawa przysługują danemu użytkownikowi, robisz cos takiego:
Sposób jest dobry przy niewielkiej ilości zdefiniowanych stałych. Wystarczy jednak trochę pokombinować, a da się z niego wycisnąć znacznie więcej ![]() -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 11:07 |