Remove getFields method from FormEntity
[MAILPOET-3032]
This commit is contained in:
@ -67,12 +67,15 @@ class RequiredCustomFieldValidator {
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int[]
|
||||
*/
|
||||
private function getFormCustomFieldIds(FormEntity $form): array {
|
||||
$formFields = $form->getFields();
|
||||
$formFields = $form->getBlocksByTypes(FormEntity::FORM_FIELD_TYPES);
|
||||
$customFieldIds = [];
|
||||
foreach ($formFields as $fieldName) {
|
||||
if (strpos($fieldName, 'cf_') === 0) {
|
||||
$customFieldIds[] = (int)substr($fieldName, 3);
|
||||
foreach ($formFields as $formField) {
|
||||
if (isset($formField['id']) && is_numeric($formField['id'])) {
|
||||
$customFieldIds[] = (int)$formField['id'];
|
||||
}
|
||||
}
|
||||
return $customFieldIds;
|
||||
|
@ -100,8 +100,13 @@ class SubscriberSubscribeController {
|
||||
}
|
||||
|
||||
// only accept fields defined in the form
|
||||
$formFields = $form->getFields();
|
||||
$data = array_intersect_key($data, array_flip($formFields));
|
||||
$formFieldIds = array_filter(array_map(function (array $formField): ?string {
|
||||
if (!isset($formField['id'])) {
|
||||
return null;
|
||||
}
|
||||
return is_numeric($formField['id']) ? "cf_{$formField['id']}" : $formField['id'];
|
||||
}, $form->getBlocksByTypes(FormEntity::FORM_FIELD_TYPES)));
|
||||
$data = array_intersect_key($data, array_flip($formFieldIds));
|
||||
|
||||
// make sure we don't allow too many subscriptions with the same ip address
|
||||
$timeout = $this->throttling->throttle();
|
||||
|
Reference in New Issue
Block a user