Dokumentation · Fehlerbehebung

Berechtigungsfehler

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

Wann Sie dieses Dokument verwenden sollten

Lesen Sie dieses Dokument, wenn:

  • Ein Benutzer die Meldung "Keine Berechtigung" oder "Sie haben keine Berechtigung, diese Aktion auszuführen" erhält, wenn er den Plugin-Admin verwendet.
  • Ein Benutzer das Plugin-Admin-Menü 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 (Log) erscheinen.

Übersicht

Das Plugin verwendet zwei unterschiedliche Zugriffsebenen:

  1. Plugin-Verwaltungsberechtigung (manage_as24_imports) — steuert den Zugriff auf die Plugin-Admin-Oberfläche (Einstellungen, Importer, Tools, Logs, Market Hub, PDF Manager usw.) und alle administrativen AJAX-Aktionen. Diese Berechtigung wird ausschliesslich der integrierten Rolle administrator gewährt.

  2. Custom Post Type (CPT) Berechtigungen — ein Satz von WordPress Beitragsberechtigungen für den Beitragstyp 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 gewährt.

Redaktoren, Autoren und Abonnenten haben standardmässig keinen Zugriff auf eine der beiden Ebenen. Die integrierte Rolle editor von WordPress erhält diese Berechtigungen ebenfalls nicht.

Referenz der Rollen und Berechtigungen

Plugin-Verwaltungsberechtigung

BerechtigungGewährt fürSteuert
manage_as24_importsAdministratorAlle Plugin-Admin-Seiten, Einstellungen, Import-Trigger, Log-Zugriff, AJAX-Aktionen, Diagnose-Export

Jeder Admin-AJAX-Handler und Admin-POST-Handler im Plugin überprü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 der Rolle 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 Listenansicht)
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 WordPress-Rolle 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 in der Standard-Beitragsliste verwalten, haben jedoch keinen Zugriff auf die Plugin-Admin-Seiten, 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 zugreifen kann, überprüfen Sie Folgendes:

  1. Melden Sie sich als WordPress-Administrator an.
  2. Rufen Sie den Plugin-Admin 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 der Admin-Seite über plugins_loaded, jedoch nur einmal pro Berechtigungsversion und nur für Benutzer, die über manage_options verfügen. Um die erneute Ausführung zu erzwingen:

  1. Melden Sie sich als WordPress-Administrator an.
  2. Deaktivieren Sie das Plugin unter Plugins.
  3. Aktivieren Sie das Plugin wieder. 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 zu Benutzer.
  2. Öffnen Sie das Profil des betroffenen Benutzers.
  3. Bestätigen Sie, dass die Rolle des Benutzers auf Administrator (für vollen Plugin-Verwaltungszugriff) oder AS24 Editor (nur für 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 Berechtigungsverwaltungs-Plugin (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 die Änderungen und testen Sie erneut.

Schritt 5: Besonderheiten bei Multisite

Auf einer WordPress-Multisite-Installation:

  • Plugin-Berechtigungen werden in der Option wp_user_roles der Datenbanktabelle jeder Unterwebsite gespeichert.
  • Wenn das Plugin netzwerkweit aktiviert ist, läuft die Berechtigungsmigration im Kontext der aktuellen Website nur dann, 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-Bereitstellungen freigeben.

Betriebliche Hinweise

  • Berechtigungszuweisungen werden in der Rollen-Option WordPress (wp_user_roles) 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. über ein Rollenverwaltungs-Plugin oder einen Datenbank-Reset), wird sie durch Reaktivierung des Plugins neu erstellt.
  • Alle Plugin-Admin-AJAX-Endpunkte erfordern sowohl die korrekte Berechtigung als auch eine gültige WordPress-Nonce. Eine "Keine Berechtigung"-Antwort auf eine AJAX-Anfrage kann entweder auf eine fehlende Berechtigung oder eine abgelaufene Nonce hinweisen (z. B. nach einer langen Sitzung oder einer im Cache gespeicherten Seite ohne Nonce-Regenerierung).
  • Die Funktion maybe_upgrade_caps() läuft auf dem Hook plugins_loaded im Admin-Kontext. Sie prüft eine gespeicherte Versionsnummer und läuft nur, 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 UrsachePrüfung
"Keine Berechtigung" 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_importsWeisen Sie die Administrator-Rolle zu oder reaktivieren Sie das Plugin
AS24 Editor kann die Fahrzeug-Listenansicht nicht sehenCPT-Berechtigungen fehlen in der Rolle as24ci_editorReaktivieren Sie das Plugin; prüfen Sie die Rolle im Berechtigungs-Plugin
AS24 Editor sieht Fahrzeuge, aber nicht den Plugin-AdminErwartetes 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 BenutzersReaktivieren Sie das Plugin oder fügen Sie die Berechtigungen manuell hinzu
Berechtigungen nach Migration oder Website-Klonen verlorenRollen-Optionen wurden zurückgesetztDeaktivieren und reaktivieren Sie das Plugin

Zugehörige Dokumente