Bonjour, j'ai fait le tuto de l'acl sur le cookbook de cakephp http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-application/simple-acl-controlled-application.html
tout marche pour le mieux sauf que dans ma table aco de ma bdd il n'a qu'une entrée "id:1, parent_id:NULL, model:NULL, foreign_key:NULL, alias:controllers, lft:1, rght:2". Ce qui pour moi n'est pas très logique.
Ensuite quand je me connecte rien ne se passe pas de redirection rien et ma variable "$this->Auth->user()" m'affiche "null"

voila mon appController

<?php
class AppController extends Controller {
    public $helpers = array('Html', 'Session', 'Form', 'Time', 'Text');
    public $components = array(
        'Acl',
        'Auth' => array(
            'authorize' => array(
                'Actions' => array('actionPath' => 'controllers')
            )
        ),
        'Session'
    );
    /**
    * beforeFilter
    * @brief Cette fonction est executée avant chaque action du contrôleur
    * @param 
    * @return void
    **/
    public function beforeFilter(){
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
        $this->Auth->loginRedirect = array('controller' => 'posts', 'action' => 'index');
        $this->Auth->actionPath = 'controllers/';
        $this->Auth->allow('display');
    }
    /**
    * beforeRender
    * @brief 
    * @param 
    * @return void
    **/
    public function beforeRender(){
        $this->set('user', $this->Auth->user());
    }
}

ma fonction login

public function login(){
        if($this->Session->read('Auth.User')){
            $this->Session->setFlash("Vous êtes déjà connecté");
            $this->redirect('/', null, false);
        }
        if($this->request->is('post')){
            if($this->Auth->login()){
                $this->redirect($this->Auth->redirect());
            } else{
                $this->Session->setFlash("Votre pseudo ou mot de passe est incorrect.");
            }
        }
    }

et mon login.ctp

<?php 
    echo $this->Form->create('User', array('action' => 'login'));
    echo $this->Form->input('name', array('label' => 'Pseudo'));
    echo $this->Form->input('password', array('label' => 'Mot de passe'));
    echo $this->Form->end('Connecter');
 ?>

Merci pour vos réponse

2 réponses


Flohw
Réponse acceptée

dans ton AppController, ajoute, en dessous de la ligne 9 : 'fields' => array('username' => 'name'),

Ch0c4
Auteur

Ok merci, mais j'ai changé ma table name en username et sa marche j'avais oublié ce détail avec cakephp