2010-01-15 6 views

Répondre

1

Je vous recommande de profiter de la isAuthoriz Fonction ed() que vous pouvez ajouter au contrôleur ou au modèle. Définissez AuthComponent :: authorize = {'controller' | '' model '} pour choisir ce que vous voulez utiliser.

Ensuite, vous écrivez une fonction isAuthorized() dans le modèle | controller qui renvoie t/f sur auth/not auth pour chaque action. Vous pouvez également effectuer une vérification au niveau de la ligne, si vous le souhaitez. Maintenant, si à la place vous vouliez juste rediriger un admin vers leurs pages correctes sur login/etc, vous pouvez ajouter du code à la méthode beforeFilter() (soit dans un contrôleur spécifique, soit dans app_controller.php). Dans ce cas, vérifiez simplement si la valeur d'administration définie par l'application est la même que la valeur d'administration de l'utilisateur (qui sera stockée par AuthComponent dans les données de session, accessible par $ this-> Auth-> User()). Ensuite, acheminez correctement vers les zones admin/non admin.

0

isAuthorized() est le meilleur choix. Je recommanderais de séparer les utilisateurs de leurs groupes dans la base de données, donc User habtm Group ... mais ce n'est pas un problème si l'utilisateur appartient à un seul et unique groupe Je ne recommande pas ACL pour les non-niveau d'enregistrement système d'autorisations

+0

Oui, je veux un simple auth seulement. Je vous remercie....... – assaqqaf

0

Juste quelque chose à faire attention, mais si quelque chose n'a pas changé récemment, CakePHP ne supporte pas les types de colonnes ENUM. Votre meilleur pari est un modèle de groupe (table mysql de groupes) et un champ group_id dans la table des utilisateurs. Ensuite, vous pouvez $ hasOne = array ('Group'); dans votre modèle d'utilisateur.

De là, vous pouvez suivre une d'un grand nombre de tutoriels de contrôle d'accès de groupe pour le composant Auth via une recherche google facile pour « CakePHP Auth User Group »

Questions connexes