plugins/kolab_auth plugins/kolab_delegation
Aleksander Machniak
machniak at kolabsys.com
Wed Sep 11 14:02:28 CEST 2013
plugins/kolab_auth/kolab_auth.php | 4 ++++
plugins/kolab_auth/kolab_auth_ldap.php | 4 +++-
plugins/kolab_delegation/kolab_delegation.php | 24 ++++++++++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
New commits:
commit cdd23787e2b72cad74d84b1bbc1b4650d7ad2f0a
Author: Aleksander Machniak <machniak at kolabsys.com>
Date: Wed Sep 11 14:01:38 2013 +0200
Fix so kolab_delegation plugin can modify list of addresses in
identity form (Bug #2191)
diff --git a/plugins/kolab_auth/kolab_auth.php b/plugins/kolab_auth/kolab_auth.php
index e6171d2..7c61553 100644
--- a/plugins/kolab_auth/kolab_auth.php
+++ b/plugins/kolab_auth/kolab_auth.php
@@ -490,6 +490,10 @@ class kolab_auth extends rcube_plugin
$emails = array_merge($emails, array_filter($values));
}
+ // kolab_delegation might want to modify this addresses list
+ $plugin = $rcmail->plugins->exec_hook('kolab_auth_emails', array('emails' => $emails));
+ $emails = $plugin['emails'];
+
if (!empty($emails)) {
$args['form']['addressing']['content']['email'] = array(
'type' => 'select',
diff --git a/plugins/kolab_auth/kolab_auth_ldap.php b/plugins/kolab_auth/kolab_auth_ldap.php
index 4584c60..2cddb3f 100644
--- a/plugins/kolab_auth/kolab_auth_ldap.php
+++ b/plugins/kolab_auth/kolab_auth_ldap.php
@@ -119,6 +119,7 @@ class kolab_auth_ldap extends rcube_ldap_generic
$entries = $result->entries(true);
$dn = key($entries);
$entry = array_pop($entries);
+ $entry = rcube_ldap_generic::normalize_entry($entry);
$entry = $this->field_mapping($dn, $entry);
return $entry;
@@ -287,7 +288,8 @@ class kolab_auth_ldap extends rcube_ldap_generic
if ($limit && $limit <= $i) {
break;
}
- $dn = $result->get_dn();
+ $dn = $result->get_dn();
+ $entry = rcube_ldap_generic::normalize_entry($entry);
$list[$dn] = $this->field_mapping($dn, $entry);
$i++;
}
diff --git a/plugins/kolab_delegation/kolab_delegation.php b/plugins/kolab_delegation/kolab_delegation.php
index 156e81f..23e0107 100644
--- a/plugins/kolab_delegation/kolab_delegation.php
+++ b/plugins/kolab_delegation/kolab_delegation.php
@@ -55,6 +55,9 @@ class kolab_delegation extends rcube_plugin
$this->add_hook('calendar_list_filter', array($this, 'calendar_list_filter'));
$this->add_hook('calendar_load_itip', array($this, 'calendar_load_itip'));
+ // delegation support in kolab_auth plugin
+ $this->add_hook('kolab_auth_emails', array($this, 'kolab_auth_emails'));
+
if ($this->rc->task == 'settings') {
// delegation management interface
$this->register_action('plugin.delegation', array($this, 'controller_ui'));
@@ -241,6 +244,27 @@ class kolab_delegation extends rcube_plugin
}
/**
+ * Delegation support in kolab_auth plugin
+ */
+ public function kolab_auth_emails($args)
+ {
+ // Add delegators addresses to address selector in user identity form
+
+ if (!empty($_SESSION['delegators'])) {
+ // @TODO: Consider not adding all delegator addresses to the list.
+ // Instead add only address of currently edited identity
+ foreach ($_SESSION['delegators'] as $emails) {
+ $args['emails'] = array_merge($args['emails'], $emails);
+ }
+
+ $args['emails'] = array_unique($args['emails']);
+ sort($args['emails']);
+ }
+
+ return $args;
+ }
+
+ /**
* Delegation UI handler
*/
public function controller_ui()
More information about the commits
mailing list