Show block on nodes and only for node author I am building a simple classifieds style site. Instead of using straight email, I was thinking about creating a simple "make offer" node type. Create a few basic fields (reference to classified listing, message, will buy for X price, would trade, etc...).

Then create a view block and put the nid in to limit those "offer" nodes to only the node being viewed. However, I would like to do two things. 

1) Limit the block to only be viewable to administrators and the node author themselves, other users should not be able to see the other offers.

2) Make it so going to /node/{nid} that is an offer content type is hidden from view so users can't just bypass the block and hit the nid of the offer node.

Any help on how to implement this? I am trying to do it with no added modules.

EDIT: The access to the block should be as follows:

Administrators: Should see all "offer" nodes in the block regardless of who they are from.

Listing Author: Should see all "offer" nodes in block.

Offer Author: Should only see "offer" nodes they have submitted to "listing" nodes. They shouldn't see any other "offer" nodes from any other user.
In views, add a relationship on "Content: Author", then add a filter "User: Current" and configure it so it uses the relationship you added and has "Is the logged in user" = "Yes".
Install the Rabbit Hole module and its node sub module and configure it (on the edit page for the offer content type) to give a 404 error for those nodes. Then configure the rabbit hole permissions so that admins can bypass rabbit hole if you need that ability. I would recommend adding this module as opposed to writing some custom code to do this.