You are here

function _webform_access_user_profile_form_submit in Webform 6.x

Same name and namespace in other branches
  1. 8.5 modules/webform_access/webform_access.module \_webform_access_user_profile_form_submit()

Submit callback for the user profile form to save the webform_access user setting.

1 string reference to '_webform_access_user_profile_form_submit'
webform_access_form_user_form_alter in modules/webform_access/webform_access.module
Implements hook_form_FORM_ID_alter() for user form.

File

modules/webform_access/webform_access.module, line 443
Provides webform access controls for webform nodes.

Code

function _webform_access_user_profile_form_submit($form, FormStateInterface $form_state) {
  $account = $form_state
    ->getFormObject()
    ->getEntity();

  // Delete all existing records.
  \Drupal::database()
    ->delete('webform_access_group_user')
    ->condition('uid', $account
    ->id())
    ->execute();
  $record = [
    'uid' => $account
      ->id(),
  ];
  $value = $form_state
    ->getValue('webform_access_group');
  foreach ($value as $group_id) {
    $record['group_id'] = $group_id;

    // Insert new record.
    \Drupal::database()
      ->insert('webform_access_group_user')
      ->fields([
      'group_id',
      'uid',
    ])
      ->values($record)
      ->execute();
    WebformAccessGroup::load($group_id)
      ->invalidateTags();
  }

  // Invalidate 'webform_submission_list' cache tag when user is updated.
  // @see _webform_clear_webform_submission_list_cache_tag()
  Cache::invalidateTags([
    'webform_submission_list',
  ]);
}