function hook_webform_submission_access in Webform 8.5
Same name and namespace in other branches
- 6.3 webform.api.php \hook_webform_submission_access()
- 7.4 webform.api.php \hook_webform_submission_access()
- 7.3 webform.api.php \hook_webform_submission_access()
- 6.x webform.api.php \hook_webform_submission_access()
Implements hook_webform_submission_access().
Implements *_any and *_own operations for a module.
2 functions implement hook_webform_submission_access()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- webform_access_webform_submission_access in modules/
webform_access/ webform_access.module - Implements hook_ENTITY_TYPE_access() for webform_submission entities.
- webform_group_webform_submission_access in modules/
webform_group/ webform_group.module - Implements hook_ENTITY_TYPE_access() for webform_submission entities.
File
- ./
webform.api.php, line 667 - Hooks related to Webform module.
Code
function hook_webform_submission_access(\Drupal\webform\WebformSubmissionInterface $webform_submission, $operation, \Drupal\Core\Session\AccountInterface $account) {
/** @var \Drupal\webform\WebformAccessRulesManagerInterface $access_rules_manager */
$access_rules_manager = \Drupal::service('webform.access_rules_manager');
// Add support for some module *_any and *_own access rules.
$access_rules = \Drupal::moduleHandler()
->invoke('MY_MODULE', 'webform_access_rules');
$access_any = isset($access_rules[$operation . '_any']) ? $access_rules_manager
->checkWebformSubmissionAccess($operation . '_any', $account, $webform_submission) : \Drupal\Core\Access\AccessResult::forbidden();
$access_own = isset($access_rules[$operation . '_own']) && $webform_submission
->isOwner($account) ? $access_rules_manager
->checkWebformSubmissionAccess($operation . '_own', $account, $webform_submission) : \Drupal\Core\Access\AccessResult::forbidden();
$access = $access_any
->orIf($access_own);
if ($access
->isAllowed()) {
return $access;
}
else {
return \Drupal\Core\Access\AccessResult::neutral();
}
}