check user admin

Par Houdette, il y a 10 ans


Bonjour,

je suis débutante sur cake php 3 et je veux savoir quelle est la meilleure syntaxe pour donner droit de modification à l'administrateur tout seul et pas à un utilisateur normal .
merci de bien vouloir m'aider

5 réponses

flan, il y a 10 ans

Pour aborder le problème sans vraiment parler directement de CakePHP, tu as plusieurs choix :

  • Considérer que l'administrateur a toujours le même nom et qu'il n'y en a qu'un. Tu as juste à vérifier que l'utilisateur connecté a bien administrateur comme nom avant d'effectuer l'action. Si c'est géré par le biais des sessions et pas directement des cookies (hors JWT), ça ne sera pas falsifiable.
  • Créer des groupes d'utilisateurs. Tu peux créer des groupes d'utilisateurs (1:n entre Utilisateur et Groupe). Tu as juste à vérifier le groupe de l'utilisateur (administrateurs ? rédacteurs ?) avant d'effectuer l'action. Tu dois le stocker dans la session ou alors le déterminer en fonction du pseudo de la personne, par le biais d'une requête à ta base de données. Tu auras aussi à assigner les utilisateurs à des groupes.
  • Créer des permissions (pour groupes ou utilisateurs). Tu peux créer une sorte de matrice de permissions pour chaque groupe ou chaque utilisateur. Tu devras alors vérifier que l'utilisateur a la permission d'effectuer l'action (par exemple $user->allowedTo('ecrire_article')). C'est la solution que je conseillerai (la plus modulaire possible !) mais elle nécessite un petit peu plus de travail ! L'avantage est que tu pourras plus finement gérer qui peut faire quoi depuis ton backend.
Houdette, il y a 10 ans

Merci flan mais j'ai vraiment besoin de plus de détail sur la création des permissions parce que je suis débutante

flan, il y a 10 ans

Tu as déjà une table pour tes utilisateurs et tes groupes ou pas encore ?

Houdette, il y a 10 ans

oui j'ai une table user j'ai 2 types utilisateur standard et admin

flan, il y a 10 ans

Si tu débutes vraiment, base-toi sur le nom de l'utilisateur connecté pour gérer tes permissions !
Sinon, tu peux regarder du côté de CakeACL pour avoir un module de gestion des permissions.