![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jakiś czas temu na forum wywiązała się dyskusja o kontroli dostępu, w której przedstawiłem swój pomysł rozwiązania tego problemu. Jako, że czasu nie miałem za dużo, a tymbardziej zapału do pracy, to teraz prezentuję mniej więcej działający kod. W pliku znajduje się automatycznie wygenerowania dokumentacja z kodu, opisy pakietów auth, context, logic (wszystkie są wymagane + exceptions), sam kod oraz testy pakietu auth, które być może pomogą w zrozumieniu jak to działa.
Do działania potrzebny jest autoloader, który dołączyłem do paczki. Aby wykonać testy potrzebna będzie odpowiednio wypełniona baza. Skrypty wypełniające są w katalogu z testami. Wszystko testowałem u siebie póki co pod Windowsem XP, Apache 2.0, php 5.1, PostgreSQL 8.1. Wymagane jest PDO. Jest to raczej wersja beta, prawdopodobnie trochę się zmieni. Jak wszystko będzie pozytywnie ocenione to dopiszę kilka klas do baz danych. Liczę na wytrwałych i z góry dziękuję za opinie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) actinium.tar.gz |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Jarod za uwagę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Sorki, że odpowiadam prawie po miesiącu, ale taka już sytuacja...
Pola roles and parameters są praktycznie niepodzielne, gdyż nie są one zwykłą listą ról/parametrów tylko warunkiem logicznym opisującym je. Przykład zawartości pojedynczej komórki: Kod (browseForum & viewTopic & addPost) | administrate Oczywiście można zrobić z tego drzewko w bazie, ale stwierdziłem, że to trochę mija się z celem. Tak jak powiedział DeyV, może to nie być zgodne z 1NF, ale nie widziałem innego wygodnego wariantu implementacji logiki. Jeszcze raz dzięki za uwagi, jestem otwarty na pomysły (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 17:33 |