From 461a30d771edd8bc6606f2c92dfde363514b93b1 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 14 Jun 2013 12:09:08 +0200 Subject: Merge config files (#1487311). Now we have defaults.inc.php and config.inc.php. Renamed $rcmail_config to $config. Old naming and old files are supported for backward compatibility. --- config/db.inc.php.dist | 35 -- config/main.inc.php.dist | 913 ----------------------------------------------- 2 files changed, 948 deletions(-) delete mode 100644 config/db.inc.php.dist delete mode 100644 config/main.inc.php.dist (limited to 'config') diff --git a/config/db.inc.php.dist b/config/db.inc.php.dist deleted file mode 100644 index b1f142e56..000000000 --- a/config/db.inc.php.dist +++ /dev/null @@ -1,35 +0,0 @@ -/sendmail or to syslog -$rcmail_config['smtp_log'] = true; - -// Log successful logins to /userlogins or to syslog -$rcmail_config['log_logins'] = false; - -// Log session authentication errors to /session or to syslog -$rcmail_config['log_session'] = false; - -// Log SQL queries to /sql or to syslog -$rcmail_config['sql_debug'] = false; - -// Log IMAP conversation to /imap or to syslog -$rcmail_config['imap_debug'] = false; - -// Log LDAP conversation to /ldap or to syslog -$rcmail_config['ldap_debug'] = false; - -// Log SMTP conversation to /smtp or to syslog -$rcmail_config['smtp_debug'] = false; - -// ---------------------------------- -// IMAP -// ---------------------------------- - -// The mail host chosen to perform the log-in. -// Leave blank to show a textbox at login, give a list of hosts -// to display a pulldown menu or set one host as string. -// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// -// Supported replacement variables: -// %n - hostname ($_SERVER['SERVER_NAME']) -// %t - hostname without the first part -// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) -// %s - domain name after the '@' from e-mail address provided at login screen -// For example %n = mail.domain.tld, %t = domain.tld -// WARNING: After hostname change update of mail_host column in users table is -// required to match old user data records with the new host. -$rcmail_config['default_host'] = ''; - -// TCP port used for IMAP connections -$rcmail_config['default_port'] = 143; - -// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use -// best server supported one) -$rcmail_config['imap_auth_type'] = null; - -// If you know your imap's folder delimiter, you can specify it here. -// Otherwise it will be determined automatically -$rcmail_config['imap_delimiter'] = null; - -// If IMAP server doesn't support NAMESPACE extension, but you're -// using shared folders or personal root folder is non-empty, you'll need to -// set these options. All can be strings or arrays of strings. -// Folders need to be ended with directory separator, e.g. "INBOX." -// (special directory "~" is an exception to this rule) -// These can be used also to overwrite server's namespaces -$rcmail_config['imap_ns_personal'] = null; -$rcmail_config['imap_ns_other'] = null; -$rcmail_config['imap_ns_shared'] = null; - -// By default IMAP capabilities are readed after connection to IMAP server -// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list -// after login. Set to True if you've got this case. -$rcmail_config['imap_force_caps'] = false; - -// By default list of subscribed folders is determined using LIST-EXTENDED -// extension if available. Some servers (dovecot 1.x) returns wrong results -// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225 -// Enable this option to force LSUB command usage instead. -$rcmail_config['imap_force_lsub'] = false; - -// Some server configurations (e.g. Courier) doesn't list folders in all namespaces -// Enable this option to force listing of folders in all namespaces -$rcmail_config['imap_force_ns'] = false; - -// IMAP connection timeout, in seconds. Default: 0 (no limit) -$rcmail_config['imap_timeout'] = 0; - -// Optional IMAP authentication identifier to be used as authorization proxy -$rcmail_config['imap_auth_cid'] = null; - -// Optional IMAP authentication password to be used for imap_auth_cid -$rcmail_config['imap_auth_pw'] = null; - -// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'. -$rcmail_config['imap_cache'] = null; - -// Enables messages cache. Only 'db' cache is supported. -$rcmail_config['messages_cache'] = false; - -// Lifetime of IMAP indexes cache. Possible units: s, m, h, d, w -$rcmail_config['imap_cache_ttl'] = '10d'; - -// Lifetime of messages cache. Possible units: s, m, h, d, w -$rcmail_config['messages_cache_ttl'] = '10d'; - -// ---------------------------------- -// SMTP -// ---------------------------------- - -// SMTP server host (for sending mails). -// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// -// If left blank, the PHP mail() function is used -// Supported replacement variables: -// %h - user's IMAP hostname -// %n - hostname ($_SERVER['SERVER_NAME']) -// %t - hostname without the first part -// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) -// %z - IMAP domain (IMAP hostname without the first part) -// For example %n = mail.domain.tld, %t = domain.tld -$rcmail_config['smtp_server'] = ''; - -// SMTP port (default is 25; use 587 for STARTTLS or 465 for the -// deprecated SSL over SMTP (aka SMTPS)) -$rcmail_config['smtp_port'] = 25; - -// SMTP username (if required) if you use %u as the username Roundcube -// will use the current username for login -$rcmail_config['smtp_user'] = ''; - -// SMTP password (if required) if you use %p as the password Roundcube -// will use the current user's password for login -$rcmail_config['smtp_pass'] = ''; - -// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use -// best server supported one) -$rcmail_config['smtp_auth_type'] = ''; - -// Optional SMTP authentication identifier to be used as authorization proxy -$rcmail_config['smtp_auth_cid'] = null; - -// Optional SMTP authentication password to be used for smtp_auth_cid -$rcmail_config['smtp_auth_pw'] = null; - -// SMTP HELO host -// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages -// Leave this blank and you will get the server variable 'server_name' or -// localhost if that isn't defined. -$rcmail_config['smtp_helo_host'] = ''; - -// SMTP connection timeout, in seconds. Default: 0 (no limit) -$rcmail_config['smtp_timeout'] = 0; - -// ---------------------------------- -// LDAP -// ---------------------------------- - -// Type of LDAP cache. Supported values: 'db', 'apc' and 'memcache'. -$rcmail_config['ldap_cache'] = 'db'; - -// Lifetime of LDAP cache. Possible units: s, m, h, d, w -$rcmail_config['ldap_cache_ttl'] = '10m'; - -// ---------------------------------- -// SYSTEM -// ---------------------------------- - -// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA. -// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! -$rcmail_config['enable_installer'] = false; - -// don't allow these settings to be overriden by the user -$rcmail_config['dont_override'] = array(); - -// provide an URL where a user can get support for this Roundcube installation -// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE! -$rcmail_config['support_url'] = ''; - -// replace Roundcube logo with this image -// specify an URL relative to the document root of this Roundcube installation -$rcmail_config['skin_logo'] = null; - -// automatically create a new Roundcube user when log-in the first time. -// a new user will be created once the IMAP login succeeds. -// set to false if only registered users can use this service -$rcmail_config['auto_create_user'] = true; - -// Enables possibility to log in using email address from user identities -$rcmail_config['user_aliases'] = false; - -// use this folder to store log files (must be writeable for apache user) -// This is used by the 'file' log driver. -$rcmail_config['log_dir'] = 'logs/'; - -// use this folder to store temp files (must be writeable for apache user) -$rcmail_config['temp_dir'] = 'temp/'; - -// enforce connections over https -// with this option enabled, all non-secure connections will be redirected. -// set the port for the ssl connection as value of this option if it differs from the default 443 -$rcmail_config['force_https'] = false; - -// tell PHP that it should work as under secure connection -// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) -// e.g. when you're running Roundcube behind a https proxy -// this option is mutually exclusive to 'force_https' and only either one of them should be set to true. -$rcmail_config['use_https'] = false; - -// Allow browser-autocompletion on login form. -// 0 - disabled, 1 - username and host only, 2 - username, host, password -$rcmail_config['login_autocomplete'] = 0; - -// Forces conversion of logins to lower case. -// 0 - disabled, 1 - only domain part, 2 - domain and local part. -// If users authentication is case-insensitive this must be enabled. -// Note: After enabling it all user records need to be updated, e.g. with query: -// UPDATE users SET username = LOWER(username); -$rcmail_config['login_lc'] = 2; - -// Includes should be interpreted as PHP files -$rcmail_config['skin_include_php'] = false; - -// display software version on login screen -$rcmail_config['display_version'] = false; - -// Session lifetime in minutes -$rcmail_config['session_lifetime'] = 10; - -// Session domain: .example.org -$rcmail_config['session_domain'] = ''; - -// Session name. Default: 'roundcube_sessid' -$rcmail_config['session_name'] = null; - -// Session path. Defaults to PHP session.cookie_path setting. -$rcmail_config['session_path'] = null; - -// Backend to use for session storage. Can either be 'db' (default), 'memcache' or 'php' -// If set to 'memcache', a list of servers need to be specified in 'memcache_hosts' -// Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed -// Setting this value to 'php' will use the default session save handler configured in PHP -$rcmail_config['session_storage'] = 'db'; - -// Use these hosts for accessing memcached -// Define any number of hosts in the form of hostname:port or unix:///path/to/socket.file -$rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' ); - -// check client IP in session athorization -$rcmail_config['ip_check'] = false; - -// check referer of incoming requests -$rcmail_config['referer_check'] = false; - -// X-Frame-Options HTTP header value sent to prevent from Clickjacking. -// Possible values: sameorigin|deny. Set to false in order to disable sending them -$rcmail_config['x_frame_options'] = 'sameorigin'; - -// this key is used to encrypt the users imap password which is stored -// in the session record (and the client cookie if remember password is enabled). -// please provide a string of exactly 24 chars. -$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str'; - -// Automatically add this domain to user names for login -// Only for IMAP servers that require full e-mail addresses for login -// Specify an array with 'host' => 'domain' values to support multiple hosts -// Supported replacement variables: -// %h - user's IMAP hostname -// %n - hostname ($_SERVER['SERVER_NAME']) -// %t - hostname without the first part -// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) -// %z - IMAP domain (IMAP hostname without the first part) -// For example %n = mail.domain.tld, %t = domain.tld -$rcmail_config['username_domain'] = ''; - -// This domain will be used to form e-mail addresses of new users -// Specify an array with 'host' => 'domain' values to support multiple hosts -// Supported replacement variables: -// %h - user's IMAP hostname -// %n - http hostname ($_SERVER['SERVER_NAME']) -// %d - domain (http hostname without the first part) -// %z - IMAP domain (IMAP hostname without the first part) -// For example %n = mail.domain.tld, %t = domain.tld -$rcmail_config['mail_domain'] = ''; - -// Password charset. -// Use it if your authentication backend doesn't support UTF-8. -// Defaults to ISO-8859-1 for backward compatibility -$rcmail_config['password_charset'] = 'ISO-8859-1'; - -// How many seconds must pass between emails sent by a user -$rcmail_config['sendmail_delay'] = 0; - -// Maximum number of recipients per message. Default: 0 (no limit) -$rcmail_config['max_recipients'] = 0; - -// Maximum allowednumber of members of an address group. Default: 0 (no limit) -// If 'max_recipients' is set this value should be less or equal -$rcmail_config['max_group_members'] = 0; - -// add this user-agent to message headers when sending -$rcmail_config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION; - -// use this name to compose page titles -$rcmail_config['product_name'] = 'Roundcube Webmail'; - -// try to load host-specific configuration -// see http://trac.roundcube.net/wiki/Howto_Config for more details -$rcmail_config['include_host_config'] = false; - -// path to a text file which will be added to each sent message -// paths are relative to the Roundcube root folder -$rcmail_config['generic_message_footer'] = ''; - -// path to a text file which will be added to each sent HTML message -// paths are relative to the Roundcube root folder -$rcmail_config['generic_message_footer_html'] = ''; - -// add a received header to outgoing mails containing the creators IP and hostname -$rcmail_config['http_received_header'] = false; - -// Whether or not to encrypt the IP address and the host name -// these could, in some circles, be considered as sensitive information; -// however, for the administrator, these could be invaluable help -// when tracking down issues. -$rcmail_config['http_received_header_encrypt'] = false; - -// This string is used as a delimiter for message headers when sending -// a message via mail() function. Leave empty for auto-detection -$rcmail_config['mail_header_delimiter'] = NULL; - -// number of chars allowed for line when wrapping text. -// text wrapping is done when composing/sending messages -$rcmail_config['line_length'] = 72; - -// send plaintext messages as format=flowed -$rcmail_config['send_format_flowed'] = true; - -// According to RFC2298, return receipt envelope sender address must be empty. -// If this option is true, Roundcube will use user's identity as envelope sender for MDN responses. -$rcmail_config['mdn_use_from'] = false; - -// Set identities access level: -// 0 - many identities with possibility to edit all params -// 1 - many identities with possibility to edit all params but not email address -// 2 - one identity with possibility to edit all params -// 3 - one identity with possibility to edit all params but not email address -// 4 - one identity with possibility to edit only signature -$rcmail_config['identities_level'] = 0; - -// Mimetypes supported by the browser. -// attachments of these types will open in a preview window -// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf' -$rcmail_config['client_mimetypes'] = null; # null == default - -// Path to a local mime magic database file for PHPs finfo extension. -// Set to null if the default path should be used. -$rcmail_config['mime_magic'] = null; - -// Absolute path to a local mime.types mapping table file. -// This is used to derive mime-types from the filename extension or vice versa. -// Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system, -// download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types -$rcmail_config['mime_types'] = null; - -// path to imagemagick identify binary -$rcmail_config['im_identify_path'] = null; - -// path to imagemagick convert binary -$rcmail_config['im_convert_path'] = null; - -// Size of thumbnails from image attachments displayed below the message content. -// Note: whether images are displayed at all depends on the 'inline_images' option. -// Set to 0 to display images in full size. -$rcmail_config['image_thumbnail_size'] = 240; - -// maximum size of uploaded contact photos in pixel -$rcmail_config['contact_photo_size'] = 160; - -// Enable DNS checking for e-mail address validation -$rcmail_config['email_dns_check'] = false; - -// Disables saving sent messages in Sent folder (like gmail) (Default: false) -// Note: useful when SMTP server stores sent mail in user mailbox -$rcmail_config['no_save_sent_messages'] = false; - -// ---------------------------------- -// PLUGINS -// ---------------------------------- - -// List of active plugins (in plugins/ directory) -$rcmail_config['plugins'] = array(); - -// ---------------------------------- -// USER INTERFACE -// ---------------------------------- - -// default messages sort column. Use empty value for default server's sorting, -// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc' -$rcmail_config['message_sort_col'] = ''; - -// default messages sort order -$rcmail_config['message_sort_order'] = 'DESC'; - -// These cols are shown in the message list. Available cols are: -// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority' -$rcmail_config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'); - -// the default locale setting (leave empty for auto-detection) -// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR -$rcmail_config['language'] = null; - -// use this format for date display (date or strftime format) -$rcmail_config['date_format'] = 'Y-m-d'; - -// give this choice of date formats to the user to select from -$rcmail_config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); - -// use this format for time display (date or strftime format) -$rcmail_config['time_format'] = 'H:i'; - -// give this choice of time formats to the user to select from -$rcmail_config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A'); - -// use this format for short date display (derived from date_format and time_format) -$rcmail_config['date_short'] = 'D H:i'; - -// use this format for detailed date/time formatting (derived from date_format and time_format) -$rcmail_config['date_long'] = 'Y-m-d H:i'; - -// store draft message is this mailbox -// leave blank if draft messages should not be stored -// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$rcmail_config['drafts_mbox'] = 'Drafts'; - -// store spam messages in this mailbox -// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$rcmail_config['junk_mbox'] = 'Junk'; - -// store sent message is this mailbox -// leave blank if sent messages should not be stored -// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$rcmail_config['sent_mbox'] = 'Sent'; - -// move messages to this folder when deleting them -// leave blank if they should be deleted directly -// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$rcmail_config['trash_mbox'] = 'Trash'; - -// display these folders separately in the mailbox list. -// these folders will also be displayed with localized names -// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$rcmail_config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); - -// Disable localization of the default folder names listed above -$rcmail_config['show_real_foldernames'] = false; - -// automatically create the above listed default folders on first login -$rcmail_config['create_default_folders'] = false; - -// protect the default folders from renames, deletes, and subscription changes -$rcmail_config['protect_default_folders'] = true; - -// if in your system 0 quota means no limit set this option to true -$rcmail_config['quota_zero_as_unlimited'] = false; - -// Make use of the built-in spell checker. It is based on GoogieSpell. -// Since Google only accepts connections over https your PHP installatation -// requires to be compiled with Open SSL support -$rcmail_config['enable_spellcheck'] = true; - -// Enables spellchecker exceptions dictionary. -// Setting it to 'shared' will make the dictionary shared by all users. -$rcmail_config['spellcheck_dictionary'] = false; - -// Set the spell checking engine. 'googie' is the default. 'pspell' is also available, -// but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here. -$rcmail_config['spellcheck_engine'] = 'googie'; - -// For a locally installed Nox Spell Server, please specify the URI to call it. -// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 -// Leave empty to use the Google spell checking service, what means -// that the message content will be sent to Google in order to check spelling -$rcmail_config['spellcheck_uri'] = ''; - -// These languages can be selected for spell checking. -// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch'); -// Leave empty for default set of available language. -$rcmail_config['spellcheck_languages'] = NULL; - -// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE) -$rcmail_config['spellcheck_ignore_caps'] = false; - -// Makes that words with numbers will be ignored (e.g. g00gle) -$rcmail_config['spellcheck_ignore_nums'] = false; - -// Makes that words with symbols will be ignored (e.g. g@@gle) -$rcmail_config['spellcheck_ignore_syms'] = false; - -// Use this char/string to separate recipients when composing a new message -$rcmail_config['recipients_separator'] = ','; - -// don't let users set pagesize to more than this value if set -$rcmail_config['max_pagesize'] = 200; - -// Minimal value of user's 'refresh_interval' setting (in seconds) -$rcmail_config['min_refresh_interval'] = 60; - -// Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option. -// By default refresh time is set to 1 second. You can set this value to true -// or any integer value indicating number of seconds. -$rcmail_config['upload_progress'] = false; - -// Specifies for how many seconds the Undo button will be available -// after object delete action. Currently used with supporting address book sources. -// Setting it to 0, disables the feature. -$rcmail_config['undo_timeout'] = 0; - -// ---------------------------------- -// ADDRESSBOOK SETTINGS -// ---------------------------------- - -// This indicates which type of address book to use. Possible choises: -// 'sql' (default), 'ldap' and ''. -// If set to 'ldap' then it will look at using the first writable LDAP -// address book as the primary address book and it will not display the -// SQL address book in the 'Address Book' view. -// If set to '' then no address book will be displayed or only the -// addressbook which is created by a plugin (like CardDAV). -$rcmail_config['address_book_type'] = 'sql'; - -// In order to enable public ldap search, configure an array like the Verisign -// example further below. if you would like to test, simply uncomment the example. -// Array key must contain only safe characters, ie. a-zA-Z0-9_ -$rcmail_config['ldap_public'] = array(); - -// If you are going to use LDAP for individual address books, you will need to -// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it. -// -// The recommended directory structure for LDAP is to store all the address book entries -// under the users main entry, e.g.: -// -// o=root -// ou=people -// uid=user@domain -// mail=contact@contactdomain -// -// So the base_dn would be uid=%fu,ou=people,o=root -// The bind_dn would be the same as based_dn or some super user login. -/* - * example config for Verisign directory - * -$rcmail_config['ldap_public']['Verisign'] = array( - 'name' => 'Verisign.com', - // Replacement variables supported in host names: - // %h - user's IMAP hostname - // %n - hostname ($_SERVER['SERVER_NAME']) - // %t - hostname without the first part - // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) - // %z - IMAP domain (IMAP hostname without the first part) - // For example %n = mail.domain.tld, %t = domain.tld - 'hosts' => array('directory.verisign.com'), - 'port' => 389, - 'use_tls' => false, - 'ldap_version' => 3, // using LDAPv3 - 'network_timeout' => 10, // The timeout (in seconds) for connect + bind arrempts. This is only supported in PHP >= 5.3.0 with OpenLDAP 2.x - 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login. - // %fu - The full username provided, assumes the username is an email - // address, uses the username_domain value if not an email address. - // %u - The username prior to the '@'. - // %d - The domain name after the '@'. - // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" - // %dn - DN found by ldap search when search_filter/search_base_dn are used - 'base_dn' => '', - 'bind_dn' => '', - 'bind_pass' => '', - // It's possible to bind for an individual address book - // The login name is used to search for the DN to bind with - 'search_base_dn' => '', - 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))' - // DN and password to bind as before searching for bind DN, if anonymous search is not allowed - 'search_bind_dn' => '', - 'search_bind_pw' => '', - // Default for %dn variable if search doesn't return DN value - 'search_dn_default' => '', - // Optional authentication identifier to be used as SASL authorization proxy - // bind_dn need to be empty - 'auth_cid' => '', - // SASL authentication method (for proxy auth), e.g. DIGEST-MD5 - 'auth_method' => '', - // Indicates if the addressbook shall be hidden from the list. - // With this option enabled you can still search/view contacts. - 'hidden' => false, - // Indicates if the addressbook shall not list contacts but only allows searching. - 'searchonly' => false, - // Indicates if we can write to the LDAP directory or not. - // If writable is true then these fields need to be populated: - // LDAP_Object_Classes, required_fields, LDAP_rdn - 'writable' => false, - // To create a new contact these are the object classes to specify - // (or any other classes you wish to use). - 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'), - // The RDN field that is used for new entries, this field needs - // to be one of the search_fields, the base of base_dn is appended - // to the RDN to insert into the LDAP directory. - 'LDAP_rdn' => 'cn', - // The required fields needed to build a new contact as required by - // the object classes (can include additional fields not required by the object classes). - 'required_fields' => array('cn', 'sn', 'mail'), - 'search_fields' => array('mail', 'cn'), // fields to search in - // mapping of contact fields to directory attributes - // for every attribute one can specify the number of values (limit) allowed. - // default is 1, a wildcard * means unlimited - 'fieldmap' => array( - // Roundcube => LDAP:limit - 'name' => 'cn', - 'surname' => 'sn', - 'firstname' => 'givenName', - 'jobtitle' => 'title', - 'email' => 'mail:*', - 'phone:home' => 'homePhone', - 'phone:work' => 'telephoneNumber', - 'phone:mobile' => 'mobile', - 'phone:pager' => 'pager', - 'street' => 'street', - 'zipcode' => 'postalCode', - 'region' => 'st', - 'locality' => 'l', - // if you country is a complex object, you need to configure 'sub_fields' below - 'country' => 'c', - 'organization' => 'o', - 'department' => 'ou', - 'jobtitle' => 'title', - 'notes' => 'description', - // these currently don't work: - // 'phone:workfax' => 'facsimileTelephoneNumber', - // 'photo' => 'jpegPhoto', - // 'manager' => 'manager', - // 'assistant' => 'secretary', - ), - // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country' - 'sub_fields' => array(), - // Generate values for the following LDAP attributes automatically when creating a new record - 'autovalues' => array( - // 'uid' => 'md5(microtime())', // You may specify PHP code snippets which are then eval'ed - // 'mail' => '{givenname}.{sn}@mydomain.com', // or composite strings with placeholders for existing attributes - ), - 'sort' => 'cn', // The field to sort the listing by. - 'scope' => 'sub', // search mode: sub|base|list - 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act - 'fuzzy_search' => true, // server allows wildcard search - 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it) - 'numsub_filter' => '(objectClass=organizationalUnit)', // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting - 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit. - 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. - 'referrals' => true|false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups - - // definition for contact groups (uncomment if no groups are supported) - // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above) - // if the groups base_dn is empty, the contact base_dn is used for the groups as well - // -> in this case, assure that groups and contacts are separated due to the concernig filters! - 'groups' => array( - 'base_dn' => '', - 'scope' => 'sub', // search mode: sub|base|list - 'filter' => '(objectClass=groupOfNames)', - 'object_classes' => array("top", "groupOfNames"), - 'member_attr' => 'member', // name of the member attribute, e.g. uniqueMember - 'name_attr' => 'cn', // attribute to be used as group name - ), -); -*/ - -// An ordered array of the ids of the addressbooks that should be searched -// when populating address autocomplete fields server-side. ex: array('sql','Verisign'); -$rcmail_config['autocomplete_addressbooks'] = array('sql'); - -// The minimum number of characters required to be typed in an autocomplete field -// before address books will be searched. Most useful for LDAP directories that -// may need to do lengthy results building given overly-broad searches -$rcmail_config['autocomplete_min_length'] = 1; - -// Number of parallel autocomplete requests. -// If there's more than one address book, n parallel (async) requests will be created, -// where each request will search in one address book. By default (0), all address -// books are searched in one request. -$rcmail_config['autocomplete_threads'] = 0; - -// Max. numer of entries in autocomplete popup. Default: 15. -$rcmail_config['autocomplete_max'] = 15; - -// show address fields in this order -// available placeholders: {street}, {locality}, {zipcode}, {country}, {region} -$rcmail_config['address_template'] = '{street}
{locality} {zipcode}
{country} {region}'; - -// Matching mode for addressbook search (including autocompletion) -// 0 - partial (*abc*), default -// 1 - strict (abc) -// 2 - prefix (abc*) -// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode -$rcmail_config['addressbook_search_mode'] = 0; - -// ---------------------------------- -// USER PREFERENCES -// ---------------------------------- - -// Use this charset as fallback for message decoding -$rcmail_config['default_charset'] = 'ISO-8859-1'; - -// skin name: folder from skins/ -$rcmail_config['skin'] = 'larry'; - -// Enables using standard browser windows (that can be handled as tabs) -// instead of popup windows -$rcmail_config['standard_windows'] = false; - -// show up to X items in messages list view -$rcmail_config['mail_pagesize'] = 50; - -// show up to X items in contacts list view -$rcmail_config['addressbook_pagesize'] = 50; - -// sort contacts by this col (preferably either one of name, firstname, surname) -$rcmail_config['addressbook_sort_col'] = 'surname'; - -// the way how contact names are displayed in the list -// 0: display name -// 1: (prefix) firstname middlename surname (suffix) -// 2: (prefix) surname firstname middlename (suffix) -// 3: (prefix) surname, firstname middlename (suffix) -$rcmail_config['addressbook_name_listing'] = 0; - -// use this timezone to display date/time -// valid timezone identifers are listed here: php.net/manual/en/timezones.php -// 'auto' will use the browser's timezone settings -$rcmail_config['timezone'] = 'auto'; - -// prefer displaying HTML messages -$rcmail_config['prefer_html'] = true; - -// display remote inline images -// 0 - Never, always ask -// 1 - Ask if sender is not in address book -// 2 - Always show inline images -$rcmail_config['show_images'] = 0; - -// open messages in new window -$rcmail_config['message_extwin'] = false; - -// open message compose form in new window -$rcmail_config['compose_extwin'] = false; - -// compose html formatted messages by default -// 0 - never, 1 - always, 2 - on reply to HTML message, 3 - on forward or reply to HTML message -$rcmail_config['htmleditor'] = 0; - -// show pretty dates as standard -$rcmail_config['prettydate'] = true; - -// save compose message every 300 seconds (5min) -$rcmail_config['draft_autosave'] = 300; - -// default setting if preview pane is enabled -$rcmail_config['preview_pane'] = false; - -// Mark as read when viewed in preview pane (delay in seconds) -// Set to -1 if messages in preview pane should not be marked as read -$rcmail_config['preview_pane_mark_read'] = 0; - -// Clear Trash on logout -$rcmail_config['logout_purge'] = false; - -// Compact INBOX on logout -$rcmail_config['logout_expunge'] = false; - -// Display attached images below the message body -$rcmail_config['inline_images'] = true; - -// Encoding of long/non-ascii attachment names: -// 0 - Full RFC 2231 compatible -// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default) -// 2 - Full 2047 compatible -$rcmail_config['mime_param_folding'] = 1; - -// Set true if deleted messages should not be displayed -// This will make the application run slower -$rcmail_config['skip_deleted'] = false; - -// Set true to Mark deleted messages as read as well as deleted -// False means that a message's read status is not affected by marking it as deleted -$rcmail_config['read_when_deleted'] = true; - -// Set to true to never delete messages immediately -// Use 'Purge' to remove messages marked as deleted -$rcmail_config['flag_for_deletion'] = false; - -// Default interval for auto-refresh requests (in seconds) -// These are requests for system state updates e.g. checking for new messages, etc. -// Setting it to 0 disables the feature. -$rcmail_config['refresh_interval'] = 60; - -// If true all folders will be checked for recent messages -$rcmail_config['check_all_folders'] = false; - -// If true, after message delete/move, the next message will be displayed -$rcmail_config['display_next'] = true; - -// 0 - Do not expand threads -// 1 - Expand all threads automatically -// 2 - Expand only threads with unread messages -$rcmail_config['autoexpand_threads'] = 0; - -// When replying: -// -1 - don't cite the original message -// 0 - place cursor below the original message -// 1 - place cursor above original message (top posting) -$rcmail_config['reply_mode'] = 0; - -// When replying strip original signature from message -$rcmail_config['strip_existing_sig'] = true; - -// Show signature: -// 0 - Never -// 1 - Always -// 2 - New messages only -// 3 - Forwards and Replies only -$rcmail_config['show_sig'] = 1; - -// Use MIME encoding (quoted-printable) for 8bit characters in message body -$rcmail_config['force_7bit'] = false; - -// Defaults of the search field configuration. -// The array can contain a per-folder list of header fields which should be considered when searching -// The entry with key '*' stands for all folders which do not have a specific list set. -// Please note that folder names should to be in sync with $rcmail_config['default_folders'] -$rcmail_config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1)); - -// Defaults of the addressbook search field configuration. -$rcmail_config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); - -// 'Delete always' -// This setting reflects if mail should be always deleted -// when moving to Trash fails. This is necessary in some setups -// when user is over quota and Trash is included in the quota. -$rcmail_config['delete_always'] = false; - -// Directly delete messages in Junk instead of moving to Trash -$rcmail_config['delete_junk'] = false; - -// Behavior if a received message requests a message delivery notification (read receipt) -// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) -// 3 = send automatically if sender is in addressbook, otherwise ask the user -// 4 = send automatically if sender is in addressbook, otherwise ignore -$rcmail_config['mdn_requests'] = 0; - -// Return receipt checkbox default state -$rcmail_config['mdn_default'] = 0; - -// Delivery Status Notification checkbox default state -$rcmail_config['dsn_default'] = 0; - -// Place replies in the folder of the message being replied to -$rcmail_config['reply_same_folder'] = false; - -// Sets default mode of Forward feature to "forward as attachment" -$rcmail_config['forward_attachment'] = false; - -// Defines address book (internal index) to which new contacts will be added -// By default it is the first writeable addressbook. -// Note: Use '0' for built-in address book. -$rcmail_config['default_addressbook'] = null; - -// Enables spell checking before sending a message. -$rcmail_config['spellcheck_before_send'] = false; - -// Skip alternative email addresses in autocompletion (show one address per contact) -$rcmail_config['autocomplete_single'] = false; - -// Default font for composed HTML message. -// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New, -// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana -$rcmail_config['default_font'] = 'Verdana'; - -// Enables display of email address with name instead of a name (and address in title) -$rcmail_config['message_show_email'] = false; -- cgit v1.2.3 From acc005301f28b92dc922d629c4a616931cc9f69b Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 14 Jun 2013 12:15:29 +0200 Subject: Add defaults.inc.php file (missed in last commmit because of .gitignore) --- config/defaults.inc.php | 935 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 935 insertions(+) create mode 100644 config/defaults.inc.php (limited to 'config') diff --git a/config/defaults.inc.php b/config/defaults.inc.php new file mode 100644 index 000000000..707c1934c --- /dev/null +++ b/config/defaults.inc.php @@ -0,0 +1,935 @@ +/sendmail or to syslog +$config['smtp_log'] = true; + +// Log successful logins to /userlogins or to syslog +$config['log_logins'] = false; + +// Log session authentication errors to /session or to syslog +$config['log_session'] = false; + +// Log SQL queries to /sql or to syslog +$config['sql_debug'] = false; + +// Log IMAP conversation to /imap or to syslog +$config['imap_debug'] = false; + +// Log LDAP conversation to /ldap or to syslog +$config['ldap_debug'] = false; + +// Log SMTP conversation to /smtp or to syslog +$config['smtp_debug'] = false; + +// ---------------------------------- +// IMAP +// ---------------------------------- + +// The mail host chosen to perform the log-in. +// Leave blank to show a textbox at login, give a list of hosts +// to display a pulldown menu or set one host as string. +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// Supported replacement variables: +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %s - domain name after the '@' from e-mail address provided at login screen +// For example %n = mail.domain.tld, %t = domain.tld +// WARNING: After hostname change update of mail_host column in users table is +// required to match old user data records with the new host. +$config['default_host'] = ''; + +// TCP port used for IMAP connections +$config['default_port'] = 143; + +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use +// best server supported one) +$config['imap_auth_type'] = null; + +// If you know your imap's folder delimiter, you can specify it here. +// Otherwise it will be determined automatically +$config['imap_delimiter'] = null; + +// If IMAP server doesn't support NAMESPACE extension, but you're +// using shared folders or personal root folder is non-empty, you'll need to +// set these options. All can be strings or arrays of strings. +// Folders need to be ended with directory separator, e.g. "INBOX." +// (special directory "~" is an exception to this rule) +// These can be used also to overwrite server's namespaces +$config['imap_ns_personal'] = null; +$config['imap_ns_other'] = null; +$config['imap_ns_shared'] = null; + +// By default IMAP capabilities are readed after connection to IMAP server +// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list +// after login. Set to True if you've got this case. +$config['imap_force_caps'] = false; + +// By default list of subscribed folders is determined using LIST-EXTENDED +// extension if available. Some servers (dovecot 1.x) returns wrong results +// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225 +// Enable this option to force LSUB command usage instead. +$config['imap_force_lsub'] = false; + +// Some server configurations (e.g. Courier) doesn't list folders in all namespaces +// Enable this option to force listing of folders in all namespaces +$config['imap_force_ns'] = false; + +// IMAP connection timeout, in seconds. Default: 0 (no limit) +$config['imap_timeout'] = 0; + +// Optional IMAP authentication identifier to be used as authorization proxy +$config['imap_auth_cid'] = null; + +// Optional IMAP authentication password to be used for imap_auth_cid +$config['imap_auth_pw'] = null; + +// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'. +$config['imap_cache'] = null; + +// Enables messages cache. Only 'db' cache is supported. +$config['messages_cache'] = false; + +// Lifetime of IMAP indexes cache. Possible units: s, m, h, d, w +$config['imap_cache_ttl'] = '10d'; + +// Lifetime of messages cache. Possible units: s, m, h, d, w +$config['messages_cache_ttl'] = '10d'; + +// ---------------------------------- +// SMTP +// ---------------------------------- + +// SMTP server host (for sending mails). +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// If left blank, the PHP mail() function is used +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$config['smtp_server'] = ''; + +// SMTP port (default is 25; use 587 for STARTTLS or 465 for the +// deprecated SSL over SMTP (aka SMTPS)) +$config['smtp_port'] = 25; + +// SMTP username (if required) if you use %u as the username Roundcube +// will use the current username for login +$config['smtp_user'] = ''; + +// SMTP password (if required) if you use %p as the password Roundcube +// will use the current user's password for login +$config['smtp_pass'] = ''; + +// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) +$config['smtp_auth_type'] = ''; + +// Optional SMTP authentication identifier to be used as authorization proxy +$config['smtp_auth_cid'] = null; + +// Optional SMTP authentication password to be used for smtp_auth_cid +$config['smtp_auth_pw'] = null; + +// SMTP HELO host +// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages +// Leave this blank and you will get the server variable 'server_name' or +// localhost if that isn't defined. +$config['smtp_helo_host'] = ''; + +// SMTP connection timeout, in seconds. Default: 0 (no limit) +$config['smtp_timeout'] = 0; + +// ---------------------------------- +// LDAP +// ---------------------------------- + +// Type of LDAP cache. Supported values: 'db', 'apc' and 'memcache'. +$config['ldap_cache'] = 'db'; + +// Lifetime of LDAP cache. Possible units: s, m, h, d, w +$config['ldap_cache_ttl'] = '10m'; + +// ---------------------------------- +// SYSTEM +// ---------------------------------- + +// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA. +// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! +$config['enable_installer'] = false; + +// don't allow these settings to be overriden by the user +$config['dont_override'] = array(); + +// provide an URL where a user can get support for this Roundcube installation +// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE! +$config['support_url'] = ''; + +// replace Roundcube logo with this image +// specify an URL relative to the document root of this Roundcube installation +$config['skin_logo'] = null; + +// automatically create a new Roundcube user when log-in the first time. +// a new user will be created once the IMAP login succeeds. +// set to false if only registered users can use this service +$config['auto_create_user'] = true; + +// Enables possibility to log in using email address from user identities +$config['user_aliases'] = false; + +// use this folder to store log files (must be writeable for apache user) +// This is used by the 'file' log driver. +$config['log_dir'] = 'logs/'; + +// use this folder to store temp files (must be writeable for apache user) +$config['temp_dir'] = 'temp/'; + +// enforce connections over https +// with this option enabled, all non-secure connections will be redirected. +// set the port for the ssl connection as value of this option if it differs from the default 443 +$config['force_https'] = false; + +// tell PHP that it should work as under secure connection +// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) +// e.g. when you're running Roundcube behind a https proxy +// this option is mutually exclusive to 'force_https' and only either one of them should be set to true. +$config['use_https'] = false; + +// Allow browser-autocompletion on login form. +// 0 - disabled, 1 - username and host only, 2 - username, host, password +$config['login_autocomplete'] = 0; + +// Forces conversion of logins to lower case. +// 0 - disabled, 1 - only domain part, 2 - domain and local part. +// If users authentication is case-insensitive this must be enabled. +// Note: After enabling it all user records need to be updated, e.g. with query: +// UPDATE users SET username = LOWER(username); +$config['login_lc'] = 2; + +// Includes should be interpreted as PHP files +$config['skin_include_php'] = false; + +// display software version on login screen +$config['display_version'] = false; + +// Session lifetime in minutes +$config['session_lifetime'] = 10; + +// Session domain: .example.org +$config['session_domain'] = ''; + +// Session name. Default: 'roundcube_sessid' +$config['session_name'] = null; + +// Session path. Defaults to PHP session.cookie_path setting. +$config['session_path'] = null; + +// Backend to use for session storage. Can either be 'db' (default), 'memcache' or 'php' +// If set to 'memcache', a list of servers need to be specified in 'memcache_hosts' +// Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed +// Setting this value to 'php' will use the default session save handler configured in PHP +$config['session_storage'] = 'db'; + +// Use these hosts for accessing memcached +// Define any number of hosts in the form of hostname:port or unix:///path/to/socket.file +$config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' ); + +// check client IP in session athorization +$config['ip_check'] = false; + +// check referer of incoming requests +$config['referer_check'] = false; + +// X-Frame-Options HTTP header value sent to prevent from Clickjacking. +// Possible values: sameorigin|deny. Set to false in order to disable sending them +$config['x_frame_options'] = 'sameorigin'; + +// this key is used to encrypt the users imap password which is stored +// in the session record (and the client cookie if remember password is enabled). +// please provide a string of exactly 24 chars. +$config['des_key'] = 'rcmail-!24ByteDESkey*Str'; + +// Automatically add this domain to user names for login +// Only for IMAP servers that require full e-mail addresses for login +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$config['username_domain'] = ''; + +// This domain will be used to form e-mail addresses of new users +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$config['mail_domain'] = ''; + +// Password charset. +// Use it if your authentication backend doesn't support UTF-8. +// Defaults to ISO-8859-1 for backward compatibility +$config['password_charset'] = 'ISO-8859-1'; + +// How many seconds must pass between emails sent by a user +$config['sendmail_delay'] = 0; + +// Maximum number of recipients per message. Default: 0 (no limit) +$config['max_recipients'] = 0; + +// Maximum allowednumber of members of an address group. Default: 0 (no limit) +// If 'max_recipients' is set this value should be less or equal +$config['max_group_members'] = 0; + +// add this user-agent to message headers when sending +$config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION; + +// use this name to compose page titles +$config['product_name'] = 'Roundcube Webmail'; + +// try to load host-specific configuration +// see http://trac.roundcube.net/wiki/Howto_Config for more details +$config['include_host_config'] = false; + +// path to a text file which will be added to each sent message +// paths are relative to the Roundcube root folder +$config['generic_message_footer'] = ''; + +// path to a text file which will be added to each sent HTML message +// paths are relative to the Roundcube root folder +$config['generic_message_footer_html'] = ''; + +// add a received header to outgoing mails containing the creators IP and hostname +$config['http_received_header'] = false; + +// Whether or not to encrypt the IP address and the host name +// these could, in some circles, be considered as sensitive information; +// however, for the administrator, these could be invaluable help +// when tracking down issues. +$config['http_received_header_encrypt'] = false; + +// This string is used as a delimiter for message headers when sending +// a message via mail() function. Leave empty for auto-detection +$config['mail_header_delimiter'] = NULL; + +// number of chars allowed for line when wrapping text. +// text wrapping is done when composing/sending messages +$config['line_length'] = 72; + +// send plaintext messages as format=flowed +$config['send_format_flowed'] = true; + +// According to RFC2298, return receipt envelope sender address must be empty. +// If this option is true, Roundcube will use user's identity as envelope sender for MDN responses. +$config['mdn_use_from'] = false; + +// Set identities access level: +// 0 - many identities with possibility to edit all params +// 1 - many identities with possibility to edit all params but not email address +// 2 - one identity with possibility to edit all params +// 3 - one identity with possibility to edit all params but not email address +// 4 - one identity with possibility to edit only signature +$config['identities_level'] = 0; + +// Mimetypes supported by the browser. +// attachments of these types will open in a preview window +// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf' +$config['client_mimetypes'] = null; # null == default + +// Path to a local mime magic database file for PHPs finfo extension. +// Set to null if the default path should be used. +$config['mime_magic'] = null; + +// Absolute path to a local mime.types mapping table file. +// This is used to derive mime-types from the filename extension or vice versa. +// Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system, +// download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +$config['mime_types'] = null; + +// path to imagemagick identify binary +$config['im_identify_path'] = null; + +// path to imagemagick convert binary +$config['im_convert_path'] = null; + +// Size of thumbnails from image attachments displayed below the message content. +// Note: whether images are displayed at all depends on the 'inline_images' option. +// Set to 0 to display images in full size. +$config['image_thumbnail_size'] = 240; + +// maximum size of uploaded contact photos in pixel +$config['contact_photo_size'] = 160; + +// Enable DNS checking for e-mail address validation +$config['email_dns_check'] = false; + +// Disables saving sent messages in Sent folder (like gmail) (Default: false) +// Note: useful when SMTP server stores sent mail in user mailbox +$config['no_save_sent_messages'] = false; + +// ---------------------------------- +// PLUGINS +// ---------------------------------- + +// List of active plugins (in plugins/ directory) +$config['plugins'] = array(); + +// ---------------------------------- +// USER INTERFACE +// ---------------------------------- + +// default messages sort column. Use empty value for default server's sorting, +// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc' +$config['message_sort_col'] = ''; + +// default messages sort order +$config['message_sort_order'] = 'DESC'; + +// These cols are shown in the message list. Available cols are: +// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority' +$config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'); + +// the default locale setting (leave empty for auto-detection) +// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR +$config['language'] = null; + +// use this format for date display (date or strftime format) +$config['date_format'] = 'Y-m-d'; + +// give this choice of date formats to the user to select from +$config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); + +// use this format for time display (date or strftime format) +$config['time_format'] = 'H:i'; + +// give this choice of time formats to the user to select from +$config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A'); + +// use this format for short date display (derived from date_format and time_format) +$config['date_short'] = 'D H:i'; + +// use this format for detailed date/time formatting (derived from date_format and time_format) +$config['date_long'] = 'Y-m-d H:i'; + +// store draft message is this mailbox +// leave blank if draft messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['drafts_mbox'] = 'Drafts'; + +// store spam messages in this mailbox +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['junk_mbox'] = 'Junk'; + +// store sent message is this mailbox +// leave blank if sent messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['sent_mbox'] = 'Sent'; + +// move messages to this folder when deleting them +// leave blank if they should be deleted directly +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['trash_mbox'] = 'Trash'; + +// display these folders separately in the mailbox list. +// these folders will also be displayed with localized names +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); + +// Disable localization of the default folder names listed above +$config['show_real_foldernames'] = false; + +// automatically create the above listed default folders on first login +$config['create_default_folders'] = false; + +// protect the default folders from renames, deletes, and subscription changes +$config['protect_default_folders'] = true; + +// if in your system 0 quota means no limit set this option to true +$config['quota_zero_as_unlimited'] = false; + +// Make use of the built-in spell checker. It is based on GoogieSpell. +// Since Google only accepts connections over https your PHP installatation +// requires to be compiled with Open SSL support +$config['enable_spellcheck'] = true; + +// Enables spellchecker exceptions dictionary. +// Setting it to 'shared' will make the dictionary shared by all users. +$config['spellcheck_dictionary'] = false; + +// Set the spell checking engine. 'googie' is the default. 'pspell' is also available, +// but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here. +$config['spellcheck_engine'] = 'googie'; + +// For a locally installed Nox Spell Server, please specify the URI to call it. +// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 +// Leave empty to use the Google spell checking service, what means +// that the message content will be sent to Google in order to check spelling +$config['spellcheck_uri'] = ''; + +// These languages can be selected for spell checking. +// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch'); +// Leave empty for default set of available language. +$config['spellcheck_languages'] = NULL; + +// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE) +$config['spellcheck_ignore_caps'] = false; + +// Makes that words with numbers will be ignored (e.g. g00gle) +$config['spellcheck_ignore_nums'] = false; + +// Makes that words with symbols will be ignored (e.g. g@@gle) +$config['spellcheck_ignore_syms'] = false; + +// Use this char/string to separate recipients when composing a new message +$config['recipients_separator'] = ','; + +// don't let users set pagesize to more than this value if set +$config['max_pagesize'] = 200; + +// Minimal value of user's 'refresh_interval' setting (in seconds) +$config['min_refresh_interval'] = 60; + +// Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option. +// By default refresh time is set to 1 second. You can set this value to true +// or any integer value indicating number of seconds. +$config['upload_progress'] = false; + +// Specifies for how many seconds the Undo button will be available +// after object delete action. Currently used with supporting address book sources. +// Setting it to 0, disables the feature. +$config['undo_timeout'] = 0; + +// ---------------------------------- +// ADDRESSBOOK SETTINGS +// ---------------------------------- + +// This indicates which type of address book to use. Possible choises: +// 'sql' (default), 'ldap' and ''. +// If set to 'ldap' then it will look at using the first writable LDAP +// address book as the primary address book and it will not display the +// SQL address book in the 'Address Book' view. +// If set to '' then no address book will be displayed or only the +// addressbook which is created by a plugin (like CardDAV). +$config['address_book_type'] = 'sql'; + +// In order to enable public ldap search, configure an array like the Verisign +// example further below. if you would like to test, simply uncomment the example. +// Array key must contain only safe characters, ie. a-zA-Z0-9_ +$config['ldap_public'] = array(); + +// If you are going to use LDAP for individual address books, you will need to +// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it. +// +// The recommended directory structure for LDAP is to store all the address book entries +// under the users main entry, e.g.: +// +// o=root +// ou=people +// uid=user@domain +// mail=contact@contactdomain +// +// So the base_dn would be uid=%fu,ou=people,o=root +// The bind_dn would be the same as based_dn or some super user login. +/* + * example config for Verisign directory + * +$config['ldap_public']['Verisign'] = array( + 'name' => 'Verisign.com', + // Replacement variables supported in host names: + // %h - user's IMAP hostname + // %n - hostname ($_SERVER['SERVER_NAME']) + // %t - hostname without the first part + // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) + // %z - IMAP domain (IMAP hostname without the first part) + // For example %n = mail.domain.tld, %t = domain.tld + 'hosts' => array('directory.verisign.com'), + 'port' => 389, + 'use_tls' => false, + 'ldap_version' => 3, // using LDAPv3 + 'network_timeout' => 10, // The timeout (in seconds) for connect + bind arrempts. This is only supported in PHP >= 5.3.0 with OpenLDAP 2.x + 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login. + // %fu - The full username provided, assumes the username is an email + // address, uses the username_domain value if not an email address. + // %u - The username prior to the '@'. + // %d - The domain name after the '@'. + // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" + // %dn - DN found by ldap search when search_filter/search_base_dn are used + 'base_dn' => '', + 'bind_dn' => '', + 'bind_pass' => '', + // It's possible to bind for an individual address book + // The login name is used to search for the DN to bind with + 'search_base_dn' => '', + 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))' + // DN and password to bind as before searching for bind DN, if anonymous search is not allowed + 'search_bind_dn' => '', + 'search_bind_pw' => '', + // Default for %dn variable if search doesn't return DN value + 'search_dn_default' => '', + // Optional authentication identifier to be used as SASL authorization proxy + // bind_dn need to be empty + 'auth_cid' => '', + // SASL authentication method (for proxy auth), e.g. DIGEST-MD5 + 'auth_method' => '', + // Indicates if the addressbook shall be hidden from the list. + // With this option enabled you can still search/view contacts. + 'hidden' => false, + // Indicates if the addressbook shall not list contacts but only allows searching. + 'searchonly' => false, + // Indicates if we can write to the LDAP directory or not. + // If writable is true then these fields need to be populated: + // LDAP_Object_Classes, required_fields, LDAP_rdn + 'writable' => false, + // To create a new contact these are the object classes to specify + // (or any other classes you wish to use). + 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'), + // The RDN field that is used for new entries, this field needs + // to be one of the search_fields, the base of base_dn is appended + // to the RDN to insert into the LDAP directory. + 'LDAP_rdn' => 'cn', + // The required fields needed to build a new contact as required by + // the object classes (can include additional fields not required by the object classes). + 'required_fields' => array('cn', 'sn', 'mail'), + 'search_fields' => array('mail', 'cn'), // fields to search in + // mapping of contact fields to directory attributes + // for every attribute one can specify the number of values (limit) allowed. + // default is 1, a wildcard * means unlimited + 'fieldmap' => array( + // Roundcube => LDAP:limit + 'name' => 'cn', + 'surname' => 'sn', + 'firstname' => 'givenName', + 'jobtitle' => 'title', + 'email' => 'mail:*', + 'phone:home' => 'homePhone', + 'phone:work' => 'telephoneNumber', + 'phone:mobile' => 'mobile', + 'phone:pager' => 'pager', + 'street' => 'street', + 'zipcode' => 'postalCode', + 'region' => 'st', + 'locality' => 'l', + // if you country is a complex object, you need to configure 'sub_fields' below + 'country' => 'c', + 'organization' => 'o', + 'department' => 'ou', + 'jobtitle' => 'title', + 'notes' => 'description', + // these currently don't work: + // 'phone:workfax' => 'facsimileTelephoneNumber', + // 'photo' => 'jpegPhoto', + // 'manager' => 'manager', + // 'assistant' => 'secretary', + ), + // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country' + 'sub_fields' => array(), + // Generate values for the following LDAP attributes automatically when creating a new record + 'autovalues' => array( + // 'uid' => 'md5(microtime())', // You may specify PHP code snippets which are then eval'ed + // 'mail' => '{givenname}.{sn}@mydomain.com', // or composite strings with placeholders for existing attributes + ), + 'sort' => 'cn', // The field to sort the listing by. + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act + 'fuzzy_search' => true, // server allows wildcard search + 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it) + 'numsub_filter' => '(objectClass=organizationalUnit)', // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting + 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit. + 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. + 'referrals' => true|false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups + + // definition for contact groups (uncomment if no groups are supported) + // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above) + // if the groups base_dn is empty, the contact base_dn is used for the groups as well + // -> in this case, assure that groups and contacts are separated due to the concernig filters! + 'groups' => array( + 'base_dn' => '', + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=groupOfNames)', + 'object_classes' => array("top", "groupOfNames"), + 'member_attr' => 'member', // name of the member attribute, e.g. uniqueMember + 'name_attr' => 'cn', // attribute to be used as group name + ), +); +*/ + +// An ordered array of the ids of the addressbooks that should be searched +// when populating address autocomplete fields server-side. ex: array('sql','Verisign'); +$config['autocomplete_addressbooks'] = array('sql'); + +// The minimum number of characters required to be typed in an autocomplete field +// before address books will be searched. Most useful for LDAP directories that +// may need to do lengthy results building given overly-broad searches +$config['autocomplete_min_length'] = 1; + +// Number of parallel autocomplete requests. +// If there's more than one address book, n parallel (async) requests will be created, +// where each request will search in one address book. By default (0), all address +// books are searched in one request. +$config['autocomplete_threads'] = 0; + +// Max. numer of entries in autocomplete popup. Default: 15. +$config['autocomplete_max'] = 15; + +// show address fields in this order +// available placeholders: {street}, {locality}, {zipcode}, {country}, {region} +$config['address_template'] = '{street}
{locality} {zipcode}
{country} {region}'; + +// Matching mode for addressbook search (including autocompletion) +// 0 - partial (*abc*), default +// 1 - strict (abc) +// 2 - prefix (abc*) +// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode +$config['addressbook_search_mode'] = 0; + +// ---------------------------------- +// USER PREFERENCES +// ---------------------------------- + +// Use this charset as fallback for message decoding +$config['default_charset'] = 'ISO-8859-1'; + +// skin name: folder from skins/ +$config['skin'] = 'larry'; + +// Enables using standard browser windows (that can be handled as tabs) +// instead of popup windows +$config['standard_windows'] = false; + +// show up to X items in messages list view +$config['mail_pagesize'] = 50; + +// show up to X items in contacts list view +$config['addressbook_pagesize'] = 50; + +// sort contacts by this col (preferably either one of name, firstname, surname) +$config['addressbook_sort_col'] = 'surname'; + +// the way how contact names are displayed in the list +// 0: display name +// 1: (prefix) firstname middlename surname (suffix) +// 2: (prefix) surname firstname middlename (suffix) +// 3: (prefix) surname, firstname middlename (suffix) +$config['addressbook_name_listing'] = 0; + +// use this timezone to display date/time +// valid timezone identifers are listed here: php.net/manual/en/timezones.php +// 'auto' will use the browser's timezone settings +$config['timezone'] = 'auto'; + +// prefer displaying HTML messages +$config['prefer_html'] = true; + +// display remote inline images +// 0 - Never, always ask +// 1 - Ask if sender is not in address book +// 2 - Always show inline images +$config['show_images'] = 0; + +// open messages in new window +$config['message_extwin'] = false; + +// open message compose form in new window +$config['compose_extwin'] = false; + +// compose html formatted messages by default +// 0 - never, 1 - always, 2 - on reply to HTML message, 3 - on forward or reply to HTML message +$config['htmleditor'] = 0; + +// show pretty dates as standard +$config['prettydate'] = true; + +// save compose message every 300 seconds (5min) +$config['draft_autosave'] = 300; + +// default setting if preview pane is enabled +$config['preview_pane'] = false; + +// Mark as read when viewed in preview pane (delay in seconds) +// Set to -1 if messages in preview pane should not be marked as read +$config['preview_pane_mark_read'] = 0; + +// Clear Trash on logout +$config['logout_purge'] = false; + +// Compact INBOX on logout +$config['logout_expunge'] = false; + +// Display attached images below the message body +$config['inline_images'] = true; + +// Encoding of long/non-ascii attachment names: +// 0 - Full RFC 2231 compatible +// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default) +// 2 - Full 2047 compatible +$config['mime_param_folding'] = 1; + +// Set true if deleted messages should not be displayed +// This will make the application run slower +$config['skip_deleted'] = false; + +// Set true to Mark deleted messages as read as well as deleted +// False means that a message's read status is not affected by marking it as deleted +$config['read_when_deleted'] = true; + +// Set to true to never delete messages immediately +// Use 'Purge' to remove messages marked as deleted +$config['flag_for_deletion'] = false; + +// Default interval for auto-refresh requests (in seconds) +// These are requests for system state updates e.g. checking for new messages, etc. +// Setting it to 0 disables the feature. +$config['refresh_interval'] = 60; + +// If true all folders will be checked for recent messages +$config['check_all_folders'] = false; + +// If true, after message delete/move, the next message will be displayed +$config['display_next'] = true; + +// 0 - Do not expand threads +// 1 - Expand all threads automatically +// 2 - Expand only threads with unread messages +$config['autoexpand_threads'] = 0; + +// When replying: +// -1 - don't cite the original message +// 0 - place cursor below the original message +// 1 - place cursor above original message (top posting) +$config['reply_mode'] = 0; + +// When replying strip original signature from message +$config['strip_existing_sig'] = true; + +// Show signature: +// 0 - Never +// 1 - Always +// 2 - New messages only +// 3 - Forwards and Replies only +$config['show_sig'] = 1; + +// Use MIME encoding (quoted-printable) for 8bit characters in message body +$config['force_7bit'] = false; + +// Defaults of the search field configuration. +// The array can contain a per-folder list of header fields which should be considered when searching +// The entry with key '*' stands for all folders which do not have a specific list set. +// Please note that folder names should to be in sync with $config['default_folders'] +$config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1)); + +// Defaults of the addressbook search field configuration. +$config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); + +// 'Delete always' +// This setting reflects if mail should be always deleted +// when moving to Trash fails. This is necessary in some setups +// when user is over quota and Trash is included in the quota. +$config['delete_always'] = false; + +// Directly delete messages in Junk instead of moving to Trash +$config['delete_junk'] = false; + +// Behavior if a received message requests a message delivery notification (read receipt) +// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) +// 3 = send automatically if sender is in addressbook, otherwise ask the user +// 4 = send automatically if sender is in addressbook, otherwise ignore +$config['mdn_requests'] = 0; + +// Return receipt checkbox default state +$config['mdn_default'] = 0; + +// Delivery Status Notification checkbox default state +$config['dsn_default'] = 0; + +// Place replies in the folder of the message being replied to +$config['reply_same_folder'] = false; + +// Sets default mode of Forward feature to "forward as attachment" +$config['forward_attachment'] = false; + +// Defines address book (internal index) to which new contacts will be added +// By default it is the first writeable addressbook. +// Note: Use '0' for built-in address book. +$config['default_addressbook'] = null; + +// Enables spell checking before sending a message. +$config['spellcheck_before_send'] = false; + +// Skip alternative email addresses in autocompletion (show one address per contact) +$config['autocomplete_single'] = false; + +// Default font for composed HTML message. +// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New, +// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana +$config['default_font'] = 'Verdana'; + +// Enables display of email address with name instead of a name (and address in title) +$config['message_show_email'] = false; -- cgit v1.2.3 From 9bacb2cd3f7e8f96a29f651460954965c400aac6 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Fri, 28 Jun 2013 22:27:59 +0200 Subject: Prepare config migration: - Show warning in installer and hints how to migrate - Let update.sh create the new config file if legacy config is detected - Provide a sample config file for manual configuration - Define a list of options which always should be written to local config --- INSTALL | 11 +++--- bin/update.sh | 30 +++++++++++----- config/config.inc.php.sample | 85 ++++++++++++++++++++++++++++++++++++++++++++ config/defaults.inc.php | 12 +++---- installer/config.php | 13 ++++--- installer/index.php | 12 +++++-- installer/rcube_install.php | 7 +++- 7 files changed, 144 insertions(+), 26 deletions(-) create mode 100644 config/config.inc.php.sample (limited to 'config') diff --git a/INSTALL b/INSTALL index 4573c55af..b80d3323b 100644 --- a/INSTALL +++ b/INSTALL @@ -141,10 +141,13 @@ Best solution is to install a cronjob running this script daily. MANUAL CONFIGURATION ==================== -First of all, rename the files config/*.inc.php.dist to config/*.inc.php. -You can then change these files according to your environment and your needs. -Details about the config parameters can be found in the config files. -See http://trac.roundcube.net/wiki/Howto_Install for even more guidance. +First of all, copy the sample configuration file config/config.inc.php.sample +to config/config.inc.php and make the necessary adjustments according to your +environment and your needs. More configuration options can be copied from the +config/defaults.inc.php file into your local config.inc.php file as needed. +Read the comments above the individual configuration options to find out what +they do or read http://trac.roundcube.net/wiki/Howto_Install for even more +guidance. You can also modify the default .htaccess file. This is necessary to increase the allowed size of file attachments, for example: diff --git a/bin/update.sh b/bin/update.sh index 1a6fbd32d..b5000bbe5 100755 --- a/bin/update.sh +++ b/bin/update.sh @@ -36,17 +36,17 @@ if (!$opts['version']) { $opts['version'] = RCMAIL_VERSION; } -if ($opts['version'] && version_compare(version_parse($opts['version']), version_parse(RCMAIL_VERSION), '>=')) - die("Nothing to be done here. Bye!\n"); - - $RCI = rcube_install::get_instance(); $RCI->load_config(); +if ($opts['version'] && version_compare(version_parse($opts['version']), version_parse(RCMAIL_VERSION), '>=') && !$RCI->legacy_config) + die("Nothing to be done here. Bye!\n"); + + if ($RCI->configured) { $success = true; - if ($messages = $RCI->check_config()) { + if (($messages = $RCI->check_config()) || $RCI->legacy_config) { $success = false; $err = 0; @@ -74,6 +74,12 @@ if ($RCI->configured) { echo "\n"; } + if (!$err && $RCI->legacy_config) { + echo "WARNING: Your configuration needs to be migrated!\n"; + echo "We changed the configuration files structure and your two config files main.inc.php and db.inc.php have to be merged into one single file.\n"; + $err++; + } + // ask user to update config files if ($err) { echo "Do you want me to fix your local configuration? (y/N)\n"; @@ -81,13 +87,13 @@ if ($RCI->configured) { // positive: let's merge the local config with the defaults if (strtolower($input) == 'y') { - $error = $writed = false; + $error = $written = false; // backup current config echo ". backing up the current config file(s)...\n"; foreach (array('config', 'main', 'db') as $file) { - if (file_exists(RCMAIL_CONFIG_DIR . '/' . $file . '.inc.php')) + if (file_exists(RCMAIL_CONFIG_DIR . '/' . $file . '.inc.php')) { if (!copy(RCMAIL_CONFIG_DIR . '/' . $file . '.inc.php', RCMAIL_CONFIG_DIR . '/' . $file . '.old.php')) { $error = true; } @@ -97,11 +103,11 @@ if ($RCI->configured) { if (!$error) { $RCI->merge_config(); echo ". writing " . RCMAIL_CONFIG_DIR . "/config.inc.php...\n"; - $writed = file_put_contents(RCMAIL_CONFIG_DIR . '/config.inc.php', $RCI->create_config()); + $written = file_put_contents(RCMAIL_CONFIG_DIR . '/config.inc.php', $RCI->create_config()); } // Success! - if ($writed) { + if ($written) { echo "Done.\n"; echo "Your configuration files are now up-to-date!\n"; @@ -110,6 +116,12 @@ if ($RCI->configured) { foreach ($messages['missing'] as $msg) echo "- '" . $msg['prop'] . ($msg['name'] ? "': " . $msg['name'] : "'") . "\n"; } + + if ($RCI->legacy_config) { + foreach (array('main', 'db') as $file) { + @unlink(RCMAIL_CONFIG_DIR . '/' . $file . '.inc.php'); + } + } } else { echo "Failed to write config file(s)!\n"; diff --git a/config/config.inc.php.sample b/config/config.inc.php.sample new file mode 100644 index 000000000..22a269460 --- /dev/null +++ b/config/config.inc.php.sample @@ -0,0 +1,85 @@ +bool_config_props = array( $_SESSION['allowinstaller'] = true; if (!empty($_POST['submit'])) { - echo '

Copy or download the following configuration and save'; - echo ' as config.inc.php within the '.RCMAIL_CONFIG_DIR.' directory of your Roundcube installation.
'; + echo '

Copy or download the following configuration and save it'; + echo ' as config.inc.php within the '.RCUBE_CONFIG_DIR.' directory of your Roundcube installation.
'; echo ' Make sure that there are no characters outside the <?php ?> brackets when saving the file.'; - echo ' 

'; + echo ' '; + if ($RCI->legacy_config) { + echo '

Afterwards, please remove the old configuration files main.inc.php and db.inc.php'; + echo ' from the config directory.'; + } + echo '

'; $textbox = new html_textarea(array('rows' => 16, 'cols' => 60, 'class' => "configfile")); echo $textbox->show(($_SESSION['config'] = $RCI->create_config())); @@ -640,7 +645,7 @@ $select_param_folding->add('Full RFC 2231 (Roundcube, Thunderbird)', '0'); $select_param_folding->add('RFC 2047/2231 (MS Outlook, OE)', '1'); $select_param_folding->add('Full RFC 2047 (deprecated)', '2'); -echo $select_param_folding->show(intval($RCI->getprop('mime_param_folding'))); +echo $select_param_folding->show(strval($RCI->getprop('mime_param_folding'))); ?>
How to encode attachment long/non-ascii names
diff --git a/installer/index.php b/installer/index.php index 4e4a04326..dc4c0a43f 100644 --- a/installer/index.php +++ b/installer/index.php @@ -121,8 +121,16 @@ if ($RCI->configured && empty($_REQUEST['_step'])) { // exit if installation is complete if ($RCI->configured && !$RCI->getprop('enable_installer') && !$_SESSION['allowinstaller']) { // header("HTTP/1.0 404 Not Found"); - echo '

The installer is disabled!

'; - echo '

To enable it again, set $rcmail_config[\'enable_installer\'] = true; in RCUBE_CONFIG_DIR/config.inc.php

'; + if ($RCI->configured && $RCI->legacy_config) { + echo '

Your configuration needs to be migrated!

'; + echo '

We changed the configuration files structure and your installation needs to be updated accordingly.

'; + echo '

Please run the bin/update.sh script from the command line or set

  $rcmail_config[\'enable_installer\'] = true;

'; + echo ' in your RCUBE_CONFIG_DIR/main.inc.php to let the installer help you migrating it.

'; + } + else { + echo '

The installer is disabled!

'; + echo '

To enable it again, set $rcmail_config[\'enable_installer\'] = true; in RCUBE_CONFIG_DIR/config.inc.php

'; + } echo ''; exit; } diff --git a/installer/rcube_install.php b/installer/rcube_install.php index 5d766f4d0..06622de4d 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -28,10 +28,12 @@ class rcube_install var $failures = 0; var $config = array(); var $configured = false; + var $legacy_config = false; var $last_error = null; var $email_pattern = '([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9])'; var $bool_config_props = array(); + var $local_config = array('db_dsnw', 'default_host', 'support_url', 'des_key', 'plugins'); var $obsolete_config = array('db_backend', 'double_auth'); var $replaced_config = array( 'skin_path' => 'skin', @@ -157,6 +159,9 @@ class rcube_install $is_default = !isset($_POST["_$prop"]); $value = !$is_default || $this->bool_config_props[$prop] ? $_POST["_$prop"] : $default; + if ($prop == 'enable_installer') + $value = false; + // convert some form data if ($prop == 'debug_level' && !$is_default) { if (is_array($value)) { @@ -211,7 +216,7 @@ class rcube_install } // skip this property - if (!array_key_exists($prop, $this->defaults) || ($value == $this->defaults[$prop])) { + if ((!array_key_exists($prop, $this->defaults) || ($value == $this->defaults[$prop])) && !in_array($prop, $this->local_config)) { continue; } -- cgit v1.2.3 From 447fc6a657c6dc588510750617068bdd47209569 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Fri, 28 Jun 2013 23:04:10 +0200 Subject: Improve update.sh script; fix bad wording --- bin/update.sh | 22 ++++++++++------------ config/config.inc.php.sample | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) (limited to 'config') diff --git a/bin/update.sh b/bin/update.sh index b5000bbe5..133d9f7ab 100755 --- a/bin/update.sh +++ b/bin/update.sh @@ -5,7 +5,7 @@ | bin/update.sh | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2010-2011, The Roundcube Dev Team | + | Copyright (C) 2010-2013, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -25,7 +25,7 @@ require_once INSTALL_PATH . 'program/include/clisetup.php'; require_once INSTALL_PATH . 'installer/rcube_install.php'; // get arguments -$opts = rcube_utils::get_opt(array('v' => 'version')); +$opts = rcube_utils::get_opt(array('v' => 'version', 'y' => 'accept')); // ask user if no version is specified if (!$opts['version']) { @@ -39,10 +39,6 @@ if (!$opts['version']) { $RCI = rcube_install::get_instance(); $RCI->load_config(); -if ($opts['version'] && version_compare(version_parse($opts['version']), version_parse(RCMAIL_VERSION), '>=') && !$RCI->legacy_config) - die("Nothing to be done here. Bye!\n"); - - if ($RCI->configured) { $success = true; @@ -82,11 +78,13 @@ if ($RCI->configured) { // ask user to update config files if ($err) { - echo "Do you want me to fix your local configuration? (y/N)\n"; - $input = trim(fgets(STDIN)); + if (!$opts['accept']) { + echo "Do you want me to fix your local configuration? (y/N)\n"; + $input = trim(fgets(STDIN)); + } // positive: let's merge the local config with the defaults - if (strtolower($input) == 'y') { + if ($opts['accept'] || strtolower($input) == 'y') { $error = $written = false; // backup current config @@ -146,8 +144,8 @@ if ($RCI->configured) { } } - // check database schema - if ($RCI->config['db_dsnw']) { + // update database schema + if ($RCI->config['db_dsnw'] && $opts['version'] && version_compare(version_parse($opts['version']), version_parse(RCMAIL_VERSION), '<')) { echo "Executing database schema update.\n"; system(INSTALL_PATH . "bin/updatedb.sh --package=roundcube --version=" . $opts['version'] . " --dir=" . INSTALL_PATH . DIRECTORY_SEPARATOR . "SQL", $res); @@ -156,7 +154,7 @@ if ($RCI->configured) { } // index contacts for fulltext searching - if (version_compare(version_parse($opts['version']), '0.6.0', '<')) { + if ($opts['version'] && version_compare(version_parse($opts['version']), '0.6.0', '<')) { system(INSTALL_PATH . 'bin/indexcontacts.sh'); } diff --git a/config/config.inc.php.sample b/config/config.inc.php.sample index 22a269460..9a42ba9f5 100644 --- a/config/config.inc.php.sample +++ b/config/config.inc.php.sample @@ -5,7 +5,7 @@ | Local configuration for the Roundcube Webmail installation. | | | | This is a sample configuration file only containing the minumum | - | setup required for a functional installation. Copy more config | + | setup required for a functional installation. Copy more options | | from defaults.inc.php to this file to override the defaults. | | | | This file is part of the Roundcube Webmail client | -- cgit v1.2.3