protected function allowOrDeny($roleName, $resourceName, $access, $action)
{
if (!$this->isRole($roleName)) {
throw new Exception('Role "' . $roleName . '" does not exist in the list');
}
if (!$this->isResource($resourceName)) {
throw new Exception('Resource "' . $resourceName . '" does not exist in the list');
}
$access = $access === '*' || empty($access) ? $this->getResourceAccess($resourceName) : $access;
if (is_array($access)) {
foreach ($access as $accessName) {
$this->setAccess($roleName, $resourceName, $accessName, $action);
}
} else {
$this->setAccess($roleName, $resourceName, $access, $action);
}
}