Bonjour,
Je suis en train de mixé deux tutos, celui du jour 4 cakePHP pour sécurisé le backoffice et celui la création d'un l'espace membre en cakePHP.
Dans le premier j'ai des rôles avec leur level : membre et admin et pas dans le second.
Dans le second, on met dans le menu :

<?php if(AuthComponent::user('id')): ?>
      <li><?php echo $this->Html->link("Se déconnecter",'/users/logout'); ?></li>
      <?php else: ?>   
      <li><?php echo $this->Html->link("Se connecter",array('action'=>'login','controller'=>'users')); ?></li>   
      <?php endif; ?>

pour faire apparaître les liens selon si l'utilisateur est connecté ou non.
Je voudrais faire la même chose avec une condition en plus, par exemple faire apparaître un lien vers /admin si l'utilisateur est connecté ayant comme role = admin. S'il est connecté en ayant comme rôle = membre, le lien n'apparaît pas et de même si personne n'est connecté.
Comment puis je faire cela ?
Cela me permettra aussi plus tard dans mes pages d'avoir des liens que je serais seul à voir en tant qu'admin et non en membre.
Merci de votre aide.

3 réponses


zenkiai
Auteur
Réponse acceptée

Yop trouvé,à force je comprends de plus en plus comment cela fonctionne. En plus c'était tout bête.

<?php if(AuthComponent::user('role') == 'admin'): ?>
    <li><a href="/admin">Administration</a></li>
<?php endif; ?>

A@

Tu as un champs role ?

zenkiai
Auteur

Oui dans le tuto jour 4, on met un champ rôle membre et admin avec un level pour chaque rôle.
En suivant ton tuto j'ai réussi a crée des utilisateurs membres, à la différence que lorsque je me loggue je suis dirigé vers home
et non vers l'admin. J'essaye en ce moment de créer un champ lors de l'inscription d'un membre, champ caché mais qui donnerais par défaut directement le rôle = membre(après je peux le modifier dans mon admin si besoin). Seulement j'aimerais que certaine partie de mes pages, pas forcément préfixé soit interdite et même caché par les non inscrit et les membres. Ceci étant, je m'y prend peut être mal ? Je ne sais pas si ma méthode est bonne. J'essaye de faire coïncider ces deux tutos. Si tu as besoin d'un morceau d'un code pour m'aider, je te le post.
Merci