Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [skrypt]Actinium.Auth - Kontrola dostępu
Ludvik
post
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
Go to the top of the page
+Quote Post
Fipaj
post
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Kod ładnie napisany, udokumentowany. Pomysł dobry (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wykonanie fajne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Jeszcze nie wgryzłem się w cały skrypt, ale ogólnie już mogę powiedzieć: kawał dobrej roboty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Szkoda jednak, że tak bardzo się rozpisałeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) To jest, przynajmniej dla mnie, zbyt duże.

minusika dostajesz za postgresa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Fipaj 28.06.2006, 19:14:35
Go to the top of the page
+Quote Post
Ludvik
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


No niestety, mam takie samo zdanie - za dużo kodu trochę. Ale taka cena elastyczności... Kod który robi tak dużo nie może być krótki i zwięzły. Mam nadzieję, że cache kodu zenda zrobi swoje z wydajnością (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Co do obsługi baz danych, to przyjdzie czas, że pojawią się nowe sterowniki i przetestuję to na innych serwerach. Zaraz dorzucę opis testu AccessControllera, żeby można było rozszyfrować jak to działa bez uruchamiania wszystkich testów.

Ogólnie to wielkie dzięki za opinię (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

EDIT: Dodałem opis testu AccessControllera - Prowizoryczny opis kontroli dostępu na forum.

Ten post edytował Ludvik 28.06.2006, 20:34:04
Go to the top of the page
+Quote Post
nasty
post
Post #4





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Kod jest ladny i "pro", ale ja sie zgodze z @fipaj, troche za bardzo sie rozpisales (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
hwao
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Odrazu widac ze to nie "autoryzacja" tylko czesc frameworka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Sama autoryzacja jest całkiem mala, wyglada na napisana ciekawie juz troche pozno to niezbyt mi mozg FUNCkIONuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jak nie zapomne, napisze coś z rana (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Jarod
post
Post #6





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Przeglądałem strukturę bazy i jeśli dobrze zrozumiałem jej założenia, to nie spełnia warunków pierwszej postaci normalnej.
Go to the top of the page
+Quote Post
NuLL
post
Post #7





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


[OT]I co z tego wynika ? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) [/OT]

(IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Go to the top of the page
+Quote Post
Jarod
post
Post #8





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(NuLL @ 14.04.2007, 14:20:06 ) *

Że można było zaprojektować ją lepiej (chyba potrafisz wyciągnąć proste wnioski..).

[OT]Coraz częściej czytając Twoje wypowiedzi odnosze wrażenie jakbyś miał 15lat (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) [/OT]
(IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)

Ten post edytował Jarod 14.04.2007, 15:41:35
Go to the top of the page
+Quote Post
DeyV
post
Post #9





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Jarod - a ja myślę, że akurat w tym przypadku pytanie null mogło mieć zupełnie inny cel.
Co prawda nie zaglądałem do kodu i do bazy, więc nie wiem, czy nie pojawiają się tam jakieś bardzo wyraziste błędy, ale jak sądzę, null chciał przypomnieć, że zazwyczaj po normalizacji bazy danych, przeprowadza się proces kontrolowanej denormalizacji, w celu podniesienia wygody pracy lub/i wydajności.
Go to the top of the page
+Quote Post
Jarod
post
Post #10





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(DeyV @ 26.04.2007, 08:10:00 ) *
(...)a ja myślę, że akurat w tym przypadku pytanie null mogło mieć zupełnie inny cel.

Nie mam czasu zastanawiać się co miał na myśli NULL (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Powinien napisać o co mu chodzi.

Cytat(DeyV @ 26.04.2007, 08:10:00 ) *
Co prawda nie zaglądałem do kodu i do bazy, więc nie wiem, czy nie pojawiają się tam jakieś bardzo wyraziste błędy, ale jak sądzę, null chciał przypomnieć, że zazwyczaj po normalizacji bazy danych, przeprowadza się proces kontrolowanej denormalizacji, w celu podniesienia wygody pracy lub/i wydajności.

Dla jednego może być wyrazisty błąd dla innego nie. Mi się udało zrobić to poprawnie i też wydajnie. Zresztą każdy pisze jak chce.

pzdr
Go to the top of the page
+Quote Post
Ludvik
post
Post #11





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)
Go to the top of the page
+Quote Post
Jarod
post
Post #12





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


@Ludvik: uważam, że odwaliłeś kawał dobrej roboty. Wzorowałem się trochę na Twoim sposobie (wyorzystałem parametryzowanie). Ja trochę inaczej podszedłem do sprawdzania uprawnień. U mnie każda rola posiada jakiś parametr (co najmniej jeden a może wiele). Wiem, że czasem trzeba przeprowadzić normalizację ale napisałem, że w tym przypadku dało się zrobić to lepiej. Poza tym tak jak pisałem każdy pisze po swojemu. To była taa moja uwaga.
pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:50