function webform_access_form_user_form_alter in Webform 6.x
Same name and namespace in other branches
- 8.5 modules/webform_access/webform_access.module \webform_access_form_user_form_alter()
Implements hook_form_FORM_ID_alter() for user form.
Add the webform access group to an individual user's account page.
File
- modules/
webform_access/ webform_access.module, line 405 - Provides webform access controls for webform nodes.
Code
function webform_access_form_user_form_alter(&$form, FormStateInterface $form_state) {
// Make sure some webform access groups exist before displaying
// the webform access details widget.
if (!WebformAccessGroup::loadMultiple()) {
return;
}
// Only display the webform access detail widget if the current user can
// administer webform and users.
if (!\Drupal::currentUser()
->hasPermission('administer webform') || !\Drupal::currentUser()
->hasPermission('administer users')) {
return;
}
$account = $form_state
->getFormObject()
->getEntity();
$default_value = \Drupal::database()
->select('webform_access_group_user', 'gu')
->fields('gu', [
'group_id',
])
->condition('uid', $account
->id())
->execute()
->fetchCol();
$form['webform_access'] = [
'#type' => 'details',
'#title' => t('Webform access'),
'#open' => TRUE,
'#weight' => 5,
];
$form['webform_access']['webform_access_group'] = _webform_access_group_build_element($default_value, $form, $form_state);
$form['actions']['submit']['#submit'][] = '_webform_access_user_profile_form_submit';
}