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