Пользовательский шаблон для настраиваемого сообщения в Laravel

Я нахожусь в процессе создания WebApp в Laravel, где зарегистрированные бизнес-пользователи смогут отправлять автоматические электронные письма своим клиентам с помощью всех данных, хранящихся в приложении. Приложение является своего рода CRM. Но для создания собственной электронной почты я хочу дать клиенту возможность написать свой собственный текст и немного логики.

В настоящее время я настроил его так, чтобы только некоторые предопределенные переменные могли использоваться вместе с некоторым HTML. Я анализирую разметку для генерации электронной почты. Как определено ниже.

  • Используйте предопределенные переменные. Ex. [{cFullName}] для полного имени Клиента.

Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь хочет добавить какую-то логику, скажем, пример:

  • Цикл и распечатать все элементы заказа
  • Если поставщик доставки заказа — FedEx, добавьте сообщение о том, что ссылка отслеживания будет активна после 20:00.

    То, что я сейчас использую, Blade, который поставляется по умолчанию в Laravel. Как это даст мне возможность дать гораздо больше гибкости пользователям.

Он отлично работает в среде Dev и решает задачу, но есть проблема.

Единственная проблема заключается в том, что это связано с собственным набором проблем безопасности, поскольку я пытаюсь сохранить несколько шаблонов Blade для каждого пользователя в БД и скомпилировать их во время выполнения, когда сработало событие отправки электронной почты.

Буду признателен, если кто-нибудь подскажет, как сделать добавленный в Blade пользователь более ограниченным, безопасным или совершенно другим вариантом. Так как позволить пользователям добавить логику в приложение, это сложно сделать безопасно.

-1

Решение

AFAIK, Blade предназначен для использования разработчиком, поэтому избегайте использования Blade для пользовательского контента. В качестве альтернативы вы можете создать свои собственные предопределенные наборы синтаксиса, доступные пользователю, которые будут заменены реальной командой. Это может поставить некоторые ограничения, но опять же мы не любим смешные дела.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]