From: Nicolas Boisselier Date: Wed, 28 Feb 2018 01:11:47 +0000 (+0000) Subject: lib/php/db/types/ldap.php X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=601ea835556867bde2ae78433c204543179829b1;p=nb.git lib/php/db/types/ldap.php --- diff --git a/etc/dbq/ldap.php b/etc/dbq/ldap.php index 926ac649..6cace2ad 100644 --- a/etc/dbq/ldap.php +++ b/etc/dbq/ldap.php @@ -49,6 +49,7 @@ if (preg_match('/^([^,]+),(.*?)$/',$user,$m)) { $filter = '(&('.$filter.')(userPassword=*))'; $DBQ['ldap'] = $GLOBALS['DBQ_LDAP'] + [ + 'name' => $base, 'type' => 'ldap', 'tables' => [ 'me' => [ @@ -73,7 +74,7 @@ $DBQ['ldap'] = $GLOBALS['DBQ_LDAP'] + [ '!dn', 'cn', 'dn', - 'uid', + #'uid', 'displayName', 'givenName', #'audio', diff --git a/lib/php/db/table.php b/lib/php/db/table.php index 25b32b98..71f81c50 100644 --- a/lib/php/db/table.php +++ b/lib/php/db/table.php @@ -616,7 +616,7 @@ Class Table extends nb { # NB 08.01.18 $row[$name] = $field->default; #debug([$name,$row[$name]]); if ($add) { - $row[$name] = $field->default2str(); + if (empty($row[$name])) $row[$name] = $field->default2str(); } elseif(!isset($row[$name])) { $row[$name] = ''; diff --git a/lib/php/db/types/ldap.php b/lib/php/db/types/ldap.php index 98d41904..44bd1ba5 100644 --- a/lib/php/db/types/ldap.php +++ b/lib/php/db/types/ldap.php @@ -11,15 +11,14 @@ $DB_TYPES['ldap'] = [ require_once(NB_ROOT.'/lib/php/ldap.php'); $db->ldap = new Ldap([ - 'host' => $this->host, - 'user' => $this->user, - 'password' => $this->password, - 'base' => $this->base, + 'host' => $db->host, + 'user' => $db->user, + 'password' => $db->password, + 'base' => $db->name, ]); return $db->ldap->connect(); }, - #'prepare' => function($sql) { return $this->ldap->prepare($sql); }, 'rows_prepare' => function($table,$sql) { $fields = (empty($table->fields_only) ? array_keys($table->fields()) : $table->fields_only); $table->replace_fields($fields); @@ -52,7 +51,6 @@ $DB_TYPES['ldap'] = [ return $r; }, 'html_edit_row' => function(&$table,&$values,$add) { - #bye($add); # Get row $row = []; @@ -63,7 +61,7 @@ $DB_TYPES['ldap'] = [ foreach ($m[1] as $v) { $row['objectClass'][] = $v; } - #debug($row); + $row['dn'] = 'cn=,'.$table->db()->name; } else { $table->db()->ldap->prepare([ 'base' => $values['dn'], @@ -88,6 +86,9 @@ $DB_TYPES['ldap'] = [ }, 'insert' => function(&$table,&$values) { $dn = $values['dn']; unset($values['dn']); + foreach ($values as $k=>$v) { + if ($v === '') unset($values[$k]); + } bye([$dn,$values]); return (int)$table->db()->ldap->add($dn,$values); },