protected function allowObjectRelation($object)
{
$allowedClasses = $this->getClasses();
$allowed = true;
if (!$this->getObjectsAllowed()) {
$allowed = false;
} elseif ($this->getObjectsAllowed() and is_array($allowedClasses) and count($allowedClasses) > 0) {
//check for allowed classes
if ($object instanceof Object\Concrete) {
$classname = $object->getClassName();
foreach ($allowedClasses as $c) {
$allowedClassnames[] = $c['classes'];
}
if (!in_array($classname, $allowedClassnames)) {
$allowed = false;
}
} else {
$allowed = false;
}
} else {
//don't check if no allowed classes set
}
if ($object instanceof Object\AbstractObject) {
Logger::debug("checked object relation to target object [" . $object->getId() . "] in field [" . $this->getName() . "], allowed:" . $allowed);
} else {
Logger::debug("checked object relation to target in field [" . $this->getName() . "], not allowed, target ist not an object");
Logger::debug($object);
}
return $allowed;
}