示例#1
0
 /**
  *
  * Checks if an object is an allowed relation
  * @param Object_Abstract $object
  * @return boolean
  */
 protected function allowObjectRelation($object)
 {
     $allowedClasses = $this->getClasses();
     $allowed = true;
     if (!$this->getObjectsAllowed()) {
         $allowed = false;
     } else {
         if ($this->getObjectsAllowed() and is_array($allowedClasses) and count($allowedClasses) > 0) {
             //check for allowed classes
             if ($object instanceof Object_Concrete) {
                 $classname = $object->getO_className();
                 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_Abstract) {
         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;
 }