public NodeAddAccessCheck::access(AccountInterface $account, NodeTypeInterface $node_type = NULL)
Checks access to the node add page for the node type.
Parameters
\Drupal\Core\Session\AccountInterface $account: The currently logged in account.
\Drupal\node\NodeTypeInterface $node_type: (optional) The node type. If not specified, access is allowed if there exists at least one node type for which the user may create a node.
Return value
string A \Drupal\Core\Access\AccessInterface constant value.
File
- core/modules/node/src/Access/NodeAddAccessCheck.php, line 47
Class
- NodeAddAccessCheck
- Determines access to for node add pages.
Namespace
Drupal\node\Access
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public function access(AccountInterface $account , NodeTypeInterface $node_type = NULL) { $access_control_handler = $this ->entityManager->getAccessControlHandler( 'node' ); // If checking whether a node of a particular type may be created. if ( $account ->hasPermission( 'administer content types' )) { return AccessResult::allowed()->cachePerPermissions(); } if ( $node_type ) { return $access_control_handler ->createAccess( $node_type ->id(), $account , [], TRUE); } // If checking whether a node of any type may be created. foreach ( $this ->entityManager->getStorage( 'node_type' )->loadMultiple() as $node_type ) { if (( $access = $access_control_handler ->createAccess( $node_type ->id(), $account , [], TRUE)) && $access ->isAllowed()) { return $access ; } } // No opinion. return AccessResult::neutral(); } |
Please login to continue.