![]() |
![]() ![]() |
![]() |
![]()
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 ![]() actinium.tar.gz -------------------- |
|
|
![]()
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
![]() ![]() Jeszcze nie wgryzłem się w cały skrypt, ale ogólnie już mogę powiedzieć: kawał dobrej roboty ![]() Szkoda jednak, że tak bardzo się rozpisałeś ![]() minusika dostajesz za postgresa ![]() Ten post edytował Fipaj 28.06.2006, 19:14:35 -------------------- |
|
|
![]()
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ą
![]() Ogólnie to wielkie dzięki za opinię ![]() EDIT: Dodałem opis testu AccessControllera - Prowizoryczny opis kontroli dostępu na forum. Ten post edytował Ludvik 28.06.2006, 20:34:04 -------------------- |
|
|
![]()
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
![]() |
|
|
![]()
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
![]() Sama autoryzacja jest całkiem mala, wyglada na napisana ciekawie juz troche pozno to niezbyt mi mozg FUNCkIONuje ![]() ![]() |
|
|
![]()
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) |
|
|
![]()
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 ?
![]() ![]() -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
[OT]I co z tego wynika ? ![]() ![]() Ż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 ![]() ![]() 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) |
|
|
![]()
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..."
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
(...)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 ![]() 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) |
|
|
![]()
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ę
![]() 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 ![]() -------------------- |
|
|
![]()
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) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 09:19 |