This project is not covered by Drupal’s security advisory policy.

This module is useful to publish nodes that require an agreement to be signed by each user before they can access the content. Examples of agreements include Non-Disclosure Agreements, End-User License Agreements, etc. Nodes of any type can be protected by agreements, and each node can have its own specific agreement.


  • Create a new content type to hold the agreements (e.g., Agreement).
  • Open the admin settings (admin/settings/node-agreement) and select the content type you just created.
  • Create a new node of type Agreement and write the terms of the agreement.
  • Create a new node of any type and click the Agreement tab. You'll get a list of available agreements - just the one created above, so go ahead and select it, then submit.
  • Try to access this new node: you're first shown the agreement to accept before you can access the node.


Sponsored by AdHack. Some patches sponsored by Aviisha Medical Wellness Institute. Thank you for your generous support.

If you feel this module is useful to your business, please consider the following:



  • Admin settings also allow to specify the title and body of protected nodes when shown in teaser mode. This is in effect only for a user who hasn't signed the agreement.
  • A Views filter "Node agreement > Accessible" is available to filter nodes based on whether they are protected or not for the current user.
  • The table node_agreement stores the relationship between each protected node and its associated agreement.
  • The table node_agreement_signature stores individual user signatures, along with the timestamp.
  • This module does not modify node permissions. It relies on hook_nodeapi instead to control access to protected nodes.


Project Information