Essaies ceci :
public function beforeFilter() {
Security::setHash('md5');
$this->Auth->loginAction = array('controller'=> 'users', 'action' => 'login', 'admin' => false);
if(!isset($this->request->params'prefix'])) {
$this->Auth->allow();
}
if(isset($this->request->params'prefix']) && $this->request->params'prefix'] == 'admin'){
if(!$this->Session->read('Auth.User.admin'))
return throw new NotFoundException();
$this->layout = 'admin';
}
}
Et retire ta fonction isAuthorized.
En gros, ce code va aller vérifier dans la session si l'utilisateur est admin (admin à 1 dans la table Users dans ta base de données) et s'il ne l'est pas, il renvoit une page d'erreur.