I utiliserait le composant Auth pour la connexion. Je ne plaisante pas avec l'ACL et d'autres choses car c'est assez confus je trouve.
Je voudrais aborder cela en ajoutant une colonne user_level, access_level ou permissions dans votre table users. Ensuite, ici, vous pouvez stocker une valeur numérique ou similaire. Ensuite, dans le modèle User, lorsqu'ils se connectent en utilisant Auth, vous pouvez stocker cette valeur dans l'objet de session Auth User. Vous pouvez donc y accéder en utilisant $ this-> Auth ('User.access_level') dans vos contrôleurs. Maintenant, le composant Auth a par défaut une fonction isAuthorized() dans le controleur_app_application_service. Cette fonction est appelée pour voir si quelqu'un s'est connecté. Vous pouvez le modifier pour vérifier ce niveau d'accès et prendre des mesures appropriées. J'ai utilisé cette technique pour que les utilisateurs ne puissent pas entrer dans le routage/cms sauf s'ils sont admin = 1.
Vous trouverez plus d'informations à ce sujet dans les documents, http://book.cakephp.org/view/172/Authentication et vous pouvez en savoir plus sur isAuthorized() ici, Assurez-vous de configurer toutes vos variables de composant Auth dans votre app_controller. Assurez-vous également que votre type d'authentification est défini sur controller, et que vous autorisez() et deny() sont correctement configurés. Le seul gros problème avec tout cela, c'est que si vous utilisez un beforeFilter() dans vos contrôleurs, vous devrez vous assurer de faire parent :: beforeFilter() pour vous assurer que le contenu de l'app_controller est exécuté au préalable :)