![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 15.01.2012 Ostrzeżenie: (10%) ![]() ![]() |
Witajcie,
mam pewną zagwozdkę. Chcę utworzyć w jednym projekcie dwa interfejsy admina i usera przy użyciu zend auth. Ok, tworze dwa osobne kontrolery dla usera i admina, wszystko działa. User sie loguje do swojego panelu, admin do swojego - praktycznie działa w 90% Pojawił się problem. Jeżeli zalogujemy się na admina, nastepnie nie wylogujemy się ze swojego profilu, to możemy wejść na profil usera. Podobnie jest w drugą stronę... a to poważny bląd. Czy istnieje jakieś rozwiązanie w zend aby rozdzielić zend auth dla usera i admina ? Dla usera i admina zastosowałem w kontrolerze takie rozwiązanie:
Proszę o pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 11 Dołączył: 27.10.2010 Skąd: Kutno/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Osobiście proponowałbym trzymać panele usera i admina w osobnych modułach a nie kontrolerach - daje to większe pole do manewru.
Ale jeżeli umieściłeś wszystko w kontrolerach, to mam dla Ciebie prostrze rozwiązanie. W jakiś sposób musisz rozpoznawać, czy użytkownik jest administratorem, jeżeli ta informacja jest zapisana w jego rekordzie w bazie, to możesz w funkcji init() kontrolera sprawdzać, czy zalogowany użytkownik ma możliwość dostępu do tego kontrollera. Jeżeli nie ma, to wtedy możesz przekierować użytkownika do akcji denied:
Jeżeli chcesz przekierować użytkownika do innego kontrolera, musisz umieścić powyższy skrypt w funkcji postDispatch(); |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 23:59 |