2010-05-17 7 views
2

Je développe une application en utilisant cakePHP v 1.3 sous Windows (XAMPP).

La plupart des contrôleurs sont cuits avec le routage d'administration activé. Je veux sécuriser les actions d'administration de chaque contrôleur avec une page de connexion. Comment puis-je faire cela sans répéter beaucoup?

Une solution au problème est que "Je vérifie les informations de connexion dans l'action admin_index de chaque contrôleur", puis affiche l'écran de connexion en conséquence.
Y a-t-il une meilleure façon de faire?

L'URL detault à admin (http://localhost/app/admin) pointe vers l'action index_admin du contrôleur utilisateurs (créé une nouvelle route pour ce fichier dans routes.php)Comment sécuriser toutes les actions d'administration de tous les contrôleurs dans cakePHP

Répondre

6

Utilisez le Authentication component. Vous pouvez le configurer juste pour les routes d'administration avec quelque chose comme ceci:

// AppController::beforeFilter 
function beforeFilter() { 
    if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') { 
     $this->Auth->deny('*'); 
     ... 
    } 
} 

Vérification uniquement dans les actions index est inutile, c'est juste l'obscurité, pas de sécurité. L'AuthComponent vérifiera les autorisations pour chaque chargement de page.

+1

:-) Merci deceze. Vous avez raison de vérifier que l'action indexée est inutile, c'est pourquoi j'ai posté ma question ici parce que j'étais sûr que j'obtiendrais une réponse experte et parfaite. Merci encore une fois. –

Questions connexes