]> git.nbdom.net Git - nb.git/commitdiff
lib/php/db/types/ldap.php
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 28 Feb 2018 01:11:47 +0000 (01:11 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 28 Feb 2018 01:11:47 +0000 (01:11 +0000)
etc/dbq/ldap.php
lib/php/db/table.php
lib/php/db/types/ldap.php

index 926ac6494f2b160a6070899dc0b2c15a39c2827e..6cace2ada881caa2539c668d8ec81dd3d4df4d6e 100644 (file)
@@ -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',
index 25b32b9811cfee209d501f0fbf142121d129677d..71f81c50e6dc1ab88ef078a522539ce2a6070636 100644 (file)
@@ -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] = '';
index 98d419048c7396bdde3008b9c43c688f420a4ef0..44bd1ba5422aa3496be2a6b5454bb5c0d23f9900 100644 (file)
@@ -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);
        },