11 commits - lib/api lib/Auth lib/client lib/Conf.php lib/kolab_client_task.php lib/locale

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Tue Apr 3 12:16:17 CEST 2012


 lib/Auth/LDAP.php                     |   36 +++++++++++++++++++++++++++-------
 lib/Conf.php                          |    2 -
 lib/api/kolab_api_service_user.php    |    2 -
 lib/api/kolab_api_service_users.php   |   15 +++++++++++---
 lib/client/kolab_client_task_user.php |   11 ++++++----
 lib/kolab_client_task.php             |    9 ++++++++
 lib/locale/en_US.php                  |   16 +++++++++------
 7 files changed, 69 insertions(+), 22 deletions(-)

New commits:
commit 4ca925a77489d59c3c7dd8259f324808aedc639f
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Apr 3 12:16:06 2012 +0200

    'group' => 'user'

diff --git a/lib/api/kolab_api_service_user.php b/lib/api/kolab_api_service_user.php
index fcc9128..cbf815c 100644
--- a/lib/api/kolab_api_service_user.php
+++ b/lib/api/kolab_api_service_user.php
@@ -135,7 +135,7 @@ class kolab_api_service_user extends kolab_api_service
         $result = $auth->user_info($getdata['user']);
 
         // normalize result
-        $result = $this->parse_result_attributes('group', $result); 
+        $result = $this->parse_result_attributes('user', $result); 
 
         if ($result) {
             return $result;


commit 0ab61476e6ffcca99a2fa6ea21018f90d48c514f
Merge: 325df78 fa819a0
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Apr 3 12:15:47 2012 +0200

    Merge branch 'master' of ssh://git.kolab.org/git/kolab-wap
    
    Conflicts:
    	lib/api/kolab_api_service_user.php

diff --cc lib/Conf.php
index d333e42,d333e42..51631c0
--- a/lib/Conf.php
+++ b/lib/Conf.php
@@@ -26,7 -26,7 +26,7 @@@
  class Conf {
      static private $instance;
  
--    const CONFIG_FILE = '/etc/kolab/kolab.conf';
++    const CONFIG_FILE = '/home/vanmeeuwen/kolab-k.ks.c.conf';
  
      /**
       * This implements the 'singleton' design pattern
diff --cc lib/kolab_client_task.php
index 64cb27a,a2de5b3..9e1f8a2
--- a/lib/kolab_client_task.php
+++ b/lib/kolab_client_task.php
@@@ -839,23 -844,13 +847,19 @@@ class kolab_client_tas
                  'value'    => $name,
              );
  
+         // Add entry identifier
          if (!$add_mode) {
-             $unique_attr = $this->config->get('unique_attribute');
-             if (!$unique_attr) {
-                 $unique_attr = 'nsuniqueid';
-             }
- 
-             $fields[$unique_attr] = Array(
+             $fields['id'] = array(
                      'section'   => 'system',
                      'type'      => kolab_form::INPUT_HIDDEN,
-                     'value'     => $data[$unique_attr]
+                     'value'     => $data['id']
                  );
 +
 +            $fields['entrydn'] = Array(
 +                    'section'   => 'system',
 +                    'type'      => kolab_form::INPUT_HIDDEN,
 +                    'value'     => $data['entrydn']
 +                );
          }
  
          return array($fields, $types, $type);


commit 325df78353f64d1fde51cd9c25dfd7449e272dc0
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Apr 3 12:13:28 2012 +0200

    Additional translations

diff --git a/lib/locale/en_US.php b/lib/locale/en_US.php
index 975dad2..422f8e6 100644
--- a/lib/locale/en_US.php
+++ b/lib/locale/en_US.php
@@ -40,17 +40,21 @@ $LANG['menu.kolabsys'] = 'Kolab Systems';
 $LANG['menu.technology'] = 'Technology';
 
 $LANG['user.add'] = 'Add User';
-$LANG['user.name'] = 'Name';
+$LANG['user.c'] = "Country';
+$LANG['user.cn'] = 'Common name';
+$LANG['user.config'] = 'Configuration';
+$LANG['user.contact'] = 'Contact';
+$LANG['user.l'] = 'City, Region';
 $LANG['user.list'] = 'Users List';
 $LANG['user.list.records'] = '$1 to $2 of $3';
+$LANG['user.name'] = 'Name';
 $LANG['user.norecords'] = 'No user records found!';
-$LANG['user.personal'] = 'Personal';
-$LANG['user.system'] = 'System';
-$LANG['user.config'] = 'Configuration';
 $LANG['user.other'] = 'Other';
-$LANG['user.contact'] = 'Contact';
+$LANG['user.o'] = 'Organization';
+$LANG['user.personal'] = 'Personal';
+$LANG['user.postalcode'] = 'Postal Code';
 $LANG['user.sn'] = 'Surname';
-$LANG['user.cn'] = 'Common name';
+$LANG['user.system'] = 'System';
 $LANG['user.givenname'] = 'Given name';
 $LANG['user.displayname'] = 'Display name';
 $LANG['user.mail'] = 'Primary Email Address';


commit e972a0f0bd6d7c61d08cf5b87d21d44b0b9f4ffc
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Mon Apr 2 02:35:38 2012 +0200

    Append entrydn to the form as well

diff --git a/lib/kolab_client_task.php b/lib/kolab_client_task.php
index 297f645..64cb27a 100644
--- a/lib/kolab_client_task.php
+++ b/lib/kolab_client_task.php
@@ -850,6 +850,12 @@ class kolab_client_task
                     'type'      => kolab_form::INPUT_HIDDEN,
                     'value'     => $data[$unique_attr]
                 );
+
+            $fields['entrydn'] = Array(
+                    'section'   => 'system',
+                    'type'      => kolab_form::INPUT_HIDDEN,
+                    'value'     => $data['entrydn']
+                );
         }
 
         return array($fields, $types, $type);


commit 07293e02dece8405c23f8c2b03e1d4495507dc19
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Mon Apr 2 02:34:05 2012 +0200

    Fall back to finding the user by entrydn attribute if the unique_attr does not work.
    Use the correct unique_attr - this had accidentally been set to 'nsuniqueid' still.

diff --git a/lib/api/kolab_api_service_user.php b/lib/api/kolab_api_service_user.php
index 847646d..e66b87c 100644
--- a/lib/api/kolab_api_service_user.php
+++ b/lib/api/kolab_api_service_user.php
@@ -186,7 +186,10 @@ class kolab_api_service_user extends kolab_api_service
         $_user = $auth->user_find_by_attribute(Array($unique_attr => $postdata[$unique_attr]));
 
         if (!$_user) {
-            console("Could not find user");
+            $_user = $auth->user_find_by_attribute(Array('entrydn' => $postdata['entrydn']));
+        }
+
+        if (!$_user) {
             return false;
         }
 
@@ -307,7 +310,7 @@ class kolab_api_service_user extends kolab_api_service
             }
 
             if (!array_key_exists($unique_attr, $attrs)) {
-                $attrs[] = 'nsuniqueid';
+                $attrs[] = $unique_attr;
             }
 
             if (!empty($attrs)) {


commit 3cc7b5b7a50ec8caf49605a3fae301691d37340c
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Mon Apr 2 02:32:51 2012 +0200

    If the query for domain name spaces failed, we are not a multi-domain setup.

diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php
index 23177e9..7226fa5 100644
--- a/lib/Auth/LDAP.php
+++ b/lib/Auth/LDAP.php
@@ -726,9 +726,12 @@ class LDAP
         }
 
         // TODO: Get domain_attr from config
-        if (($results = ldap_search($this->conn, $conf->get('domain_base_dn'), '(associatedDomain=' . $domain . ')')) == false) {
-            error_log("No results?");
-            return false;
+        $results = ldap_search($this->conn, $conf->get('domain_base_dn'), '(associatedDomain=' . $domain . ')');
+
+        if (!$result) {
+            // Not a multi-domain setup
+            $domain_name = $conf->get('kolab', 'primary_domain');
+            return $this->_standard_root_dn($domain_name);
         }
 
         $domain = ldap_first_entry($this->conn, $results);


commit fffb887f2c060576ec6b2813c292cc3a172ebc27
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 1 22:10:45 2012 +0200

    Use the cn as the title for the user info / edit form if the displayname is empty / not available

diff --git a/lib/client/kolab_client_task_user.php b/lib/client/kolab_client_task_user.php
index 2eb669f..f9e1bb2 100644
--- a/lib/client/kolab_client_task_user.php
+++ b/lib/client/kolab_client_task_user.php
@@ -284,6 +284,9 @@ class kolab_client_task_user extends kolab_client_task
         // Edit mode
         else {
             $title = $data['displayname'];
+            if (empty($title)) {
+                $title = $data['cn'];
+            }
 
             // remove password
             $data['userpassword'] = '';


commit 100a30253dd754a0151cb65e6dafe64e7f7111f8
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 1 22:08:12 2012 +0200

    If the username cannot be obtained from the displayname, use the cn

diff --git a/lib/kolab_client_task.php b/lib/kolab_client_task.php
index 14fe71f..297f645 100644
--- a/lib/kolab_client_task.php
+++ b/lib/kolab_client_task.php
@@ -516,6 +516,9 @@ class kolab_client_task
 
         $result   = $this->api->get('user.info', array('user' => $dn));
         $username = $result->get('displayname');
+        if (empty($username)) {
+            $username = $result->get('cn');
+        }
 
         if (empty($username)) {
             if (preg_match('/^cn=([a-zA=Z ]+)/', $dn, $m)) {


commit 891b72b4022bcd6806e5fd8ec1f61d7f1df6f6b9
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 1 22:07:49 2012 +0200

    Use the array sort_by

diff --git a/lib/client/kolab_client_task_user.php b/lib/client/kolab_client_task_user.php
index 1672136..2eb669f 100644
--- a/lib/client/kolab_client_task_user.php
+++ b/lib/client/kolab_client_task_user.php
@@ -54,9 +54,9 @@ class kolab_client_task_user extends kolab_client_task
 
         // request parameters
         $post = array(
-            'attributes' => array('displayname'),
+            'attributes' => array('displayname', 'cn'),
 //            'sort_order' => 'ASC',
-            'sort_by'    => 'displayname',
+            'sort_by'    => array('displayname', 'cn'),
             'page_size'  => $page_size,
             'page'       => $page,
         );
@@ -128,13 +128,13 @@ class kolab_client_task_user extends kolab_client_task
         // table body
         if (!empty($result)) {
             foreach ($result as $idx => $item) {
-                if (!is_array($item) || empty($item['displayname'])) {
+                if (!is_array($item) || (empty($item['displayname']) && empty($item['cn']))) {
                     continue;
                 }
 
                 $i++;
                 $cells = array();
-                $cells[] = array('class' => 'name', 'body' => kolab_html::escape($item['displayname']),
+                $cells[] = array('class' => 'name', 'body' => kolab_html::escape(empty($item['displayname']) ? $item['cn'] : $item['displayname']),
                     'onclick' => "kadm.command('user.info', '$idx')");
                 $rows[] = array('id' => $i, 'class' => 'selectable', 'cells' => $cells);
             }


commit b665b45ade248ebca18106e33d815589ec1c3964
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 1 22:07:17 2012 +0200

    Allow the sort_by parameter th the users_list to be an array

diff --git a/lib/api/kolab_api_service_users.php b/lib/api/kolab_api_service_users.php
index f5a04f9..854fc46 100644
--- a/lib/api/kolab_api_service_users.php
+++ b/lib/api/kolab_api_service_users.php
@@ -107,9 +107,18 @@ class kolab_api_service_users extends kolab_api_service
         }
 
         if (!empty($post['sort_by'])) {
-            // check if sort attribute is supported
-            if (in_array($post['sort_by'], $this->list_attribs)) {
-                $params['sort_by'] = $post['sort_by'];
+            if (is_array($post['sort_by'])) {
+                $params['sort_by'] = Array();
+                foreach ($post['sort_by'] as $attrib) {
+                    if (in_array($attrib, $this->list_attribs)) {
+                        $params['sort_by'][] = $attrib;
+                    }
+                }
+            } else {
+                // check if sort attribute is supported
+                if (in_array($post['sort_by'], $this->list_attribs)) {
+                    $params['sort_by'] = $post['sort_by'];
+                }
             }
         }
 


commit 062585bbb2527a968c6933fc5ad166fc1caeab7c
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 1 22:06:22 2012 +0200

    Allow the sort key to be an array

diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php
index e748347..23177e9 100644
--- a/lib/Auth/LDAP.php
+++ b/lib/Auth/LDAP.php
@@ -331,8 +331,16 @@ class LDAP
     public function list_users($attributes = array(), $search = array(), $params = array())
     {
         if (!empty($params['sort_by'])) {
-            if (!in_array($params['sort_by'], $attributes)) {
-                $attributes[] = $params['sort_by'];
+            if (is_array($params['sort_by'])) {
+                foreach ($params['sort_by'] as $attrib) {
+                    if (!in_array($attrib, $attributes)) {
+                        $attributes[] = $attrib;
+                    }
+                }
+            } else {
+                if (!in_array($params['sort_by'], $attributes)) {
+                    $attributes[] = $params['sort_by'];
+                }
             }
         }
 
@@ -919,8 +927,19 @@ class LDAP
      */
     public function sort_result($a, $b)
     {
-        $str1 = $a[$this->sort_result_key];
-        $str2 = $b[$this->sort_result_key];
+        if (is_array($this->sort_result_key)) {
+            foreach ($this->sort_result_key as $attrib) {
+                if (array_key_exists($attrib, $a)) {
+                    $str1 = $a[$attrib];
+                }
+                if (array_key_exists($attrib, $b)) {
+                    $str2 = $b[$attrib];
+                }
+            }
+        } else {
+            $str1 = $a[$this->sort_result_key];
+            $str2 = $b[$this->sort_result_key];
+        }
 
         return strcmp(mb_strtoupper($str1), mb_strtoupper($str2));
     }





More information about the commits mailing list