Bonjour,

En suivant les tutoriel sur cakephp, j'ai un menu pour mon projet et je souhaiterais dans le cas d'une connexion d'un utilisateur que le lien administration ne s'affiche pas.
Dans ma base de donnée j'ai un champs : role (user ou admin)

ci dessous mon menu

<?php $pages = $this->requestAction(array('controller'=>'pages', 'action'=>'menu','admin'=>false)); ?>
            <li><?php echo $this->Html->link('News',array('controller'=>'posts','action'=>'index'));?></li>
            <li><?php echo $this->Html->link('Diverstissement',array('controller'=>'games','action'=>'index'));?></li>
            <li><?php echo $this->Html->link('Galerie',array('controller'=>'galleries','action'=>'index'));?></li>
        <?php if(AuthComponent::user('id')):?>
            <li><?php echo $this->Html->link('Mon compte',array('controller'=>'users','action'=>'profil','admin'=>false));?></li>       

            <li><?php echo $this->Html->link("administration",array('controller'=>'posts','action'=>'index','admin'=>false));?></li>

            <li><?php echo $this->Html->link("Se déconnecter",array('controller'=>'users','action'=>'logout'));?></li>

        <?php else:?>
            <li><?php echo $this->Html->link("S'inscrire",array('controller'=>'users','action'=>'signup'));?></li>
            <li><?php echo $this->Html->link("Se connecter",array('controller'=>'users','action'=>'login'));?></li>
        <?php endif ;?>

comment je pourrais faire.

Pour l'instant que ce soit un user ou admin les lien s'affiche par contre on,peux pas acceder a partir de celui-ci

Je veux masqué ce lien :
Si c'est un user : le lien administration ne doit pas s'afficher
si c'est un admin : le lien s'affiche

merci de votre aide

Cafreunion

7 réponses


Digikube
Réponse acceptée

Tu peux utiliser :

<?php if(AuthComponent::user('role') == 'admin') { ?>
ker0x
Réponse acceptée

Rajoute simplement une condition sur ton lien d'administration :

<?php if(AuthComponent::user('role') == 'admin'): ?>
    <li><?php echo $this->Html->link("administration",array('controller'=>'posts','action'=>'index','admin'=>false));?></li>
<?php endif; ?>

Bien sur, cette solution suppose que tu aies un champ role dans ta table users !

Re,

J'ai déja cette ligne qui vérifié s'il y a une identification

<?php if(AuthComponent::user('id')):?>

Est t'il possible de mettre une deuxième condition et comment

Merci de votre réponse

Cafreunion

Bonjour

if( (cond1) && (cond2) && (cond3) ) {
...
}

on passe dans le if si les 3 conditions sont réalisés en même temps (ET logique)

Si tu veux le "ou logique") le symbole c'est ||

if( (cond1) || (cond2) ) {
...
}

Je sais pas si cela répond à ta question ..

cordialement

Antho

Bonjour, Merci de votre régonse mais j'ai déja un If qui test si la personne est identifié voir ci-dessous [code]<?php if(AuthComponent::user('id')):?> code] Je voulais inclure une condition qui se base aussi sur le rôle de l'utilisateur, comme j'utilise le composant AUTH je vois pas trop comment le faire. Dois-je intégré la seconde condition dasn AUTH ou faire autrement A ce niveau je vois pas trop comment proceder a part de faire deux menu un pour les utilisateur normaux et l'autre pour l'administrateur. Ce qui dupliquera mon menu ce qui pourais me donner un truc de ce genre [code]<?php <?php $pages = $this->requestAction(array('controller'=>'pages', 'action'=>'menu','admin'=>false)); ?>

  • <?php echo $this->Html->link('News',array('controller'=>'posts','action'=>'index'));?>
  • <?php echo $this->Html->link('Diverstissement',array('controller'=>'games','action'=>'index'));?>
  • <?php echo $this->Html->link('Galerie',array('controller'=>'galleries','action'=>'index'));?>
    <?php if(AuthComponent::user('id')):?><if user><?php echo $this->Html->link('Mon compte',array('controller'=>'users','action'=>'profil','admin'=>false));?>

    }else{

    <li>
    <?php echo $this->Html->link("administration",array('controller'=>'posts','action'=>'index','admin'=>false));?></li>
    }

    <li>
    <?php echo $this->Html->link("Se déconnecter",array('controller'=>'users','action'=>'logout'));?></li>

    <?php else:?>

<li>
<?php echo $this->Html->link("S'inscrire",array('controller'=>'users','action'=>'signup'));?></li>

<li>
<?php echo $this->Html->link("Se connecter",array('controller'=>'users','action'=>'login'));?></li>

<?php endif ;?>
?>[code]

Pour l'instant j'ai pas pu tester car je suis au taf

Merci de votre aide

Cafreunion

</if>

Bonjour, t'utilise la session aussi?

Bonjour,

Merci pour cette réponse c'es justement ce que je voulais

Cafreunion