Этап
Открыта
Тип
Рефакторнинг
Приоритет
Обычный
Трудоемкость
Обычная
Создана
Дата создания
2 года назад
Назначена
Обновлена
2 года назад

Сейчас система полномочий может проверить полномочия только для текущего проекта. Это происходит потому, что в projectVoter’ы проект приходит из ProjectContext (а от этого класса хорошо бы избавляться везде, где только можно).

Вобще не совсем, там более гибко:

        if (empty($subject)) {
            // В противном случае проверяем роль для текущего в данном контексте проекта
            $subject = $this->projectContext->getProject();
        }
        if ($subject instanceof Project) {
            $subject = $subject->getSuffix();
        }

т.е. если проект не передан, то проверяем доступ к текущему, если передан, то к переданному. Тут вопрос, насколько такая гибкость хороша, не скрывает ли она от нас какие-то ошибки, где полномочия проверятся относительно не того проекта, относительно которого должны.

Ну и как минимум, для проверки полномочия в проекта в subject нужен не строго проект, а может быть связанная с проектом сущность/модель, например task, так что как минимум проверять надо WithProjectInterface (или InProjectInterface)

Панель управления

Комментарии могут оставлять только авторизованные пользователи
 demius 2 года назад

На самом деле возможность есть, только она не очевидна, и здесь что-то надо с ней сделать.