Register to read more module?

I’m looking to find ways to restrict blog post access by either specific roles or else by a field that I can check off before publishing.

I’d like to tailor blog posts to specific audiences or to people who have yet to register to the site by checking a checkbox at the time of publish that restricts access or by having a reference field that determines which roles get access to the content. Most importantly, I’d love to have a teaser (up to a certain number of characters) for the users not in the bucket of referenced or allowed groups.

Is there a module that does this or should I take a low-road approach and add some sort of field or two that could do these things via preprocessing?

Drupal version: