Het koste mij enige moeite om uit te vinden hoe je in Drupal de toegang van één enkele pagina kan blokkeren voor willekeurige (anonieme) gebruikers. Uiteindelijk is het heel simpel, maar je moet het net even weten. Lees verder om het hele (technische) verhaal te lezen.
De casus is als volgt. Ik heb http://www.aangeenbrug.org/site/node/81 aangemaakt, waarachter een takenlijst zit verborgen. Er staan geen schokkende dingen op, maar voor de veiligheid wil ik dat deze pagina niet door jan en alleman bekeken kan worden.
Als eerste heb ik gebruik gemaakt van de module "Menu per role". Lees de readme.txt, want je moet een stukje code aanpassen in de core van Drupal. Door deze module zien alleen gebruikers met de juiste rechten het item "Takenlijst" in het menu staan.
Probleem is dat je door het handmatig intikken van de URL ook bij desbetreffende pagina kunt komen. Wat je dan nodig hebt, zijn de volgende twee module 's:
- ACL, een api voor accessbeheer
- Content Access, "Yet another node access module."
Na het aanzetten van beide modules werkt het echter nog niet :-(. Wat blijkt? Je hebt bij .../admin/content/types een nieuwe tab, die je naar .../admin/content/types/$type/access brengt. Pas als je daar de gewenste gegevens invoert, werkt het. Heel simpel (stond ook in de manual), maar je moet het net even weten. Als je dit hebt ingevoerd, kun je per individuele node (artikel, blog, $type) de rechten instellen.
Voordeel van de module Content Access is dat het out-of-the-box geen veranderingen maakt. Als iets nu werkt en je installeert de module, dan werkt het daarna nog. Je kunt de boel pas gaan verzieken als je aan de rechten gaat sleutelen ...
Labels:
Reactie toevoegen