uncuncunc
7.05.2012, 09:13:16
Opieram swój FW na zasadach MVC, jestem przy budowaniu panelu administracyjnego dla wielu aplikacji... Panel jest sam w sobie aplikacją z własnym kontrolerem który powinien wczytywać tylko metody wybranej aplikajci. Jednak jak zrobić np. listę metod które mogą być używane w panelu? Mam ACL i to na jego podstawie odczytać wszystkie metody?
I gdzie ACL powinien być sprawdzany? W kontrolerze czy w routingu?
skowron-line
7.05.2012, 09:35:21
Cytat(uncuncunc @ 7.05.2012, 08:13:16 )

I gdzie ACL powinien być sprawdzany? W kontrolerze czy w routingu?
W modelu, zgodnie z wzorcem MVC kontroler przekazuje dane z modelu do widoku. A routing odpowiada za dopasowanie adresu do kontrolera i metody a nie do sprawdzenia uprawnien.
Zrób sobię jakąś metodę która będzie wywoływana przed wywoływana przed akcją i tam wywołaj model ze sprawdzeniem dostępu
w zend taka metoda to
preDispatch (jeżeli dobrze pamiętam) a w kohanie
before
marcio
7.05.2012, 10:58:04
Masz 3 wyjscia:
-Konstruktor/__call
-Hooki/Eventy
-Dispatcher(front controller)
Ja uzywam 1 i 3 metode bo system zdarzen uzywam do czegos calkiem innego
uncuncunc
8.05.2012, 14:35:20
marcio a mógłbyś rozwinąć wątek? Bo nie rozumiem jak __call ma mi ułatwić porozumienie panel <=> inna_aplikacja. I jak zbudować listę dostępnych opcji w panelu, właśnie na bazie ACL?
marcio
8.05.2012, 15:53:54
Co do acl-a
http://marcio.ekmll.com/Vf/index.php/474 klase troche przebudowalem ale ogolnie logika jest taka sama.
Co do __call normalnie masz 2 rozne kontrolery czyli ten publiczny i ten dla administratora robisz __call i wykonujesz akcje
uncuncunc
8.05.2012, 17:26:08
ACL mam już zaimplementowany, podobny do tego co pokazałeś tylko na tablicach...
Jednak nie rozumiem tego wykorzystania __call()
Aplikacja1 ma swój kontroler "aplikacja" i w nim odpowiednie metody.
Panel ma też swój kontroler "panel", bo jest osobną aplikacją i również ma swoje metody... więc jak to ma być ze sobą połączone przez __call?
marcio
8.05.2012, 17:45:04
Bede musial poszukac to podesle kod ja tego nie implementowalem ale jak przegladalem aplikacje na google code/github to sie spotkalem tez z takim mykiem
uncuncunc
10.05.2012, 19:20:51
Ok. poczekam. I jesteś pewien że to było realizowane przez __call? Bo jakoś ta funkcja mi do tego nie pasuje.
edycja:
Na razie zrobiłem (chyba dobrze) coś w rodzaju sterownika app<>panel w kontrolerze panelu, gdzie zapisuję do zmiennej nazwę aplikacji i na tej podstawie tworzę nowy loader podający SPL podający ścieżkę do tejże aplikacji i na razie udaje mi się bez problemy odczytywać model, jeszcze sprawdzę czy wszytko działa poprawnie z wysyłaniem danych itp. ale powinno być ok... jak ktoś ma jakieś pomysły dotyczące obsługi wielu aplikacji z jednego panelu to z chęcią wysłucham.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.