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
administrateurcomme 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
UtilisateuretGroupe). 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.