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:
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 Rolleadministratorgewährt.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 Rolleadministratorals auch der vom Plugin erstellten benutzerdefinierten RolleAS24 Editorgewä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
| Berechtigung | Gewährt für | Steuert |
|---|---|---|
manage_as24_imports | Administrator | Alle 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:
| 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 Listenansicht) |
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 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:
- Melden Sie sich als WordPress-Administrator an.
- Rufen Sie den Plugin-Admin 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 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:
- Melden Sie sich als WordPress-Administrator an.
- Deaktivieren Sie das Plugin unter Plugins.
- Aktivieren Sie das Plugin wieder. 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 zu Benutzer.
- Öffnen Sie das Profil des betroffenen Benutzers.
- 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.
- 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:
- Ö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 die Änderungen und testen Sie erneut.
Schritt 5: Besonderheiten bei Multisite
Auf einer WordPress-Multisite-Installation:
- Plugin-Berechtigungen werden in der Option
wp_user_rolesder 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_importsauf 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_editorwird 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 Hookplugins_loadedim 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
| Symptom | Wahrscheinliche Ursache | Prüfung |
|---|---|---|
| "Keine Berechtigung" 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 | Weisen Sie die Administrator-Rolle zu oder reaktivieren Sie das Plugin |
| AS24 Editor kann die Fahrzeug-Listenansicht nicht sehen | CPT-Berechtigungen fehlen in der Rolle as24ci_editor | Reaktivieren Sie das Plugin; prüfen Sie die Rolle im Berechtigungs-Plugin |
| AS24 Editor sieht Fahrzeuge, aber nicht den Plugin-Admin | 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 | Reaktivieren Sie das Plugin oder fügen Sie die Berechtigungen manuell hinzu |
| Berechtigungen nach Migration oder Website-Klonen verloren | Rollen-Optionen wurden zurückgesetzt | Deaktivieren und reaktivieren Sie das Plugin |