4 commits - bin/kolab_smtp_access_policy.py .gitignore pykolab/cli pykolab/setup share/templates

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Tue Aug 13 11:58:13 CEST 2013


 .gitignore                                                     |    3 
 bin/kolab_smtp_access_policy.py                                |   17 
 pykolab/cli/cmd_count_domain_mailboxes.py                      |   68 ++
 pykolab/cli/cmd_list_mailboxes.py                              |    2 
 pykolab/cli/cmd_server_info.py                                 |   58 ++
 pykolab/setup/setup_roundcube.py                               |    3 
 share/templates/imapd.conf.tpl                                 |    2 
 share/templates/roundcubemail/acl.inc.php.tpl                  |    8 
 share/templates/roundcubemail/calendar.inc.php.tpl             |   16 
 share/templates/roundcubemail/config.inc.php.tpl               |  204 +++++++
 share/templates/roundcubemail/db.inc.php.tpl                   |   29 -
 share/templates/roundcubemail/kolab.inc.php.tpl                |    8 
 share/templates/roundcubemail/kolab_auth.inc.php.tpl           |   24 
 share/templates/roundcubemail/kolab_files.inc.php.tpl          |    8 
 share/templates/roundcubemail/kolab_folders.inc.php.tpl        |   24 
 share/templates/roundcubemail/main.inc.php.tpl                 |  265 ----------
 share/templates/roundcubemail/managesieve.inc.php.tpl          |   22 
 share/templates/roundcubemail/owncloud.inc.php.tpl             |    2 
 share/templates/roundcubemail/password.inc.php.tpl             |   48 -
 share/templates/roundcubemail/recipient_to_contact.inc.php.tpl |    4 
 share/templates/roundcubemail/terms.inc.php.tpl                |    8 
 21 files changed, 432 insertions(+), 391 deletions(-)

New commits:
commit 0c8d510df94bacbea289d6738a00d0b56928fcf6
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Aug 13 10:57:49 2013 +0100

    Add commands count-domain-mailboxes and server-info, enhance list-mailboxes

diff --git a/.gitignore b/.gitignore
index 7c1de8b..e8d60b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,11 +9,13 @@ Makefile.in
 *.rej
 *.spec
 *.tar.gz
+*.tar.gz.gpg
 aclocal.m4
 autom4te.cache/
 bin/rebuild.sh
 bin/test*
 ChangeLog
+conf/*-*.conf
 config.log
 config.status
 configure
@@ -23,3 +25,4 @@ po/POTFILES
 pykolab/constants.py
 pykolab-[0-9]*.*/
 src/
+test-*
diff --git a/pykolab/cli/cmd_count_domain_mailboxes.py b/pykolab/cli/cmd_count_domain_mailboxes.py
new file mode 100644
index 0000000..6cc71ef
--- /dev/null
+++ b/pykolab/cli/cmd_count_domain_mailboxes.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+# Copyright 2010-2013 Kolab Systems AG (http://www.kolabsys.com)
+#
+# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a kolabsys.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 3 or, at your option, any later version
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+import datetime
+
+import commands
+
+import pykolab
+
+from pykolab import imap_utf7
+from pykolab.auth import Auth
+from pykolab.imap import IMAP
+from pykolab.translate import _
+
+log = pykolab.getLogger('pykolab.cli')
+conf = pykolab.getConf()
+
+def __init__():
+    commands.register('count_domain_mailboxes', execute)
+
+def cli_options():
+    my_option_group = conf.add_cli_parser_option_group(_("CLI Options"))
+    my_option_group.add_option( '--server',
+                                dest    = "connect_server",
+                                action  = "store",
+                                default = None,
+                                metavar = "SERVER",
+                                help    = _("List mailboxes on server SERVER only."))
+
+def execute(*args, **kw):
+    """
+        List deleted mailboxes
+    """
+    imap = IMAP()
+    imap.connect()
+
+    auth = Auth()
+    auth.connect()
+
+    domains = auth.list_domains()
+
+    folders = []
+    for primary,secondaries in domains:
+        print "%s: %d" % (primary,len(imap.lm("user/%%@%s" % (primary))))
+        for secondary in secondaries:
+            print "%s: %d" % (secondary,len(imap.lm("user/%%@%s" % (secondary))))
+
+    null_realm = len(imap.lm("user/%%"))
+
+    if null_realm > 0:
+        print "null: %d" % (null_realm)
+
diff --git a/pykolab/cli/cmd_list_mailboxes.py b/pykolab/cli/cmd_list_mailboxes.py
index ebfefb7..f9391eb 100644
--- a/pykolab/cli/cmd_list_mailboxes.py
+++ b/pykolab/cli/cmd_list_mailboxes.py
@@ -85,7 +85,7 @@ def execute(*args, **kw):
 
     for search in searches:
         log.debug(_("Appending folder search for %r") % (search), level=8)
-        folders.extend(imap.lm(search))
+        folders.extend(imap.lm(imap_utf7.encode(search)))
 
     for folder in folders:
         if not conf.raw:
diff --git a/pykolab/cli/cmd_server_info.py b/pykolab/cli/cmd_server_info.py
new file mode 100644
index 0000000..51ec40d
--- /dev/null
+++ b/pykolab/cli/cmd_server_info.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+# Copyright 2010-2013 Kolab Systems AG (http://www.kolabsys.com)
+#
+# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a kolabsys.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 3 or, at your option, any later version
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+import commands
+
+import pykolab
+
+from pykolab.imap import IMAP
+from pykolab.translate import _
+
+log = pykolab.getLogger('pykolab.cli')
+conf = pykolab.getConf()
+
+def __init__():
+    commands.register('server_info', execute, description=description())
+
+def cli_options():
+    my_option_group = conf.add_cli_parser_option_group(_("CLI Options"))
+    my_option_group.add_option( '--server',
+                                dest    = "connect_server",
+                                action  = "store",
+                                default = None,
+                                metavar = "SERVER",
+                                help    = _("List mailboxes on server SERVER only."))
+
+
+def description():
+    return "Display server info.\n"
+
+def execute(*args, **kw):
+    """
+        List mailboxes
+    """
+
+    imap = IMAP()
+
+    if not conf.connect_server == None:
+        imap.connect(server=conf.connect_server)
+    else:
+        imap.connect()
+
+    print imap.get_metadata("")


commit 79bfb73a9d88711deb5c6c7a9e5f7142c61ae26c
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Aug 13 10:50:28 2013 +0100

    Update the setting up of Roundcube to the latest

diff --git a/pykolab/setup/setup_roundcube.py b/pykolab/setup/setup_roundcube.py
index 2e0b08c..7536ce2 100644
--- a/pykolab/setup/setup_roundcube.py
+++ b/pykolab/setup/setup_roundcube.py
@@ -90,12 +90,11 @@ def execute(*args, **kw):
     want_files = [
             'acl.inc.php',
             'calendar.inc.php',
-            'db.inc.php',
+            'config.inc.php',
             'kolab_auth.inc.php',
             'kolab_files.inc.php',
             'kolab_folders.inc.php',
             'kolab.inc.php',
-            'main.inc.php',
             'managesieve.inc.php',
             'owncloud.inc.php',
             'password.inc.php',
diff --git a/share/templates/roundcubemail/acl.inc.php.tpl b/share/templates/roundcubemail/acl.inc.php.tpl
index f7877bb..ca1bae5 100644
--- a/share/templates/roundcubemail/acl.inc.php.tpl
+++ b/share/templates/roundcubemail/acl.inc.php.tpl
@@ -1,8 +1,8 @@
 <?php
-    \$rcmail_config['acl_advanced_mode'] = false;
-    \$rcmail_config['acl_users_source'] = 'kolab_addressbook';
-    \$rcmail_config['acl_users_field'] = 'mail';
-    \$rcmail_config['acl_users_filter'] = 'objectClass=kolabInetOrgPerson';
+    \$config['acl_advanced_mode'] = false;
+    \$config['acl_users_source'] = 'kolab_addressbook';
+    \$config['acl_users_field'] = 'mail';
+    \$config['acl_users_filter'] = 'objectClass=kolabInetOrgPerson';
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
diff --git a/share/templates/roundcubemail/calendar.inc.php.tpl b/share/templates/roundcubemail/calendar.inc.php.tpl
index 37e9c44..b119f7b 100644
--- a/share/templates/roundcubemail/calendar.inc.php.tpl
+++ b/share/templates/roundcubemail/calendar.inc.php.tpl
@@ -1,12 +1,12 @@
 <?php
-    \$rcmail_config['calendar_driver'] = "kolab";
-    \$rcmail_config['calendar_default_view'] = "agendaWeek";
-    \$rcmail_config['calendar_timeslots'] = 2;
-    \$rcmail_config['calendar_first_day'] = 1;
-    \$rcmail_config['calendar_first_hour'] = 6;
-    \$rcmail_config['calendar_work_start'] = 6;
-    \$rcmail_config['calendar_work_end'] = 18;
-    \$rcmail_config['calendar_event_coloring'] = 0;
+    \$config['calendar_driver'] = "kolab";
+    \$config['calendar_default_view'] = "agendaWeek";
+    \$config['calendar_timeslots'] = 2;
+    \$config['calendar_first_day'] = 1;
+    \$config['calendar_first_hour'] = 6;
+    \$config['calendar_work_start'] = 6;
+    \$config['calendar_work_end'] = 18;
+    \$config['calendar_event_coloring'] = 0;
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
diff --git a/share/templates/roundcubemail/config.inc.php.tpl b/share/templates/roundcubemail/config.inc.php.tpl
new file mode 100644
index 0000000..94fdf02
--- /dev/null
+++ b/share/templates/roundcubemail/config.inc.php.tpl
@@ -0,0 +1,204 @@
+<?php
+    \$config = array();
+
+    \$config['db_dsnw'] = '$mysql_uri';
+
+    \$config['session_domain'] = '';
+    \$config['des_key'] = "$des_key";
+    \$config['username_domain'] = '$primary_domain';
+
+    \$config['mail_domain'] = '';
+
+    // IMAP Server Settings
+    \$config['default_host'] = 'tls://localhost';
+    \$config['default_port'] = 143;
+    \$config['imap_delimiter'] = '/';
+    \$config['imap_force_lsub'] = true;
+
+    // Caching and storage settings
+    \$config['imap_cache'] = 'db';
+    \$config['imap_cache_ttl'] = '10d';
+    \$config['messages_cache'] = 'db';
+    \$config['message_cache_ttl'] = '10d';
+    \$config['session_storage'] = 'db';
+
+    // SMTP Server Settings
+    \$config['smtp_server'] = 'tls://localhost';
+    \$config['smtp_port'] = 587;
+    \$config['smtp_user'] = '%u';
+    \$config['smtp_pass'] = '%p';
+    \$config['smtp_helo_host'] = \$_SERVER["HTTP_HOST"];
+
+    // LDAP Settings
+    \$config['ldap_cache'] = 'db';
+    \$config['ldap_cache_ttl'] = '1h';
+
+    // Kolab specific defaults
+    \$config['product_name'] = 'Kolab Groupware';
+    \$config['skin_logo'] = 'skins/kolab/images/kolab_logo.png';
+    \$config['quota_zero_as_unlimited'] = false;
+    \$config['login_lc'] = 2;
+    \$config['auto_create_user'] = true;
+    \$config['enable_installer'] = false;
+    // The SMTP server does not allow empty identities
+    \$config['mdn_use_from'] = true;
+
+    // Plugins
+    \$config['plugins'] = array(
+            'acl',
+            'archive',
+            'calendar',
+            'jqueryui',
+            'kolab_activesync',
+            'kolab_addressbook',
+            'kolab_auth',
+            'kolab_config',
+            'kolab_folders',
+            'libkolab',
+            'libcalendaring',
+            'managesieve',
+            'newmail_notifier',
+            'odfviewer',
+            'password',
+            'redundant_attachments',
+            'tasklist',
+            'threading_as_default',
+            // contextmenu must be after kolab_addressbook (#444)
+            'contextmenu',
+        );
+
+
+    // Do not show deleted messages, mark deleted messages as read,
+    // and flag them as deleted instead of moving them to the Trash
+    // folder.
+    \$config['skip_deleted'] = true;
+    \$config['read_when_deleted'] = true;
+    \$config['flag_for_deletion'] = true;
+    \$config['delete_always'] = true;
+
+    \$config['session_lifetime'] = 180;
+    \$config['password_charset'] = 'UTF-8';
+    \$config['useragent'] = 'Kolab 3.1/Roundcube ' . RCUBE_VERSION;
+    \$config['dont_override'] = Array('skin');
+
+    \$config['message_sort_col'] = 'date';
+
+    \$config['spellcheck_dictionary'] = true;
+    \$config['spellcheck_ignore_caps'] = true;
+    \$config['spellcheck_ignore_nums'] = true;
+    \$config['spellcheck_ignore_syms'] = true;
+
+    \$config['undo_timeout'] = 10;
+    \$config['upload_progress'] = 2;
+    \$config['address_template'] = '{street}<br/>{locality} {zipcode}<br/>{country} {region}';
+    \$config['preview_pane'] = true;
+    \$config['preview_pane_mark_read'] = 0;
+
+    \$config['autoexpand_threads'] = 2;
+    \$config['top_posting'] = 0;
+    \$config['sig_above'] = false;
+    \$config['mdn_requests'] = 0;
+    \$config['mdn_default'] = false;
+    \$config['dsn_default'] = false;
+    \$config['reply_same_folder'] = false;
+
+    if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
+        include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
+    }
+
+    // Re-apply mandatory settings here.
+
+    \$config['debug_level'] = 0;
+    \$config['devel_mode'] = false;
+    \$config['log_driver'] = 'file';
+    \$config['log_date_format'] = 'd-M-Y H:i:s,u O';
+    \$config['syslog_id'] = 'roundcube';
+    \$config['syslog_facility'] = LOG_USER;
+    \$config['smtp_log'] = true;
+    \$config['log_logins'] = true;
+    \$config['log_session'] = true;
+    \$config['sql_debug'] = true;
+    \$config['memcache_debug'] = true;
+    \$config['imap_debug'] = true;
+    \$config['ldap_debug'] = true;
+    \$config['smtp_debug'] = true;
+
+    \$config['skin'] = 'larry';
+    \$config['skin_include_php'] = false;
+    \$config['mime_magic'] = null;
+    \$config['im_identify_path'] = '/usr/bin/identify';
+    \$config['im_convert_path'] = '/usr/bin/convert';
+    \$config['log_dir'] = 'logs/';
+    \$config['temp_dir'] = '/var/lib/roundcubemail/';
+
+    \$config['archive_mbox'] = 'Archive';
+
+    \$config['address_book_type'] = 'ldap';
+    \$config['autocomplete_min_length'] = 3;
+    \$config['autocomplete_threads'] = 0;
+    \$config['autocomplete_max'] = 15;
+    \$config['ldap_public'] = array(
+            'kolab_addressbook' => array(
+                    'name'                      => 'Global Address Book',
+                    'hosts'                     => Array('localhost'),
+                    'port'                      => 389,
+                    'use_tls'                   => false,
+                    'base_dn'                   => '$ldap_user_base_dn',
+                    'user_specific'             => true,
+                    'bind_dn'                   => '%dn',
+                    'bind_pass'                 => '',
+                    'search_base_dn'            => '$ldap_user_base_dn',
+                    'search_bind_dn'            => '$ldap_service_bind_dn',
+                    'search_bind_pw'            => '$ldap_service_bind_pw',
+                    'search_filter'             => '(&(objectClass=inetOrgPerson)(mail=%fu))',
+                    'writable'                  => false,
+                    'LDAP_Object_Classes'       => array("top", "inetOrgPerson"),
+                    'required_fields'           => array("cn", "sn", "mail"),
+                    'LDAP_rdn'                  => 'uid',
+                    'ldap_version'              => 3,       // using LDAPv3
+                    'search_fields'             => array('displayname', 'mail'),
+                    'sort'                      => array('displayname', 'sn', 'givenname', 'cn'),
+                    'scope'                     => 'sub',
+                    'filter'                    => '(objectClass=inetOrgPerson)',
+                    'vlv'                       => false,
+                    'vlv_search'                => false,
+                    'fuzzy_search'              => true,
+                    'sizelimit'                 => '0',
+                    'timelimit'                 => '0',
+                    'fieldmap'                  => Array(
+                            // Roundcube        => LDAP
+                            'name'              => 'displayName',
+                            'surname'           => 'sn',
+                            'firstname'         => 'givenName',
+                            'middlename'        => 'initials',
+                            'prefix'            => 'title',
+                            'email:primary'     => 'mail',
+                            'email:alias'       => 'alias',
+                            'email:personal'    => 'mailalternateaddress',
+                            'phone:main'        => 'telephoneNumber',
+                            'phone:work'        => 'alternateTelephoneNumber',
+                            'phone:mobile'      => 'mobile',
+                            'phone:work2'       => 'blackberry',
+                            'jobtitle'          => 'title',
+                            'manager'           => 'manager',
+                            'assistant'         => 'secretary',
+                            'photo'             => 'jpegphoto'
+                        ),
+                    'groups'                    => Array(
+                            'base_dn'           => '$ldap_group_base_dn',
+                            'filter'            => '(&' . '$ldap_group_filter' . '(mail=*))',
+                            'object_classes'    => Array("top", "groupOfUniqueNames"),
+                            'member_attr'       => 'uniqueMember',
+                        ),
+                ),
+        );
+
+    \$config['autocomplete_addressbooks'] = Array(
+            'kolab_addressbook'
+        );
+
+    \$config['autocomplete_single'] = true;
+
+    \$config['htmleditor'] = 0;
+
+?>
diff --git a/share/templates/roundcubemail/db.inc.php.tpl b/share/templates/roundcubemail/db.inc.php.tpl
deleted file mode 100644
index 61b8649..0000000
--- a/share/templates/roundcubemail/db.inc.php.tpl
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-    \$rcmail_config = array();
-
-    \$rcmail_config['db_dsnw'] = '$mysql_uri';
-
-    if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
-        include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
-    }
-
-    \$rcmail_config['db_max_length'] = 512000;
-    \$rcmail_config['db_persistent'] = TRUE;
-    \$rcmail_config['db_table_users'] = 'users';
-    \$rcmail_config['db_table_identities'] = 'identities';
-    \$rcmail_config['db_table_contacts'] = 'contacts';
-    \$rcmail_config['db_table_contactgroups'] = 'contactgroups';
-    \$rcmail_config['db_table_contactgroupmembers'] = 'contactgroupmembers';
-    \$rcmail_config['db_table_session'] = 'session';
-    \$rcmail_config['db_table_cache'] = 'cache';
-    \$rcmail_config['db_table_messages'] = 'messages';
-    \$rcmail_config['db_sequence_users'] = 'user_ids';
-    \$rcmail_config['db_sequence_identities'] = 'identity_ids';
-    \$rcmail_config['db_sequence_contacts'] = 'contact_ids';
-    \$rcmail_config['db_sequence_contactgroups'] = 'contactgroups_ids';
-    \$rcmail_config['db_sequence_cache'] = 'cache_ids';
-    \$rcmail_config['db_sequence_messages'] = 'message_ids';
-
-
-?>
diff --git a/share/templates/roundcubemail/kolab.inc.php.tpl b/share/templates/roundcubemail/kolab.inc.php.tpl
index cb1bcd0..05711ef 100644
--- a/share/templates/roundcubemail/kolab.inc.php.tpl
+++ b/share/templates/roundcubemail/kolab.inc.php.tpl
@@ -1,15 +1,15 @@
 <?php
 
-    \$rcmail_config['kolab_freebusy_server'] = 'http://' . \$_SERVER["HTTP_HOST"] . '/freebusy';
+    \$config['kolab_freebusy_server'] = 'http://' . \$_SERVER["HTTP_HOST"] . '/freebusy';
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
     }
 
-    \$rcmail_config['kolab_cache'] = true;
+    \$config['kolab_cache'] = true;
 
-    \$rcmail_config['kolab_ssl_verify_peer'] = false;
+    \$config['kolab_ssl_verify_peer'] = false;
 
-    \$rcmail_config['kolab_use_subscriptions'] = true;
+    \$config['kolab_use_subscriptions'] = true;
 
 ?>
diff --git a/share/templates/roundcubemail/kolab_auth.inc.php.tpl b/share/templates/roundcubemail/kolab_auth.inc.php.tpl
index 22fd74f..8fad27a 100644
--- a/share/templates/roundcubemail/kolab_auth.inc.php.tpl
+++ b/share/templates/roundcubemail/kolab_auth.inc.php.tpl
@@ -2,7 +2,7 @@
 
     // The id of the LDAP address book (which refers to the rcmail_config['ldap_public'])
     // or complete addressbook definition array.
-    \$rcmail_config['kolab_auth_addressbook'] = Array(
+    \$config['kolab_auth_addressbook'] = Array(
         'name'                      => 'Kolab Auth',
         'hosts'                     => Array('localhost'),
         'port'                      => 389,
@@ -35,33 +35,33 @@
 
 
     // This will overwrite defined filter
-    \$rcmail_config['kolab_auth_filter'] = '(&' . '$ldap_user_filter' . '(|(uid=%u)(mail=%fu)(alias=%fu)))';
+    \$config['kolab_auth_filter'] = '(&' . '$ldap_user_filter' . '(|(uid=%u)(mail=%fu)(alias=%fu)))';
 
     // Use this fields (from fieldmap configuration) to get authentication ID
-    \$rcmail_config['kolab_auth_login'] = 'email';
+    \$config['kolab_auth_login'] = 'email';
 
     // Use this fields (from fieldmap configuration) for default identity
-    \$rcmail_config['kolab_auth_name']  = 'name';
-    \$rcmail_config['kolab_auth_alias'] = 'alias';
-    \$rcmail_config['kolab_auth_email'] = 'email';
+    \$config['kolab_auth_name']  = 'name';
+    \$config['kolab_auth_alias'] = 'alias';
+    \$config['kolab_auth_email'] = 'email';
 
     if (preg_match('/\/helpdesk-login\//', \$_SERVER["REQUEST_URI"]) ) {
 
         // Login and password of the admin user. Enables "Login As" feature.
-        \$rcmail_config['kolab_auth_admin_login']    = '$imap_admin_login';
-        \$rcmail_config['kolab_auth_admin_password'] = '$imap_admin_password';
+        \$config['kolab_auth_admin_login']    = '$imap_admin_login';
+        \$config['kolab_auth_admin_password'] = '$imap_admin_password';
 
-        \$rcmail_config['kolab_auth_auditlog'] = true;
+        \$config['kolab_auth_auditlog'] = true;
     }
 
     // Administrative role field (from fieldmap configuration) which must be filled with
     // specified value which adds privilege to login as another user.
-    \$rcmail_config['kolab_auth_role']       = 'role';
-    \$rcmail_config['kolab_auth_role_value'] = 'cn=kolab-admin,$ldap_base_dn';
+    \$config['kolab_auth_role']       = 'role';
+    \$config['kolab_auth_role_value'] = 'cn=kolab-admin,$ldap_base_dn';
 
     // Administrative group name to which user must be assigned to
     // which adds privilege to login as another user.
-    \$rcmail_config['kolab_auth_group'] = 'Kolab Helpdesk';
+    \$config['kolab_auth_group'] = 'Kolab Helpdesk';
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
diff --git a/share/templates/roundcubemail/kolab_files.inc.php.tpl b/share/templates/roundcubemail/kolab_files.inc.php.tpl
index 4eeffa9..1d5adda 100644
--- a/share/templates/roundcubemail/kolab_files.inc.php.tpl
+++ b/share/templates/roundcubemail/kolab_files.inc.php.tpl
@@ -1,15 +1,15 @@
 <?php
 
 // URL of kolab-chwala installation
-\$rcmail_config['kolab_files_url'] = 'https://localhost/kolab-chwala/public_html';
+\$config['kolab_files_url'] = 'https://localhost/kolab-chwala/public_html';
 
 // List of files list columns. Available are: name, size, mtime, type
-\$rcmail_config['kolab_files_list_cols'] = array('name', 'mtime', 'size');
+\$config['kolab_files_list_cols'] = array('name', 'mtime', 'size');
 
 // Name of the column to sort files list by
-\$rcmail_config['kolab_files_sort_col'] = 'name';
+\$config['kolab_files_sort_col'] = 'name';
 
 // Order of the files list sort
-\$rcmail_config['kolab_files_sort_order'] = 'asc';
+\$config['kolab_files_sort_order'] = 'asc';
 
 ?>
diff --git a/share/templates/roundcubemail/kolab_folders.inc.php.tpl b/share/templates/roundcubemail/kolab_folders.inc.php.tpl
index 010e4bc..93f6eec 100644
--- a/share/templates/roundcubemail/kolab_folders.inc.php.tpl
+++ b/share/templates/roundcubemail/kolab_folders.inc.php.tpl
@@ -1,16 +1,16 @@
 <?php
-    \$rcmail_config['kolab_folders_configuration_default'] = 'Configuration';
-    \$rcmail_config['kolab_folders_event_default'] = 'Calendar';
-    \$rcmail_config['kolab_folders_contact_default'] = 'Contacts';
-    \$rcmail_config['kolab_folders_task_default'] = '';
-    \$rcmail_config['kolab_folders_note_default'] = '';
-    \$rcmail_config['kolab_folders_journal_default'] = '';
-    \$rcmail_config['kolab_folders_mail_inbox'] = 'INBOX';
-    \$rcmail_config['kolab_folders_mail_drafts'] = 'Drafts';
-    \$rcmail_config['kolab_folders_mail_sentitems'] = 'Sent';
-    \$rcmail_config['kolab_folders_mail_junkemail'] = 'Spam';
-    \$rcmail_config['kolab_folders_mail_outbox'] = '';
-    \$rcmail_config['kolab_folders_mail_wastebasket'] = 'Trash';
+    \$config['kolab_folders_configuration_default'] = 'Configuration';
+    \$config['kolab_folders_event_default'] = 'Calendar';
+    \$config['kolab_folders_contact_default'] = 'Contacts';
+    \$config['kolab_folders_task_default'] = '';
+    \$config['kolab_folders_note_default'] = '';
+    \$config['kolab_folders_journal_default'] = '';
+    \$config['kolab_folders_mail_inbox'] = 'INBOX';
+    \$config['kolab_folders_mail_drafts'] = 'Drafts';
+    \$config['kolab_folders_mail_sentitems'] = 'Sent';
+    \$config['kolab_folders_mail_junkemail'] = 'Spam';
+    \$config['kolab_folders_mail_outbox'] = '';
+    \$config['kolab_folders_mail_wastebasket'] = 'Trash';
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
diff --git a/share/templates/roundcubemail/main.inc.php.tpl b/share/templates/roundcubemail/main.inc.php.tpl
deleted file mode 100644
index 0f75834..0000000
--- a/share/templates/roundcubemail/main.inc.php.tpl
+++ /dev/null
@@ -1,265 +0,0 @@
-<?php
-    \$rcmail_config = array();
-
-    \$rcmail_config['imap_cache'] = 'db';
-    \$rcmail_config['messages_cache'] = 'db';
-    \$rcmail_config['force_https'] = false;
-    \$rcmail_config['use_https'] = false;
-    \$rcmail_config['login_autocomplete'] = 0;
-    \$rcmail_config['session_lifetime'] = 180;
-    \$rcmail_config['ip_check'] = false;
-    \$rcmail_config['referer_check'] = false;
-    \$rcmail_config['password_charset'] = 'ISO-8859-1';
-    \$rcmail_config['sendmail_delay'] = 0;
-    \$rcmail_config['max_recipients'] = 0;
-    \$rcmail_config['max_group_members'] = 0;
-    \$rcmail_config['useragent'] = 'Roundcube Webmail/'.RCUBE_VERSION;
-    \$rcmail_config['include_host_config'] = false;
-    \$rcmail_config['generic_message_footer'] = '';
-    \$rcmail_config['generic_message_footer_html'] = '';
-    \$rcmail_config['http_received_header'] = true;
-    \$rcmail_config['http_received_header_encrypt'] = true;
-    \$rcmail_config['mail_header_delimiter'] = NULL;
-    \$rcmail_config['line_length'] = 72;
-    \$rcmail_config['send_format_flowed'] = true;
-    \$rcmail_config['dont_override'] = Array('skin');
-    \$rcmail_config['identities_level'] = 0;
-    \$rcmail_config['contact_photo_size'] = 160;
-    \$rcmail_config['email_dns_check'] = false;
-
-    \$rcmail_config['message_sort_col'] = '';
-    \$rcmail_config['message_sort_order'] = 'DESC';
-    \$rcmail_config['list_cols'] = array('subject', 'status', 'from', 'date', 'size', 'flag', 'attachment');
-    \$rcmail_config['language'] = null;
-    \$rcmail_config['date_short'] = 'D H:i';
-    \$rcmail_config['date_long'] = 'd.m.Y H:i';
-    \$rcmail_config['date_today'] = 'H:i';
-    \$rcmail_config['date_format'] = 'Y-m-d';
-    \$rcmail_config['quota_zero_as_unlimited'] = false;
-    \$rcmail_config['enable_spellcheck'] = true;
-    \$rcmail_config['spellcheck_dictionary'] = true;
-    \$rcmail_config['spellcheck_engine'] = 'googie';
-    \$rcmail_config['spellcheck_uri'] = '';
-    \$rcmail_config['spellcheck_languages'] = NULL;
-    \$rcmail_config['spellcheck_ignore_caps'] = true;
-    \$rcmail_config['spellcheck_ignore_nums'] = true;
-    \$rcmail_config['spellcheck_ignore_syms'] = true;
-    \$rcmail_config['max_pagesize'] = 200;
-    \$rcmail_config['min_keep_alive'] = 60;
-    \$rcmail_config['undo_timeout'] = 10;
-    \$rcmail_config['upload_progress'] = 2;
-    \$rcmail_config['address_book_type'] = 'ldap';
-    \$rcmail_config['autocomplete_min_length'] = 3;
-    \$rcmail_config['autocomplete_threads'] = 0;
-    \$rcmail_config['autocomplete_max'] = 15;
-    \$rcmail_config['address_template'] = '{street}<br/>{locality} {zipcode}<br/>{country} {region}';
-    \$rcmail_config['default_charset'] = 'ISO-8859-1';
-    \$rcmail_config['pagesize'] = 40;
-    \$rcmail_config['timezone'] = 'auto';
-    \$rcmail_config['dst_active'] = (bool)date('I');
-    \$rcmail_config['prefer_html'] = true;
-    \$rcmail_config['show_images'] = 0;
-    \$rcmail_config['prettydate'] = true;
-    \$rcmail_config['draft_autosave'] = 300;
-    \$rcmail_config['preview_pane'] = true;
-    \$rcmail_config['preview_pane_mark_read'] = 0;
-    \$rcmail_config['logout_purge'] = false;
-    \$rcmail_config['logout_expunge'] = false;
-    \$rcmail_config['inline_images'] = true;
-    \$rcmail_config['mime_param_folding'] = 1;
-    \$rcmail_config['skip_deleted'] = true;
-    \$rcmail_config['read_when_deleted'] = true;
-    \$rcmail_config['flag_for_deletion'] = true;
-    \$rcmail_config['keep_alive'] = 300;
-    \$rcmail_config['check_all_folders'] = false;
-    \$rcmail_config['display_next'] = true;
-    \$rcmail_config['autoexpand_threads'] = 2;
-    \$rcmail_config['top_posting'] = false;
-    \$rcmail_config['strip_existing_sig'] = true;
-    \$rcmail_config['show_sig'] = 1;
-    \$rcmail_config['sig_above'] = false;
-    \$rcmail_config['force_7bit'] = false;
-    \$rcmail_config['search_mods'] = null;
-    \$rcmail_config['delete_always'] = true;
-    \$rcmail_config['mdn_requests'] = 0;
-    \$rcmail_config['mdn_default'] = false;
-    \$rcmail_config['dsn_default'] = false;
-    \$rcmail_config['reply_same_folder'] = false;
-
-    \$rcmail_config['plugins'] = array(
-            'acl',
-            'archive',
-            'calendar',
-            // 'http_authentication',
-            'jqueryui',
-            'kolab_activesync',
-            'kolab_addressbook',
-            'kolab_auth',
-            'kolab_config',
-            'kolab_folders',
-            'libkolab',
-            'libcalendaring',
-            // 'listcommands'
-            'managesieve',
-            'newmail_notifier',
-            'odfviewer',
-            'password',
-            'redundant_attachments',
-            'tasklist',
-            'threading_as_default',
-            // contextmenu must be after kolab_addressbook (#444)
-            'contextmenu',
-        );
-
-    if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
-        include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
-    }
-
-    // Re-apply mandatory settings here.
-
-    \$rcmail_config['debug_level'] = 0;
-    \$rcmail_config['devel_mode'] = false;
-    \$rcmail_config['log_driver'] = 'file';
-    \$rcmail_config['log_date_format'] = 'd-M-Y H:i:s,u O';
-    \$rcmail_config['syslog_id'] = 'roundcube';
-    \$rcmail_config['syslog_facility'] = LOG_USER;
-    \$rcmail_config['smtp_log'] = true;
-    \$rcmail_config['log_logins'] = true;
-    \$rcmail_config['log_session'] = true;
-    \$rcmail_config['sql_debug'] = true;
-    \$rcmail_config['memcache_debug'] = true;
-    \$rcmail_config['imap_debug'] = true;
-    \$rcmail_config['ldap_debug'] = true;
-    \$rcmail_config['smtp_debug'] = true;
-
-    \$rcmail_config['product_name'] = 'Kolab Groupware';
-    \$rcmail_config['skin'] = 'larry';
-    \$rcmail_config['skin_logo'] = 'skins/kolab/images/kolab_logo.png';
-    \$rcmail_config['skin_include_php'] = false;
-    \$rcmail_config['mime_magic'] = null;
-    \$rcmail_config['im_identify_path'] = '/usr/bin/identify';
-    \$rcmail_config['im_convert_path'] = '/usr/bin/convert';
-    \$rcmail_config['login_lc'] = true;
-    \$rcmail_config['auto_create_user'] = true;
-    \$rcmail_config['enable_installer'] = false;
-    \$rcmail_config['session_storage'] = 'db';
-    \$rcmail_config['default_port'] = 143;
-    \$rcmail_config['imap_auth_type'] = '';
-    \$rcmail_config['imap_delimiter'] = '/';
-    \$rcmail_config['imap_ns_personal'] = null;
-    \$rcmail_config['imap_ns_other']    = null;
-    \$rcmail_config['imap_ns_shared']   = null;
-    \$rcmail_config['imap_force_caps'] = false;
-    \$rcmail_config['imap_force_lsub'] = true;
-    \$rcmail_config['imap_timeout'] = 0;
-    \$rcmail_config['imap_auth_cid'] = null;
-    \$rcmail_config['imap_auth_pw'] = null;
-    \$rcmail_config['smtp_port'] = 587;
-    \$rcmail_config['smtp_user'] = '%u';
-    \$rcmail_config['smtp_pass'] = '%p';
-    \$rcmail_config['smtp_auth_type'] = '';
-    \$rcmail_config['smtp_auth_cid'] = null;
-    \$rcmail_config['smtp_auth_pw'] = null;
-    \$rcmail_config['smtp_helo_host'] = \$_SERVER["HTTP_HOST"];
-    \$rcmail_config['smtp_timeout'] = 0;
-    \$rcmail_config['log_dir'] = 'logs/';
-    \$rcmail_config['temp_dir'] = '/var/lib/roundcubemail/';
-    \$rcmail_config['message_cache_lifetime'] = '10d';
-
-    \$rcmail_config['archive_mbox'] = 'Archive';
-    \$rcmail_config['drafts_mbox'] = 'Drafts';
-    \$rcmail_config['junk_mbox'] = 'Spam';
-    \$rcmail_config['sent_mbox'] = 'Sent';
-    \$rcmail_config['trash_mbox'] = 'Trash';
-    \$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash');
-    \$rcmail_config['create_default_folders'] = true;
-    \$rcmail_config['protect_default_folders'] = true;
-
-    \$mandatory_plugins = Array(
-            'calendar',
-            'kolab_addressbook',
-            'kolab_auth',
-            'kolab_config',
-            'kolab_folders',
-            'libkolab',
-            'password',
-        );
-
-    foreach ( \$mandatory_plugins as \$num => \$plugin ) {
-        if (!in_array(\$plugin, \$rcmail_config['plugins'])) {
-                \$rcmail_config['plugins'][] = \$plugin;
-        }
-    }
-
-    \$rcmail_config['default_host'] = 'tls://localhost';
-    \$rcmail_config['smtp_server'] = 'tls://localhost';
-    \$rcmail_config['session_domain'] = '';
-    \$rcmail_config['des_key'] = "$des_key";
-    \$rcmail_config['username_domain'] = '$primary_domain';
-
-    \$rcmail_config['mail_domain'] = '';
-
-    \$rcmail_config['ldap_public'] = array(
-            'kolab_addressbook' => array(
-                    'name'                      => 'Global Address Book',
-                    'hosts'                     => Array('localhost'),
-                    'port'                      => 389,
-                    'use_tls'                   => false,
-                    'base_dn'                   => '$ldap_user_base_dn',
-                    'user_specific'             => true,
-                    'bind_dn'                   => '%dn',
-                    'bind_pass'                 => '',
-                    'search_base_dn'            => '$ldap_user_base_dn',
-                    'search_bind_dn'            => '$ldap_service_bind_dn',
-                    'search_bind_pw'            => '$ldap_service_bind_pw',
-                    'search_filter'             => '(&(objectClass=inetOrgPerson)(mail=%fu))',
-                    'writable'                  => false,
-                    'LDAP_Object_Classes'       => array("top", "inetOrgPerson"),
-                    'required_fields'           => array("cn", "sn", "mail"),
-                    'LDAP_rdn'                  => 'uid',
-                    'ldap_version'              => 3,       // using LDAPv3
-                    'search_fields'             => array('displayname', 'mail'),
-                    'sort'                      => array('displayname', 'sn', 'givenname', 'cn'),
-                    'scope'                     => 'sub',
-                    'filter'                    => '(objectClass=inetOrgPerson)',
-                    'vlv'                       => false,
-                    'vlv_search'                => false,
-                    'fuzzy_search'              => true,
-                    'sizelimit'                 => '0',
-                    'timelimit'                 => '0',
-                    'fieldmap'                  => Array(
-                            // Roundcube        => LDAP
-                            'name'              => 'displayName',
-                            'surname'           => 'sn',
-                            'firstname'         => 'givenName',
-                            'middlename'        => 'initials',
-                            'prefix'            => 'title',
-                            'email:primary'     => 'mail',
-                            'email:alias'       => 'alias',
-                            'email:personal'    => 'mailalternateaddress',
-                            'phone:main'        => 'telephoneNumber',
-                            'phone:work'        => 'alternateTelephoneNumber',
-                            'phone:mobile'      => 'mobile',
-                            'phone:work2'       => 'blackberry',
-                            'jobtitle'          => 'title',
-                            'manager'           => 'manager',
-                            'assistant'         => 'secretary',
-                            'photo'             => 'jpegphoto'
-                        ),
-                    'groups'                    => Array(
-                            'base_dn'           => '$ldap_group_base_dn',
-                            'filter'            => '(&' . '$ldap_group_filter' . '(mail=*))',
-                            'object_classes'    => Array("top", "groupOfUniqueNames"),
-                            'member_attr'       => 'uniqueMember',
-                        ),
-                ),
-        );
-
-    \$rcmail_config['autocomplete_addressbooks'] = Array(
-            'kolab_addressbook'
-        );
-
-    \$rcmail_config['autocomplete_single'] = true;
-
-    \$rcmail_config['htmleditor'] = 0;
-?>
diff --git a/share/templates/roundcubemail/managesieve.inc.php.tpl b/share/templates/roundcubemail/managesieve.inc.php.tpl
index 8a862fc..c05a096 100644
--- a/share/templates/roundcubemail/managesieve.inc.php.tpl
+++ b/share/templates/roundcubemail/managesieve.inc.php.tpl
@@ -1,15 +1,15 @@
 <?php
-    \$rcmail_config['managesieve_port'] = 4190;
-    \$rcmail_config['managesieve_host'] = '%h';
-    \$rcmail_config['managesieve_auth_type'] = 'PLAIN';
-    \$rcmail_config['managesieve_auth_cid'] = null;
-    \$rcmail_config['managesieve_auth_pw'] = null;
-    \$rcmail_config['managesieve_usetls'] = true;
-    \$rcmail_config['managesieve_default'] = '/etc/dovecot/sieve/global';
-    \$rcmail_config['managesieve_mbox_encoding'] = 'UTF-8';
-    \$rcmail_config['managesieve_replace_delimiter'] = '';
-    \$rcmail_config['managesieve_disabled_extensions'] = array();
-    \$rcmail_config['managesieve_debug'] = true;
+    \$config['managesieve_port'] = 4190;
+    \$config['managesieve_host'] = '%h';
+    \$config['managesieve_auth_type'] = 'PLAIN';
+    \$config['managesieve_auth_cid'] = null;
+    \$config['managesieve_auth_pw'] = null;
+    \$config['managesieve_usetls'] = true;
+    \$config['managesieve_default'] = '/etc/dovecot/sieve/global';
+    \$config['managesieve_mbox_encoding'] = 'UTF-8';
+    \$config['managesieve_replace_delimiter'] = '';
+    \$config['managesieve_disabled_extensions'] = array();
+    \$config['managesieve_debug'] = true;
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
diff --git a/share/templates/roundcubemail/owncloud.inc.php.tpl b/share/templates/roundcubemail/owncloud.inc.php.tpl
index df0fde0..513a482 100644
--- a/share/templates/roundcubemail/owncloud.inc.php.tpl
+++ b/share/templates/roundcubemail/owncloud.inc.php.tpl
@@ -1,6 +1,6 @@
 <?php
     // ownCloud URL
-    \$rcmail_config['owncloud_url'] = 'http://' . \$_SERVER["HTTP_HOST"] . '/owncloud';
+    \$config['owncloud_url'] = 'http://' . \$_SERVER["HTTP_HOST"] . '/owncloud';
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
diff --git a/share/templates/roundcubemail/password.inc.php.tpl b/share/templates/roundcubemail/password.inc.php.tpl
index ce6e000..ca3f815 100644
--- a/share/templates/roundcubemail/password.inc.php.tpl
+++ b/share/templates/roundcubemail/password.inc.php.tpl
@@ -4,22 +4,22 @@
     // -----------------------
     // A driver to use for password change. Default: "sql".
     // See README file for list of supported driver names.
-    \$rcmail_config['password_driver'] = 'ldap';
+    \$config['password_driver'] = 'ldap';
 
     // Determine whether current password is required to change password.
     // Default: false.
-    \$rcmail_config['password_confirm_current'] = true;
+    \$config['password_confirm_current'] = true;
 
     // Require the new password to be a certain length.
     // set to blank to allow passwords of any length
-    \$rcmail_config['password_minimum_length'] = 6;
+    \$config['password_minimum_length'] = 6;
 
     // Require the new password to contain a letter and punctuation character
     // Change to false to remove this check.
-    \$rcmail_config['password_require_nonalpha'] = false;
+    \$config['password_require_nonalpha'] = false;
 
     // Enables logging of password changes into logs/password
-    \$rcmail_config['password_log'] = true;
+    \$config['password_log'] = true;
 
 
     // LDAP and LDAP_SIMPLE Driver options
@@ -28,41 +28,41 @@
     // You can provide one or several hosts in an array in which case the hosts are tried from left to right.
     // Exemple: array('ldap1.exemple.com', 'ldap2.exemple.com');
     // Default: 'localhost'
-    \$rcmail_config['password_ldap_host'] = 'localhost';
+    \$config['password_ldap_host'] = 'localhost';
 
     // LDAP server port to connect to
     // Default: '389'
-    \$rcmail_config['password_ldap_port'] = '389';
+    \$config['password_ldap_port'] = '389';
 
     // TLS is started after connecting
     // Using TLS for password modification is recommended.
     // Default: false
-    \$rcmail_config['password_ldap_starttls'] = false;
+    \$config['password_ldap_starttls'] = false;
 
     // LDAP version
     // Default: '3'
-    \$rcmail_config['password_ldap_version'] = '3';
+    \$config['password_ldap_version'] = '3';
 
     // LDAP base name (root directory)
     // Exemple: 'dc=exemple,dc=com'
-    \$rcmail_config['password_ldap_basedn'] = '$ldap_user_base_dn';
+    \$config['password_ldap_basedn'] = '$ldap_user_base_dn';
 
     // LDAP connection method
     // There is two connection method for changing a user's LDAP password.
     // 'user': use user credential (recommanded, require password_confirm_current=true)
     // 'admin': use admin credential (this mode require password_ldap_adminDN and password_ldap_adminPW)
     // Default: 'user'
-    \$rcmail_config['password_ldap_method'] = 'user';
+    \$config['password_ldap_method'] = 'user';
 
     // LDAP Admin DN
     // Used only in admin connection mode
     // Default: null
-    \$rcmail_config['password_ldap_adminDN'] = null;
+    \$config['password_ldap_adminDN'] = null;
 
     // LDAP Admin Password
     // Used only in admin connection mode
     // Default: null
-    \$rcmail_config['password_ldap_adminPW'] = null;
+    \$config['password_ldap_adminPW'] = null;
 
     // LDAP user DN mask
     // The user's DN is mandatory and as we only have his login,
@@ -72,7 +72,7 @@
     // '%domain' will be replaced by the current roundcube user's domain part
     // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
     // Exemple: 'uid=%login,ou=people,dc=exemple,dc=com'
-    // \$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';
+    // \$config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';
 
     // LDAP search DN
     // The DN roundcube should bind with to find out user's DN
@@ -83,7 +83,7 @@
     // users login to find his DN instead. A common reason might be that
     // your users are placed under different ou's like engineering or
     // sales which cannot be derived from their login only.
-    \$rcmail_config['password_ldap_searchDN'] = '$ldap_service_bind_dn';
+    \$config['password_ldap_searchDN'] = '$ldap_service_bind_dn';
 
     // LDAP search password
     // If password_ldap_searchDN is set, the password to use for
@@ -93,13 +93,13 @@
     // is only accesible to roundcube and don't forget to restrict roundcube's access to
     // your directory as much as possible using ACLs. Should this password be compromised
     // you want to minimize the damage.
-    \$rcmail_config['password_ldap_searchPW'] = '$ldap_service_bind_pw';
+    \$config['password_ldap_searchPW'] = '$ldap_service_bind_pw';
 
     // LDAP search base
     // If password_ldap_searchDN is set, the base to search in using the filter below.
     // Note that you should comment out the default password_ldap_userDN_mask setting
     // for this to take effect.
-    \$rcmail_config['password_ldap_search_base'] = '$ldap_user_base_dn';
+    \$config['password_ldap_search_base'] = '$ldap_user_base_dn';
 
     // LDAP search filter
     // If password_ldap_searchDN is set, the filter to use when
@@ -111,7 +111,7 @@
     // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
     // Example: '(uid=%login)'
     // Example: '(&(objectClass=posixAccount)(uid=%login))'
-    \$rcmail_config['password_ldap_search_filter'] = '(&(|(uid=%login)(mail=%login)(mailAlternateAddress=%login)(alias=%login))(objectclass=kolabinetorgperson))';
+    \$config['password_ldap_search_filter'] = '(&(|(uid=%login)(mail=%login)(mailAlternateAddress=%login)(alias=%login))(objectclass=kolabinetorgperson))';
 
     // LDAP password hash type
     // Standard LDAP encryption type which must be one of: crypt,
@@ -119,34 +119,34 @@
     // Please note that most encodage types require external libraries
     // to be included in your PHP installation, see function hashPassword in drivers/ldap.php for more info.
     // Default: 'crypt'
-    \$rcmail_config['password_ldap_encodage'] = 'clear';
+    \$config['password_ldap_encodage'] = 'clear';
 
     // LDAP password attribute
     // Name of the ldap's attribute used for storing user password
     // Default: 'userPassword'
-    \$rcmail_config['password_ldap_pwattr'] = 'userPassword';
+    \$config['password_ldap_pwattr'] = 'userPassword';
 
     // LDAP password force replace
     // Force LDAP replace in cases where ACL allows only replace not read
     // See http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace
     // Default: true
-    \$rcmail_config['password_ldap_force_replace'] = true;
+    \$config['password_ldap_force_replace'] = true;
 
     // LDAP Password Last Change Date
     // Some places use an attribute to store the date of the last password change
     // The date is meassured in "days since epoch" (an integer value)
     // Whenever the password is changed, the attribute will be updated if set (e.g. shadowLastChange)
-    \$rcmail_config['password_ldap_lchattr'] = '';
+    \$config['password_ldap_lchattr'] = '';
 
     // LDAP Samba password attribute, e.g. sambaNTPassword
     // Name of the LDAP's Samba attribute used for storing user password
-    \$rcmail_config['password_ldap_samba_pwattr'] = '';
+    \$config['password_ldap_samba_pwattr'] = '';
 
     // LDAP Samba Password Last Change Date attribute, e.g. sambaPwdLastSet
     // Some places use an attribute to store the date of the last password change
     // The date is meassured in "seconds since epoch" (an integer value)
     // Whenever the password is changed, the attribute will be updated if set
-    \$rcmail_config['password_ldap_samba_lchattr'] = '';
+    \$config['password_ldap_samba_lchattr'] = '';
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));
diff --git a/share/templates/roundcubemail/recipient_to_contact.inc.php.tpl b/share/templates/roundcubemail/recipient_to_contact.inc.php.tpl
index f3b8d2f..b41ad79 100644
--- a/share/templates/roundcubemail/recipient_to_contact.inc.php.tpl
+++ b/share/templates/roundcubemail/recipient_to_contact.inc.php.tpl
@@ -1,4 +1,4 @@
 <?php
-    \$rcmail_config['recipient_to_contact_addressbooks'] = array();
-    \$rcmail_config['recipient_to_contact_enabled_by_default'] = true;
+    \$config['recipient_to_contact_addressbooks'] = array();
+    \$config['recipient_to_contact_enabled_by_default'] = true;
 ?>
\ No newline at end of file
diff --git a/share/templates/roundcubemail/terms.inc.php.tpl b/share/templates/roundcubemail/terms.inc.php.tpl
index 97dd9f4..646197d 100644
--- a/share/templates/roundcubemail/terms.inc.php.tpl
+++ b/share/templates/roundcubemail/terms.inc.php.tpl
@@ -3,17 +3,17 @@
     /* terms plugin */
 
     // log accepted terms
-    \$rcmail_config['terms_log'] = true;
+    \$config['terms_log'] = true;
 
     // renew agreement if older than YYYY-MM-DD HH:MM:SS
     // NOTICE: Must be in past and set accordingly to server Timezone!!!
-    \$rcmail_config['terms_date'] = '2011-02-24 00:00:00';
+    \$config['terms_date'] = '2011-02-24 00:00:00';
 
     // renew agreement automatically afer x days
-    \$rcmail_config['terms_renew'] = 28; // 0 = never
+    \$config['terms_renew'] = 28; // 0 = never
 
     // always request terms agreement after login
-    \$rcmail_config['terms_always'] = false;
+    \$config['terms_always'] = false;
 
     if (file_exists(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) {
         include_once(RCUBE_CONFIG_DIR . '/' . \$_SERVER["HTTP_HOST"] . '/' . basename(__FILE__));


commit 33aadb27275d63c0c9691c78d147260e5f58e7bd
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Aug 13 02:03:46 2013 +0100

    Lower-case email addresses and attributes for comparison
    PREPEND Sender: header

diff --git a/bin/kolab_smtp_access_policy.py b/bin/kolab_smtp_access_policy.py
index bc238b5..c13bfaf 100755
--- a/bin/kolab_smtp_access_policy.py
+++ b/bin/kolab_smtp_access_policy.py
@@ -454,9 +454,9 @@ class PolicyRequest(object):
         for search_attr in search_attrs:
             if self.sasl_user.has_key(search_attr):
                 if isinstance(self.sasl_user[search_attr], list):
-                    if self.sender in self.sasl_user[search_attr]:
+                    if self.sender.lower() in [x.lower() for x in self.sasl_user[search_attr]]:
                         return True
-                elif self.sasl_user[search_attr] == self.sender:
+                elif self.sasl_user[search_attr].lower() == self.sender.lower():
                     return True
 
         return False
@@ -1262,7 +1262,10 @@ def hold(message, policy_request=None):
 
 def permit(message, policy_request=None):
     log.info(_("Returning action PERMIT: %s") % (message))
-    print "action=PERMIT\n\n"
+    if hasattr(policy_request, 'sasl_username'):
+        print "action=PREPEND Sender: %s\naction=PERMIT\n\n" % (policy_request.sasl_username)
+    else:
+        print "action=PERMIT\n\n"
     sys.exit(0)
 
 def reject(message, policy_request=None):
@@ -1299,13 +1302,13 @@ def normalize_address(email_address):
         # Take the first part split by recipient delimiter and the last part
         # split by '@'.
         return "%s@%s" % (
-                email_address.split("+")[0],
+                email_address.split("+")[0].lower(),
                 # TODO: Under some conditions, the recipient may not be fully
                 # qualified. We'll cross that bridge when we get there, though.
-                email_address.split('@')[1]
+                email_address.split('@')[1].lower()
             )
     else:
-        return email_address
+        return email_address.lower()
 
 def read_request_input():
     """
@@ -1453,4 +1456,4 @@ if __name__ == "__main__":
             elif not recipient_allowed:
                 reject(_("Recipient access denied"))
             else:
-                permit(_("No objections"))
+                permit(_("No objections"), policy_requests[instance])


commit af7a8ae9e855f2dcbd74d0b71f91cbf960a731b3
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Aug 13 01:57:58 2013 +0100

    Set the imapd.conf tls_ca_file to a non-bundle

diff --git a/share/templates/imapd.conf.tpl b/share/templates/imapd.conf.tpl
index 4da3341..874e55a 100644
--- a/share/templates/imapd.conf.tpl
+++ b/share/templates/imapd.conf.tpl
@@ -8,7 +8,7 @@ sasl_mech_list: PLAIN LOGIN
 allowplaintext: no
 tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
 tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
-tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
+tls_ca_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
 # uncomment this if you're operating in a DSCP environment (RFC-4594)
 # qosmarking: af13
 auth_mech: pts




More information about the commits mailing list