public function getConnection(array $configuration)
{
if (empty($configuration['mock'])) {
if (!isset($configuration['basedn'])) {
throw new Horde_Exception('The parameter \'basedn\' is missing in the Kolab server configuration!');
}
$ldap_read = new Horde_Ldap($configuration);
if (isset($configuration['host_master'])) {
$configuration['host'] = $configuration['host_master'];
$ldap_write = new Horde_Ldap($configuration);
$connection = new Horde_Kolab_Server_Connection_Splittedldap($ldap_read, $ldap_write);
} else {
$connection = new Horde_Kolab_Server_Connection_Simpleldap($ldap_read);
}
return $connection;
} else {
if (isset($configuration['data'])) {
$data = $configuration['data'];
} else {
$data = array();
}
$connection = new Horde_Kolab_Server_Connection_Mock(new Horde_Kolab_Server_Connection_Mock_Ldap($configuration, $data));
return $connection;
}
}