Understanding drupal node access
Last week I wrote a new module to try and make the "publishing status" value in Drupal actually make sense to site architects. Publish in Drupal is hard-coded in a lot of places so marking something as unpublished will remove it for EVERYONE from things like books and menu based projects.
This is rather unacceptable if you are just taking down a portion of an outline to work on, or your users use the site navigation itself to find content and work on it.
This video steps through how the hidden nodes module works in the node access control layer. Many, many, many people complain about node access and how things like OG, TAC, and Content Access can conflict. I was one of them, but after this walkthrough I hope it becomes more apparent how you can write your own node access routines without nearly as much FUD involved.