You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] Плейсхолдеры письма отдают token заказа, пароль покупателя и properties доставки #889
Сборка плейсхолдеров уведомления кладёт в шаблон полный toArray() заказа, покупателя и доставки. В заказе на верхнем уровне и в {\$order} остаётся token. У покупателя в массиве есть password и token. У доставки в properties лежат секреты вроде ключа webhook.
Оплата в том же методе уже режется через PaymentPublicFields. Заказ, покупатель и доставка нет.
Штатные чанки эти ключи не печатают. Любой шаблон, выбранный в UI уведомлений, может их вывести.
Шаги воспроизведения
Создать чанк уведомления и вывести в нём {\$token}, {\$customer.password} или {\$delivery.properties}.
Привязать чанк к смене статуса, канал email.
Сменить статус заказа с покупателем и доставкой.
Открыть письмо.
Ожидаемое поведение
В шаблон попадают те же публичные поля, что в кабинете через CustomerPublicDto и в менеджере, где token заказа вырезают. Секрет доставки и hash пароля в письмо не входят.
\$orderData это msOrder::toArray(), включая token. msCustomer::toArray() включает password и token.
Тот же полный массив покупателя уходит в получателя в OrderStatusService при разборе уведомления.
Скриншоты
Не требуются.
Окружение
MiniShop3: 1.14.1-beta2
MODX: 3.x
PHP: 8.2+
MySQL: не зависит
Браузер: не зависит
Логи ошибок
Логи из core/cache/logs/error.log
Ошибки нет. Секреты видны только если чанк их печатает.
Дополнительный контекст
Файлы: src/Notifications/Notification.php, метод getPlaceholders(). src/Services/Order/OrderStatusService.php кладёт \$customer->toArray() в получателя.
Это не #840. Там hash пароля и token попадают в Fenom-страницы кабинета. Здесь путь исходящего письма.
Предложение: из заказа убрать token, покупателя отдавать через CustomerPublicDto, у доставки не передавать properties и class.
Activity
fix(notifications): не отдавать шаблону письма секреты заказа, покупа…
fix: id в SQL combo-списков и секреты доставки в кабинете (#882, доби…
chore(release): 1.14.2-beta1 (#911)