Seems it might be a bit complicated, but I imagine a custom node that creates a table, which tracks your users' uid, their role and their nodes. The module would need to invoke Cron and during the cron-run, go user-by-user to discover what node is next to unlock for each specific user (or maybe more efficiently, start each user as owning "Node 1" (or whatever the first publication would be).. and then during the cronrun you would just increment the available nid by 1.
Then with an invocation of hook_nodeapi(), in the "view" case, first check that the node is of the node type you've created, and then check to see if the user is allowed access to that node (by way of your custom module's table I mentioned in the previous paragraph). At that point it's easy enough to deny a user access to the node, if the node's nid is not associated with their uid; or to allow them access if the opposite is true.
That's how I'd approach it, but there might be more succint ways to go about it 
EDIT: Thinking about it again, I'm not sure if Cron is the best way to go - since hooking into the subscriptions module might be better and cleaner. Unfortunately I don't have any experience in that module yet, perhaps someone who has could shed more light on it.


Joined: 08/14/2007