Merge pull request #490 from tractorcow/pulls/support-risky-to

API Allow risky "to" recipient fields to be configured
This commit is contained in:
Daniel Hensby 2016-07-21 13:47:40 +01:00 committed by GitHub
commit 3e151053b1

View File

@ -39,6 +39,17 @@ class UserDefinedForm_EmailRecipient extends DataObject {
'EmailFrom' 'EmailFrom'
); );
/**
* Setting this to true will allow you to select "risky" fields as
* email recipient, such as free-text entry fields.
*
* It's advisable to leave this off.
*
* @config
* @var bool
*/
private static $allow_unbound_recipient_fields = false;
public function summaryFields() { public function summaryFields() {
$fields = parent::summaryFields(); $fields = parent::summaryFields();
if(isset($fields['EmailAddress'])) { if(isset($fields['EmailAddress'])) {
@ -132,8 +143,16 @@ class UserDefinedForm_EmailRecipient extends DataObject {
); );
$validSubjectFields->merge($multiOptionFields); $validSubjectFields->merge($multiOptionFields);
// To address cannot be unbound, so restrict to pre-defined lists
$validEmailToFields = $multiOptionFields; // Check valid email-recipient fields
if($this->config()->allow_unbound_recipient_fields) {
// To address can only be email fields or multi option fields
$validEmailToFields = ArrayList::create($validEmailFromFields->toArray());
$validEmailToFields->merge($multiOptionFields);
} else {
// To address cannot be unbound, so restrict to pre-defined lists
$validEmailToFields = $multiOptionFields;
}
// Build fieldlist // Build fieldlist
$fields = FieldList::create(Tabset::create('Root')->addExtraClass('EmailRecipientForm')); $fields = FieldList::create(Tabset::create('Root')->addExtraClass('EmailRecipientForm'));