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.
CREDITS AND SPONSORSHIP
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_agreementstores the relationship between each protected node and its associated agreement.
- The table
node_agreement_signaturestores individual user signatures, along with the timestamp.
- This module does not modify node permissions. It relies on
hook_nodeapiinstead to control access to protected nodes.
- Action to set/unset agreement (useful for admin in conjunction with Views Bulk Operations).
- Views integration to view signatures.
- Reset signatures (with explanation message) if an agreement is changed.
- Global settings can be overriden by per-node settings.