Bonjour à tous,
J'ai une petite question, je suis entrain de développer une application avec CakePHP et je me pose une petite question vis-à-vis d'une bonne pratique.
J'ai géré la partie "connexion / déconnexion" etc dans le but notamment, de créer un backoffice. Du coup, dans mes actions je fais :
<?php
if(!$this->Auth->user('id')){
return $this->redirect(
array('controller' => 'users', 'action' => 'login')
);
}
?>
Comme ça je peux voir si l'utilisateur est connecté ou pas, et si ça n'est pas le cas je vais le rediriger. Je vais d'ailleurs rajouter un check sur la partie "rôle".
Donc du coup, je remets ce même code dans chaque action de tous mes controllers (enfin je l'ai pas encore fait mais je m'apprête à le faire).
Or, c'est moche, enfin vraiment très moche.
Est-ce qu'il y aurait une méthode plus propre pour mettre cette vérification dans une fonction qu'on appelle dans les actions mais qui n'est "écrite" que dans une seule classe ? Genre comme un service, ou un truc du genre ?
Merci d'avance pour vos idées, avis, etc !
public function isAuthorized($user)
{
// Admin can access every action
if (isset($user['role']) && $user['role'] === 'admin') {
return true;
}
// Default deny
return false;
}
Tu est sur quel version de Cake je dirais la 2 au vu de ton code, mais sache que tu peut le faire dans l'AppController
Parfait regarde la doc dansgetting started tout est expliquer tu verifie tout en maintenant la connexion et le role
Hum, au risque de passer pour un idiot, dans quelle partie de "Getting started" ? Parce-que là c'est un peu vague... Je suis allé voir du côté des controller, et de la partie "Security", mais en dehors de voir comment récupérer l'utilisateur connecté (ce que j'ai fait), je ne vois rien de particulier concernant l'information que tu me donnes...
EDIT : Désolé pour le miss click sur la validation du sujet -_-'