Plutôt que de décider au cas par cas si telle personne peut modifier tel contenu, une liste de contrôle d’accès formalise ces règles à l’avance : qui peut lire, qui peut écrire, qui peut supprimer, pour chaque ressource concernée. C’est un principe qui dépasse largement WordPress, présent aussi bien dans les systèmes de fichiers que dans les pare-feux réseau.
Équivalent dans WordPress
WordPress n’expose pas de liste de contrôle d’accès à proprement parler, mais construit un système équivalent avec ses rôles et capacités : chaque rôle (administrateur, éditeur, contributeur…) regroupe un ensemble de capacités précises (edit_others_posts, delete_users…), et c’est la vérification de ces capacités via current_user_can() qui joue le rôle habituellement tenu par une ACL classique.
Exemple
$role = get_role('contributeur');
$role->add_cap('upload_files'); // étend les droits du rôle
if (current_user_can('upload_files')) {
// afficher le formulaire de téléversement
}
À ne pas confondre avec
Une liste de contrôle d’accès s’applique généralement à une ressource précise (ce fichier, ce dossier), alors que le système de capacités WordPress raisonne surtout par type d’action à l’échelle du site. Des extensions spécialisées ajoutent parfois un contrôle plus fin, par exemple restreindre l’édition à certains articles précis selon leur catégorie ou leur auteur, un comportement plus proche d’une véritable ACL que ce que propose le cœur par défaut, souvent en filtrant les capacités via le hook map_meta_cap.