salut à tous je veux restraint l'acces a mes ressources dans mon appli. ayant suivit la cookbook 2.x, j'ai fait la rencontre de la fonction isauthorize.
dans mon appcontroller j'ai ceci:

<?php

App::uses('Controller', 'Controller');
class AppController extends Controller {
    public $helpers = array('Html','Form','Session');
    public $components = array(
        'Session',
         'Auth' =>array(
            'authenticate' => array(
                'Form' => array(

                'userModel'       => 'Personnel',
                    'fields'      => array(
                    'username'    => 'pseudo', // 'username' par défaut
                    'password'    => 'motdepasse' ),  // 'password' par défaut
                    'userFields'  =>  array('id','pseudo','enseignements_id','fonctionpersonnels_id','Fonctionpersonnel.poste','enseigne','avatar'),

                'passwordHasher' => array(

                                'className' => 'Simple',
                                'hashType' => 'sha256'

                                )
                    )
                ),
            'authorize'           =>      array('Controller'),

            'loginAction' => array('controller' => 'Personnels', 'action' => 'login'),
            'loginRedirect' => array('controller' => 'Personnels','action' => 'index'),
            'logoutRedirect' => array('controller' => 'Administrators','action' => 'index')
            )

        );

    public function  isAuthorized($user = null)
                {
                    return true;
                }
    public function beforeFilter()
    {
        parent::beforeFilter();
    }

}

et dans mon controlleur de connexion appelé Personnel, j'ai ceci:

public function  isAuthorized($user = null)
                {
                    parent::isAuthorized($user);
                    return $user['Fonctionpersonnel.poste'] == 'Enseignant';
                }

    public function beforeFilter()
            {
            parent::beforeFilter();

            }

    public function login()
            {
                $this->layout = 'connexion';

                    if($this->request->is('post') && !empty($this->request->data))
                {

                    if($this->Auth->login())
                    {
                        $fonction = strtolower($this->Auth->user('Fonctionpersonnel.poste'));

                        $this->Session->setFlash('Bienvenue dans votre compte Enseignant, Vous êtes connecter','default', array('class'=>'alert alert-success'));
                            return $this->redirect(array('controller' => 'Membres','action' => 'enseignant_index','full_base' => true));

                    }
                        else 
                        {
                             $this->Session->setFlash('Nom d\'utilisateur ou mot de passe invalide, réessayer','default', array('class'=>'alert alert-danger'));

                        }
                }
            }

            public function logout()
            {
                        $this->Session->destroy();
                         $this->Session->setFlash('Vous êtes déconnecter','default', array('class'=>'alert alert-info'));
                         return $this->redirect($this->Auth->logout());
            }

            lorsque j'ésais de me connecté, j'ai une redirection vers la racine de mon application: soit 
            http://localhost/Gestionetablissement/Gestionetablissement/Personnels

            et ducoup une l'erreur suivante:

            Bienvenue dans votre compte Enseignant, Vous êtes connecter
Missing Controller

Error: GestionetablissementController could not be found.

Error: Create the class GestionetablissementController below in file: app\Controller\GestionetablissementController.php

<?php
class GestionetablissementController extends AppController {

}

j'aimerais savoir si j'ai loupé quelque chose s'il vous plait

Aucune réponse