Documentatie · Probleemoplossing

Machtigingsfouten

Dit document behandelt toegangs- en machtigingsfouten die kunnen voorkomen dat beheerders of andere gebruikers toegang krijgen tot de functies van de ADP Car Market Hub-plugin, voertuigen importeren of advertenties beheren.

Wanneer u dit document moet gebruiken

Lees dit document wanneer:

  • Een gebruiker de melding "Toegang geweigerd" of "U hebt geen toestemming om deze actie uit te voeren" krijgt bij het gebruik van het beheergedeelte van de plugin.
  • Een gebruiker het beheermenu van de plugin of specifieke tabbladen in het beheergedeelte niet kan zien.
  • Een gebruiker geen voertuigberichten (as24ci_car) kan bewerken, publiceren of verwijderen.
  • Er machtigingsgerelateerde fouten verschijnen in het plugin-logboek na een update of rolwijziging.

Overzicht

De plugin maakt gebruik van twee verschillende toegangslagen:

  1. Plugin-beheermachtiging (manage_as24_imports) — regelt de toegang tot de beheerinterface van de plugin (Instellingen, Importer, Tools, Logs, Market Hub, PDF Manager, enz.) en alle administratieve AJAX-acties. Deze machtiging wordt exclusief verleend aan de ingebouwde administrator-rol.

  2. Custom Post Type (CPT) machtigingen — een set van WordPress post-machtigingen voor het as24ci_car post-type die bepalen wie voertuigberichten kan lezen, aanmaken, bewerken, publiceren en verwijderen. Deze machtigingen worden verleend aan zowel de administrator-rol als de aangepaste AS24 Editor-rol die door de plugin is aangemaakt.

Redacteuren, Auteurs en Abonnees hebben standaard geen toegang tot beide lagen. De WordPress ingebouwde editor-rol ontvangt deze machtigingen evenmin.

Referentie van rollen en machtigingen

Plugin-beheermachtiging

MachtigingVerleend aanRegelt
manage_as24_importsAdministratorAlle plugin-beheerpagina's, instellingen, importtriggers, toegang tot logboeken, AJAX-acties, diagnostische export

Elke admin AJAX-handler en admin POST-handler in de plugin controleert current_user_can('manage_as24_imports') vóór uitvoering. Elke gebruiker zonder deze machtiging ontvangt een 403 Permission denied-antwoord.

CPT-machtigingen

De volgende machtigingen zijn toegewezen aan zowel de administrator- als de as24ci_editor-rol:

MachtigingBeschrijving
read_as24ci_carEen enkel voertuigbericht lezen
edit_as24ci_carEen enkel voertuigbericht bewerken
delete_as24ci_carEen enkel voertuigbericht verwijderen
read_private_as24ci_carsPrivé-voertuigberichten lezen
edit_as24ci_carsVoertuigberichten bewerken (toegang tot de lijsttabel)
edit_others_as24ci_carsVoertuigberichten van andere gebruikers bewerken
edit_published_as24ci_carsGepubliceerde voertuigberichten bewerken
publish_as24ci_carsVoertuigberichten publiceren
delete_as24ci_carsVoertuigberichten verwijderen
delete_others_as24ci_carsVoertuigberichten van andere gebruikers verwijderen
delete_published_as24ci_carsGepubliceerde voertuigberichten verwijderen

Aangepaste rol: AS24 Editor (as24ci_editor)

De plugin maakt tijdens de activering een aangepaste WordPress-rol aan met de naam AS24 Editor (slug: as24ci_editor). Deze rol verleent alle hierboven genoemde CPT-machtigingen, maar verleent geen manage_as24_imports. AS24 Editors kunnen voertuigberichten beheren vanuit de standaard post-lijsttabel, maar hebben geen toegang tot de beheerpagina's van de plugin, de import of de instellingen.

Diagnostische stappen

Stap 1: Bevestig dat machtigingen zijn toegewezen

Machtigingen worden toegewezen tijdens de activering van de plugin en bijgewerkt via een intern migratiesysteem. Als een gebruiker geen toegang heeft tot het beheergedeelte van de plugin, controleer dan het volgende:

  1. Log in als een WordPress Administrator.
  2. Ga naar het beheergedeelte van de plugin en open het tabblad System & Help.
  3. Controleer de systeemstatusuitvoer op eventuele waarschuwingen met betrekking tot machtigingen.

Als de machtigingen niet zijn toegewezen (bijvoorbeeld bij een multisite-installatie waar de plugin netwerkbreed is geactiveerd maar nooit in een beheercontext is uitgevoerd), ga dan door naar Stap 2.

Stap 2: Activeer de machtigingsmigratie opnieuw

De toewijzing van machtigingen wordt automatisch uitgevoerd bij het laden van elke beheerpagina via plugins_loaded, maar slechts eenmaal per machtigingsversie en alleen voor gebruikers die manage_options hebben. Om dit handmatig opnieuw uit te voeren:

  1. Log in als een WordPress Administrator.
  2. Deactiveer de plugin via Plugins.
  3. Activeer de plugin opnieuw. De activeringshook roept ensure_roles_and_caps() rechtstreeks aan.
  4. Test of de getroffen gebruiker nu de juiste toegang heeft.

Stap 3: Controleer de rol van de gebruiker

  1. Ga naar Gebruikers in het WordPress-beheergedeelte.
  2. Open het profiel van de getroffen gebruiker.
  3. Bevestig dat de rol van de gebruiker is ingesteld op Administrator (voor volledige toegang tot het plugin-beheer) of AS24 Editor (alleen voor CPT-beheer).
  4. Als de gebruiker een aangepaste rol heeft van een externe plugin, bevat die rol mogelijk niet de vereiste machtigingen. In dat geval moet een ontwikkelaar de machtigingen handmatig toevoegen of een plugin voor machtigingsbeheer gebruiken.

Stap 4: Controleer op een conflicterende machtigingsplugin

Als er een plugin voor machtigingsbeheer (zoals Members, User Role Editor of PublishPress Capabilities) actief is:

  1. Open de interface van de machtigingsplugin.
  2. Controleer of de machtiging manage_as24_imports is toegewezen aan de administrator-rol.
  3. Controleer of de hierboven vermelde CPT-machtigingen zijn toegewezen aan zowel administrator als as24ci_editor.
  4. Sla eventuele wijzigingen op en test opnieuw.

Stap 5: Overwegingen voor Multisite

Op een WordPress multisite-installatie:

  • Plugin-machtigingen worden opgeslagen in de optie wp_user_roles van de database-tabel van elke subsite.
  • Als de plugin netwerkbreed is geactiveerd, wordt de machtigingsmigratie alleen uitgevoerd in de context van de huidige site wanneer een beheerder het beheergedeelte bezoekt.
  • Een superbeheerder heeft impliciete toegang tot alle sites, maar reguliere beheerders op individuele sites moeten de machtiging manage_as24_imports hebben op hun specifieke site.

Controleer dit gedrag in de huidige plugin-versie voordat u deze publiceert voor multisite-implementaties.

Operationele opmerkingen

  • Toewijzingen van machtigingen worden opgeslagen in de WordPress-rollenoptie (wp_user_roles). Het resetten of vervangen van deze optie (bijvoorbeeld via een sitemigratie of een beveiligingsplugin die rollen opnieuw genereert) verwijdert de aangepaste machtigingen van de plugin. Het opnieuw activeren van de plugin zal deze herstellen.
  • De rol as24ci_editor wordt eenmalig aangemaakt bij activering. Als deze wordt verwijderd (bijvoorbeeld via een plugin voor rolbeheer of een database-reset), zal het opnieuw activeren van de plugin deze opnieuw aanmaken.
  • Alle AJAX-endpoints van het plugin-beheer vereisen zowel de juiste machtiging als een geldige WordPress-nonce. Een "Toegang geweigerd"-antwoord op een AJAX-verzoek kan duiden op een ontbrekende machtiging of een verlopen nonce (bijvoorbeeld na een lange sessie of een gecachte pagina zonder nonce-regeneratie).
  • De functie maybe_upgrade_caps() wordt uitgevoerd op de plugins_loaded-hook in de beheercontext. Deze controleert een opgeslagen versienummer en wordt alleen uitgevoerd wanneer een machtigingsmigratie nog niet is toegepast. Nadat deze is uitgevoerd, wordt de opgeslagen versie bijgewerkt, zodat deze niet opnieuw wordt uitgevoerd totdat de volgende migratieversie wordt uitgebracht.

Probleemoplossing

SymptoomWaarschijnlijke oorzaakControle
"Toegang geweigerd" bij een AJAX-actie van de pluginGebruiker mist manage_as24_importsBevestig dat de gebruiker Administrator is; activeer de plugin indien nodig opnieuw
Plugin-menu niet zichtbaarGebruiker mist manage_as24_importsWijs de rol Administrator toe of activeer de plugin opnieuw
AS24 Editor kan de voertuiglijsttabel niet zienCPT-machtigingen ontbreken in de as24ci_editor-rolActiveer de plugin opnieuw; controleer de rol in de machtigingsplugin
AS24 Editor kan voertuigen zien maar niet het plugin-beheerVerwacht gedrag — AS24 Editors krijgen geen manage_as24_importsGeen actie vereist; dit is ontworpen gedrag
"U hebt geen toestemming" bij het opslaan in de PDF ManagerGebruiker mist manage_as24_importsBevestig dat de rol Administrator is
Voertuigberichten verschijnen niet in de WP-berichtenlijstCPT-machtigingen ontbreken in de rol van de gebruikerActiveer de plugin opnieuw of voeg machtigingen handmatig toe
Machtigingen verloren na migratie of site-kloonRolopties zijn geresetDeactiveer en activeer de plugin opnieuw

Gerelateerde documenten