]> git.nbdom.net Git - nb.git/commitdiff
lib/php/db/types/ldap.php
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 7 Feb 2018 17:55:35 +0000 (17:55 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 7 Feb 2018 17:55:35 +0000 (17:55 +0000)
lib/php/db/field.php
lib/php/db/table.php
lib/php/db/types/ldap.php
lib/php/ldap.php
www/dbq/dbq.php

index 9d88b899c3a282bef25942bb40ae46b18000d7dc..e71dfba971d93572c547086ada0450c130de0c89 100644 (file)
@@ -117,7 +117,9 @@ class field extends nb {
 
     $html = '';
 
-               foreach ((array)$values as $value) {
+               $values = (array)$values;
+               $suff = count( $values ) > 1 ? '[]' : '';
+               foreach ($values as $value) {
        $html .= '<div class="label '.$this->name.'"><label for="'.$this->name.'">'.htmlspecialchars(prettyText($this->name)).'</label>';
 
        if ($this->extras) {
@@ -128,7 +130,7 @@ class field extends nb {
 
        } else {
        $html .= '<'.$tag
-               .' name="'.$this->preffix.$this->name.'"'
+               .' name="'.$this->preffix.$this->name.$suff.'"'
        # NB 06.02.18         .' id="'.$this->name.'"'
                .( ($size and $tag != 'textarea') ? ' size="'.$size.'"' : '')
                #.' value="'.$value.'"'
index 302f74e1009290e10272c9af51b75c96b138a8af..60645c541999adf355eb46339779872c3862e935 100644 (file)
@@ -872,6 +872,11 @@ Class Table extends nb {
 
        }
 
+# NB 06.02.18  public function replace_fields($fields) {
+# NB 06.02.18          $this->fields = [];
+# NB 06.02.18          $this->add_fields($fields);
+# NB 06.02.18  }
+
        public function add_fields($fields) {
                foreach ($fields as $k => $v) {
                        $key = false;
index 4f422ddb706411518db49ca9c4e562c6b58cbdb1..81f9d71aa93a922055b6e3d6bfde3d2308481a8d 100644 (file)
@@ -41,11 +41,14 @@ $DB_TYPES['ldap'] = [
                ]);
                $row = $table->db()->ldap->fetch();
                #debug($row);
+               $table->add_fields(array_keys($row));
                return $row;
        },
        'update' => function(&$table,&$values) {
-               $count = (int)$table->db()->ldap->update($values['dn']);
-               return [ 'count' => $count, ];
+               $dn = $values['dn'];
+               unset($values['dn']);
+               #bye([$dn,$values]);
+               return (int)$table->db()->ldap->update($dn,$values);
        },
 ];
 ?>
index 3fd484bb52b918f683b6f3af1c2a56f88cb72bae..8d59ede1c33136ad990057aa28584cb8544a70a7 100644 (file)
@@ -111,19 +111,27 @@ class Ldap {
 
        } # < ldap_search
 
+       private function dnBase($dn) {
+               return preg_replace('/,'.$this->base.'$/','',$dn) . ',' . $this->base;
+       }
+
        public function add($dn,$data) {
                $conn = $this->connect();
-               #debug($dn);
-               return ldap_add($conn, $dn . ',' . $this->base, $data);
+               $dn = $this->dnBase($dn);
+               return ldap_add($conn, $dn, $data);
 # NB 29.01.18          return ldap_mod_add($conn, $dn . ',' . $this->base, $data);
        }
 
        public function update($dn,$data) {
 # NB 28.01.18          return ldap_mod_add($this->connect(), $dn . ',' . $this->base, $data);
-               return ldap_mod_replace($this->connect(), $dn . ',' . $this->base, $data);
+               $dn = $this->dnBase($dn);
+               #debug([$dn,$data]);
+               #debug(ldap_error($this->connect()));
+               return ldap_mod_replace($this->connect(), $dn, $data);
        }
 
        public function delete($dn) {
+               $dn = $this->dnBase($dn);
                return ldap_delete($this->connect(), $dn);
                /*
                foreach ($ldap->search([
index b8984f034f98b2ca797ce1a75d47a5bfd110fd09..39d06b712d6d831267b72a1c82a0e3d7451e7117 100644 (file)
@@ -1115,7 +1115,7 @@ EOF;
                        ] + (
                                ($this->perm < self::ADMIN) ? [] :
                        [
-                               [ 'ldap', 'Connect to domain ldap server [/FILTER/ATTRS' ],
+# NB 07.02.18                          [ 'ldap', 'Connect to domain ldap server [/FILTER/ATTRS' ],
                                [ 'phpinfo', 'Phpinfo' ],
                                [ '_SERVER', 'Dump _SERVER' ],
                                [ '_REQUEST', 'Dump _REQUEST' ],