X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Ffunctions.inc;h=835d6636ea1847c7f49b7d5688bd294a86e86069;hb=e01f7be38eb35478f1f4321edac33986743a05e1;hp=1e0bafeb17985454101ae9b14774b29e242a40a9;hpb=55b59c255ff60a8fc2723196efe6b412580327cd;p=gosa.git diff --git a/include/functions.inc b/include/functions.inc index 1e0bafeb1..835d6636e 100644 --- a/include/functions.inc +++ b/include/functions.inc @@ -20,6 +20,7 @@ /* Configuration file location */ define ("CONFIG_DIR", "/etc/gosa"); +define ("CONFIG_FILE", "gosa.conf-trunk"); define ("CONFIG_TEMPLATE_DIR", "../contrib/"); define ("HELP_BASEDIR", "/var/www/doc/"); @@ -291,7 +292,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. */ @@ -1156,15 +1158,10 @@ function get_printer_list($cups_server) { global $config; $res = array(); - - /* Merge in printers from LDAP */ - $ldap= $config->get_ldap_link(); - $ldap->cd ($config->current['BASE']); - $ldap->search('(objectClass=gotoPrinter)', array('cn')); - while($attrs = $ldap->fetch()){ + $data = get_list('(objectClass=gotoPrinter)',"printer",$config->current['BASE'], array('cn')); + foreach($data as $attrs ){ $res[$attrs['cn'][0]] = $attrs['cn'][0]; } - return $res; } @@ -2086,8 +2083,6 @@ function gosa_ldap_explode_dn($dn,$config = NULL,$verify_in_ldap=false) $ldap = $config->get_ldap_link(); } - $Diff = ldap_explode_dn($dn,0); - /* Lets start */ $called = false; while(preg_match("/,/",$dn) && $next && $cnt < $max){ @@ -2129,12 +2124,67 @@ function gosa_ldap_explode_dn($dn,$config = NULL,$verify_in_ldap=false) } $ret['count'] = count($ret) - 1; - $diff = array_diff($ret,$Diff); - if($diff){ - print_a(array("Diff" => $diff,"OLD" => $Diff,"NEW"=> $ret,"DEBUG"=> debug_backtrace())); - } return($ret); } +function is_php4() +{ + if (isset($_SESSION['PHP4COMPATIBLE'])){ + return true; + } + 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[0])){ + 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: ?>