plugins/calendar plugins/kolab_auth plugins/kolab_notes plugins/libkolab plugins/tasklist

Thomas Brüderli bruederli at kolabsys.com
Mon Aug 18 14:07:43 CEST 2014


 plugins/calendar/drivers/kolab/kolab_user_calendar.php   |    4 ++--
 plugins/kolab_auth/config.inc.php.dist                   |    4 ++++
 plugins/kolab_auth/kolab_auth_ldap.php                   |   15 +++++++++++++++
 plugins/kolab_notes/kolab_notes.php                      |    2 +-
 plugins/libkolab/lib/kolab_storage_folder_user.php       |   10 ++++++++++
 plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php |    2 +-
 6 files changed, 33 insertions(+), 4 deletions(-)

New commits:
commit 824db716b4b6f08ca649d5a2a88a77c87f062e10
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Mon Aug 18 13:34:10 2014 +0200

    Allow to configure the name (inlcude OU) displayed for virtual user folders (#3384)

diff --git a/plugins/calendar/drivers/kolab/kolab_user_calendar.php b/plugins/calendar/drivers/kolab/kolab_user_calendar.php
index 58c2296..859dc4c 100644
--- a/plugins/calendar/drivers/kolab/kolab_user_calendar.php
+++ b/plugins/calendar/drivers/kolab/kolab_user_calendar.php
@@ -74,7 +74,7 @@ class kolab_user_calendar extends kolab_calendar
    */
   public function get_name()
   {
-    return $this->userdata['name'] ?: $this->userdata['mail'];
+    return $this->userdata['displayname'] ?: ($this->userdata['name'] ?: $this->userdata['mail']);
   }
 
 
@@ -94,7 +94,7 @@ class kolab_user_calendar extends kolab_calendar
    */
   public function get_title()
   {
-    return $this->userdata['mail'];
+    return trim($this->userdata['displayname'] . '; ' . $this->userdata['mail'], '; ');
   }
 
 
diff --git a/plugins/kolab_auth/config.inc.php.dist b/plugins/kolab_auth/config.inc.php.dist
index 7a23301..785fb78 100644
--- a/plugins/kolab_auth/config.inc.php.dist
+++ b/plugins/kolab_auth/config.inc.php.dist
@@ -29,6 +29,10 @@ $rcmail_config['kolab_auth_name']         = array('name', 'cn');
 $rcmail_config['kolab_auth_email']        = array('email');
 $rcmail_config['kolab_auth_organization'] = array('organization');
 
+// Template for user names displayed in the UI.
+// You can use all attributes from the 'fieldmap' property of the 'kolab_auth_addressbook' configuration
+$rcmail_config['kolab_auth_user_displayname'] = '{name} ({ou})';
+
 // Login and password of the admin user. Enables "Login As" feature.
 $rcmail_config['kolab_auth_admin_login']    = '';
 $rcmail_config['kolab_auth_admin_password'] = '';
diff --git a/plugins/kolab_auth/kolab_auth_ldap.php b/plugins/kolab_auth/kolab_auth_ldap.php
index 0e3f238..117db8c 100644
--- a/plugins/kolab_auth/kolab_auth_ldap.php
+++ b/plugins/kolab_auth/kolab_auth_ldap.php
@@ -28,12 +28,17 @@
 class kolab_auth_ldap extends rcube_ldap_generic
 {
     private $icache = array();
+    private $conf = array();
+    private $fieldmap = array();
 
 
     function __construct($p)
     {
         $rcmail = rcube::get_instance();
 
+        $this->conf = $p;
+        $this->conf['kolab_auth_user_displayname'] = $rcmail->config->get('kolab_auth_user_displayname', '{name}');
+
         $this->fieldmap = $p['fieldmap'];
         $this->fieldmap['uid'] = 'uid';
 
@@ -340,6 +345,16 @@ class kolab_auth_ldap extends rcube_ldap_generic
             }
         }
 
+        // compose display name according to config
+        if (empty($this->fieldmap['displayname'])) {
+            $entry['displayname'] = rcube_addressbook::compose_search_name(
+                $entry,
+                $entry['email'],
+                $entry['name'],
+                $this->conf['kolab_auth_user_displayname']
+            );
+        }
+
         return $entry;
     }
 
diff --git a/plugins/kolab_notes/kolab_notes.php b/plugins/kolab_notes/kolab_notes.php
index cf88772..8475b7d 100644
--- a/plugins/kolab_notes/kolab_notes.php
+++ b/plugins/kolab_notes/kolab_notes.php
@@ -220,7 +220,7 @@ class kolab_notes extends rcube_plugin
                     'id'       => $list_id,
                     'name'     => $fullname,
                     'listname' => $listname,
-                    'title'    => $folder->get_owner(),
+                    'title'    => $folder->get_title(),
                     'virtual'  => true,
                     'editable' => false,
                     'group'    => 'other virtual',
diff --git a/plugins/libkolab/lib/kolab_storage_folder_user.php b/plugins/libkolab/lib/kolab_storage_folder_user.php
index 70ded87..1c37da9 100644
--- a/plugins/libkolab/lib/kolab_storage_folder_user.php
+++ b/plugins/libkolab/lib/kolab_storage_folder_user.php
@@ -65,6 +65,16 @@ class kolab_storage_folder_user extends kolab_storage_folder_virtual
     }
 
     /**
+     * Getter for a more informative title of this user folder
+     *
+     * @return string Title for the given user record
+     */
+    public function get_title()
+    {
+      return trim($this->ldaprec['displayname'] . '; ' . $this->ldaprec['mail'], '; ');
+    }
+
+    /**
      * Returns the owner of the folder.
      *
      * @return string  The owner of this folder.
diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
index e60719c..67baa4c 100644
--- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
+++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
@@ -199,7 +199,7 @@ class tasklist_kolab_driver extends tasklist_driver
                     'id'       => $list_id,
                     'name'     => $folder->get_name(),
                     'listname' => $listname,
-                    'title'    => $folder->get_owner(),
+                    'title'    => $folder->get_title(),
                     'virtual'  => true,
                     'editable' => false,
                     'group'    => 'other virtual',




More information about the commits mailing list