Successfully reported this slideshow.

Controle over content met node access

1,241 views

Published on

Drupal heeft een permissie systeem waarmee functionaliteit per rol aan en uit gezet kan worden. Een limitering van het permissie systeem is dat wanneer een rol toegang heeft tot 'access content' dit op de gehele website geld. Soms wil je echter toegang tot content per content type of item bepalen. In deze sessie wordt eerst ingegaan op de mogelijkheden die het 'node access' systeem biedt door te kijken naar de module 'content access'. Vervolgens wordt er een module gebouwd die het node access systeem code technisch laat zien.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Controle over content met node access

  1. 1. Controle over content met node access Raymond Muilwijk
  2. 2. Programma ● Drupal access systeem ● Toegang tot specifiek content item. ● Toegang tot content lijsten. ● Overview ● Content Access ● Het schrijven van een eigen access module.
  3. 3. Toegang tot specifiek content item ● Permissie 'administer nodes' → Altijd toegang ● Geen permissie 'accent content' → nooit toegang
  4. 4. Toegang tot specifiek content item ● hook_access() implementatie module nodetype → bij return value toegang/geen toegang ! Let op: bij return value kijkt drupal niet meer naar volgende access systeem. In hook_access() is de volgende code dus fout:
  5. 5. Toegang tot specifiek content item ● Toegang op basis van één grant → toegang/geen toegang. Core bied out of the box view rechten.
  6. 6. Toegang tot specifiek content item ● Permissie 'administer nodes' → Altijd toegang ● Geen permissie 'accent content' → nooit toegang ● hook_access() implementatie module nodetype → bij return value toegang/geen toegang ● Toegang op basis van één grant → toegang/geen toegang
  7. 7. Toegang tot content lijsten ● Ophalen van lijsten met query door db_rewrite_sql() heen. ● Invoke hook_db_rewrite_sql(). ● node_db_rewrite_sql() voegt grants toegang toe.
  8. 8. Toegang tot content lijsten ! Let op: wanneer een query wordt gedaan voor het ophalen van nodes en deze niet door db_rewrite_sql() wordt gehaald werkt het access systeem niet.
  9. 9. Overview ● In standaard core installatie alleen functionaliteit voor toegang tot content of geen toegang tot content. ● In standaard core installatie permissies voor create, update en delete. ● Grants enige access systeem gedeeld tussen content item en content lijst.
  10. 10. Content Access ● Demo van een implementatie van grants: ● Per node type rechten aangeven op rol basis. ● Per content item rechten aangeven op rol basis.
  11. 11. Schrijven van een access module ● Use case: Een gebruiker heeft alleen toegang tot content waar hij een subscription voor heeft op een website van een krant. ● CCK + Content Profile met subscription field. ● Custom module 'subscription_access' – hook_node_access_records() – hook_node_grants()
  12. 12. Vragen / Contact Raymond Muilwijk Email: r.muilwijk@madcap.nl Twitter: rmuilwijk

×