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.

11 réponses


Digikube
Auteur
Réponse acceptée

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.
             }

Moi je crée un utilisateur par groupe et je test s'il a droit ou pas.

Digikube
Auteur

Comment est-ce que tu test c'est ça qui m’intéresse ?

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 :)

Digikube
Auteur

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

Digikube
Auteur

Dans ce que tu me propose Albanvan il n'ya pas d'ACL si ?

Moi je fais exactement pareil pour afficher tel ou tel lien suivant le groupe

Digikube
Auteur

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; ?>
Digikube
Auteur

Ah oui tu teste pas les ACL tu test l'id du groupe j'avais pas compris comme ça pardon.