function _webform_access_form_node_form_submit in Webform 6.x
Same name and namespace in other branches
- 8.5 modules/webform_access/webform_access.module \_webform_access_form_node_form_submit()
Webform access group submit handler.
1 string reference to '_webform_access_form_node_form_submit'
- webform_access_form_node_form_alter in modules/
webform_access/ webform_access.module - Implements hook_form_BASE_FORM_ID_alter().
File
- modules/
webform_access/ webform_access.module, line 356 - Provides webform access controls for webform nodes.
Code
function _webform_access_form_node_form_submit(&$form, FormStateInterface $form_state) {
/** @var \Drupal\webform\WebformEntityReferenceManagerInterface $entity_reference_manager */
$entity_reference_manager = \Drupal::service('webform.entity_reference_manager');
$node = $form_state
->getFormObject()
->getEntity();
$field_names = $entity_reference_manager
->getFieldNames($node);
$record = [
'entity_type' => 'node',
'entity_id' => $node
->id(),
];
foreach ($field_names as $field_name) {
$value = $form_state
->getValue($field_name);
// Handle hidden webform fields.
if ($value === NULL) {
continue;
}
$record['field_name'] = $field_name;
// Delete all existing records.
\Drupal::database()
->delete('webform_access_group_entity')
->condition('entity_type', $record['entity_type'])
->condition('entity_id', $record['entity_id'])
->condition('field_name', $record['field_name'])
->execute();
foreach ($value as $item) {
$record['webform_id'] = $item['target_id'];
foreach ($item['settings']['webform_access_group'] as $group_id) {
$record['group_id'] = $group_id;
// Insert new record.
\Drupal::database()
->insert('webform_access_group_entity')
->fields([
'group_id',
'entity_type',
'entity_id',
'field_name',
'webform_id',
])
->values($record)
->execute();
// Invalidate cache tags.
WebformAccessGroup::load($group_id)
->invalidateTags();
}
}
}
}