steffen: server/kolab-resource-handlers/kolab-resource-handlers/resmgr resmgr.php, 1.12, 1.13
cvs at intevation.de
cvs at intevation.de
Tue Aug 31 05:55:33 CEST 2004
Author: steffen
Update of /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr
In directory doto:/tmp/cvs-serv10308/kolab-resource-handlers/kolab-resource-handlers/resmgr
Modified Files:
resmgr.php
Log Message:
group/resource fixes
Index: resmgr.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/resmgr.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- resmgr.php 19 Aug 2004 23:28:52 -0000 1.12
+++ resmgr.php 31 Aug 2004 03:55:31 -0000 1.13
@@ -259,6 +259,35 @@
return $cleartext;
}
+function getResourceUid()
+{
+ global $resource, $params;
+
+ // Connect to the LDAP server and retrieve the users' password
+ $ldap = ldap_connect($params['ldap_uri']);
+ if (!ldap_bind($ldap, $params['bind_dn'], $params['bind_pw'])) {
+ myLog('Unable to contact LDAP server: ' . ldap_error($ldap));
+ return false;
+ }
+
+ $result = ldap_search($ldap, $params['base_dn'], "(&(objectClass=kolabInetOrgPerson)(mail=$resource))", array("uid"));
+ if (!$result) {
+ myLog('Unable to perform LDAP search: ' . ldap_error($ldap));
+ return false;
+ }
+
+ $entries = ldap_get_entries($ldap, $result);
+ if ($entries['count'] != 1) {
+ myLog("More than one object returned for $resource");
+ return false;
+ }
+
+ $uid = $entries[0]['uid'][0];
+ ldap_close($ldap);
+ if( $uid ) return $uid;
+ else return $resource;
+}
+
function getRequest()
{
global $requestText;
@@ -392,7 +421,7 @@
myLog("Using f/b URL $url", RM_LOG_DEBUG);
$parsed = parse_url($url);
- $parsed['user'] = $params['calendar_user'];
+ $parsed['user'] = $params['calendar_uid'];
$parsed['pass'] = $params['calendar_pass'];
$url = assembleUri($parsed);
@@ -400,6 +429,7 @@
if ($text == false || empty($text)) {
myLog("Unable to retrieve free/busy information for $resource", RM_LOG_ERROR);
//shutdown(1, "Unable to retrieve free/busy information for $resource");
+ return false;
}
$iCalendar = &new Horde_iCalendar();
@@ -564,11 +594,11 @@
@imap_reopen($imap, $fullmbox, CL_EXPUNGE);
$errors = imap_errors();
if (count($errors)) {
- myLog('IMAP Errors from reopen: ' . join(', ', $errors));
+ myLog('IMAP Errors from reopen: ' . @join(', ', $errors));
// Try create the Calendar folder
@imap_createmailbox($imap, $fullmbox);
- myLog('IMAP Errors from createmailbox: ' . join(', ', imap_errors()));
+ myLog('IMAP Errors from createmailbox: ' . @join(', ', imap_errors()));
$status = @imap_status($imap, $fullmbox, SA_ALL);
myLog('New folder status: ' . print_r($status, true));
@@ -713,6 +743,7 @@
init();
$params['calendar_user'] = $resource;
+$params['calendar_uid'] = getResourceUid();
$params['calendar_pass'] = getImapPassword();
require_once HORDE_BASE . '/lib/core.php';
@@ -781,6 +812,10 @@
if ($params['action'] != RM_ACT_ALWAYS_ACCEPT) {
// Get the resource's free/busy list
$vfb = &getFreeBusy();
+
+ if( !$vfb ) {
+ shutdown(1,"Error building free/busy list");
+ }
$vfbstart = $vfb->getAttributeDefault('DTSTART', 0);
$vfbend = $vfb->getAttributeDefault('DTEND', 0);
More information about the commits
mailing list