public function SupportTicketAddAccessCheck::access in Support Ticketing System 8
Checks access to the support_ticket add page for the support_ticket type.
Parameters
\Drupal\Core\Session\AccountInterface $account: The currently logged in account.
\Drupal\support_ticket\SupportTicketTypeInterface $support_ticket_type: (optional) The support_ticket type. If not specified, access is allowed if there exists at least one support_ticket type for which the user may create a support_ticket.
Return value
string A \Drupal\Core\Access\AccessInterface constant value.
File
- modules/
support_ticket/ src/ Access/ SupportTicketAddAccessCheck.php, line 53 - Contains \Drupal\support_ticket\Access\SupportTicketAddAccessCheck.
Class
- SupportTicketAddAccessCheck
- Determines access to for support_ticket add pages.
Namespace
Drupal\support_ticket\AccessCode
public function access(AccountInterface $account, SupportTicketTypeInterface $support_ticket_type = NULL) {
$access_control_handler = $this->entityManager
->getAccessControlHandler('support_ticket');
// If checking whether a support_ticket of a particular type may be created.
if ($account
->hasPermission('administer support ticket types')) {
return AccessResult::allowed()
->cachePerPermissions();
}
if ($support_ticket_type) {
return $access_control_handler
->createAccess($support_ticket_type
->id(), $account, [], TRUE);
}
// If checking whether a support_ticket of any type may be created.
foreach ($this->entityManager
->getStorage('support_ticket_type')
->loadMultiple() as $support_ticket_type) {
if (($access = $access_control_handler
->createAccess($support_ticket_type
->id(), $account, [], TRUE)) && $access
->isAllowed()) {
return $access;
}
}
// No opinion.
return AccessResult::neutral();
}