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

В сущности User есть атрибут $roles и функция getRoles().

Проблема в том, что функция является одновременно и геттером атрибута $roles и реализацией интерфейса UserInterface

Мы её используем как реализацию интерфейса и в ней к глобальным ролям прикладываем и роли проекта, это работает и используется например в списке пользователей, да и в бейдже пользователя. Но доктрина работает с ней некорректно (удивительно что вобще работает), и заново загружает атрибут projectusers даже если он уже загружен, например join’ом.

Сейчас атрибут $roles используется фактически как флаг ROLE_ROOT. В будущем возможно там будет ROLE_MANAGER или кто подобный, поэтому превращать его в флаг, чтобы потом вновь сделать полем неразумно. Но можно его переименовать во что-то, вроде globalRoles. Так мы решим конфликт.

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