2 commits - lib/api lib/Auth lib/Auth.php lib/kolab_api_controller.php
Aleksander Machniak
machniak at kolabsys.com
Thu Mar 22 12:42:40 CET 2012
lib/Auth.php | 9 ++-------
lib/Auth/LDAP.php | 4 ++--
lib/api/kolab_api_service_group.php | 5 +++++
lib/api/kolab_api_service_user.php | 27 ++++++++++++++++-----------
lib/kolab_api_controller.php | 2 +-
5 files changed, 26 insertions(+), 21 deletions(-)
New commits:
commit 1f2c4ec5addba60c4a18194921f7a400df6e9a72
Merge: 872efd8 4d901b6
Author: Aleksander Machniak <machniak at kolabsys.com>
Date: Thu Mar 22 12:42:35 2012 +0100
Merge branch 'master' of ssh://git.kolab.org/git/kolab-wap
commit 872efd8546d41e1d779a9eb73ec45c86a4a3068d
Author: Aleksander Machniak <machniak at kolabsys.com>
Date: Thu Mar 22 12:41:58 2012 +0100
Fixed/Improved result normalization (with DN attribute handling)
diff --git a/lib/Auth.php b/lib/Auth.php
index 17cbd0d..9eaa498 100644
--- a/lib/Auth.php
+++ b/lib/Auth.php
@@ -173,7 +173,7 @@ class Auth {
public function group_info($groupdata)
{
- return $this->normalize_result($this->_auth[$_SESSION['user']->get_domain()]->group_info($groupdata));
+ return $this->_auth[$_SESSION['user']->get_domain()]->group_info($groupdata);
}
public function group_members_list($groupdata)
@@ -219,11 +219,6 @@ class Auth {
return $groups;
}
- public function normalize_result($results)
- {
- return LDAP::normalize_result($results);
- }
-
public function primary_for_valid_domain($domain)
{
$this->domains = $this->list_domains();
@@ -273,6 +268,6 @@ class Auth {
public function user_info($userdata)
{
- return $this->normalize_result($this->_auth[$_SESSION['user']->get_domain()]->user_info($userdata));
+ return $this->_auth[$_SESSION['user']->get_domain()]->user_info($userdata);
}
}
diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php
index 685081c..dd41176 100644
--- a/lib/Auth/LDAP.php
+++ b/lib/Auth/LDAP.php
@@ -352,7 +352,7 @@ class LDAP
return false;
}
- return $this->search($group_dn);
+ return $this->normalize_result($this->search($group_dn));
}
public function group_members_list($group)
@@ -641,7 +641,7 @@ class LDAP
return false;
}
- return $this->search($user_dn);
+ return $this->normalize_result($this->search($user_dn));
}
public function users_list($attributes = array(), $search = array())
diff --git a/lib/api/kolab_api_service_group.php b/lib/api/kolab_api_service_group.php
index 34843d9..9020d01 100644
--- a/lib/api/kolab_api_service_group.php
+++ b/lib/api/kolab_api_service_group.php
@@ -113,6 +113,11 @@ class kolab_api_service_group extends kolab_api_service
$auth = Auth::get_instance();
$result = $auth->group_info($getdata['group']);
+ // normalize result
+ $dn = key($result);
+ $result = $result[$dn];
+ $result['entrydn'] = $dn;
+
if ($result) {
return $result;
}
diff --git a/lib/api/kolab_api_service_user.php b/lib/api/kolab_api_service_user.php
index 0224b2b..142f4b4 100644
--- a/lib/api/kolab_api_service_user.php
+++ b/lib/api/kolab_api_service_user.php
@@ -117,21 +117,26 @@ class kolab_api_service_user extends kolab_api_service
$user = $getdata['user'];
$result = $auth->user_info($user);
+ // normalize result
+ $dn = key($result);
+ $result = $result[$dn];
+ $result['entrydn'] = $dn;
+
// add user type id to the result
- $objectclass = $result[$user]['objectclass'];
- $result[$user]['user_type_id'] = $this->user_type_id($objectclass);
+ $result['user_type_id'] = $this->user_type_id($result['objectclass']);
// Search for attributes associated with the type_id that are not part
// of the results returned earlier. Example: nsrole / nsroledn / aci, etc.
- $uta = $this->user_type_attributes($result[$user]['user_type_id']);
-
- foreach ($uta as $field_type => $attributes) {
- foreach ($attributes as $attribute => $data) {
- if (!array_key_exists($attribute, $result[$user])) {
- $attribute_value = $auth->user_get_attribute($user, $attribute);
- if ($attribute_value) {
- console("Got:", $attribute_value);
- $result[$user][$attribute] = $attribute_value;
+ if ($result['user_type_id']) {
+ $uta = $this->user_type_attributes($result['user_type_id']);
+
+ foreach ($uta as $field_type => $attributes) {
+ foreach ($attributes as $attribute => $data) {
+ if (!array_key_exists($attribute, $result[$user])) {
+ $attribute_value = $auth->user_get_attribute($user, $attribute);
+ if ($attribute_value) {
+ $result[$attribute] = $attribute_value;
+ }
}
}
}
diff --git a/lib/kolab_api_controller.php b/lib/kolab_api_controller.php
index cc23849..0880700 100644
--- a/lib/kolab_api_controller.php
+++ b/lib/kolab_api_controller.php
@@ -295,7 +295,7 @@ class kolab_api_controller
private function capabilities()
{
$auth = Auth::get_instance();
- $this->domains = $auth->normalize_result($auth->list_domains());
+ $this->domains = $auth->list_domains();
$result = array();
More information about the commits
mailing list