login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[ZF] Zend_Redirect + Zend_Acl

Offline Chilion - 15/06/2011 12:14
Avatar van ChilionMySQL interesse Hallo allen,

Ik heb een applicatie waarin meerdere dingen mogelijk zijn (deleten, adden, edit) wanneer men een van deze opties kiest en niet is ingelogd wordt de pagina doorgestuurd naar een Zend_Auth controller met een Zend_Acl daarachter.

Na het inloggen gaat de gebruiker terug naar de index pagina alwaar hij of zei opnieuw voor deleten, adden of edit moet kiezen, ik wil dat wanneer de gebruiker een optie kiest waardoor hij moet inloggen er meteen gekeken wordt waar hij weg komt en waar hij weer naar geredirect moet worden.

Hoe doe ik dit zonder form.

Groeten,

2 antwoorden

Gesponsorde links
Offline MiST - 15/06/2011 20:27
Avatar van MiST Lid Ik los dat op door een subklasse te maken van Zend_Controller_Action die een methode redirectOnUnauthorized() heeft.

Als de gebruiker dus niet aangemeld is, wordt-ie naar de login pagina gestuurd. In de GET parameter geef ik het adres door van waar de gebruiker komt en het loginformulier vangt dit op. Na het inloggen wordt de gebruiker automatisch doorverwezen naar de plek waar hij/zIJ (;)) voordien was.

Is dit het gedrag waar je naar op zoek bent?
Offline Chilion - 16/06/2011 14:17 (laatste wijziging 16/06/2011 15:33)
Avatar van Chilion MySQL interesse Ja, daar ben ik wel naar opzoek ja.

Ik heb nu dit stukje (relevante) code:

GastenboekController.php
  1. <?php
  2. $this->user = null;
  3. $this->auth = Zend_Auth::getInstance();
  4. if($this->auth->hasIdentity()) {
  5. $this->user = $this->auth->getIdentity()->role;
  6. }
  7.  
  8. if($this->acl->isAllowed($this->user, 'gastenboek', 'add')) {
  9. // blablabla
  10. }
  11.  
  12. else {
  13. $this->_forward('', 'auth'); //to login page
  14. }
  15. ?>

AuthController.php
  1. <?php
  2.  
  3. $action = $this->_request->getActionName();
  4. $controller = $this->_request->getControllerName();
  5.  
  6. $this->_helper->redirector->gotoSimple($action, $controller); //HIER
  7. ?>


Bij //HIER is er ingelogd en wat er terug gelinkt, maar er wordt dus niet teruggelinkt maar naar auth/ gegaan.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s