2 commits - lib/api lib/Auth lib/Auth.php lib/kolab_api_controller.php lib/kolab_client_task.php lib/User.php

Aleksander Machniak machniak at kolabsys.com
Tue Apr 3 14:43:45 CEST 2012


 lib/Auth.php                        |    5 +++++
 lib/Auth/LDAP.php                   |   17 +++++++++++++----
 lib/User.php                        |   24 ++++++++++++++++--------
 lib/api/kolab_api_service_group.php |    1 -
 lib/kolab_api_controller.php        |    3 ++-
 lib/kolab_client_task.php           |    8 ++++++--
 6 files changed, 42 insertions(+), 16 deletions(-)

New commits:
commit 2c68d1b93a8f90cce2b97a3438e3fe37653d93f2
Merge: 5ea4fce 2cde289
Author: Aleksander Machniak <machniak at kolabsys.com>
Date:   Tue Apr 3 14:43:36 2012 +0200

    Merge branch 'master' of ssh://git.kolab.org/git/kolab-wap



commit 5ea4fce984f81486857e985c8c9ece86b4ab3273
Author: Aleksander Machniak <machniak at kolabsys.com>
Date:   Tue Apr 3 14:42:59 2012 +0200

    Fix group_members_list()
    Fix getting logged in user data

diff --git a/lib/Auth.php b/lib/Auth.php
index 255afac..18294f8 100644
--- a/lib/Auth.php
+++ b/lib/Auth.php
@@ -94,6 +94,11 @@ class Auth {
      *
      *      This user is to be authenticated against the 'kolab'
      *      'primary_domain'.
+     *
+     * @param string $username User name (DN or mail)
+     * @param string $password User password
+     *
+     * @return bool|string User ID or False on failure
      */
     public function authenticate($username, $password)
     {
diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php
index dd4da66..cdb58d7 100644
--- a/lib/Auth/LDAP.php
+++ b/lib/Auth/LDAP.php
@@ -118,6 +118,14 @@ class LDAP
      ***********          Public methods           ************
      **********************************************************/
 
+    /**
+     * Authentication
+     *
+     * @param string $username User name (DN or mail)
+     * @param string $password User password
+     *
+     * @return bool|string User ID or False on failure
+     */
     public function authenticate($username, $password)
     {
         error_log("LDAP authentication request for $username");
@@ -143,7 +151,7 @@ class LDAP
         }
 
         if (($bind_ok = $this->_bind($user_dn, $password)) == true) {
-            $this->_unbind();
+//            $this->_unbind();
 
             if (isset($_SESSION['user'])) {
                 $_SESSION['user']->user_root_dn = $root_dn;
@@ -155,7 +163,8 @@ class LDAP
                 error_log("Successfully bound with User DN: " . $user_dn . " but not saving it to the session");
             }
 
-            return true;
+            // @TODO: return unique attribute
+            return $user_dn;
         }
         else {
             error_log("LDAP Error: " . $this->_errstr());
@@ -631,7 +640,7 @@ class LDAP
         return self::normalize_result($this->search($group_dn));
     }
 
-    public function group_members_list($subject)
+    public function group_members_list($group)
     {
         $group_dn = $this->entry_dn($group);
 
@@ -1352,7 +1361,7 @@ class LDAP
         }
 
         error_log("Searching $base_dn with filter: $search_filter");
-        error_log("Searching with user: " . $_SESSION['user']->user_bind_dn);
+//        error_log("Searching with user: " . $_SESSION['user']->user_bind_dn);
 
         $this->_bind($_SESSION['user']->user_bind_dn, $_SESSION['user']->user_bind_pw);
 
diff --git a/lib/User.php b/lib/User.php
index 74f4567..d4f8ca0 100644
--- a/lib/User.php
+++ b/lib/User.php
@@ -28,19 +28,15 @@ class User
     private $_authenticated = FALSE;
     private $auth;
 
-    private $username = NULL;
-    private $password = NULL;
+    private $userid;
+    private $username;
+    private $password;
 
     private $_groups = FALSE;
 
     private $domain;
     private $working_domain;
 
-    public function get_username()
-    {
-        // Who's asking?
-        return $this->username;
-    }
 
     public function _get_information()
     {
@@ -62,7 +58,8 @@ class User
             $this->_authenticated = TRUE;
             $this->username = $username;
             $this->password = $password;
-            $this->domain = $this->auth->domain;
+            $this->userid   = $result;
+            $this->domain   = $this->auth->domain;
 //            $this->_groups = $this->groups();
         }
 
@@ -74,6 +71,17 @@ class User
         return $this->_authenticated;
     }
 
+    public function get_username()
+    {
+        // Who's asking?
+        return $this->username;
+    }
+
+    public function get_userid()
+    {
+        return $this->userid;
+    }
+
     public function get_domain()
     {
         if ($this->working_domain) {
diff --git a/lib/api/kolab_api_service_group.php b/lib/api/kolab_api_service_group.php
index 9b9c076..7bb14c0 100644
--- a/lib/api/kolab_api_service_group.php
+++ b/lib/api/kolab_api_service_group.php
@@ -152,7 +152,6 @@ class kolab_api_service_group extends kolab_api_service
             //error_log("Empty \$getdata['group']");
             return FALSE;
         }
-
         $result = $auth->group_members_list($getdata['group']);
 
         return array(
diff --git a/lib/kolab_api_controller.php b/lib/kolab_api_controller.php
index 2aaef55..cfd984a 100644
--- a/lib/kolab_api_controller.php
+++ b/lib/kolab_api_controller.php
@@ -281,8 +281,9 @@ class kolab_api_controller
             $_SESSION['start'] = time();
             return array(
                 'user'          => $_SESSION['user']->get_username(),
+                'userid'        => $_SESSION['user']->get_userid(),
                 'domain'        => $_SESSION['user']->get_domain(),
-                'session_token' => session_id()
+                'session_token' => session_id(),
             );
         }
 
diff --git a/lib/kolab_client_task.php b/lib/kolab_client_task.php
index 9e1f8a2..fb1e116 100644
--- a/lib/kolab_client_task.php
+++ b/lib/kolab_client_task.php
@@ -181,12 +181,16 @@ class kolab_client_task
                 //console($result);
 
                 if ($token = $result->get('session_token')) {
-                    $user = array('token' => $token, 'domain' => $result->get('domain'));
+                    $user = array(
+                        'token'  => $token,
+                        'id'     => $result->get('userid'),
+                        'domain' => $result->get('domain')
+                    );
 
                     $this->api->set_session_token($user['token']);
 
                     // find user settings
-                    $res = $this->api->get('user.info', array('user' => $login['username']));
+                    $res = $this->api->get('user.info', array('user' => $user['id']));
                     $res = $res->get();
 
                     if (is_array($res) && !empty($res)) {





More information about the commits mailing list