steffen: server/kolab-resource-handlers/kolab-resource-handlers/resmgr kolabfilter.php, 1.15, 1.16 resmgr.php, 1.60, 1.61

cvs at intevation.de cvs at intevation.de
Sat Jan 8 12:51:32 CET 2005


Author: steffen

Update of /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr
In directory doto:/tmp/cvs-serv27545/kolab-resource-handlers/kolab-resource-handlers/resmgr

Modified Files:
	kolabfilter.php resmgr.php 
Log Message:
use homeserver for resources/groups

Index: kolabfilter.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/kolabfilter.php,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- kolabfilter.php	7 Jan 2005 22:24:16 -0000	1.15
+++ kolabfilter.php	8 Jan 2005 11:51:30 -0000	1.16
@@ -89,7 +89,7 @@
   return true;
 }
 
-$options = getopt("s:r:c:");
+$options = getopt("s:r:c:h:");
 
 if (!array_key_exists('r', $options) || !array_key_exists('s', $options)) {
     fwrite(STDOUT, "Usage is $argv[0] -s sender at domain -r recip at domain\n");
@@ -99,6 +99,7 @@
 $sender = strtolower($options['s']);
 $recipient = strtolower($options['r']);
 $client_address = $options['c'];
+$fqhostname = strtolower($options['h']);
 
 myLog("Kolabfilter starting up, sender=$sender, recipient=$recipient, client_address=$client_address", RM_LOG_DEBUG);
 
@@ -130,7 +131,7 @@
 if( $ical ) {
   require_once 'kolabfilter/resmgr.php';
   myLog("Calling resmgr_filter( $sender, $recipient, $tmpfname )", RM_LOG_DEBUG);
-  $rc = resmgr_filter( $sender, $recipient, $tmpfname );
+  $rc = resmgr_filter( $fqhostname, $sender, $recipient, $tmpfname );
   if( PEAR::isError( $rc ) ) {
     fwrite(STDOUT,"Filter failed: ".$rc->getMessage()."\n");
     exit(EX_TEMPFAIL);

Index: resmgr.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/resmgr.php,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- resmgr.php	7 Jan 2005 22:24:16 -0000	1.60
+++ resmgr.php	8 Jan 2005 11:51:30 -0000	1.61
@@ -163,7 +163,7 @@
 
     $result = ldap_search($ldap, $params['base_dn'],
                           "(&(objectClass=kolabInetOrgPerson)(mail=$resource))",
-                          array("cn", "kolabEncryptedPassword", "kolabInvitationPolicy" ));
+                          array("cn", "kolabHomeServer", "kolabEncryptedPassword", "kolabInvitationPolicy" ));
     if (!$result) {
         myLog('Unable to perform LDAP search: ' . ldap_error($ldap));
         return new PEAR_Error('Unable to perform LDAP search: ' . ldap_error($ldap));
@@ -176,6 +176,7 @@
     }
     
     $cn = $entries[0]['cn'][0];
+    $hs = $entries[0]['kolabhomeserver'][0];
     $actions = $entries[0]['kolabinvitationpolicy'];
     $encpw = base64_decode($entries[0]['kolabencryptedpassword'][0]);
 
@@ -238,7 +239,7 @@
 
 
     ldap_close($ldap);
-    return array( 'cn' => $cn, 'password' => $cleartext, 'action' => $action );
+    return array( 'cn' => $cn, 'homeserver' => $hs, 'password' => $cleartext, 'action' => $action );
 }
 
 function getResourceUid($resource)
@@ -985,7 +986,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////
 
-function resmgr_filter( $sender, $resource, $tmpfname ) {
+function resmgr_filter( $fqhostname, $sender, $resource, $tmpfname ) {
   global $params, $conf, $ldapdata,$calmbox,$organiser,$uid,$sid,$requestText;
 
   // Make Horde happy
@@ -996,6 +997,9 @@
   if( PEAR::isError($ldapdata) ) return $ldapdata;
   else if( $ldapdata === false ) {
     // No data, probably not a local user
+    return true;
+  } else if( (boolean)strtolower($ldapdata['homeserver']) && strtolower($ldapdata['homeserver']) != $fqhostname ) {
+    // Not the users homeserver, ignore
     return true;
   }
   if( $ldapdata['password'] === false ) {





More information about the commits mailing list