Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework]Współdzielenie akcji/kontrolerów pomiędzy modułami
Gabrielx
post 27.08.2012, 12:16:32
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 2
Dołączył: 24.03.2009

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


Witam.

Mam dwa moduły - admin, user. Oba moduly pozwalaja na logowanie się do aplikacji. Czy jest możliwosć dziedziczenia akcji pomiędzy modułami? Czy polecacie może inne rozwiązanie.
Go to the top of the page
+Quote Post
Riggs
post 27.08.2012, 13:14:23
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

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


A nie możesz zrobić jednego logowania i dostęp do modułu sprawdzać po roli (admin, user, guest)? ACL świetnie się do tego nada, w dodatku jeśli zabezpieczasz tylko moduły to konfiguracja będzie banalna.
Go to the top of the page
+Quote Post
Gabrielx
post 27.08.2012, 13:21:28
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 2
Dołączył: 24.03.2009

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


Tak, tylko że nie mogłem znależć fajnego zobrazowania tego całego ACL'a. Masz jakieś fajne materiały, jak to wygląda w praktyce? Gdzie mam to po prostu wszystko umieścić.
Go to the top of the page
+Quote Post
Riggs
post 27.08.2012, 15:56:05
Post #4





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

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


Tu masz świetny wpis batmana na temat ACL http://blog.wilgucki.pl/2011/05/zend_acl-w-praktyce.html . Generalnie polecam poczytać tego bloga, dużo fajnych rzeczy o Zend.

W twoim przykładzie będą tylko 2 zasoby (resource) - najlepiej stwórz od nazwy modułu (admin, user). W pluginie pobierz sobie request->getModuleName() oraz rolę użytkownika (z Zend Auth) i użyj hasResource.
Go to the top of the page
+Quote Post
Gabrielx
post 27.08.2012, 16:38:14
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 2
Dołączył: 24.03.2009

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


Ok. Dziękuję.

1. W jakim miejscu najlepiej utworzyć ten plugin?
2. Napisałeś wcześniej żebym zrobił jedno logowanie - czyli jak mam dwa "module" user, admin, to mam przed modułami to utworzyć? Nie mogę wymyślić logiki dla mojej aplikacji.

Ps. Jaka jest zasadnicza różnica pomiędzy helperem a pluginem? Bo np. zarówno plugin jaki i helper może być stosowany do widoku.
Go to the top of the page
+Quote Post
Riggs
post 27.08.2012, 17:28:38
Post #6





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

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


1. Najlepiej w katalogu library zrób sobie podkatalog ze swoją "przestrzenią nazw" np. App_Plugin_ACL (oczywiście zapisujesz w library/App/Plugin/ACL) i rozszerzasz Zend_Controller_Plugin_Abstract i nadpisz metodę preDispatch();
2. Ja bym zrobił moduł default (czyli dostępny dla userów i gości) oraz admin. Oczywiście jak chcesz to możesz ustawić domyślny moduł na user. I w module user zrób kontroler np Profil i metody zalogujAction() wylogujAction().

Ad. PS. Helper widoku używany jest do generowania części layoutu (np. okienko Facebook, losowe zdjęcie, formularz logowania). Plugin nie generuje żadnych danych do widoku, raczej steruje aplikacją (przynajmniej ja tak robię).
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: 21.05.2024 - 01:04