Bonjour,

Je suis à la recherche de la manière la plus sécurisé et plus efficace pour gérer les niveaux de permissions.

Je sais qu'il y a l'ACL et même un tutoriel, mais à ce que je vois dans les commentaires, le tutoriel vidéo n'est plus en adéquation avec la version de CakePHP actuel.

Je voudrais donc savoir votre façon de gérer les permissions sur vos site et laquelle vous recommander.

Merci d'avance.

4 réponses


Bonsoir.
Il n'y a pas vraiment de manière plus sécurisée qu'une autre et tout dépend de ton application.
Par exemple, pour un simple blog, les ACL sont loin d'être utile, tout dépend de l'ampleur de ton projet, de sa nature, de ses fonctionnalités, etc ...

Tchoupi
Auteur

J'aurais pas mal de fonctionnalité justement. Je vais surement tester les ACL pour voir mais j'en connais pas d'autres.

Bonjour,

Personnelement ce que je fais :

  • Je crée un champ "role" dans ma table "users".
  • Ensuite, lors de la requête, je récupère ce champ, sachant qu'il contient un entier (0 pour simple utilisateur, 1 pour rédacteur ou modérateur, 2 pour administrateur et 3 pour super administrateur).
  • J'insère la valeur "role" dans mon tableau $_SESSION['Auth']
  • Et ensuite, je vérifie si l'utilisateur est modérateur pas exemple par le biais d'une fonction dans ma classe Auth du type:
<?php
class Auth{
    function isLogged(){
        if(isset($_SESSION['Auth']['id']) && 'pareil pour les différents champs de la table hors mot de passe'){
            return true;
        }else{
            return false;
        }
    }

    function isModo(){
        if(Auth::isLogged() && $_SESSION['Auth']['role'] == 1){
            return true;
        }else{
            return false;
        }
    }
}
?>

En espérant avoir pu t'aider.

Les systèmes Role-Persmission ou Role-Activité sont pas mal (les users ont un role comme à dit MattGrunts, cependant il faut donner des persmissions aux roles) mais il faut ensuite vérifier les permissions d'un utilisateur avant d'accéder à une ressource et non son role.
C'est plutot bien expliquer sur cet article (en cherchant tu pourra peut-être en trouver un en français): http://lostechies.com/derickbailey/2011/05/24/dont-do-role-based-authorization-checks-do-activity-based-checks/