Bernard Jurewicz

Bernard Jurewicz Programista,
administrator

Temat: jak zrobićc menu w cake'u

Witam,

Zaczynam dopiero moją przygodę z Cakephp. Trochę już posiedziałem i udało mi się zrobić system logowania oparty na ACL i AUTH.

Teraz problem jaki sobie postawiłem: chciałbym zrobić menu użytkownika tak aby zmieniało się ono w zależności od uprawnień ACL. Czyli jeżeli daję człowiekowi uprawnienia do controller'a/akcji to jak odświeży stronę to mu się menu zaktualizuje.

Pierwszy pomysł miałem żeby wyszukiwać wszystkie obiekty i sprawdzać czy użytkownik ma do nich uprawnienia, ale to rozwiązanie jest mocno czasochłonne. Może ktoś podsunie mi pomysł jak wyciągnąć np listę dostępnych obiektów dla danego użytkownika z ACL'a.
Mile widziany kawałek kodu.

Z góry dziękuję

Benko
Kamil Kosiński

Kamil Kosiński CTO w
DobryMechanik.pl

Temat: jak zrobićc menu w cake'u

Sam nie potrzebowałem czegoś takiego robić, ale może poniższe trochę pomoże:

http://bakery.cakephp.org/articles/Frank/2009/04/15/ca...
http://bakery.cakephp.org/articles/macduy/2010/01/05/a...
http://tomscrape.com/content/real-caching-cakephp-perm...

Do generowania menu też na pewno coś znajdziesz.
Bernard Jurewicz

Bernard Jurewicz Programista,
administrator

Temat: jak zrobićc menu w cake'u

Bardzo dziękuję za odpowiedź. Wydaje mi się że ten ostatni artykuł jest najbardziej pomocny, ale muszę to jeszcze przetrenować.
Marcin Jankowski

Marcin Jankowski Główny programista /
współwłaściciel,
Construction Net
Fair

Temat: jak zrobićc menu w cake'u

Nie wiem, ile tam masz modeli i grup użytkowników, ale jeśli chcesz dane menu wyświetlać w layoucie chyba najprościej jest wrzucić użytkownika do widoków w app_controller.php w beforeFilter() dodając:

$current_user = $this->Auth->user();
$this->set('current_user', $current_user);

a w widoku mieć kilka menu dla różnych grup i wyświetlać właściwe dla odpowiedniego $current_user['User']['group_id']

Jeśli menu ma być tylko dla pojedynczego widoku, robisz to samo ale dla konkretnej akcji

Mam nadzieję, że pomogłem :)

Następna dyskusja:

Błąd w cake-u




Wyślij zaproszenie do