How to create access permissions system similar to Organic Groups access, using Eck entities There currently still is not a working version for Organic Groups access control, compatible with ECK entities.

My current site contains entity type project and entity type project content.
The project content references the project through an entityreference field.

I would like to use an access control system that grants access to specific projects, and when that access is granted, the user has also access to specific project content entity types.

I know that Organic groups uses a relationship approach in which the group membership is an entity, and there is a two level deep relationship between group content (or group member) and the group. 

In my case I prefer the simple direct entityreference (one level relation) between content and project. This would serve simplicity and performance. If you would advise against that, please let me kow.

I would like to receive guidance on how to set up such permission system, and possibly your suggestions and recomendations based on your experience with a similar setup. Thank you.
If you'd be willing to use the Group module, then you could do like so:


You can configure a Group Type named "Project", so that this Group Type would replace your entity type project.
You can create 1 Group (of group type "Project") for each of your Projects (each Group probably labelled with the name of a specific project).
You can assign nodes to a Group (of group type "Project"), so that these nodes would replace your project content entity types.


Group is available as of D7, and has a D8 version also. It is designed to be an alternative to Organic Groups. The Group module creates groups as entities, making them fully fieldable, extensible and exportable.

With the above in place, you also have the permission system you're looking for, out-of-the-Group-box.

More info:


Refer to "What are the various roles supported by the Group module?" for more details about the supported roles.
Refer to my answer to "How to configure access to courses for teachers and students?" for a sample configuration.


Integration with various modules

The Group module integrates with various other (popular) modules, including:


Rules, as illustrated in the answer to the question "How to bulk assign existing content to a group created with the Group module?".
Views, as illustrated in the answer to the question "How to show the content of a group on the group page when using the Group module?".
Pathauto.


The beauty, IMO, of these integrations are that they are more or less out-of-the box (not dozens of extra modules needed to make those integrations work).

Resources


Community documentation for the Group module.
Video tutorial "How to use the Group module in Drupal 8 to manage editorial access control to different areas of a web site".