Following schema demonstrates a hierarchical structure (Organization > Department > Project) with inherited permissions.Each level has its own specific roles (admin/member, manager, lead) that grant certain permissions, while also inheriting permissions from the level above.Before breaking down, lets provide the completed schema:
Copy
entity user {} entity organization { relation admin @user relation member @user action view = admin or member action edit = admin } entity department { relation parent @organization relation manager @user action view = parent.view or manager action edit = parent.edit or manager} entity project { relation parent @department relation lead @user action view = parent.view or lead action edit = parent.edit or lead }