|
Categorieën >
Object georiënteerd
[ZF] Zend_Redirect + Zend_Acl
|
|
|
offline
|
MySQL 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
MiST – 15/06/2011 20:27
|
|
offline
|
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?
|
Chilion – 16/06/2011 14:17 (Laatst gewijzigd op 16/06/2011 15:33)
|
|
offline
|
MySQL interesse
|
Ja, daar ben ik wel naar opzoek ja.
Ik heb nu dit stukje (relevante) code:
GastenboekController.php
<?php
$this->user = null;
$this->auth = Zend_Auth::getInstance();
if($this->auth->hasIdentity()) {
$this->user = $this->auth->getIdentity()->role;
}
if($this->acl->isAllowed($this->user, 'gastenboek', 'add')) {
// blablabla
}
else {
$this->_forward('', 'auth'); //to login page
}
?>
<?php $this->user = null; $this->auth = Zend_Auth::getInstance(); if($this->auth->hasIdentity()) { $this->user = $this->auth->getIdentity()->role; } if($this->acl->isAllowed($this->user, 'gastenboek', 'add')) { // blablabla } else { $this->_forward('', 'auth'); //to login page } ?>
AuthController.php
<?php
$action = $this->_request->getActionName();
$controller = $this->_request->getControllerName();
$this->_helper->redirector->gotoSimple($action, $controller); //HIER
?>
<?php $action = $this->_request->getActionName(); $controller = $this->_request->getControllerName(); $this->_helper->redirector->gotoSimple($action, $controller); //HIER ?>
Bij //HIER is er ingelogd en wat er terug gelinkt, maar er wordt dus niet teruggelinkt maar naar auth/ gegaan.
|
Je moet ingelogd zijn om een reactie te kunnen posten.
|
|
|