diff --git a/uw_cfg_common.module b/uw_cfg_common.module index dcf4989998145089027c350a032fafa456205093..ed72eb93a6fd1ed14148f0a984c4ec27a48ea44c 100644 --- a/uw_cfg_common.module +++ b/uw_cfg_common.module @@ -1022,6 +1022,25 @@ function uw_cfg_common_webform_access(WebformInterface $webform, string $operati return AccessResult::forbidden(); } break; + + case 'user': + // Must be authenticated for group auth. + if (!$account->isAuthenticated()) { + return AccessResult::forbidden(); + } + + // Get all users when selecting 'Users specified below' under + // admin/structure/webform/manage/WEBFORM_ID/access. + $create_user_ids = $webform->getAccessRules()['create']['users']; + + // Get current logged in user id. + $current_user_id = \Drupal::currentUser()->id(); + + // If the logged user is in not a specified user, get access denied. + if (!in_array($current_user_id, $create_user_ids)) { + return AccessResult::forbidden(); + } + break; } return AccessResult::neutral();