Salut à tous,

Apres avoir vu un tuto video sur le Zend_Router, je m'y suis mis. J'ai utilisé un bout du code de Zend_Auth (tuto sur developpez.com).

Par contre, je ne sais pas comment faire une redirection vers une route dans le controller. Dans le _redirect, j'aimerai utiliser une route prédéfinie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 if ($result->isValid()) {
    // success : store database row to auth's storage system
    // (not the password though!)
    $data = $authAdapter->getResultRowObject(null, 'password');
    $auth->getStorage()->write($data);
    $this->_redirect('/menu/display');
 
} else {
Mes routes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$frontController->setControllerDirectory(array(
'auth' 		=> _APP_PATH_	. '/application/modules/auth/controllers',
'actualites'   => _APP_PATH_	. '/application/modules/actualites/controllers',
'menu' 		=> _APP_PATH_	. '/application/modules/menu/controllers',
'users' 	=> _APP_PATH_	. '/application/modules/users/controllers'
	));
 
$frontController->setBaseUrl('/');
$frontController->setDefaultModule('auth');
$frontController->setDefaultControllerName('Auth');
$frontController->setDefaultAction('login');
 
// ROUTEUR /////////////////////////////////////////////////////////
$frontController->getRouter()->addConfig($configRouterXML,'routes');
un bout du XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<menuRoute>
 <type>Zend_Controller_Router_Route</type>
 <route>partieStaticDisplay</route>
<defaults>
 <controller>menu</controller>
 <action>display</action>
 </defaults>
 </menuRoute>
Donc comment je peux faire, apress l'authentification, pour aller sur la page du menu, en vérifiant que l'authentification a bien été faite ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class MenuController extends Zend_Controller_Action
{
    function init()
    {
        $this->initView();
        $this->view->baseUrl = $this->_request->getBaseUrl();
        $this->view->user = Zend_Auth::getInstance()->getIdentity();
    }
 
    function preDispatch()
    {
        $auth = Zend_Auth::getInstance();
        if (!$auth->hasIdentity()) {
            $this->_redirect('auth/login');
        }
    }
 
    function displayAction()
    {
        $this->view->title = "Bienvenue au menu";
        $this->render();
    }
}
là aussi, le redirect ne sera pas bon ecrit comme çà.

Merci de votre aide.

Fabrice