{
switch ($type) {
case 'Horde_Kolab_Server_Object_Kolab_User':
- if (!isset($info['user_type']) || $info['user_type'] == 0) {
- return sprintf('cn=%s,%s', $id, $this->getBaseUid());
- } else if ($info['user_type'] == Horde_Kolab_Server_Object_Kolab_User::USERTYPE_INTERNAL) {
- return sprintf('cn=%s,cn=internal,%s', $id, $this->getBaseUid());
+ if ($info['user_type'] == Horde_Kolab_Server_Object_Kolab_User::USERTYPE_INTERNAL) {
+ return sprintf('%s,cn=internal,%s', $id, $this->getBaseUid());
} else if ($info['user_type'] == Horde_Kolab_Server_Object_Kolab_User::USERTYPE_GROUP) {
- return sprintf('cn=%s,cn=groups,%s', $id, $this->getBaseUid());
+ return sprintf('%s,cn=groups,%s', $id, $this->getBaseUid());
} else if ($info['user_type'] == Horde_Kolab_Server_Object_Kolab_User::USERTYPE_RESOURCE) {
- return sprintf('cn=%s,cn=resources,%s', $id, $this->getBaseUid());
+ return sprintf('%s,cn=resources,%s', $id, $this->getBaseUid());
} else {
- return sprintf('cn=%s,%s', $id, $this->getBaseUid());
+ return parent::getServerUid($type, $id, $info);
}
case 'Horde_Kolab_Server_Object_Kolab_Address':
- return sprintf('cn=%s,cn=external,%s', $id, $this->getBaseUid());
- case 'Horde_Kolab_Server_Object_Kolabsharedfolder':
- case 'Horde_Kolab_Server_Object_Kolab_Administrator':
- case 'Horde_Kolab_Server_Object_Kolab_Maintainer':
- case 'Horde_Kolab_Server_Object_Kolab_Domainmaintainer':
- return sprintf('cn=%s,%s', $id, $this->getBaseUid());
+ return sprintf('%s,cn=external,%s', $id, $this->getBaseUid());
case 'Horde_Kolab_Server_Object_Kolabgroupofnames':
case 'Horde_Kolab_Server_Object_Kolab_Distlist':
if (!isset($info['visible']) || !empty($info['visible'])) {
- return sprintf('cn=%s,%s', $id, $this->getBaseUid());
+ return parent::generateServerUid($type, $id, $info);
} else {
- return sprintf('cn=%s,cn=internal,%s', $id, $this->getBaseUid());
+ return sprintf('%s,cn=internal,%s', $id, $this->getBaseUid());
}
+ case 'Horde_Kolab_Server_Object_Kolabsharedfolder':
+ case 'Horde_Kolab_Server_Object_Kolab_Administrator':
+ case 'Horde_Kolab_Server_Object_Kolab_Maintainer':
+ case 'Horde_Kolab_Server_Object_Kolab_Domainmaintainer':
default:
return parent::generateServerUid($type, $id, $info);
}
/**
* Save an object.
*
- * @param string $dn The DN of the object to be added.
+ * @param string $uid The UID of the object to be added.
* @param array $data The attributes of the object to be added.
* @param boolean $exists Does the object already exist on the server?
*
* @return boolean True if saving succeeded.
*/
- public function save($dn, $data, $exists = false)
+ public function save($uid, $data, $exists = false)
{
if ($exists === false) {
- $entry = Net_LDAP2_Entry::createFresh($dn, $data);
+ $entry = Net_LDAP2_Entry::createFresh($uid, $data);
$result = $this->_ldap->add($entry);
if ($result instanceOf PEAR_Error) {
throw new Horde_Kolab_Server_Exception($result->getMessage());
unset($data[$key]);
}
}
- $result = $this->_ldap->modify($dn, array('delete' => $deletes,
+ $result = $this->_ldap->modify($uid, array('delete' => $deletes,
'replace' => $data));
if ($result instanceOf PEAR_Error) {
throw new Horde_Kolab_Server_Exception($result->getMessage());
array_reverse($ocs);
foreach ($ocs as $oc) {
try {
- Horde_Kolab_Server_Object::loadClass($oc);
- return $oc;
+ $class_name = 'Horde_Kolab_Server_Object_' . ucfirst($oc);
+ Horde_Kolab_Server_Object::loadClass($class_name);
+ return $class_name;
} catch (Horde_Kolab_Server_Exception $e) {
}
- if ($oc == 'top') {
- return 'Horde_Kolab_Server_Object';
- }
+ }
+ if ($oc == 'top') {
+ return 'Horde_Kolab_Server_Object';
}
throw new Horde_Kolab_Server_Exception(sprintf(_("Unkown object type for UID %s."),
$uid));