Ворклог по задаче "Добавить кнопку для быстрого редактирования товара"
Наблюдения и решение по админскому редактированию товара
Что выяснили
Новая публичная часть HappyBaby работает отдельно от MODX, но MODX остаётся рабочим backend и существующей административной средой.
Для кнопки быстрого редактирования нет смысла строить вторую админку в новом frontend. На первом этапе правильнее использовать существующий MODX Manager и дать администратору быстрый переход к редактированию текущего товара.
Главный технический вопрос оказался не в самой кнопке, а в определении административной авторизации на новом frontend.
Фактически нужная MODX-cookie уже существует и отправляется браузером в запросах нового frontend. Значит дополнительную систему авторизации или синхронизацию MODX-пользователя с базой haih-agent сейчас делать не нужно.
Принятое направление
Добавить отдельный GraphQL-запрос, который возвращает текущего MODX-пользователя на основании существующей MODX-сессии/cookie.
MODX остаётся единственным source of truth для этой авторизации. Пользователь MODX на данном этапе:
- не переносится в базу haih-agent;
- не синхронизируется с обычной моделью User;
- не получает отдельную вторую сессию;
- просто возвращается как внешний текущий MODX-user, если native MODX-сессия валидна.
Если GraphQL возвращает текущего MODX-user, frontend считает посетителя административным пользователем и показывает admin toolbar.
UI
Административное действие лучше не смешивать с покупательскими кнопками карточки товара. Предпочтительный вариант — отдельный reusable admin toolbar / admin action layer, видимый только при наличии текущего MODX-user.
Первое действие toolbar:
- Редактировать товар → открыть соответствующий resource в MODX Manager.
Такой toolbar можно позже переиспользовать для других административных действий и типов страниц без создания новой админки.
Что нужно для реализации
- Добавить GraphQL query текущего MODX-user по native session/cookie.
- Возвращать только необходимые frontend-данные пользователя; не встраивать его в локальную User-модель.
- На frontend запросить текущего MODX-user.
- При наличии пользователя показывать admin toolbar.
- Для карточки товара сформировать ссылку на редактирование соответствующего MODX resource.
- Убедиться, что у товара доступен исходный MODX resource ID; если нет — добавить его в данные товара.
Почему выбран этот вариант
Он использует уже существующую авторизацию и административную систему, не дублирует MODX ACL и не создаёт дополнительный auth-контур ради одной функции. При этом frontend получает минимально необходимый сигнал для административного UI и остаётся слабо связанным с внутренней моделью пользователей MODX.