![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 18.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Jestem bardzo początkujący w temacie php, ale duużżżooo czytam i zacząłem od jakiegoś czasu rozwijać swój framework i tutaj na forum chciałbym zaprezentować swoje przemyślenia na temat ACL jakie zastosowałem. Otóż w żadnym znanym mi frameworku (Zend, Cake, Symfony, Code Igniter, Kohana) nie umiałem łatwo i szybko zaimplementować takiej jakby automatycznej autoryzacji użytkownika chodziło mi o sprawdzenie praw dostępu do zasobu już na poziomie front-controllera, który zobaczy czy w Liście Kontroli Dostępu znajduje się żądany zasób dla obecnej roli użytkownika i albo 'wpuszcza' go i włącza odpowiednią akcje controllera albo nie 'wpuszcza' i kieruje na wiadomość o braku dostępu. Wydaje mi się to lepszym rozwiązaniem niż pisanie w controllerach instrukcji if i else za każdym razem. Oto jak to jest zaimplementowane:
We folderze config trzymam sobie prosty plik xml, który wgląda następująco:
jak widać chyba nic nie trzeba tutaj tłumaczyć, jedyne co może wzbudzać zainteresowanie to dlaczego w roli user zasoby /user/login i user/register maja pusty label, ale to później wytłumaczę, bo jest jeszcze jedna funkcjonalność tego podejścia, o której za chwile napisze. A tak wygląda kod:
prawie wszystko dzieje się metodą strukturalną, bo po co obciążać cały system obiektówką, tam gdzie nie jest ona potrzebna (IMG:style_emoticons/default/smile.gif) . Chciałbym usłyszeć jakieś opinie lub uwagi co można jeszcze poprawić, usprawnić lub zmienić. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam. Jestem bardzo początkujący w temacie php, ale duużżżooo czytam i zacząłem od jakiegoś czasu rozwijać swój framework i tutaj na forum chciałbym zaprezentować swoje przemyślenia na temat ACL jakie zastosowałem. Otóż w żadnym znanym mi frameworku (Zend, Cake, Symfony, Code Igniter, Kohana) nie umiałem łatwo i szybko zaimplementować takiej jakby automatycznej autoryzacji użytkownika chodziło mi o sprawdzenie praw dostępu do zasobu już na poziomie front-controllera, który zobaczy czy w Liście Kontroli Dostępu znajduje się żądany zasób dla obecnej roli użytkownika i albo 'wpuszcza' go i włącza odpowiednią akcje controllera albo nie 'wpuszcza' i kieruje na wiadomość o braku dostępu. To coś słabo szukałeś, w ZF można sobie napisać plugin i zarejestrować w Bootstrap, coś np. takiego:
zapisujemy do folderu plugins plik o nazwie AccessCheck.php i dalej w Bootstrap.php rejestrujemy nasz plugin:
Co do Twojego kodu to mam trzy uwagi: 1. w tym przypadku kod proceduralny będzie niezauważalnie szybszy czy wydajniejszy od obiektowego, ale kodem obiektowym łatwiej zarządzać i modyfikować 2. chyba zapomniałeś, jak wygląda Acl i navigation.xml w przypadku, jeśli wprowadzimy do aplikacji podział na moduły 3. widzę, że jak na razie nie przewidujesz komunikacji z bazą w celu pobrania ról, zasobów i uprawnień, a szkoda... Pozdrawiam Ten post edytował darko 6.02.2010, 04:20:55 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 23:44 |