Deux solutions :
-
Il s'agit d'une authentification un peu plus complexe que celle du tuto et il te faudra utiliser les ACL (Access Control List)
-
Tu crées crées la fonction isAuthorized dans ton appController dans laquelle tu autorise les admin a tout faire
public function isAuthorized($user) {
// admin accède à tout
if (isset($user'role']) && $user'role'] === 'admin') {
return true;
}
// accès a rien par défaut
return false;
}
public function beforeFilter() {
//ici toutes les fonctions autorisée aux simples visiteurs non connectés,
$this->Auth->allow('action_publique_1', 'action_publique_2');
}
Et dans ce cas, tu dois définir dans chaque controller une fonction isAuthorized qui traite plus spécifiquement les droits
public function isAuthorized($user) {
// si la fonction return true, l'utilisateur a accès
if ($this->action === 'action_pou_manager' && $user'role']==='manager') {
return true;
}
//ici ca return false si l'utilisateur n'est pas admin donc accès refusé, comme défini dans appController
return parent::isAuthorized($user);
}
A ta place je passerais par les ACL, plus facile à maintenir