Looking for some advice and ideas.... A client is publishing a periodical online. Only paid subscribers will have access to the nodes that are part of the periodical. Subscriptions are not necessarily continuous. So for example a user might subscribe in 2006; not subscribe in 2007; then subscribe again in 2008. In 2008, such a user should be able to view content from 2006 and 2008, but not 2007. I have a flexible system in mind; in which each subscription has a start, end and expiration. Whether a node is visible will depend on whether its creation date falls between the start and end of a subscription. My question is not about this part, but about how best to hide the nodes that the user has not paid for. I do not plan to use "standard" access control; that is, the node_access table and grants, because I don't see how to cleanly map a subscription start and end date to a grant id. But that's OK because I don't need to entirely hide the existence of these nodes. I just need to hide the full contents of the node. So my plan is to put some logic in hook_nodeapi. If $op == 'view', and the user has not subscribed to the node in question, I can do something like: $node->body = t('Sorry, you have to subscribe to view this.'); I'm writing to this group because I think is a reasonable approach, but I'm not sure. Any thoughts or suggestions? Thanks, -Dave