Het Rollen systeem in WordPress nog beter leren begrijpen

Het Rollen systeem in WordPress : Een ondergeschoven kindje.

Rollen systeem in WordPress - Een masker voor de juiste gelegenheid.

In deze blogpost wil ik het eens met je hebben over een onderdeel van WordPress waar we over het algemeen weinig naar kijken. Het Rollen systeem.

Zoals je ongetwijfeld weet, heb je in WordPress verschillende rollen. De ‘machtigste’ persoon in WordPress is natuurlijk de beheerder, die kan alles, en de minst machtige is de ‘Abonnee’ of ‘Subscriber’. Behalve inloggen, kan die eigenlijk niet veel.

Over de standaard rollen in WordPress heb ik jaren terug al eens wat geschreven. En het is een blogartikel wat vandaag de dag nog steeds veel wordt gevonden en gelezen.

Maar er is meer mogelijk met WordPress. En om dat ‘meerdere’ uit te leggen, wil ik samen met jou graag een duik in de diepte nemen.

Roles en ‘capabilities’

Een ‘Rol’ is eigenlijk niet veel meer dan een kapstok om een aantal bevoegdheden aan op te hangen. In het Engels worden die bevoegdheden ‘Capabilities’ genoemd. Op het niveau van WordPress zelf wordt er zelden getest op welke rol iemand heeft (en als een plugin het wel doet, doet deze het fout), maar eerder op welke bevoegdheden een gebruiker heeft.

Laten we eens kijken naar de op één na machtigste gebruiker binnen WordPress. De editor. Dat is iemand die mag alle posts en pages van alle gebruikers lezen, bewerken en eventueel verwijderen. Hij mag echter absoluut niet aan plugins zitten en gebruikers toevoegen en verwijderen kan hij ook niet. Dat zijn immers taken voor een beheerder, of ‘Administrator’.

En een administrator kan alles.

Je kan in een situatie van een groter bedrijf voorstellen, dat dit absoluut niet de bedoeling is. Er zijn mensen nodig die het systeem onderhouden, maar dat zijn niet noodzakelijkerwijs ook de mensen die alles moeten mogen met de content. Vergelijk het eens met een winkel. Er is geen enkele reden, dat de beheerder van het gebouw toegang krijgt tot het klantenbestand en alle bestellingen die klanten hebben geplaatst.

Eigenlijk is dat in WordPress net zo.

Standaard rollen

Wanneer we naar WordPress als een systeem voor publiceren van informatie bezien, dan is het rollen systeem in WordPress eigenlijk prima zoals het is. Tenminste, als we ervan uitgaan, dat de beheerder eigenlijk ook een ‘supereditor’ is.

Naarmate we echter meer afwijken van het ‘blogplatform’ wat WordPress oorspronkelijk was, dan zijn de rollen zoals gedefinieerd in WordPress eigenlijk behoorlijk beperkend. Dat is bijvoorbeeld ook een reden, dat een ‘shopkeeper’ in WooCommerce als compleet nieuwe rol wordt toegevoegd. Want de ‘beheerder van de winkel’ is niet noodzakelijkerwijs ook de ‘beheerder van het platform’. En zo’n ‘shopkeeper’ hoeft al helemaal niet een goede editor te zijn. Commercieel goed zijn, is niet gekoppeld aan taalgevoel.

Hoe complexer je organisatie is, hoe minder waarschijnlijk zal het zijn dat de standaard rollen van het rollensysteem in WordPress zullen voldoen. Sterker nog, het is zelfs onwaarschijnlijk, dat de rollen van de extra plugins zullen voldoen.

Het is daarom goed ook het onderliggende systeem van WordPress, het ‘capabilities’ systeem goed te leren begrijpen.

Het best kunnen we hiernaar kijken aan de hand van een concreet voorbeeld.

Privacygevoelige informatie

rollen systeem in WordPress - Privacy gevoelige informatie

Het maakt niet uit waarom het gaat. Of het nu om patient gegevens, juridische informatie of een aanvraag om een lening gaat. Op het moment dat er privacy gevoelige informatie in een systeem moet worden ingevoerd, dan is het eigenlijk compleet niet wenselijk (en wettelijk in de meeste gevallen ook niet toegestaan), dat iemand die vanuit zijn functie de informatie niet nodig heeft, bij die informatie zou moeten kunnen.

Het is wel nodig, dat iemand met de nodige kennis van WordPress toegang heeft om het systeem de onderhouden.

In zo’n geval is het dus noodzakelijk om even die standaard rollen van WordPress te vergeten en eens goed te gaan zitten om te kijken wie bij welke informatie mag.

Laten we eens kijken naar de denkbeeldige advocatenmaatschap van Jan Hamer, Robert de Rol en Peter de Wet. Jan, Robert en Peter zijn alle drie vennoten in de maatschappij en hebben uit hoofde van hun functie eigenlijk toegang tot alle informatie. Alleen… ze hebben geen kaas gegeten van WordPress. Tja, als ze een vak hadden kunnen leren, waren ze nooit advocaat geworden toch?

Kees Knap is een WordPress expert en beheert de site van Hamer, de Wet en de Rol. Maar omdat een deel van de site het ticket systeem is, waarmee de vennoten communiceren over de verschillende zaken, is het wenselijk, dat Kees alleen toegang heeft tot het installeren en updaten van plugins en thema’s, het maken van back ups en nog wat andere typische onderhoudstaken.

Het probleem is echter, dat een standaard taak van een beheerder het aanmaken van nieuwe gebruikers is. En degene die dat kan is oppermachtig. Want die kan zichzelf tijdelijk meer rechten geven dan bedoeld.

Dat is dus een rol die Kees eigenlijk niet zou moeten hebben. Je zou eigenlijk een nieuwe rol willen hebben -laten we hem de ‘Sleutelbewaarder’ noemen, die niets anders mag dan gebruikers toevoegen en verwijderen. Deze rol zou door één van de vennoten uitgevoerd kunnen worden. Zij mogen immers overal bijkomen.

In deze situatie is het dus eigenlijk wenselijk dat er een aantal nieuwe rollen wordt gedefinieerd. Maar hoe doe je dat?

De User Role Editor

Eigenlijk zou zo’n functie in WordPress zelf moeten zitten. Want ‘onder water’ zit er in WordPress heel wat kracht verborgen. Om mij onbekende redenen is dit echter nooit gebeurd, maar gelukkig hebben we al jaar en dag de ‘User Role Editor‘.

Het idee achter de User Role Editor is eenvoudig. Het ermee werken absoluut niet.

Je kan een nieuwe rol definiëren en bepalen, dat deze de rechten van een willekeurig andere rol moet krijgen. Daarna ga je hakken en/of toevoegen. Je ontneemt de toekomstige houder van de nieuwe rol rechten (capabilities), of je voegt deze er juist aan toe. En op deze manier heb je een mooie nieuwe rol gemaakt.

Stel je voor in ons voorbeeld. Ik maak een kopie van de beheerdersrol. Ik noem hem ‘sleutelbewaarder’ en verwijder vervolgens alle rechten die niets te maken hebben met gebruikersbeheer.

Vervolgens maak ik een tweede rol aan. Die noem ik ‘Operator’ en deze krijgt aanvankelijk alle rechten van de beheerder, maar daar ga ik alles slopen wat de maken heeft met gebruikersbeheer. Ook verwijder ik alle toegang tot informatie gerelateerd tot het ticket systeem.

Kees is nu een zwaar afgeslankte beheerder geworden met zijn ‘Operator’ rol. Maar de klanten van Hamer, de Wet en de Rol kunnen er nu zeker van zijn, dat alleen bevoegde medewerkers bij hun informatie komen.

De uitdaging

Het verhaal hierboven klinkt eenvoudiger dan het werkelijk is. Het aantal ‘capabilities’ wat je nodig hebt om een taak uit te kunnen voeren kan nogal eens verraderlijk zijn. Op de achtergrond is het namelijk mogelijk, dat je iets meer toegang nodig hebt, dan op het eerste idee zou lijken. Daar kom je over het algemeen vrij snel achter, omdat je dan zo’n beruchte foutmelding krijgt, waarbij alles behalve de foutmelding van het scherm verdwijnt, met de tekst, dat je niet voldoende rechten hebt.

Uitvinden waarom de die rechten niet hebt, en welke rechten je precies nodig zou hebben is uitdagend.

De dubbelrol

rollen systeem in WordPress - Beheren van de sleutels

Laten we zeggen, dat onze vrienden van het advocatencollectief hebben besloten, dat Robert de Rol het beheer van de gebruikers op zich heeft genomen. Daarnaast is hij een ‘Schrijver’ binnen het conventionele WordPress rollen systeem. Omdat zijn taalbeheersing iets te wensen overlaat, leest Peter de Wet zijn bijdragen voor deze daadwerkelijk gepubliceerd worden.

Het zou dus logisch lijken -om te voorkomen, dat Robert als ‘Sleutelbewaarder’ en als ‘Schrijver’ in moet loggen- een nieuwe rol te maken, waarin Robert’s rollen worden samengevoegd. Want in WordPress kan je maar één rol aan een gebruiker toevoegen… toch?

Fout. Het is al jaren mogelijk om aan één gebruiker meerdere rollen toe te voegen. Ik kan dus Robert Sleutelbewaarder en Schrijver maken. Het rollensysteem in WordPress laat dat gewoon toe. Alleen de userinterface loopt hier achter. Wanneer je de User Role Editor installeert, dan kan je meerdere rollen aan één gebruiker toevoegen.

Het kan echter voorkomen, dat je eigenlijk helemaal geen plugin als User Role Editor nodig hebt. Dat had ik zelf een tijdje geleden voor een klant. Deze had een nieuwe plugin geïnstalleerd, waarmee een aantal nieuwe rollen geïnstalleerd werden. Het probleem hier was echter, dat deze plugin een hele grote fout maakte. Er was geen mogelijkheid om bestaande gebruikers met hun rollen aan het systeem toe te voegen. Iedere gebruiker van de plugin moest een rol van ‘Agent’, ‘Agent Manager’ of ‘Administrator’ (die mag immers alles) hebben.

In zo’n geval wil je eigenlijk dat je twee rollen aan één gebruiker toe kan voegen. Maar dan liefst zonder de noodzaak om User Role Manager te installeren. Dat is immers overkill.

Gelukkig is er een aardig aantal plugins, wat de ‘fout in de userinterface’ van WordPress aanpast. Eén daarvan is de super lichtgewicht en super gebruikersvriendelijke plugin ‘HM Multiple Roles’. Het enige wat deze plugin doet is kijken welke rollen er zijn gedefinieerd en in plaats van een drop down lijst, een lijst met aankruisvakjes laten zien op de pagina met de gebruikersgegevens. Simpel en efficient.

Blijf bij

Je kan niet alles weten. Het is wel goed om te weten, waar je jouw informatie kan vinden. En één van die plaatsen is natuurlijk de blog van WordXPression. Wekelijks schrijf ik over allerlei zaken die met WordPress en/of online ondernemen te maken hebben. Wil je op de hoogte blijven? Schrijf je dan hieronder in op de nieuwsbrief. Ontvang je liever de updates als push meldingen in je browser? Dat kan ook. Klik dan op de rode bel linksonder op de pagina en volg de instructies.

Heb je vragen? Stel ze in de commentaren onder de passende onderwerpen in de blog.

Wees eens aardig en deel dit met je vrienden
Enkele trefwoorden om vergelijkbare posts te vinden:

Word je website de baas. Neem vandaag nog contact op!

Contact Information

WordXPression 
Imkersdreef 525
7328DG Apeldoorn
06-10449807 (van 9:00 tot 17:00 van ma-vr)

KVK : 75580152 

Social media
Stuur een bericht

Flinke kortingen op cursussen van WordXPression.