]> git.nbdom.net Git - nb.git/commitdiff
lib/php/nb.php
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 12 Dec 2017 05:53:36 +0000 (05:53 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 12 Dec 2017 05:53:36 +0000 (05:53 +0000)
lib/php/nb.php

index 079b6beef947504a631f0fccad1cdbc60d90f754..d86e865efad5dffec64931484059b4a7889b43da 100644 (file)
@@ -1064,33 +1064,45 @@ class NB {
     }
   }
 
-  public static function ldap_search() {
-               $ldap_host = "ldap.nbdom.net";
+  public static function ldap_search($o=[]) {
+               #$base = preg_match('/^(.*?)([^\.]+\.[^\.]+)$/','$2',$_SERVER['HTTP_HOST']);
+               #if (!isset($o['host'])) $o['host'] = "ldap.$base";
+               #return $o;
+               $ldap_host = "ldap.vpn.nbdom.net";
                $base_dn = "dc=nbdom,dc=net";
                $filter = "(cn=".$_SERVER['PHP_AUTH_USER'].")";
+               $filter = "(memberUid=nico)";
+               $keys = [];
+               #$keys = ['dn','cn','sn','uid'];
                $ldap_user  = "cn=".$_SERVER['PHP_AUTH_USER'].",ou=auth,$base_dn";
                $ldap_pass = $_SERVER['PHP_AUTH_PW'];
 
-               $connect = ldap_connect( $ldap_host) or exit(">>Could not connect to LDAP server<<");
+               $connect = ldap_connect($ldap_host) or exit(">>Could not connect to LDAP server<<");
                ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
                ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
 
                $bind = ldap_bind($connect, $ldap_user, $ldap_pass) or exit(">>Could not bind to $ldap_host<<");
                $read = ldap_search($connect, $base_dn, $filter) or exit(">>Unable to search ldap server<<");
                $info = ldap_get_entries($connect, $read);
-
-               echo $info["count"]." entries returned<p>/";
-               $ii=0;
-
-               for ($i=0; $ii<$info[$i]["count"]; $ii++){
-               $data = $info[$i][$ii];
-               echo $data.":".$info[$i][$data][0]."</br>\n";
+               #return $info;
+               #echo $info["count"]." entries returned<p>/";
+
+               $recs = [];
+               for ($r=0; $r<$info["count"]; $r++){
+                       $rec = $info[$r];
+                       for ($i=0; $i<$rec["count"]; $i++){
+                       $key = $info[$r][$i];
+                               if (!empty($keys) and !in_array($key,$keys)) continue;
+                       $recs[$r][$key] = $info[$i][$key][0];
+                       }
                }
 
                ldap_close($connect);
-       }
+               return $recs;
+
+       } # < ldap_search
 
-} # < Class
+} # < Class NB
 
 /*
 return;