In Drupal 8, we have implemented a membership-type website that will control and display views or lists of contents according to a member's membership group. The Drupal Group module seems to be the most ideal solution https://www.drupal.org/project/group.
Normally, in this scenario, one will set up the group module, content types, permissions, etc. like described below: