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