Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [skrypt]Actinium.Auth - Kontrola dostępu
Ludvik
post 28.06.2006, 16:20:05
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 smile.gif

actinium.tar.gz


--------------------
Go to the top of the page
+Quote Post
Fipaj
post 28.06.2006, 19:14:02
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 smile.gif Wykonanie fajne smile.gif

Jeszcze nie wgryzłem się w cały skrypt, ale ogólnie już mogę powiedzieć: kawał dobrej roboty smile.gif

Szkoda jednak, że tak bardzo się rozpisałeś smile.gif To jest, przynajmniej dla mnie, zbyt duże.

minusika dostajesz za postgresa tongue.gif

Ten post edytował Fipaj 28.06.2006, 19:14:35


--------------------
Go to the top of the page
+Quote Post
Ludvik
post 28.06.2006, 19:42:25
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ą 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ę 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 29.06.2006, 07:33:45
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 tongue.gif
Go to the top of the page
+Quote Post
hwao
post 2.07.2006, 00:39:26
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 smile.gif
Sama autoryzacja jest całkiem mala, wyglada na napisana ciekawie juz troche pozno to niezbyt mi mozg FUNCkIONuje smile.gif jak nie zapomne, napisze coś z rana smile.gif
Go to the top of the page
+Quote Post
Jarod
post 14.04.2007, 14:53:14
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.


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
NuLL
post 14.04.2007, 15:20:06
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 ? biggrin.gif[/OT]

laugh.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Jarod
post 14.04.2007, 15:36:43
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 ) *
[OT]I co z tego wynika ? biggrin.gif[/OT]

laugh.gif

Ż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 biggrin.gif[/OT]
laugh.gif

Ten post edytował Jarod 14.04.2007, 15:41:35


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
DeyV
post 26.04.2007, 09:10:00
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.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Jarod
post 26.04.2007, 13:06:13
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 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


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
Ludvik
post 17.05.2007, 08:36:29
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ę 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 smile.gif


--------------------
Go to the top of the page
+Quote Post
Jarod
post 17.05.2007, 18:15:09
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


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 09:19