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