Missing "view mode" permission in core Context


Drupal 8
Switching to Drupal for intranet site in large organization


Background

OtraganixLocker Corporation is switching to Drupal from a custom-made home-grown intranet site. They want to use D8. 

The problem is, the old custom-made intranet had the following permissions for 
(its equivalent of) D8 nodes:


add content
edit own content
edit any content
delete own content
delete any content
view own content
view any content


Moreover, the granularity of the permissions worked down to the "content-type" level on the old intranet.

Moreover, the granularity of the permissions on the old intranet permitted user-based-assignment as well as role-based-assignment.

Question

Drupal 8 seems to be missing the view own content and view any content permissions that the old intranet system had. 

Moreover, there seem to be a lot of ways to handle this, at least in D7. 


Is this missing functionality accounted for in D8 core and simply missing from the front-end interface, or is it also absent from D8 core? 
If it is not absent from D8 core, which specific function or functions in the D8 API account for this functionality?


See also


Blog post detailing the lack of granularity issue
Blog post addressing lack of granularity issue in D8
The node access control methods between Drupal 7 and Drupal 8 are largely the same and described in Node access rights.  There are still the same hooks, just some of the plumbing is different.

So, if you want to implement the Drupal 6 fine grained access in Drupal 8, you can either do hook_node_access() or proper grants.  Remember, node usage can exist in case other than the node pages (eg, lists); the node access system takes care of this.  Work has begun on the ACL module and dependencies which provide some abstractions for these.

Drupal 8 also has a new concept for route access.  It uses classes that implement AccessInterface, and then use YAML configuration for providing the requirements for the route.  Looking at how routing is set up for the code node module (which defines the Node entity), may be the best starting point for delving into this, though it uses the same Access classes as the node acccess system.  I think explaining it here may be too much.