Example #1
0
 /**
  * Saves object information.
  *
  * @param array $info The information about the object.
  *
  * @return boolean|PEAR_Error True on success.
  */
 public function save(array $info)
 {
     $admin_group = new Horde_Kolab_Server_Object_Kolabgroupofnames($this->server, null, $this->required_group);
     $save_result = parent::save($info);
     if (!$admin_group->exists()) {
         $data = array_merge($this->required_group, array(Horde_Kolab_Server_Object_Kolabgroupofnames::ATTRIBUTE_MEMBER => array($this->uid)));
     } else {
         $result = $admin_group->isMember($this->uid);
         if ($result === false) {
             $members = $admin_group->getMembers();
             $members[] = $this->uid;
             $data = array(Horde_Kolab_Server_Object_Kolabgroupofnames::ATTRIBUTE_MEMBER => $members);
         } else {
             $data = null;
         }
     }
     if (!empty($data)) {
         return $admin_group->save($data);
     }
     return $save_result;
 }