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

Références officielles

Bouton retour en haut de la page