3 manieren om toegang te beperken in Drupal 7
Wat als de Kerstman een website zou hebben waar verlanglijstjes worden bijgehouden door de elfen? Zo'n website zou verschillende vormen van toegangsrechten moeten hebben. De elfen van de speelgoedafdeling mogen de verlanglijstjes bijvoorbeeld alleen bekijken, terwijl de administratieve afdeling ze ook kan bewerken. Misschien zijn de adresgegevens die bij een verlanglijstje horen om privacy redenen wel alleen zichtbaar voor de elfen die verantwoordelijk zijn voor de distributie.
En wat te denken van een speciaal ethisch comité dat vergaderd over opvallende verlanglijstjes, bijvoorbeeld doordat deze onredelijk uitgebreid zijn. Dit comité zou alleen toegang mogen hebben tot verlanglijstjes die getagged zijn als “probleemgeval”. Mochten zij er ook niet uitkomen dan zou er eigenlijk de optie moeten zijn om het lijstje door te sturen naar de Kerstman of één van zijn helpers.
Zou de Kerstman een Drupal 7 website hebben dan zijn scenario’s als hierboven beschreven prima op te lossen met de hieronder behandelde modules, die toegang vanuit verschillende hoeken benaderen.
1. Nodes binnen een content type zichtbaar maken op basis van een rol of gebruiker
De meest populaire module om een toegang tot content te beheren is Content Access. Deze module is vooral sterk wanneer je toegang binnen een content type wilt verbinden aan een rol of gebruiker. Hiermee zou je dus kunnen bepalen dat elfen met de rol administratie alle verlanglijstjes mogen bewerken, en andere rollen ze alleen mogen bekijken. Per individuele node kun je deze instellingen overrulen. Dit maakt dat de administratie “probleemgevallen” nog even onzichtbaar kan houden voor de werkers maar ook dat het ethisch comité een bepaald verlanglijstje aan een individuele Kerstman kan voorleggen. Voor het kunnen selecteren van individuele gebruikers is wel eerst de Access Control Lists API nodig.
Als je niet wilt dat de leden van het comité dezelfde rechten hebben als de administratie op het gebied van toegang dan komt Node Access om de hoek kijken. Hiermee kun je ten eerste beheren welke gebruikers de mogelijkheid hebben om andere gebruikers toegang tot een node te geven en ten tweede ook specificeren uit welke gebruikers of rollen hierbij gekozen kan worden, in dit geval alleen de (hulp) Kerstman.
2. Node zichtbaar maken op basis van taxonomie
Hiervoor maak je allereerst de taxonomie term “probleemgeval” aan. Plak daarna aan het content type “verlanglijstje” een Term Reference veld zodat elk verlanglijstje als probleemgeval kan worden gemarkeerd. Als dit is gebeurd installeer je Taxonomy Access Control, waarmee je kunt bepalen welke gebruikersrol toegang heeft tot berichten met een bepaalde taxonomie term.
Het voordeel van Taxonomy Acces Control ten opzichte van Content Acces is dat je makkelijker buiten de paden van content types kunt treden. Want misschien zijn er wel andere zaken dan verlanglijstjes waarover het comité zich moet buigen, zoals een persbericht dat eerst goedgekeurd moet worden.
Je kunt de Content Acces module zo instellen dat andere toegang modules zoals Taxonomy Acces Control een hogere prioriteit hebben, of andersom.
3. Een veld zichtbaar maken op basis van een rol of gebruiker
Het afleveradres verbergen voor iedereen behalve de elfen van de logistiek? Dit soort zaken regel je met Field Permissions. Deze module werkt net als de andere modules, alleen in dit geval kun je een specifiek veld verbergen in plaats van de gehele node. De toegang stel je in op het niveau van het content type en is niet per node te overschrijven.
Andere scenario’s
Nog wat andere mogelijke scenario's:
- Wil je een paywall opzetten? Geef dan eerst een bepaalde rol toegang tot de nodes / content typen waarvoor een betaald lidmaatschap nodig is. Vervolgens zet je de bewuste rol in de verkoop met Drupal Commerce in combinatie met deze uitbreiding.
- Mogen sommige bestanden alleen gedownload worden door geregistreerde gebruikers? Volg dan de stappen in deze tutorial.
- Wil je berichten met een wachtwoord beveiligen? Dat kan met Node Acces Password of Protected Node (dev versie).
- Toegang beheren binnen subgroepen? Kijk eens naar de Organic Groups module. Hiermee maak je groepen waarbij leden alleen toegang hebben tot content die gelinkt is aan hun eigen groep. Ook binnen de groep kun je toegangsrechten verder specificeren.
- Tot slot kun je met een module als Apply for Role gebruikers de mogelijkheid bieden om een bepaalde rol aan te vragen.
Slot
Er zijn natuurlijk tal van scenario’s te bedenken waarbij de toegang tot content beperkt moet zijn tot één of meerdere personen. Out-of-the-box kun je al behoorlijk veel met Drupal en zeker met de in dit artikel behandelde modules lukt het je negen van de tien keer om het gewenste resultaat te behalen, eventueel in combinatie met de Rules en/of Context module. Blijkt dit toch niet voldoende kijk dan eerst op de overzichtpagina van toegangsmodules op Drupal.org. Snel uitproberen van een module kan via Simplytest.me.
Meer lezen over Drupal?
Laat hieronder je e-mailadres achter en download onze gratis whitepaper over Drupal. In deze whitepaper geven we je een duidelijk en compleet beeld van wat Drupal kan betekenen voor jouw organisatie.