3 commits - lib/Auth lib/kolab_api_controller.php lib/kolab_client_task.php

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Wed Aug 22 14:07:46 CEST 2012


 lib/Auth/LDAP.php            |    8 ++++++++
 lib/kolab_api_controller.php |   21 +++++++++------------
 lib/kolab_client_task.php    |   11 +++++++++--
 3 files changed, 26 insertions(+), 14 deletions(-)

New commits:
commit 8fe5574fa0cebce31e8571bf90c5fdfc14a47101
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Aug 22 13:07:28 2012 +0100

    Fix handling domain-specific capabilities

diff --git a/lib/kolab_api_controller.php b/lib/kolab_api_controller.php
index f5e67d7..c2688a3 100644
--- a/lib/kolab_api_controller.php
+++ b/lib/kolab_api_controller.php
@@ -337,7 +337,8 @@ class kolab_api_controller
             $dna = 'associateddomain';
         }
 
-        $this->domains = $auth->list_domains();
+        $_domains = $auth->list_domains();
+        $this->domains = $_domains['list'];
 
         $result = array();
 
@@ -345,15 +346,12 @@ class kolab_api_controller
         // we should always return our own.
         if (count($this->domains) < 1) {
             //console("As there is but one domain, we insert our own");
-            $this->domains[] = $_SESSION['user']->get_domain();
+            $this->domains[] = Array($dna => $_SESSION['user']->get_domain());
         }
 
-        //console("\$this->domains:", $this->domains);
-
         // add capabilities of all registered services
-        foreach ($this->domains as $domain) {
-
-            $domain_name = is_array($domain) ? (is_array($domain[$dna]) ? $domain[$dna][0] : $domain[$dna]) : $domain;
+        foreach ($this->domains as $domain_dn => $domain_attrs) {
+            $domain_name = is_array($domain_attrs) ? (is_array($domain_attrs[$dna]) ? $domain_attrs[$dna][0] : $domain_attrs[$dna]) : $domain_attrs;
 
             // define our very own capabilities
             $actions = array(
@@ -368,15 +366,14 @@ class kolab_api_controller
                 }
             }
 
-            //console("api capabilities", $domain, $domain_name);
-
             $result[$domain_name] = array('actions' => $actions);
         }
 
         return array(
-            'list'  => $result,
-            'count' => count($result),
-        );
+                'list'  => $result,
+                'count' => count($result),
+            );
+
     }
 
     private function get_domain() {


commit 648c792b1a212121599e10025602257a620e869b
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Aug 22 13:06:48 2012 +0100

    Insert additional subject_dn configuration for effective_rights

diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php
index da18c67..32926d4 100644
--- a/lib/Auth/LDAP.php
+++ b/lib/Auth/LDAP.php
@@ -276,6 +276,14 @@ class LDAP extends Net_LDAP3 {
                 $result = parent::effective_rights($this->conf->get("ldap", "group_base_dn"));
                 return $result;
                 break;
+            case "resource":
+                $result = parent::effective_rights($this->conf->get("ldap", "resource_base_dn"));
+                return $result;
+                break;
+            case "role":
+                $result = parent::effective_rights($this->conf->get("ldap", "base_dn"));
+                return $result;
+                break;
             case "user":
                 $result = parent::effective_rights($this->conf->get("ldap", "user_base_dn"));
                 return $result;


commit c70572dbd26d00c860bfa67f353115c3331c8117
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Aug 22 13:06:27 2012 +0100

    If devel_mode is set, avoid using the cached capabilities

diff --git a/lib/kolab_client_task.php b/lib/kolab_client_task.php
index 1352ef4..ba799e3 100644
--- a/lib/kolab_client_task.php
+++ b/lib/kolab_client_task.php
@@ -480,7 +480,7 @@ class kolab_client_task
 
         $capabilities = $this->capabilities();
 
-        //console("Capabilities", $capabilities);
+        Log::trace("kolab_client_task::menu() capabilities:", $capabilities);
 
         foreach ($this->menu as $idx => $label) {
             //console("$task: $task, idx: $idx, label: $label");
@@ -584,7 +584,14 @@ class kolab_client_task
      */
     protected function capabilities()
     {
-        if (!isset($_SESSION['capabilities'])) {
+        $conf = Conf::get_instance();
+        $devel_mode = $conf->get('kolab_wap', 'devel_mode');
+
+        if (empty($devel_mode)) {
+            $devel_mode = FALSE;
+        }
+
+        if (!isset($_SESSION['capabilities']) || $devel_mode) {
             $result = $this->api->post('system.capabilities');
             $list   = $result->get('list');
 





More information about the commits mailing list