2009-07-22 10 views
1

Je suis un débutant pour les composants CakePHP. J'avais construit une application CakePHP qui a une fonction de connexion. Je n'avais pas utilisé le composant "Auth" mais utilisais ma méthode personnalisée pour l'authentification.en utilisant le composant CakePHP 'Acl'

Maintenant, je veux utiliser le composant 'Acl' dans la même application mais je suis incapable de le faire car il nécessite également le composant "Auth".

Est-il possible d'utiliser 'Acl' sans "Auth". Si oui, quelqu'un peut-il donner quelques indications?

Répondre

1

Il est possible de les utiliser séparément, au moins selon le manuel Cake PHP. Tant que vous pouvez lier vos utilisateurs authentifiés à un ARO dans la base de données, cela devrait fonctionner. Vous pouvez voir quelques-unes des bases sur CakePHP ACL ici: http://book.cakephp.org/2.0/en/core-libraries/components/access-control-lists.html et voici un tutoriel décent sur la configuration ACL: http://bakery.cakephp.org/articles/view/user-permissions-and-cakephp-acl

Si vous n'avez pas vos utilisateurs dans la base de données qui le rend un peu plus compliqué. Tant que vous pouvez récupérer un ARO qui a les autorisations requises après la connexion, vous devriez être OK.

0

Oui c'est possible - tant que vous liez vos comptes utilisateur avec ACL, tout devrait bien se passer. Supposons que vos utilisateurs se connectent en utilisant leur adresse e-mail et leur mot de passe, votre table ARO dans le champ alias peut contenir l'adresse e-mail et foreign_id pointant vers l'ID de votre table users.

Une fois que vous avez tous les ACOs en place la vérification des autorisations peut être fait en utilisant

$res = $this->Acl->check(
     $us, // user alias (e-mail) 
     $this->name, // name of the controller 
     $privilege // privilege i.e. 'read' or '*' 
     ); 
    return $res; 

appelé dans votre beforeFilter de AppController

Questions connexes