Bonjour à toutes et à tous,
J'ai choisi dans la parti administration de mon site d'utiliser les ACL car je choisi les actions autoriser par groupe. Cependant j'aimerais savoir comment tester si l'utilisateur connecté est autorisé ou pas a voir cette action y a-t-il une fonction dans CakePHP pour ça ?
Merci d'avance,
Aiftea.
Pour ceux que ça intéresse j'ai trouvé quelque chose d'intéressant :
if (!$this->Acl->check($acl_user, $acl_routes)) {
// Vérifie si un utilisateur a accès à cette url.
}
Et ben par exemple je crée un membre qui est un simple membre et j'essaye d'accéder à des vue pour les modo ou admin et je vois si ACL te renvoi bien et pour les vue membre tu teste comme si tu étais un simple visiteur.
Moi je fais comme ça mais si y a une autre manière ça m'intéresserais bien de savoir :)
Ah oui moi aussi a ce moment là mais avec un peu plus de précision j'aimerais dans une vue tester si un utilisateur a accès a telle ou telle action pour pouvoir afficher ou non le lien vers cette action.
Salut,
Moi, dans l'action de ma vue je fais un "if(){}" et je test si il est connecté avec la session ensuite je regarde quel type de membre c'est (pour ça il faut avoir un champs approprié dans ta BDD) et selon sa fonction il a accès ou pas à la vue.
A savoir que chaque action a un niveau (1,2,3 etc) et les utilisateurs de niveau 1 n'auront pas accès aux actions de niveaux 2 ou 3 :)
Pour mieux comprendre je te propose le dernier tuto de la série "Développer un site avec cakephp" c'est le "jour 4". C'est un tuto de grafikart :)
Voilà à bientôt.
CDT Alban van Rijsewijk
T'as pas un bout de code à me montrer dans ta vue car je ne vois pas comment tester ça ...
<?php if(AuthComponent::user('id')) : ?>
<ul class="pull-right">
<?php if(AuthComponent::user('group_id') == '1') : ?>
<li>
<?php echo $this->Html->link("Administration", array('controller' => 'pages', 'action' => 'home', 'admin' => true, 'plugin' => false)); ?>
</li>
<?php endif; ?>
<li>
<?php echo $this->Html->link("Mon compte", array('controller' => 'users', 'action' => 'account', 'admin' => false, 'plugin' => false)); ?>
</li>
<li>
<?php echo $this->Html->link("Me déconnecter", array('controller' => 'users', 'action' => 'logout', 'plugin' => false)); ?>
</li>
</ul>
<?php endif; ?>
Ah oui tu teste pas les ACL tu test l'id du groupe j'avais pas compris comme ça pardon.