Documentation · Dépannage

Erreurs de permission

Ce document couvre les erreurs d'accès et de permissions qui peuvent empêcher les administrateurs ou d'autres utilisateurs d'accéder aux fonctionnalités de l'extension ADP Car Market Hub, d'importer des véhicules ou de gérer les annonces.

Quand utiliser ce document

Lisez ce document lorsque :

  • Un utilisateur reçoit un message « Accès refusé » ou « Vous n'avez pas l'autorisation d'effectuer cette action » lors de l'utilisation de l'administration de l'extension.
  • Un utilisateur ne peut pas voir le menu d'administration de l'extension ou des onglets d'administration spécifiques.
  • Un utilisateur ne peut pas modifier, publier ou supprimer des publications de véhicules (as24ci_car).
  • Des erreurs liées aux permissions apparaissent dans le journal de l'extension après une mise à jour ou un changement de rôle.

Aperçu

L'extension utilise deux couches d'accès distinctes :

  1. Permission de gestion de l'extension (manage_as24_imports) — contrôle l'accès à l'interface d'administration de l'extension (Réglages, Importateur, Outils, Journaux, Market Hub, PDF Manager, etc.) et à toutes les actions AJAX administratives. Cette permission est accordée exclusivement au rôle natif administrator.

  2. Permissions de Type de Publication Personnalisé (CPT) — un ensemble de permissions de publication WordPress pour le type de publication as24ci_car qui contrôle qui peut lire, créer, modifier, publier et supprimer des publications de véhicules. Ces permissions sont accordées à la fois au rôle administrator et au rôle personnalisé AS24 Editor créé par l'extension.

Les Éditeurs, Auteurs et Abonnés n'ont aucun accès à l'une ou l'autre de ces couches par défaut. Le rôle natif WordPress editor ne reçoit pas non plus ces permissions.

Référence des rôles et des permissions

Permission de gestion de l'extension

PermissionAccordée àContrôle
manage_as24_importsAdministrateurToutes les pages d'administration de l'extension, les réglages, les déclencheurs d'importation, l'accès aux journaux, les actions AJAX, l'exportation des diagnostics

Chaque gestionnaire AJAX d'administration et gestionnaire POST d'administration de l'extension vérifie current_user_can('manage_as24_imports') avant l'exécution. Tout utilisateur ne disposant pas de cette permission reçoit une réponse 403 Permission denied.

Permissions CPT

Les permissions suivantes sont attribuées aux rôles administrator et as24ci_editor :

PermissionDescription
read_as24ci_carLire une publication de véhicule individuelle
edit_as24ci_carModifier une publication de véhicule individuelle
delete_as24ci_carSupprimer une publication de véhicule individuelle
read_private_as24ci_carsLire les publications de véhicules privées
edit_as24ci_carsModifier les publications de véhicules (accès au tableau de liste)
edit_others_as24ci_carsModifier les publications de véhicules d'autres utilisateurs
edit_published_as24ci_carsModifier les publications de véhicules publiées
publish_as24ci_carsPublier des publications de véhicules
delete_as24ci_carsSupprimer des publications de véhicules
delete_others_as24ci_carsSupprimer les publications de véhicules d'autres utilisateurs
delete_published_as24ci_carsSupprimer les publications de véhicules publiées

Rôle personnalisé : AS24 Editor (as24ci_editor)

L'extension crée un rôle personnalisé WordPress nommé AS24 Editor (identifiant : as24ci_editor) lors de l'activation. Ce rôle accorde toutes les permissions CPT répertoriées ci-dessus mais n'accorde pas manage_as24_imports. Les AS24 Editors peuvent gérer les publications de véhicules à partir du tableau de liste standard des publications, mais ne peuvent pas accéder aux pages d'administration de l'extension, à l'importation ou modifier les réglages.

Étapes de diagnostic

Étape 1 : Confirmer que les permissions ont été attribuées

Les permissions sont attribuées lors de l'activation de l'extension et mises à jour via un système de migration interne. Si un utilisateur ne peut pas accéder à l'administration de l'extension, vérifiez :

  1. Connectez-vous en tant qu'Administrateur WordPress.
  2. Allez dans l'administration de l'extension et ouvrez l'onglet Système et aide.
  3. Vérifiez la sortie de l'état du système pour détecter d'éventuels avertissements liés aux permissions.

Si les permissions n'ont pas été attribuées (par exemple, sur une installation multisite où l'extension a été activée sur tout le réseau mais n'a jamais été exécutée dans le contexte d'administration), passez à l'Étape 2.

Étape 2 : Déclencher à nouveau la migration des permissions

L'attribution des permissions s'exécute automatiquement à chaque chargement de page d'administration via plugins_loaded, mais seulement une fois par version de permission et uniquement pour les utilisateurs qui ont manage_options. Pour forcer sa réexécution :

  1. Connectez-vous en tant qu'Administrateur WordPress.
  2. Désactivez l'extension depuis Extensions.
  3. Réactivez l'extension. Le hook d'activation appelle directement ensure_roles_and_caps().
  4. Testez si l'utilisateur concerné dispose désormais du bon accès.

Étape 3 : Vérifier le rôle de l'utilisateur

  1. Allez dans Comptes dans l'administration WordPress.
  2. Ouvrez le profil de l'utilisateur concerné.
  3. Confirmez que le rôle de l'utilisateur est défini sur Administrateur (pour un accès complet à la gestion de l'extension) ou AS24 Editor (pour la gestion CPT uniquement).
  4. Si l'utilisateur a un rôle personnalisé provenant d'une extension tierce, ce rôle peut ne pas inclure les permissions requises. Dans ce cas, un développeur doit ajouter les permissions manuellement ou utiliser une extension de gestion des permissions.

Étape 4 : Rechercher un conflit avec une extension de permissions

Si une extension de gestion des permissions (telle que Members, User Role Editor ou PublishPress Capabilities) est active :

  1. Ouvrez l'interface de l'extension de permissions.
  2. Vérifiez que la permission manage_as24_imports est attribuée au rôle administrator.
  3. Vérifiez que les permissions CPT répertoriées ci-dessus sont attribuées à la fois à administrator et à as24ci_editor.
  4. Enregistrez les modifications et testez à nouveau.

Étape 5 : Considérations relatives au multisite

Sur une installation multisite WordPress :

  • Les permissions de l'extension sont stockées dans l'option wp_user_roles de la table de base de données de chaque sous-site.
  • Si l'extension est activée sur le réseau, la migration des permissions s'exécute dans le contexte du site actuel uniquement lorsqu'un administrateur visite l'administration.
  • Un super administrateur a un accès implicite à tous les sites, mais les administrateurs ordinaires sur les sites individuels doivent avoir la permission manage_as24_imports sur leur site spécifique.

Vérifiez ce comportement dans la version actuelle de l'extension avant de publier pour des déploiements multisites.

Notes opérationnelles

  • Les attributions de permissions sont stockées dans l'option des rôles WordPress (wp_user_roles). La réinitialisation ou le remplacement de cette option (par exemple via une migration de site ou une extension de sécurité qui régénère les rôles) supprimera les permissions personnalisées de l'extension. La réactivation de l'extension les restaurera.
  • Le rôle as24ci_editor est créé une fois lors de l'activation. S'il est supprimé (par exemple via une extension de gestion des rôles ou une réinitialisation de la base de données), la réactivation de l'extension le recréera.
  • Tous les points de terminaison AJAX d'administration de l'extension nécessitent à la fois la bonne permission et un jeton de sécurité WordPress valide. Une réponse « Accès refusé » à une requête AJAX peut indiquer soit une permission manquante, soit un jeton de sécurité expiré (par exemple, après une longue session ou une page mise en cache sans régénération du jeton de sécurité).
  • La fonction maybe_upgrade_caps() s'exécute sur le hook plugins_loaded dans le contexte d'administration. Elle vérifie un numéro de version stocké et ne s'exécute que lorsqu'une migration de permissions n'a pas encore été appliquée. Après son exécution, elle met à jour la version stockée afin de ne pas s'exécuter à nouveau jusqu'à la sortie de la prochaine version de migration.

Dépannage

SymptômeCause probableVérification
« Accès refusé » sur toute action AJAX de l'extensionL'utilisateur n'a pas la permission manage_as24_importsConfirmez que l'utilisateur est Administrateur ; réactivez l'extension si nécessaire
Le menu de l'extension n'est pas visibleL'utilisateur n'a pas la permission manage_as24_importsAttribuez le rôle Administrateur ou réactivez l'extension
L'AS24 Editor ne voit pas le tableau de liste des véhiculesPermissions CPT manquantes pour le rôle as24ci_editorRéactivez l'extension ; vérifiez le rôle dans l'extension de permissions
L'AS24 Editor voit les véhicules mais pas l'administration de l'extensionComportement attendu — les AS24 Editors ne reçoivent pas manage_as24_importsAucune action requise ; c'est ainsi par conception
« Vous n'avez pas l'autorisation » lors de l'enregistrement du PDF ManagerL'utilisateur n'a pas la permission manage_as24_importsConfirmez que le rôle est Administrateur
Les publications de véhicules n'apparaissent pas dans la liste des publications WPPermissions CPT manquantes dans le rôle de l'utilisateurRéactivez l'extension ou ajoutez les permissions manuellement
Permissions perdues après une migration ou un clonage de siteLes options de rôle ont été réinitialiséesDésactivez et réactivez l'extension

Documents connexes