Сейчас система полномочий может проверить полномочия только для текущего проекта. Это происходит потому, что в projectVoter’ы проект приходит из ProjectContext (а от этого класса хорошо бы избавляться везде, где только можно).
Вобще не совсем, там более гибко:
if (empty($subject)) {
// В противном случае проверяем роль для текущего в данном контексте проекта
$subject = $this->projectContext->getProject();
}
if ($subject instanceof Project) {
$subject = $subject->getSuffix();
}
т.е. если проект не передан, то проверяем доступ к текущему, если передан, то к переданному. Тут вопрос, насколько такая гибкость хороша, не скрывает ли она от нас какие-то ошибки, где полномочия проверятся относительно не того проекта, относительно которого должны.
Ну и как минимум, для проверки полномочия в проекта в subject нужен не строго проект, а может быть связанная с проектом сущность/модель, например task, так что как минимум проверять надо WithProjectInterface (или InProjectInterface)
На самом деле возможность есть, только она не очевидна, и здесь что-то надо с ней сделать.