How to filter reading/visibility posts based on role?

To do this, you need to add a category field on the user page. There you can assign the specific category to a certain user.

After that you need to make sure that when the user is logged in, WordPress is looking at the current_user and assign that user to the post loop. This way the user will only see there assigned category.

Hope this helps.