mam problem z Zend_Auth.
Standardowo mam logowanie i autoryzacje umieszczona w pluginie, wszystko dziala ladnie, do czasu...
W widoku mam link "dodaj artykuł". Chciałem zrobić tak, że jesli uzytkownik jest zalogowany to wyswietla link do formularza, a jesli nie to ten link zamienia sie w link do logowania.
Napisalem sobie do tego helpera, ktory zwraca mi prawde jesli uzytkownik ma dostep do dodawania artykolu:
class Zend_View_Helper_IsAllowedAction { protected $_controller; public function __construct() { $front = Zend_Controller_Front::getInstance(); $request = $front->getRequest(); $controller = $request->getControllerName(); $this->_controller = $controller; } public function isAllowedAction($action, $controller = false) { if($controller){ $setController = $controller; } else { $setController = $this->_controller; } $registry = Zend_Registry::getInstance(); $acl =$registry->get('acl'); $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $role = $auth->getIdentity()->value; } else { $role = '1'; } return $acl->isAllowed($role ,$setController,$action); } }
I po wywolaniu ostatniej linijki "isAllowed", dzieje się tak ze zwraca mi ze uzytkownik jest zalogowany i ma dostep do tego zasobu, jednak jak przechodze na nastepna strone, automatycznie zostaje wylogowany. Nie wiem co jest grane.
W pluginie mam juz raz zastosowane isAllowed, wtedy jesli nie jest autoryzowany to przekierowywuje na glowna. Czy ma jakies znaczenie ze uzywam tego drugi raz ? Jak Wy rozwiazujecie ten problem ?
Pozdrawiam Adrian