2016-02-01 1 views
-1

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

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

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

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

  • Loop до конца и напечатать все OrderItems
  • Если заказ доставка Поставщик является FedEx, то добавьте сообщение о том, что ссылка отслеживания будет активной после 8 вечера.

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

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

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

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

+0

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

ответ

0

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

Смежные вопросы