Neo4j направил путь через несколько отношений с фильтром свойств

Будучи новичком в Cypher и Neo4j, у меня возникли проблемы при создании запроса для моего варианта использования. Я строю простой ACL (список контроля доступа) и ищу путь через отношения разрешений и иерархию. Картина может лучше объяснить это:

Key:
    Users -> Blue
    Groups -> Yellow, Green
    Resource Tree -> Red

Теперь я хочу посмотреть, существует ли путь от Боба кeVar 33 ресурс, где Боб имеетОбновить доступ. Поскольку существует прямой путь, я могу получить то, что ищу, запустив

MATCH p =(usr:Usr)-[:AXO {update: true}]->(aco:ACO)
WHERE usr.name = 'Bob' AND aco.name = 'eVar 33'
RETURN p

Но теперь Боб также является членомMedia Mgmt группа, которая дает емучитать доступ кпреобразование ресурс. И потому чтопреобразование дальше вверх по дереву ресурсов, чемeVar 33, eVar 33 должен наследовать это разрешение. Но когда я запускаю тот же запрос в поисках{read: true} вместо этого путь не найден. Я знаю, что это потому, что я не разрешаю прохождение через:IN а также:HAS отношения, но как я могу это сделать?

Я пытался:

MATCH p =(usr:Usr)-[:IN|:HAS|:AXO {read: true}]->(aco:ACO)
WHERE usr.name = 'Bob' AND aco.name = 'eVar 33'
RETURN p

думая, что это позволит обойти эти отношения, но он все равно не найдет пути (потому что я не допускаю глубину больше 1?).

Итак, вот мои потребности:

Неизвестная глубина путиЛюбой путь (пути), который я получаю, в порядке (все, что меня действительно волнует, это "есть ли путь или нет?")Должен быть в состоянии получить доступ от пользователя к ресурсу И когда соблюдается отношение AXO, оно должно соответствовать фильтру свойств.Должен следовать ориентированному графу (например, у Боба нет прав нааналитика)

И нет, я не работаю на Nike. Просто пример использования здесь :)