Changeset View
Changeset View
Standalone View
Standalone View
plugins/calendar/drivers/ldap/resources_driver_ldap.php
Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | public function load_resources($query = null, $num = 5000) | ||||
$results[$i] = $this->decode_resource($rec); | $results[$i] = $this->decode_resource($rec); | ||||
} | } | ||||
} | } | ||||
return $results; | return $results; | ||||
} | } | ||||
/** | /** | ||||
* Fetch resource objects filtered by owner email addresses | |||||
* | |||||
* @param array $emails List of email addresses of the owner | |||||
* @param int $num Max size of the result | |||||
* | |||||
* @return array List of resource records | |||||
*/ | |||||
public function load_owned_resources($emails, $num = 5000) | |||||
{ | |||||
if (!($ldap = $this->connect())) { | |||||
return []; | |||||
} | |||||
$ldap->set_pagesize($num); | |||||
$ownerDns = []; | |||||
$results = $ldap->search('email', $emails, 0, true, true); | |||||
if ($results instanceof ArrayAccess) { | |||||
foreach ($results as $i => $rec) { | |||||
$ownerDns[] = $rec['dn']; | |||||
} | |||||
} | |||||
$results = $ldap->search('owner', $ownerDns, 0, true, true); | |||||
if ($results instanceof ArrayAccess) { | |||||
foreach ($results as $i => $rec) { | |||||
$results[$i] = $this->decode_resource($rec); | |||||
} | |||||
} | |||||
return $results; | |||||
} | |||||
/** | |||||
* Return properties of a single resource | * Return properties of a single resource | ||||
* | * | ||||
* @param string $id Unique resource identifier | * @param string $id Unique resource identifier | ||||
* | * | ||||
* @return array Resource object as hash array | * @return array Resource object as hash array | ||||
*/ | */ | ||||
public function get_resource($dn) | public function get_resource($dn) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 75 Lines • Show Last 20 Lines |