Bonjour,
je suis entrain de faire un site et je souhaiterai lorsque je me connecte en 'admin' etre redirigé vers une page specifique et lorsque je me connecte en 'membre' sur une autre page mais je bloque car je suis renvoyé vers l'adresse users/admin/pages/index au lieu de admin/pages/index

voici mon code:

la fonction login dans le controller users

public function login(){
        if(!empty($this->request->data)){
            if($this->Auth->login()) {
            $this->Session->setFlash("Vous êtes maintenant connecté.", 'flash', array('class' => 'success'));
            $d = $this->Auth->user('role');
                if('Admin' == $d){
                    return $this->redirect('admin/pages/index');
                }elseif('Membre' == $d){
                        return $this->redirect('pages/index');
                }
            }else{
                $this->Session->setFlash("Identifiants incorrects.", 'flash', array('class' => 'error'));
            }
        }
    }

et appcontroller

<?php
/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link http://cakephp.org CakePHP(tm) Project
 * @package app.Controller
 * @since CakePHP(tm) v 0.2.9
 * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
App::uses('Controller', 'Controller');
/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package app.Controller
 * @link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {
    public $components = array(
        'Session',
        'Cookie',
        'Auth' => array(
            'authenticate' => array(
                'Form' => array(
                    'scope' => array('User.active' => 1)
                )
            )
        )
    );
   public function beforeFilter(){
        parent::beforeFilter();
        if(isset($this->request->params'prefix']) && $this->request->params'prefix'] == 'admin'){
            if($this->Auth->user('role') != 'Admin'){
                    throw new NotFoundException();
                }
            }
    }
}

merci par avance de votre aide
Gilles

2 réponses


coloo
Réponse acceptée

Bonjour,

essayes ceci :

return $this->redirect('../admin/pages/index');
gilles40
Auteur

Merci coloo c est impec