/var/www/vhosts/ihelp.ro/httpdocs/vendor/cakedc/auth/src/Traits
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/cakedc/auth/src/Traits/IsAuthorizedTrait.php (2548B)
_checkCanAccess(Router::normalize(Router::reverse($url)), $action);
}
return $this->_checkCanAccess($url, $action);
}
/**
* Check if user can acces url
*
* @param string $url to check permissions
* @param string $action Authorization action.
* @return bool
*/
protected function _checkCanAccess($url, $action)
{
/**
* @var \Cake\Http\ServerRequest $request
*/
$request = $this->getRequest();
$service = $request->getAttribute('authorization');
if (!$service instanceof AuthorizationServiceInterface) {
throw new \RuntimeException(__('Could not find the authorization service in the request.'));
}
$identity = $request->getAttribute('identity');
$targetRequest = $this->_createUrlRequestToCheck($url);
return $service->can($identity, $action, $targetRequest);
}
/**
* Create the url request to check authorization
*
* @param string $url The target url.
* @return \Cake\Http\ServerRequest
*/
protected function _createUrlRequestToCheck($url)
{
$uri = new Uri($url);
$targetRequest = new ServerRequest([
'uri' => $uri,
]);
$params = Router::parseRequest($targetRequest);
$targetRequest = $targetRequest->withAttribute('params', $params);
return $targetRequest->withAttribute(
'rbac',
$this->getRequest()->getAttribute('rbac')
);
}
}