Dokumentation · Fehlerbehebung

Berechtigungsfehler

Dieses Dokument behandelt Zugriffs- und Berechtigungsfehler, die verhindern können, dass Administratoren oder andere Benutzer auf die Funktionen des ADP Car Market Hub-Plugins zugreifen, Fahrzeuge importieren oder Angebote verwalten.

Wann dieses Dokument zu verwenden ist

Lesen Sie dieses Dokument, wenn:

  • Ein Benutzer die Meldung „Zugriff verweigert“ oder „Sie haben keine Berechtigung, diese Aktion auszuführen“ erhält, wenn er den Plugin-Admin-Bereich nutzt.
  • Ein Benutzer das Admin-Menü des Plugins oder bestimmte Admin-Tabs nicht sehen kann.
  • Ein Benutzer Fahrzeug-Beiträge (as24ci_car) nicht bearbeiten, veröffentlichen oder löschen kann.
  • Nach einem Update oder Rollenwechsel berechtigungsbezogene Fehler im Plugin-Protokoll erscheinen.

Übersicht

Das Plugin verwendet zwei unterschiedliche Zugriffsebenen:

  1. Plugin-Verwaltungsberechtigung (manage_as24_imports) — steuert den Zugriff auf die Admin-Oberfläche des Plugins (Einstellungen, Importer, Tools, Protokolle, Market Hub, PDF Manager usw.) und alle administrativen AJAX-Aktionen. Diese Berechtigung wird ausschließlich der integrierten Rolle administrator zugewiesen.

  2. Custom Post Type (CPT) Berechtigungen — ein Satz von WordPress Beitragsberechtigungen für den Inhaltstyp as24ci_car, die steuern, wer Fahrzeug-Beiträge lesen, erstellen, bearbeiten, veröffentlichen und löschen darf. Diese Berechtigungen werden sowohl der Rolle administrator als auch der vom Plugin erstellten benutzerdefinierten Rolle AS24 Editor zugewiesen.

Redakteure, Autoren und Abonnenten haben standardmäßig keinen Zugriff auf eine der beiden Ebenen. Die integrierte WordPress-Rolle editor (WordPress) erhält diese Berechtigungen ebenfalls nicht.

Referenz der Rollen und Berechtigungen

Plugin-Verwaltungsberechtigung

BerechtigungZugewiesen anSteuert
manage_as24_importsAdministratorAlle Plugin-Admin-Seiten, Einstellungen, Import-Trigger, Protokollzugriff, AJAX-Aktionen, Diagnose-Export

Jeder Admin-AJAX-Handler und Admin-POST-Handler im Plugin prüft current_user_can('manage_as24_imports') vor der Ausführung. Jeder Benutzer ohne diese Berechtigung erhält eine 403 Permission denied-Antwort.

CPT-Berechtigungen

Die folgenden Berechtigungen sind sowohl den Rollen administrator als auch as24ci_editor zugewiesen:

BerechtigungBeschreibung
read_as24ci_carEinen einzelnen Fahrzeug-Beitrag lesen
edit_as24ci_carEinen einzelnen Fahrzeug-Beitrag bearbeiten
delete_as24ci_carEinen einzelnen Fahrzeug-Beitrag löschen
read_private_as24ci_carsPrivate Fahrzeug-Beiträge lesen
edit_as24ci_carsFahrzeug-Beiträge bearbeiten (Zugriff auf die Listen-Tabelle)
edit_others_as24ci_carsFahrzeug-Beiträge anderer Benutzer bearbeiten
edit_published_as24ci_carsVeröffentlichte Fahrzeug-Beiträge bearbeiten
publish_as24ci_carsFahrzeug-Beiträge veröffentlichen
delete_as24ci_carsFahrzeug-Beiträge löschen
delete_others_as24ci_carsFahrzeug-Beiträge anderer Benutzer löschen
delete_published_as24ci_carsVeröffentlichte Fahrzeug-Beiträge löschen

Benutzerdefinierte Rolle: AS24 Editor (as24ci_editor)

Das Plugin erstellt während der Aktivierung eine benutzerdefinierte Rolle (WordPress) namens AS24 Editor (Slug: as24ci_editor). Diese Rolle gewährt alle oben aufgeführten CPT-Berechtigungen, gewährt jedoch nicht manage_as24_imports. AS24 Editors können Fahrzeug-Beiträge über die Standard-Beitragsliste verwalten, haben jedoch keinen Zugriff auf die Admin-Seiten des Plugins, den Import oder die Einstellungen.

Diagnoseschritte

Schritt 1: Bestätigen, dass Berechtigungen zugewiesen wurden

Berechtigungen werden während der Plugin-Aktivierung zugewiesen und über ein internes Migrationssystem aktualisiert. Wenn ein Benutzer nicht auf den Plugin-Admin-Bereich zugreifen kann, überprüfen Sie Folgendes:

  1. Melden Sie sich als WordPress-Administrator (WordPress) an.
  2. Rufen Sie den Plugin-Admin-Bereich auf und öffnen Sie den Tab System & Hilfe.
  3. Überprüfen Sie die Systemstatus-Ausgabe auf Warnungen bezüglich Berechtigungen.

Wenn die Berechtigungen nicht zugewiesen wurden (z. B. bei einer Multisite-Installation, bei der das Plugin netzwerkweit aktiviert, aber nie im Admin-Kontext ausgeführt wurde), fahren Sie mit Schritt 2 fort.

Schritt 2: Die Berechtigungsmigration erneut auslösen

Die Berechtigungszuweisung läuft automatisch bei jedem Laden einer Admin-Seite über plugins_loaded, jedoch nur einmal pro Berechtigungsversion und nur für Benutzer, die über manage_options verfügen. Um die Ausführung zu erzwingen:

  1. Melden Sie sich als WordPress-Administrator (WordPress) an.
  2. Deaktivieren Sie das Plugin unter Plugins.
  3. Reaktivieren Sie das Plugin. Der Aktivierungs-Hook ruft ensure_roles_and_caps() direkt auf.
  4. Testen Sie, ob der betroffene Benutzer nun den korrekten Zugriff hat.

Schritt 3: Die Rolle des Benutzers überprüfen

  1. Gehen Sie im WordPress-Admin-Bereich (WordPress) zu Benutzer.
  2. Öffnen Sie das Profil des betroffenen Benutzers.
  3. Bestätigen Sie, dass die Rolle des Benutzers auf Administrator (für den vollen Zugriff auf die Plugin-Verwaltung) oder AS24 Editor (nur für die CPT-Verwaltung) eingestellt ist.
  4. Wenn der Benutzer eine benutzerdefinierte Rolle von einem Drittanbieter-Plugin hat, enthält diese Rolle möglicherweise nicht die erforderlichen Berechtigungen. In diesem Fall muss ein Entwickler die Berechtigungen manuell hinzufügen oder ein Plugin zur Berechtigungsverwaltung verwenden.

Schritt 4: Auf kollidierende Berechtigungs-Plugins prüfen

Wenn ein Plugin zur Berechtigungsverwaltung (wie Members, User Role Editor oder PublishPress Capabilities) aktiv ist:

  1. Öffnen Sie die Benutzeroberfläche des Berechtigungs-Plugins.
  2. Überprüfen Sie, ob die Berechtigung manage_as24_imports der Rolle administrator zugewiesen ist.
  3. Überprüfen Sie, ob die oben aufgeführten CPT-Berechtigungen sowohl administrator als auch as24ci_editor zugewiesen sind.
  4. Speichern Sie alle Änderungen und testen Sie erneut.

Schritt 5: Besonderheiten bei Multisite-Installationen

Bei einer WordPress-Multisite-Installation (WordPress):

  • Plugin-Berechtigungen werden in der Option wp_user_roles der Datenbanktabelle jeder Unterwebsite gespeichert.
  • Wenn das Plugin netzwerkweit aktiviert ist, wird die Berechtigungsmigration im Kontext der aktuellen Website nur dann ausgeführt, wenn ein Administrator den Admin-Bereich besucht.
  • Ein Super-Administrator hat impliziten Zugriff auf alle Websites, aber reguläre Administratoren auf einzelnen Websites müssen die Berechtigung manage_as24_imports auf ihrer spezifischen Website besitzen.

Überprüfen Sie dieses Verhalten in der aktuellen Plugin-Version, bevor Sie es für Multisite-Umgebungen bereitstellen.

Betriebshinweise

  • Berechtigungszuweisungen werden in der WordPress-Rollenoption (wp_user_roles, WordPress) gespeichert. Das Zurücksetzen oder Ersetzen dieser Option (z. B. durch eine Website-Migration oder ein Sicherheits-Plugin, das Rollen neu generiert) entfernt die benutzerdefinierten Berechtigungen des Plugins. Eine Reaktivierung des Plugins stellt diese wieder her.
  • Die Rolle as24ci_editor wird einmalig bei der Aktivierung erstellt. Wenn sie gelöscht wird (z. B. durch ein Plugin zur Rollenverwaltung oder einen Datenbank-Reset), wird sie durch die Reaktivierung des Plugins neu erstellt.
  • Alle Admin-AJAX-Endpunkte des Plugins erfordern sowohl die korrekte Berechtigung als auch eine gültige WordPress-Nonce (WordPress). Eine „Zugriff verweigert“-Antwort auf eine AJAX-Anfrage kann entweder auf eine fehlende Berechtigung oder eine abgelaufene Nonce hinweisen (z. B. nach einer langen Sitzung oder einer Seite, die ohne Nonce-Regenerierung im Cache gespeichert wurde).
  • Die Funktion maybe_upgrade_caps() wird über den Hook plugins_loaded im Admin-Kontext ausgeführt. Sie prüft eine gespeicherte Versionsnummer und wird nur ausgeführt, wenn eine Berechtigungsmigration noch nicht angewendet wurde. Nach der Ausführung aktualisiert sie die gespeicherte Version, sodass sie bis zur Veröffentlichung der nächsten Migrationsversion nicht erneut ausgeführt wird.

Fehlerbehebung

SymptomWahrscheinliche UrsacheÜberprüfung
„Zugriff verweigert“ bei einer Plugin-AJAX-AktionDem Benutzer fehlt manage_as24_importsBestätigen Sie, dass der Benutzer Administrator ist; reaktivieren Sie das Plugin bei Bedarf
Plugin-Menü nicht sichtbarDem Benutzer fehlt manage_as24_importsAdministrator-Rolle zuweisen oder Plugin reaktivieren
AS24 Editor kann die Fahrzeug-Listen-Tabelle nicht sehenCPT-Berechtigungen fehlen in der Rolle as24ci_editorPlugin reaktivieren; Rolle im Berechtigungs-Plugin prüfen
AS24 Editor kann Fahrzeuge sehen, aber nicht den Plugin-Admin-BereichErwartetes Verhalten — AS24 Editors erhalten kein manage_as24_importsKeine Aktion erforderlich; dies ist so vorgesehen
„Sie haben keine Berechtigung“ beim Speichern im PDF ManagerDem Benutzer fehlt manage_as24_importsBestätigen Sie, dass die Rolle Administrator ist
Fahrzeug-Beiträge erscheinen nicht in der WP-BeitragslisteCPT-Berechtigungen fehlen in der Rolle des BenutzersPlugin reaktivieren oder Berechtigungen manuell hinzufügen
Berechtigungen nach Migration oder Website-Klonen verlorenRollen-Optionen wurden zurückgesetztDeaktivieren Sie das Plugin und aktivieren Sie es erneut

Verwandte Dokumente