Code

Added some optional settings
[gosa.git] / include / functions.inc
index b1deb986ec57f75b944bff664fe34e9233818f49..65c9fa53a16f485c081ec2d128c2b1441f04b0f4 100644 (file)
@@ -291,7 +291,8 @@ function ldap_init ($server, $base, $binddn='', $pass='')
 {
   global $config;
 
-  $ldap = new LDAP ($binddn, $pass, $server, isset($config->current['RECURSIVE'])                                                && $config->current['RECURSIVE'] == "true",
+  $ldap = new LDAP ($binddn, $pass, $server,
+      isset($config->current['RECURSIVE']) && $config->current['RECURSIVE'] == "true",
       isset($config->current['TLS']) && $config->current['TLS'] == "true");
 
   /* Sadly we've no proper return values here. Use the error message instead. */
@@ -2125,5 +2126,61 @@ function gosa_ldap_explode_dn($dn,$config = NULL,$verify_in_ldap=false)
   return($ret);
 }
 
+function is_php4()
+{
+  return (preg_match('/^4/', phpversion()));
+}
+
+/* Add "str_split" if this function is missing.
+ * This function is only available in PHP5
+ */
+  if(!function_exists("str_split")){
+    function str_split($str,$length =1)
+    {
+      if($length < 1 ) $length =1;
+
+      $ret = array();
+      for($i = 0 ; $i < strlen($str); $i = $i +$length){
+        $ret[] = substr($str,$i ,$length);
+      }
+      return($ret);
+    }
+  }
+
+
+function get_base_from_hook($dn, $attrib)
+{
+  global $config;
+
+  if (isset($config->current['BASE_HOOK'])){
+    
+    /* Call hook script - if present */
+    $command= $config->current['BASE_HOOK'];
+
+    if ($command != ""){
+      $command.= " '$dn' $attrib";
+      if (check_command($command)){
+        @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute");
+        exec($command, $output);
+        if (preg_match("/^[0-9]+$/", $output)){
+          return ($output[0]);
+        } else {
+          print_red(_("Warning - base_hook is not avialable. Using default base."));
+          return ($config->current['UIDBASE']);
+        }
+      } else {
+        print_red(_("Warning - base_hook is not avialable. Using default base."));
+        return ($config->current['UIDBASE']);
+      }
+
+    } else {
+
+      print_red(_("Warning - no base_hook defined. Using default base."));
+      return ($config->current['UIDBASE']);
+
+    }
+  }
+}
+
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>