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

cvs at intevation.de cvs at intevation.de
Thu Sep 9 03:09:41 CEST 2004


Author: steffen

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

Modified Files:
	resmgr.php 
Log Message:
"kolab group/resource action"

Index: resmgr.php
===================================================================
RCS file: /kolabrepository/server/kolab-resource-handlers/kolab-resource-handlers/resmgr/resmgr.php,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- resmgr.php	1 Sep 2004 23:41:53 -0000	1.15
+++ resmgr.php	9 Sep 2004 01:09:39 -0000	1.16
@@ -214,7 +214,7 @@
 /**
  * Look up encrypted password from LDAP and decrypt it
  */
-function getImapPassword()
+function getLDAPData()
 {
     global $resource, $params;
 
@@ -225,7 +225,9 @@
         return false;
     }
 
-    $result = ldap_search($ldap, $params['base_dn'], "(&(objectClass=kolabInetOrgPerson)(mail=$resource))", array("kolabEncryptedPassword"));
+    $result = ldap_search($ldap, $params['base_dn'], 
+			  "(&(objectClass=kolabInetOrgPerson)(mail=$resource))", 
+			  array("kolabEncryptedPassword", "kolabResourceAction" ));
     if (!$result) {
         myLog('Unable to perform LDAP search: ' . ldap_error($ldap));
         return false;
@@ -237,6 +239,7 @@
         return false;
     }
 
+    $action = $entries[0]['kolabresourceaction'][0];
     $encpw = base64_decode($entries[0]['kolabencryptedpassword'][0]);
     ldap_close($ldap);
 
@@ -256,7 +259,32 @@
 
     openssl_free_key($pkey);
 
-    return $cleartext;
+    switch ($action) {
+    case 'ACT_ALWAYS_ACCEPT':
+        $action = RM_ACT_ALWAYS_ACCEPT;
+        break;
+
+    case 'ACT_ALWAYS_REJECT':
+        $action = RM_ACT_ALWAYS_REJECT;
+        break;
+
+    case 'ACT_REJECT_IF_CONFLICTS':
+        $action = RM_ACT_REJECT_IF_CONFLICTS;
+        break;
+
+    case 'ACT_MANUAL_IF_CONFLICTS':
+        $action = RM_ACT_MANUAL_IF_CONFLICTS;
+        break;
+
+    case 'ACT_MANUAL':
+        $action = RM_ACT_MANUAL;
+        break;
+
+    default:
+        $action = false;
+    }
+
+    return array( 'password' => $cleartext, 'action' => $action );
 }
 
 function getResourceUid()
@@ -711,43 +739,22 @@
 $resource = $options['r'];
 $sender = $options['s'];
 
-if (array_key_exists('m', $options)) {
-    if (is_array($options['m'])) {
-        $options['m'] = array_pop($options['m']);
-    }
-
-    switch ($options['m']) {
-    case 'RM_ACT_ALWAYS_ACCEPT':
-        $params['action'] = RM_ACT_ALWAYS_ACCEPT;
-        break;
-
-    case 'RM_ACT_ALWAYS_REJECT':
-        $params['action'] = RM_ACT_ALWAYS_REJECT;
-        break;
-
-    case 'RM_ACT_REJECT_IF_CONFLICTS':
-        $params['action'] = RM_ACT_REJECT_IF_CONFLICTS;
-        break;
-
-    case 'RM_ACT_MANUAL_IF_CONFLICTS':
-        $params['action'] = RM_ACT_MANUAL_IF_CONFLICTS;
-        break;
-
-    case 'RM_ACT_MANUAL':
-        $params['action'] = RM_ACT_MANUAL;
-        break;
-
-    default:
-        print("Invalid mode specified");
-        shutdown(1);
-    }
-}
-
 init();
 
+// Set some parameters
 $params['calendar_user'] = $resource;
 $params['calendar_uid'] = getResourceUid();
-$params['calendar_pass'] = getImapPassword();
+$ldapdata = getLDAPData();
+$params['calendar_pass'] = $ldapdata['password'];
+$params['action'] = $ldapdata['action'];
+if( !$params['action'] ) {
+  // Use defaults
+  if( $params['group'] ) {
+    $params['action'] = RM_ACT_MANUAL_IF_CONFLICTS;
+  } else {
+    $params['action'] = RM_ACT_REJECT_IF_CONFLICTS;    
+  }
+}
 
 require_once HORDE_BASE . '/lib/core.php';
 require_once 'Horde/iCalendar.php';





More information about the commits mailing list