Limiting permission

Is this the right way to do for limiting access to sub-set of any DocType like giving user access to PROJ-001;002;003 and not to the rest projects?
The goal is to set up access to partner companies only to assigned projects and linked docs. So the way it works:

  1. set up user role = Project User. after this action he gets access to all projects.
  2. set up individual User persmission for this user:
    johnsmith@example.com
    user
    Allow
    Project
    allow
    For Value
    PROJ-0001
    for_value

Is Default
is_default
Advanced Control

Apply To All Document Types

this give access to PROJ-0001 and to its linked docs.

Is there any more elegant and less manual way of doing it (per company for instance).

Use sharing

https://docs.frappe.io/erpnext/user/manual/en/sharing