]> git.sur5r.net Git - contagged/blobdiff - inc/functions.php
Merge pull request #15 from cweiske/master
[contagged] / inc / functions.php
index a5e0631cf46d7dad051abc732773402e9e5364af..db8c6b0c5fd107b7c36da69ce1bc2e76a79918f2 100644 (file)
@@ -113,11 +113,9 @@ function do_ldap_bind($user,$pass,$dn=""){
 function auth_browseruid(){
   $uid  = '';
   if (empty($_SERVER['HTTP_USER_AGENT']))      { $_SERVER['HTTP_USER_AGENT']='USER_AGENT'; }
-  if (empty($_SERVER['HTTP_ACCEPT_ENCODING'])) { $_SERVER['HTTP_ACCEPT_ENCODING']='ACCEPT_ENCODING'; }
   if (empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $_SERVER['HTTP_ACCEPT_LANGUAGE']='ACCEPT_LANGUAGE'; }
   if (empty($_SERVER['HTTP_ACCEPT_CHARSET']))  { $_SERVER['HTTP_ACCEPT_CHARSET']='ACCEPT_CHARSET'; }
   $uid .= $_SERVER['HTTP_USER_AGENT'];
-  $uid .= $_SERVER['HTTP_ACCEPT_ENCODING'];
   $uid .= $_SERVER['HTTP_ACCEPT_LANGUAGE'];
   $uid .= $_SERVER['HTTP_ACCEPT_CHARSET'];
   $uid .= substr($_SERVER['REMOTE_ADDR'],0,strpos($_SERVER['REMOTE_ADDR'],'.'));
@@ -344,7 +342,7 @@ function ldap_store_objectclasses($dn,$classes){
   $add['objectClass'] = $set;
 
   $r = @ldap_mod_replace($LDAP_CON,$dn,$add);
-  tpl_ldaperror();
+  tpl_ldaperror('store object classes');
 
 /*  print '<pre>';
   print_r($set);
@@ -359,9 +357,13 @@ function ldap_store_objectclasses($dn,$classes){
  * @author Andreas Gohr <andi@splitbrain.org>
  */
 function ldap_filterescape($string){
-  return preg_replace('/([\x00-\x1F\*\(\)\\\\])/e',
-                            '"\\\\\".join("",unpack("H2","$1"))',
-                            $string);
+  return preg_replace_callback(
+    '/([\x00-\x1F\*\(\)\\\\])/',
+    function ($matches) {
+      return "\\" . implode("", unpack("H2", $matches[1]));
+    },
+    $string
+  );
 }
 
 /**
@@ -384,9 +386,10 @@ function ldap_queryabooks($filter,$types){
   $results = array();
   $result1 = array();
   $result2 = array();
+  $result3 = array();
 
   // public addressbook
-  $sr      = @ldap_list($LDAP_CON,$conf['publicbook'],
+  $sr      = @ldap_search($LDAP_CON,$conf['publicbook'],
                         $filter,$types);
   tpl_ldaperror();
   $result1 = ldap_get_binentries($LDAP_CON, $sr);
@@ -401,8 +404,19 @@ function ldap_queryabooks($filter,$types){
     $result2 = ldap_get_binentries($LDAP_CON, $sr);
   }
 
+  // user account entries
+  if ($conf['displayusertree']) {
+    $sr      = @ldap_list($LDAP_CON,$conf['usertree'],
+                        $filter,$types);
+    tpl_ldaperror();
+    $result3 = ldap_get_binentries($LDAP_CON, $sr);
+    ldap_free_result($sr);
+  }
+
+
+
   // return merged results
-  return array_merge((array)$result1,(array)$result2);
+  return array_merge((array)$result1,(array)$result2,(array)$result3);
 }
 
 /**
@@ -507,9 +521,10 @@ function get_fields_from_template($tpl){
             $return[] = $FIELDS[$f];
         }elseif($FIELDS["_$f"]){
             $return[] = $FIELDS["_$f"];
+        }elseif($f = 'markers'){
+            $return[] = 'marker';
         }
     }
     return $return;
 }
 
-?>