diff --git a/include/class_ldap.inc b/include/class_ldap.inc
index d79ef172c56dbb7e9dcb41bb1e35e10a301b0f14..e5809d72099e075eb69c1fdbd23d80e1c098f6b7 100644 (file)
--- a/include/class_ldap.inc
+++ b/include/class_ldap.inc
<?php
/*****************************************************************************
newldap.inc - version 1.0
- Copyright (C) 2003 Alejandro Escanero Blanco <alex@ofmin.com>
+ Copyright (C) 2003 Alejandro Escanero Blanco <aescanero@chaosdimension.org>
Copyright (C) 2004-2006 Cajus Pollmeier <pollmeier@gonicus.de>
Based in code of ldap.inc of
}
}
+ $this->log("LDAP operation: time=".get_MicroTimeDiff($start,microtime())." operation=search('".$this->fix($this->basedn)."', '$filter')");
return($this->sr);
}else{
$this->error = "Could not connect to LDAP server";
}
}
+ $this->log("LDAP operation: time=".get_MicroTimeDiff($start,microtime())." operation=ls('".$this->fix($basedn)."', '$filter')");
+
return($this->sr);
}else{
$this->error = "Could not connect to LDAP server";
if ($this->re)
{
$att= @ldap_get_attributes($this->cid, $this->re);
- $att['dn']= $this->convert(@ldap_get_dn($this->cid, $this->re));
+ $att['dn']= trim($this->convert(@ldap_get_dn($this->cid, $this->re)));
}
$this->error = @ldap_error($this->cid);
if (!isset($att)){
$rv = @ldap_get_dn($this->cid, $this->re);
$this->error = @ldap_error($this->cid);
- return($this->convert($rv));
+ return(trim($this->convert($rv)));
}
}else{
$this->error = "Perform a Fetch with no Search";
/* If this is no department */
foreach($attr as $key => $value){
- if(in_array($key ,array("FAItemplateFile","FAIscript", "gotoLogonScript", "gosaApplicationIcon"))){
+ if(in_array($key ,array("FAItemplateFile","FAIscript", "gotoLogonScript", "gosaApplicationIcon","gotoMimeIcon"))){
$sr= ldap_read($this->cid, $this->fix($sourcedn), "$key=*", array($key));
$ei= ldap_first_entry($this->cid, $sr);
if ($tmp= @ldap_get_values_len($this->cid, $ei,$key)){
unset($attr['count']);
unset($attr['dn']);
- if(!in_array("gosaApplication" , $attr['objectClass'])){
+ if((!in_array("gosaApplication" , $attr['objectClass'])) && (!in_array("gotoMimeType", $attr['objectClass']))){
if($type=="branch"){
$attr['FAIstate'] ="branch";
}elseif($type=="freeze"){
}
$real_path= substr($target, 0, strlen($target) - strlen($this->basedn) -1 );
- $l= array_reverse(ldap_explode_dn($real_path,0));
+ $l= array_reverse(gosa_ldap_explode_dn($real_path));
unset($l['count']);
$cdn= $this->basedn;
$tag= "";
}
/* Split the line into attribute and value */
- $attr = split(":", $row);
+ $attr = split(":", $row,2);
$attr[0]= trim($attr[0]); /* attribute */
- $attr[1]= trim($attr[1]); /* value */
+ $attr[1]= $attr[1]; /* value */
+
+ /* Check :: was used to indicate base64_encoded strings */
+ if($attr[1][0] == ":"){
+ $attr[1]=trim(preg_replace("/^:/","",$attr[1]));
+ $attr[1]=base64_decode($attr[1]);
+ }
+
+ $attr[1] = trim($attr[1]);
/* Check for attributes that are used more than once */
if(!isset($data[$attr[0]])) {
if(isset($data['dn'])) {
/* Fix dn */
- $tmp = ldap_explode_dn($data['dn'],0);
+ $tmp = gosa_ldap_explode_dn($data['dn']);
unset($tmp['count']);
$newdn ="";
foreach($tmp as $tm){
$this->cd ($this->basedn);
$this->create_missing_trees($data['dn']);
$this->cd($data['dn']);
+
$dn = $data['dn'];
unset($data['dn']);
$ret = $this->modify($data);
}
}
- show_ldap_error($this->get_error(),_("Ldap import failed"));
+ show_ldap_error($this->get_error(), sprintf(_("Ldap import with dn '%s' failed."),$dn));
return($ret);
}
return $objectclasses;
}
+ function log($string)
+ {
+ if (isset($_SESSION['config'])){
+ $cfg= $_SESSION['config'];
+ if (isset($cfg->current['LDAPSTATS']) && preg_match('/true/i', $cfg->current['LDAPSTATS'])){
+ syslog (LOG_INFO, $string);
+ }
+ }
+ }
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: