steffen: server/kolab-resource-handlers/kolab-resource-handlers/freebusy pfb.php, 1.15, 1.16

cvs at intevation.de cvs at intevation.de
Tue Feb 1 12:55:47 CET 2005


Author: steffen

Update of /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/freebusy
In directory doto:/tmp/cvs-serv9524

Modified Files:
	pfb.php 
Log Message:
something for issue638

Index: pfb.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/freebusy/pfb.php,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- pfb.php	28 Jan 2005 10:56:45 -0000	1.15
+++ pfb.php	1 Feb 2005 11:55:45 -0000	1.16
@@ -31,7 +31,7 @@
 $imapuser     = $_SERVER['PHP_AUTH_USER'];
 $imappw       = $_SERVER['PHP_AUTH_PW'];
 $req_cache    = (bool)$_REQUEST['cache'];
-$req_folder   = $_REQUEST['folder'];
+$req_folder   = /*utf8_encode*/($_REQUEST['folder']);
 $req_extended = (bool)$_REQUEST['extended'];
 
 myLog("pfb.php starting up: user=$imapuser, folder=$req_folder, extended=$req_extended", 
@@ -45,7 +45,7 @@
 
 $userinfo = $ldap->userInfo( $imapuser );
 if( $userinfo ) {
-  $imapuser = $userinfo['MAIL'];
+  if( $userinfo['MAIL'] ) $imapuser = $userinfo['MAIL'];
   $homeserver = $userinfo['HOMESERVER'];  
 }
 
@@ -96,6 +96,10 @@
   }
   if( !$vfb ) notFound( $req_folder.($req_extended?'.xpfb':'.pfb').' not found in cache');
 } else {
+  if( empty($imapuser) ) {
+    // Here we really need an authenticated user!
+    unauthorized("Please authenticate");
+  }
   require_once('freebusy/freebusy.class.php');
 
   $folder = array_values(array_filter(explode('/', $req_folder )));
@@ -105,8 +109,18 @@
   }
   $uinfo = $ldap->userInfo($folder[0]);
   $owner = $uinfo['MAIL'];
+  if( empty($owner) || false===strpos($owner,'@')) {
+    // try guessing the domain
+    $idx = strpos( $imapuser, '@' );
+    if( $idx !== false ) {
+      $domain = substr( $imapuser, $idx+1 );
+      myLog("Trying to append $domain to ".$folder[0], RM_LOG_DEBUG);
+      $uinfo = $ldap->userInfo($folder[0].'@'.$domain);
+      $owner = $uinfo['MAIL'];
+    }
+  }
   if( empty($owner) ) {
-    notFound( _('No such account').htmlentities($folder[0]));
+    notFound( _('No such account ').htmlentities($folder[0]));
     return false;
   }
   unset($folder[0]);





More information about the commits mailing list