Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Po sprawdzeniu dostepu wylogowywuje
quality
post
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

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


Witam.

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:
  1. class Zend_View_Helper_IsAllowedAction {
  2.  
  3. protected $_controller;
  4.  
  5. public function __construct() {
  6. $front = Zend_Controller_Front::getInstance();
  7. $request = $front->getRequest();
  8. $controller = $request->getControllerName();
  9.  
  10. $this->_controller = $controller;
  11. }
  12.  
  13. public function isAllowedAction($action, $controller = false)
  14. {
  15.  
  16. if($controller){
  17. $setController = $controller;
  18. } else {
  19. $setController = $this->_controller;
  20. }
  21.  
  22. $registry = Zend_Registry::getInstance();
  23. $acl =$registry->get('acl');
  24.  
  25. $auth = Zend_Auth::getInstance();
  26. if($auth->hasIdentity())
  27. {
  28. $role = $auth->getIdentity()->value;
  29. } else {
  30. $role = '1';
  31. }
  32. return $acl->isAllowed($role ,$setController,$action);
  33.  
  34. }
  35. }

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
quality
post
Post #2





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

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


Hmmm nie rozumiem Twojej wypowiedzi Pilsener.

Nie mam Acl w modelu tylko w bootstrapie.

Co mi da taki model ?

Ten kod co napisalem sprawdza mi role w innym kontrolerze i akcji ( takiej jak podam w parametrach), niestety zaraz po sprawdzeniu ( sprawdza prawidlowo) wylogowywuje (usuwa sesje). Nie wiem dlaczego.

Metode Acl "isAllowed()" wywoluje raz w pluginie (sprawdza on dostep do obecnego zasobu), i wlasnie ponowne wywolanie juz w widoku ( sprawda dostep do innego zasobu niz jestesmy) powoduje takie dziwne zachowanie.



Eh zauwazylem teraz dziwna przypadlosc. Jedno odswiezenie uzytkownik jest zlogowany, drugie juz nie i tak co chwile :/

Nie wiecie co moze byc nie tak ?

Logowanie i sesje mam na bazie danych.

Update:
Zauwazylem ze skrypt szaleje po dodaniu opcji Zend_Session_SaveHandler_DbTable.
Zapisuje sesje w bazie za pierwszym razem prawidlowo, a po odswiezeniu od razu ja usuwa.

Po wylaczeniu tego wszystko dziala prawidlowo.

Wczesniej save handler tez dzialal prawidlowo. Nie wiecie co moze miec wplyw na zapis sesji w bazie danych ?

Mial ktos podobny przypadek ?

Pozdrawiam Adrian

Ten post edytował quality 5.08.2010, 21:23:40
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 17:50