Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%)
|
Witam. Zwracam się do Was z prośbą o porady. Planuję stworzyć portal, ma być dość rozbudowany. Zastanawiałem się jak stworzyć listę ACL, czytałem nieco w sieci na ten temat, ostatecznie skrobnąłem taki kawałek kodu:
Jest to funkcja zawarta w klasie, jako parametr przekazuję $_SESSION['group_id'], które przypisuję sobie podczas logowania. Po wykonaniu takiego skryptu w tablicy mam zawarte wszystkie uprawnienia dla grupy. W tabeli to wygląda mniej więcej tak: grupa | NA | WW | EA | =============================== Administratorzy | 1 | 1 | 1 | -------------------------------------------------------- Moderatorzy | 1 | 0 | 1 | -------------------------------------------------------- Użyszkodnicy | 0 | 0 | 0 | =============================== Jak widać, nagłówki odpowiadają za poszczególne prawa. 1 logiczna ma dostęp, 0 nie ma. Przypuśćmy że chciałbym dla użytkowników ustalać menu:
Moje pytanie jest takie. Zakładając (przy najlepszych wiatrach), że będę miał w bazie wielu użytkowników (liczmy kilkanaście tysięcy), czy to BĘDZIE WYDAJNE ? Nie wiem jak inaczej można byłoby to rozwiązać, to rozwiązanie wydaje mi się całkiem sensowne, ale proszę o poradę bardziej doświadczonych użytkowników. Pozdrawiam. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Nie patrz że to jest w Zend pisane, chodzi o samo działanie ACL. A te składa się z trzech podstaw, roli czyli statusu odwiedzającego np. "gość, user, bot, moderator, admin", zasobu, czyli "dodaj artykuł, czytaj artykuł" i deklaracji dostępu do zasobu czyli "user ma prawa gościa i może czytać art, a moderator może go dodać".
W większości implementacji ACL, role dziedziczą po sobie w dół, a dzięki deklaracji, jakiś konkretny użytkownik może mieć prawa admina, ale tylko w jednym module np edycji wpisów. U Ciebie nie jest to możliwe, ponieważ ograniczasz się do IF 0-1, a to nie ma nic wspólnego z ACL. Przemyśl to jeszcze raz dokładnie, bo w pewnym momencie z Twoim kodem możesz się zablokować ;) Ten post edytował !*! 20.04.2013, 16:45:50 |
|
|
|
Mefiuu [MySQL][PHP]Podstawy obiektowego ACL 20.04.2013, 16:18:55
!*! A gdzie zasób, skoro to ACL? Nic mi określenia w b... 20.04.2013, 16:26:10
Mefiuu nie rozumiem, jaki zasób, mógłbyś wyjaśnić ?
Gdy ... 20.04.2013, 16:33:31
Mefiuu rozumiem (rozumiem ?):
Załóżmy, że mam takie role... 20.04.2013, 16:50:13
!*! [PHP] pobierz, plaintext $role = array('user',... 20.04.2013, 17:04:13
Mefiuu no okej. Czyli do tej pory to by wyglądało tak (je... 20.04.2013, 17:10:10 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 11:25 |