Have a look at the core suspend extension. That's exactly what it does. Of course it's a bit radical because it blocks everything, but you'll get the idea.
Flagrow Terms also restricts access when you did not accept the terms, itself inspired by the suspend extension as well.