index f888d84448df0e784076bc619191821e800e62b2..21fc089307554f4e25d9449088097a3e13ed8ec9 100644 (file)
$this->hostname=$hostname;
/* Check if MAX_LDAP_QUERY_TIME is defined */
$this->hostname=$hostname;
/* Check if MAX_LDAP_QUERY_TIME is defined */
- if(is_object($config) && $config->get_cfg_value("ldapMaxQueryTime") != ""){
- $str = $config->get_cfg_value("ldapMaxQueryTime");
+ if(is_object($config) && $config->get_cfg_value("core","ldapMaxQueryTime") != ""){
+ $str = $config->get_cfg_value("core","ldapMaxQueryTime");
$this->max_ldap_query_time = (float)($str);
}
$this->max_ldap_query_time = (float)($str);
}
}
}
+ /*! \brief Generates an ldif for all entries matching the filter settings, scope and limit.
+ * @param $dn The entry to export.
+ * @param $filter Limit the exported object to those maching this filter.
+ * @param $attributes Specify the attributes to export here, empty means all.
+ * @param $scope 'base', 'sub' .. see manpage for 'ldapmodify' for details.
+ * @param $limit Limits the result.
+ */
function generateLdif ($dn, $filter= "(objectClass=*)", $attributes= array(), $scope = 'sub', $limit=0)
{
function generateLdif ($dn, $filter= "(objectClass=*)", $attributes= array(), $scope = 'sub', $limit=0)
{
- $host = $this->hostname;
- $attrs = (count($attributes))?implode($attributes,' '):'';
- $scope = (!empty($scope))?' -s '.$scope: '';
- $limit = (!$limit)?'':' -z '.$limit;
- $cmd = "ldapsearch -x -LLLL '{$filter}' {$limit} {$scope} -H '{$host}' -b '{$dn}' $attrs";
- exec($cmd, $ret,$code);
- $res = implode($ret,"\n");
- print_a(array($res,$cmd, $ret,$code));
- return($res);
+ $attrs = (count($attributes))?implode($attributes,' '):'';
+ $scope = (!empty($scope))?' -s '.$scope: '';
+ $limit = (!$limit)?'':' -z '.$limit;
+ $dn = escapeshellarg($dn);
+ $admin = escapeshellarg($this->binddn);
+ $pwd = escapeshellarg($this->bindpw);
+ $filter = escapeshellarg($filter);
+ $host = escapeshellarg($this->hostname);
+ $cmd = "ldapsearch -x -LLLL -D {$admin} -w {$pwd} {$filter} {$limit} {$scope} -H {$host} -b {$dn} $attrs ";
+ ob_start();
+ passthru($cmd);
+ $res=ob_get_contents();
+ ob_end_clean();
+ return($res);
}
}
/* Only read schema if it is allowed */
if(isset($config) && preg_match("/config/i",get_class($config))){
/* Only read schema if it is allowed */
if(isset($config) && preg_match("/config/i",get_class($config))){
- if ($config->get_cfg_value("schemaCheck") != "true"){
+ if ($config->get_cfg_value("core","schemaCheck") != "true"){
return($objectclasses);
}
}
return($objectclasses);
}
}