current_user_can()
Définition : current_user_can() vérifie si l’utilisateur courant possède une capacité WordPress donnée. Elle peut contrôler une autorisation générale ou une permission portant sur un contenu précis, selon les arguments transmis.
Terminologie
Terme officiel : current_user_can()
Autres appellations : Contrôle des capacités
À quoi cela sert
Elle permet aux extensions de vérifier les droits réels avant d’afficher des opérations sensibles, modifier des données ou autoriser une fonctionnalité réservée.
Comment cela fonctionne
Pour certaines capacités dites métacapacités, WordPress tient compte de l’objet concerné et traduit le contrôle en capacités élémentaires. La fonction renvoie true ou false ; elle ne réalise aucune opération elle-même.
Dans quel contexte l’utiliser
À appeler dans les traitements serveur avant de modifier un article, des options, des utilisateurs ou des ressources protégées.
Exemple concret
Une action de correction d’une fiche n’est accessible qu’aux comptes autorisés à modifier précisément cette publication.
Exemple de code commenté
Extrait pédagogique PHP pour extension WordPress : adapter au contexte et tester sur un environnement de développement avant tout usage.
<?php
$post_id = 123; // Exemple dans un traitement identifié.
if ( ! current_user_can( 'edit_post', $post_id ) ) {
wp_die( 'Action non autorisée.', '', array( 'response' => 403 ) );
}
// Poursuivre ensuite avec la vérification de nonce
// et le contrôle des données soumises.
Explication pas à pas de l’exemple
1. La fonction contrôle la métacapacité edit_post pour un contenu donné. 2. L’accès est refusé si le résultat est false. 3. Le traitement reste à compléter avec nonce et validation avant toute écriture.
Résultat attendu
Un utilisateur sans permission ne peut pas atteindre les étapes de modification de l’exemple.
Mise en pratique guidée
Créer deux comptes de test avec des capacités différentes. Sur le même article, exécuter le contrôle edit_post avec son identifiant : le résultat peut varier selon le propriétaire, le statut et les permissions. Ne pas conclure qu’un utilisateur « connecté » peut modifier tous les contenus. Compléter ensuite l’action avec la vérification de nonce.
Précautions et limites
Un nonce valide ne remplace jamais le contrôle de droits. Préférer les capacités aux comparaisons directes avec les noms de rôles.
À ne pas confondre
current_user_can() autorise selon les capacités ; is_user_logged_in() ne vérifie que l’authentification ; wp_verify_nonce() vérifie un jeton lié à une action.
Visualisation du mécanisme
Lecture séquentielle : Deux contrôles indépendants : nonce de formulaire et capacité utilisateur.
Schéma textuel du déroulement : son exécution dépend du contexte et des contrôles décrits ci-dessus.
Termes associés
- wp_verify_nonce()
- WP_User
- Meta Box
