Role Contracts creates a new content-type, 'Role Contract', which consists of terms/conditions that a user must agree to by clicking a check-box and/or typing ACCEPT in a text box, after which they will be granted a role associated with the Contract.
The contracts can have expiration dates, and when they expire, the role will be revoked.
Users can view their contracts from their user account.
Emails are sent to users when they accept a contract, when the contract is expiring, and when it has expired.
Users may renew their contracts.
Thanks to myJulius Finance for supporting this project, and allowing it to be released. I hope someone finds this useful.
Leighton Whiting - MoneyScripts - http://www.moneyscripts.net