Beispiel #1
0
 /**
  * @param	Property $property The property object to add.
  */
 protected function doAddProperty($property)
 {
     $this->collPropertys[] = $property;
     $property->setAccount($this);
 }
Beispiel #2
0
 /**
  * Updates a property
  *
  * @param int $id The property ID
  * @param array $data
  * @return int The property ID
  */
 public function do_update($id, $data = null)
 {
     $user = $this->requireUser();
     if (!$user->isAdmin()) {
         throw new Exception('Only administrators are allowed to edit properties.');
     }
     // Validate input data
     $validator = new KickstartValidator();
     $locale = Localizer::getInstance();
     $warnings = $validator->filterErrors($data, $this->initFilter($this->filter_basic, $locale));
     if ($warnings) {
         return array('result' => false, 'warnings' => $warnings);
     }
     $query = PropertyQuery::create()->filterByAccount($user->getAccount());
     if ($id !== null) {
         $query->filterById($id, Criteria::NOT_EQUAL);
         $property = PropertyQuery::create()->filterByAccount($user->getAccount())->findOneById($id);
         if (!$property) {
             throw new Exception('Property not found; ID: ' . $id);
         }
     } else {
         $property = new Property();
     }
     // Check for duplicates
     if (isset($data['Name']) and $query->findOneByName($data['Name'])) {
         throw new Exception($locale->insert('error.taken', array('value' => '"' . $data['Name'] . '"')));
     }
     unset($data['Id']);
     $property->fromArray($data);
     $property->setAccount($user->getAccount());
     $property->save();
     return $property->getId();
 }