public function JsonRpcMethod::access in JSON-RPC 8
Same name and namespace in other branches
- 2.x src/Annotation/JsonRpcMethod.php \Drupal\jsonrpc\Annotation\JsonRpcMethod::access()
Checks data value access.
Parameters
string $operation: The operation to be performed.
\Drupal\Core\Session\AccountInterface $account: (optional) The user for which to check access, or NULL to check access for the current user. Defaults to NULL.
bool $return_as_object: (optional) Defaults to FALSE.
Return value
bool|\Drupal\Core\Access\AccessResultInterface The access result. Returns a boolean if $return_as_object is FALSE (this is the default) and otherwise an AccessResultInterface object. When a boolean is returned, the result of AccessInterface::isAllowed() is returned, i.e. TRUE means access is explicitly allowed, FALSE means access is either explicitly forbidden or "no opinion".
Overrides AccessibleInterface::access
File
- src/
Annotation/ JsonRpcMethod.php, line 106
Class
- JsonRpcMethod
- Defines a JsonRpcParameterDefinition annotation object.
Namespace
Drupal\jsonrpc\AnnotationCode
public function access($operation = 'execute', AccountInterface $account = NULL, $return_as_object = FALSE) {
$account = $account ?: \Drupal::currentUser();
switch ($operation) {
case 'execute':
if (is_callable($this->access)) {
return call_user_func_array($this->access, [
$operation,
$account,
$return_as_object,
]);
}
$access_result = AccessResult::allowed();
foreach ($this->access as $permission) {
$access_result = $access_result
->andIf(AccessResult::allowedIfHasPermission($account, $permission));
}
break;
case 'view':
$access_result = $this
->access('execute', $account, $return_as_object);
break;
default:
$access_result = AccessResult::neutral();
break;
}
return $return_as_object ? $access_result : $access_result
->isAllowed();
}