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:
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 ingebouwdeadministrator-rol.Custom Post Type (CPT) machtigingen — een set van WordPress post-machtigingen voor het
as24ci_carpost-type die bepalen wie voertuigberichten kan lezen, aanmaken, bewerken, publiceren en verwijderen. Deze machtigingen worden verleend aan zowel deadministrator-rol als de aangepasteAS24 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
| Machtiging | Verleend aan | Regelt |
|---|---|---|
manage_as24_imports | Administrator | Alle 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:
| Machtiging | Beschrijving |
|---|---|
read_as24ci_car | Een enkel voertuigbericht lezen |
edit_as24ci_car | Een enkel voertuigbericht bewerken |
delete_as24ci_car | Een enkel voertuigbericht verwijderen |
read_private_as24ci_cars | Privé-voertuigberichten lezen |
edit_as24ci_cars | Voertuigberichten bewerken (toegang tot de lijsttabel) |
edit_others_as24ci_cars | Voertuigberichten van andere gebruikers bewerken |
edit_published_as24ci_cars | Gepubliceerde voertuigberichten bewerken |
publish_as24ci_cars | Voertuigberichten publiceren |
delete_as24ci_cars | Voertuigberichten verwijderen |
delete_others_as24ci_cars | Voertuigberichten van andere gebruikers verwijderen |
delete_published_as24ci_cars | Gepubliceerde 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:
- Log in als een WordPress Administrator.
- Ga naar het beheergedeelte van de plugin en open het tabblad System & Help.
- 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:
- Log in als een WordPress Administrator.
- Deactiveer de plugin via Plugins.
- Activeer de plugin opnieuw. De activeringshook roept
ensure_roles_and_caps()rechtstreeks aan. - Test of de getroffen gebruiker nu de juiste toegang heeft.
Stap 3: Controleer de rol van de gebruiker
- Ga naar Gebruikers in het WordPress-beheergedeelte.
- Open het profiel van de getroffen gebruiker.
- 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).
- 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:
- Open de interface van de machtigingsplugin.
- Controleer of de machtiging
manage_as24_importsis toegewezen aan deadministrator-rol. - Controleer of de hierboven vermelde CPT-machtigingen zijn toegewezen aan zowel
administratoralsas24ci_editor. - 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_rolesvan 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_importshebben 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_editorwordt 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 deplugins_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
| Symptoom | Waarschijnlijke oorzaak | Controle |
|---|---|---|
| "Toegang geweigerd" bij een AJAX-actie van de plugin | Gebruiker mist manage_as24_imports | Bevestig dat de gebruiker Administrator is; activeer de plugin indien nodig opnieuw |
| Plugin-menu niet zichtbaar | Gebruiker mist manage_as24_imports | Wijs de rol Administrator toe of activeer de plugin opnieuw |
| AS24 Editor kan de voertuiglijsttabel niet zien | CPT-machtigingen ontbreken in de as24ci_editor-rol | Activeer de plugin opnieuw; controleer de rol in de machtigingsplugin |
| AS24 Editor kan voertuigen zien maar niet het plugin-beheer | Verwacht gedrag — AS24 Editors krijgen geen manage_as24_imports | Geen actie vereist; dit is ontworpen gedrag |
| "U hebt geen toestemming" bij het opslaan in de PDF Manager | Gebruiker mist manage_as24_imports | Bevestig dat de rol Administrator is |
| Voertuigberichten verschijnen niet in de WP-berichtenlijst | CPT-machtigingen ontbreken in de rol van de gebruiker | Activeer de plugin opnieuw of voeg machtigingen handmatig toe |
| Machtigingen verloren na migratie of site-kloon | Rolopties zijn gereset | Deactiveer en activeer de plugin opnieuw |