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:
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 Rolleadministratorzugewiesen.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 Rolleadministratorals auch der vom Plugin erstellten benutzerdefinierten RolleAS24 Editorzugewiesen.
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
| Berechtigung | Zugewiesen an | Steuert |
|---|---|---|
manage_as24_imports | Administrator | Alle 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:
| Berechtigung | Beschreibung |
|---|---|
read_as24ci_car | Einen einzelnen Fahrzeug-Beitrag lesen |
edit_as24ci_car | Einen einzelnen Fahrzeug-Beitrag bearbeiten |
delete_as24ci_car | Einen einzelnen Fahrzeug-Beitrag löschen |
read_private_as24ci_cars | Private Fahrzeug-Beiträge lesen |
edit_as24ci_cars | Fahrzeug-Beiträge bearbeiten (Zugriff auf die Listen-Tabelle) |
edit_others_as24ci_cars | Fahrzeug-Beiträge anderer Benutzer bearbeiten |
edit_published_as24ci_cars | Veröffentlichte Fahrzeug-Beiträge bearbeiten |
publish_as24ci_cars | Fahrzeug-Beiträge veröffentlichen |
delete_as24ci_cars | Fahrzeug-Beiträge löschen |
delete_others_as24ci_cars | Fahrzeug-Beiträge anderer Benutzer löschen |
delete_published_as24ci_cars | Verö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:
- Melden Sie sich als WordPress-Administrator (WordPress) an.
- Rufen Sie den Plugin-Admin-Bereich auf und öffnen Sie den Tab System & Hilfe.
- Ü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:
- Melden Sie sich als WordPress-Administrator (WordPress) an.
- Deaktivieren Sie das Plugin unter Plugins.
- Reaktivieren Sie das Plugin. Der Aktivierungs-Hook ruft
ensure_roles_and_caps()direkt auf. - Testen Sie, ob der betroffene Benutzer nun den korrekten Zugriff hat.
Schritt 3: Die Rolle des Benutzers überprüfen
- Gehen Sie im WordPress-Admin-Bereich (WordPress) zu Benutzer.
- Öffnen Sie das Profil des betroffenen Benutzers.
- 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.
- 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:
- Öffnen Sie die Benutzeroberfläche des Berechtigungs-Plugins.
- Überprüfen Sie, ob die Berechtigung
manage_as24_importsder Rolleadministratorzugewiesen ist. - Überprüfen Sie, ob die oben aufgeführten CPT-Berechtigungen sowohl
administratorals auchas24ci_editorzugewiesen sind. - 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_rolesder 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_importsauf 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_editorwird 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 Hookplugins_loadedim 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
| Symptom | Wahrscheinliche Ursache | Überprüfung |
|---|---|---|
| „Zugriff verweigert“ bei einer Plugin-AJAX-Aktion | Dem Benutzer fehlt manage_as24_imports | Bestätigen Sie, dass der Benutzer Administrator ist; reaktivieren Sie das Plugin bei Bedarf |
| Plugin-Menü nicht sichtbar | Dem Benutzer fehlt manage_as24_imports | Administrator-Rolle zuweisen oder Plugin reaktivieren |
| AS24 Editor kann die Fahrzeug-Listen-Tabelle nicht sehen | CPT-Berechtigungen fehlen in der Rolle as24ci_editor | Plugin reaktivieren; Rolle im Berechtigungs-Plugin prüfen |
| AS24 Editor kann Fahrzeuge sehen, aber nicht den Plugin-Admin-Bereich | Erwartetes Verhalten — AS24 Editors erhalten kein manage_as24_imports | Keine Aktion erforderlich; dies ist so vorgesehen |
| „Sie haben keine Berechtigung“ beim Speichern im PDF Manager | Dem Benutzer fehlt manage_as24_imports | Bestätigen Sie, dass die Rolle Administrator ist |
| Fahrzeug-Beiträge erscheinen nicht in der WP-Beitragsliste | CPT-Berechtigungen fehlen in der Rolle des Benutzers | Plugin reaktivieren oder Berechtigungen manuell hinzufügen |
| Berechtigungen nach Migration oder Website-Klonen verloren | Rollen-Optionen wurden zurückgesetzt | Deaktivieren Sie das Plugin und aktivieren Sie es erneut |