Merge branch '230-rebase-to-stretch' into pu
This commit is contained in:
		
						commit
						529bf3bd45
					
				|  | @ -2,14 +2,14 @@ language: php | |||
| services: | ||||
|   - mysql | ||||
| php: | ||||
|   - 7.0 | ||||
|   - 5.6 | ||||
|   - 5.5 | ||||
|   - 5.4 | ||||
|   - 5.3 | ||||
| script: phpunit --coverage-clover=coverage.clover | ||||
| script: ../vendor/bin/phpunit --coverage-clover=coverage.clover | ||||
| before_script: | ||||
| # pear.phpunit.de offline, and travis have phpunit  | ||||
| #  - pear channel-discover pear.phpunit.de | ||||
| #  - pear install phpunit/DbUnit | ||||
|   - composer require phpunit/dbunit | ||||
|   - mysql -e 'create database alternc_test DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;' | ||||
|   - cd phpunit | ||||
| after_script: | ||||
|  |  | |||
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Makefile
								
								
								
								
							|  | @ -21,7 +21,7 @@ | |||
| # Purpose of file: Global Makefile 
 | ||||
| # ----------------------------------------------------------------------
 | ||||
| MAJOR=$(shell sed -ne 's/^[^(]*(\([^)]*\)).*/\1/;1p' debian/changelog) | ||||
| VERSION=$MAJOR | ||||
| VERSION=$(MAJOR) | ||||
| export VERSION | ||||
| 
 | ||||
| build: | ||||
|  |  | |||
|  | @ -19,10 +19,10 @@ This project native tongue is French, and the code is commented in English. The | |||
| 
 | ||||
| ## Developper information | ||||
| 
 | ||||
| * This software is built around a Debian package for Squeeze whose packaging instructions are located in [debian/](debian/) folder | ||||
| * This software is built around a Debian package for Jessie whose packaging instructions are located in [debian/](debian/) folder | ||||
| * To **build the packages**, clone this repository in a Debian machine and use `debuild` or `dpkg-buildpackage` from source code root. | ||||
| * If you want to **build it for Squeeze**, clone the source and patch it for Squeeze using [squeeze/patch.sh](squeeze/patch.sh) script. You'll be able to use dpkg-buildpackage to build the Wheezy version. | ||||
| * If you want to **build it for Wheezy**, clone the source and patch it for Wheezy using [wheezy/patch.sh](wheezy/patch.sh) script. You'll be able to use dpkg-buildpackage to build the Wheezy version. | ||||
| * If you want to **build it for Jessie**, clone the source and patch it for Wheezy using [wheezy/patch.sh](wheezy/patch.sh) script then patch it for Jessie using [jessie/patch.sh](jessie/patch.sh) script. You'll be able to use dpkg-buildpackage to build the Jessie version. | ||||
| 
 | ||||
| * The web control panel pages written in PHP are located in [bureau/admin](bureau/admin) and the associated PHP classes doing the stuff are in [bureau/class](bureau/class). | ||||
| 
 | ||||
|  |  | |||
|  | @ -27,10 +27,10 @@ case "$1" in | |||
| 	chown -R www-data:root /etc/roundcube/debian-db.php | ||||
| 	chmod -R 460 /etc/roundcube/debian-db.php | ||||
| 
 | ||||
| 	dpkg-statoverride --list /etc/roundcube/main.inc.php >/dev/null &&  | ||||
| 	dpkg-statoverride --remove /etc/roundcube/main.inc.php | ||||
| 	chown -R www-data:root /etc/roundcube/main.inc.php | ||||
| 	chmod -R 460 /etc/roundcube/main.inc.php | ||||
| 	dpkg-statoverride --list /etc/roundcube/config.inc.php >/dev/null &&  | ||||
| 	dpkg-statoverride --remove /etc/roundcube/config.inc.php | ||||
| 	chown -R www-data:root /etc/roundcube/config.inc.php | ||||
| 	chmod -R 460 /etc/roundcube/config.inc.php | ||||
| 
 | ||||
| 	dpkg-statoverride --list /var/log/roundcube >/dev/null &&  | ||||
| 	dpkg-statoverride --remove /var/log/roundcube | ||||
|  |  | |||
|  | @ -1,3 +1,17 @@ | |||
| alternc (3.3.10) stable; urgency=low | ||||
| 
 | ||||
|   * Version identical to 3.1 for Squeeze | ||||
|   * Includes small patches / dependency for apache & dovecot 2.0 for Jessie | ||||
| 
 | ||||
|  -- Benjamin Sonntag <benjamin@sonntag.fr>  Fri, 15 Jan 2016 15:26:00 +0100 | ||||
| 
 | ||||
| alternc (3.2.10) oldstable; urgency=low | ||||
| 
 | ||||
|   * Version identical to 3.1 for Squeeze | ||||
|   * Includes a small dovecot patch / dependency for dovecot 2.0 for Wheezy | ||||
| 
 | ||||
|  -- Benjamin Sonntag <benjamin@sonntag.fr>  Fri, 15 Jan 2016 15:26:00 +0100 | ||||
| 
 | ||||
| alternc (3.1.11) oldoldstable; urgency=low | ||||
| 
 | ||||
|   * fix This is a big security upgrade of AlternC 3.x | ||||
|  |  | |||
|  | @ -38,16 +38,19 @@ Depends: debianutils (>= 1.13.1) | |||
|        , sudo | ||||
|        , adduser | ||||
|        , dnsutils | ||||
|        , dovecot-common (>=1:1.2.15) | ||||
|        , dovecot-common(<< 1:2.0) | ||||
|        , dovecot-imapd (>= 1:1.2.15) | ||||
|        , dovecot-pop3d (>= 1:1.2.15) | ||||
|        , dovecot-core (>=1:2.1.7) | ||||
|        , dovecot-imapd (>=1:2.1.7) | ||||
|        , dovecot-pop3d (>=1:2.1.7) | ||||
|        , dovecot-mysql | ||||
|        , vlogger | ||||
|        , mailutils | mailx | ||||
|        , zip | ||||
|        , incron | ||||
|        , cron | ||||
|        , opendkim | ||||
|        , opendkim-tools | ||||
|        , dovecot-sieve | ||||
|        , dovecot-managesieved | ||||
|        , mysql-client(>= 5.0) | mariadb-client | ||||
|        , php5-curl | php7.0-curl | ||||
|        , quota | ||||
|  | @ -123,15 +126,18 @@ Depends: debianutils (>= 1.13.1) | |||
|          , gettext (>= 0.10.40-5) | ||||
|          , adduser | ||||
|          , sudo | ||||
|          , dovecot-common (>=1:1.2.15) | ||||
|          , dovecot-common(<< 1:2.0) | ||||
|          , dovecot-imapd (>= 1:1.2.15) | ||||
|          , dovecot-pop3d (>= 1:1.2.15) | ||||
|          , dovecot-core (>=1:2.1.7) | ||||
|          , dovecot-imapd (>=1:2.1.7) | ||||
|          , dovecot-pop3d (>=1:2.1.7) | ||||
|          , dovecot-mysql | ||||
|          , vlogger | ||||
|          , mailutils | mailx | ||||
|          , incron | ||||
|          , cron | ||||
|          , opendkim | ||||
|          , opendkim-tools | ||||
|          , dovecot-sieve | ||||
|          , dovecot-managesieved | ||||
|          , mysql-client(>= 5.0) | mariadb-client | ||||
|          , php5-curl | ||||
|          , ${misc:Depends} | ||||
|  |  | |||
|  | @ -9,12 +9,9 @@ | |||
| # Define the default user and group for mpm-itk | ||||
| AssignUserId www-data www-data | ||||
| 
 | ||||
| # Logformat information | ||||
| Include /etc/alternc/apache_logformat.conf | ||||
| 
 | ||||
| # Deny access to the root filesystem | ||||
| <Directory /> | ||||
|   Options FollowSymLinks | ||||
|   Options +FollowSymLinks | ||||
|   AllowOverride None | ||||
|   Order allow,deny | ||||
|   Deny from all | ||||
|  | @ -45,7 +42,7 @@ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | |||
| 
 | ||||
| <Directory %%ALTERNC_HTML%% > | ||||
|   AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
|   Options Indexes Includes -FollowSymLinks MultiViews SymLinksIfOwnerMatch | ||||
|   Options -Indexes +Includes -FollowSymLinks +MultiViews +SymLinksIfOwnerMatch | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
|   php_admin_flag safe_mode_gid off | ||||
|  | @ -65,13 +62,13 @@ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | |||
| 
 | ||||
| <Directory /usr/share/phpmyadmin> | ||||
|   AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
|   Options Indexes Includes FollowSymLinks MultiViews | ||||
|   Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
| </Directory> | ||||
| <Directory /usr/share/squirrelmail> | ||||
|   AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
|   Options Indexes Includes FollowSymLinks MultiViews | ||||
|   Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
| </Directory> | ||||
|  |  | |||
|  | @ -33,5 +33,5 @@ | |||
| 
 | ||||
| 
 | ||||
|   # will be used to define aliases such as /javascript /webmail /squirrelmail ... | ||||
|   Include /etc/alternc/apache-panel.d/*.conf | ||||
|   IncludeOptional /etc/alternc/apache-panel.d/*.conf | ||||
| 
 | ||||
|  |  | |||
|  | @ -9,8 +9,11 @@ | |||
|     php_admin_value upload_tmp_dir %%account_root%%/tmp | ||||
|     php_admin_value sendmail_path '/usr/lib/alternc/sendmail "%%mail_account%%" ' | ||||
|     php_admin_flag mail.add_x_header on | ||||
|     Options +MultiViews -FollowSymLinks +SymLinksIfOwnerMatch | ||||
|     Options -MultiViews -FollowSymLinks +SymLinksIfOwnerMatch | ||||
|     AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
|     Order allow,deny | ||||
|     Allow from all | ||||
|     Require all granted | ||||
|   </Directory> | ||||
| 
 | ||||
| # If you want to log the errors also in /var/log/alternc/sites/  | ||||
|  |  | |||
|  | @ -1,47 +0,0 @@ | |||
| # AUTO GENERATED FILE | ||||
| # Modify template in /etc/alternc/templates/ | ||||
| # and launch alternc.install if you want  | ||||
| # to modify this file. | ||||
| # | ||||
| 
 | ||||
| connect=host=%%dbhost%% dbname=%%dbname%% user=%%db_mail_user%% password=%%db_mail_pwd%% | ||||
| #connect = host=localhost dbname=mails user=testuser password=pass | ||||
| 
 | ||||
| # CREATE TABLE quota ( | ||||
| #   username varchar(100) not null, | ||||
| #   bytes bigint not null default 0, | ||||
| #   messages integer not null default 0, | ||||
| #   primary key (username) | ||||
| # ); | ||||
| 
 | ||||
| map { | ||||
|   pattern = priv/quota/storage | ||||
|   table = dovecot_quota | ||||
|   username_field = user | ||||
|   value_field = quota_dovecot  | ||||
| } | ||||
| map { | ||||
|  pattern = priv/quota/messages | ||||
|  table = dovecot_quota | ||||
|  username_field = user | ||||
|  value_field = nb_messages | ||||
| } | ||||
| 
 | ||||
| # CREATE TABLE expires ( | ||||
| #   username varchar(100) not null, | ||||
| #   mailbox varchar(255) not null, | ||||
| #   expire_stamp integer not null, | ||||
| #   primary key (username, mailbox) | ||||
| # ); | ||||
| 
 | ||||
| #map { | ||||
|  # pattern = shared/expire/$user/$mailbox | ||||
|  # table = expires | ||||
|  # value_field = expire_stamp | ||||
| 
 | ||||
|  # fields { | ||||
|  #   username = $user | ||||
|  #   mailbox = $mailbox | ||||
|  # } | ||||
| #} | ||||
| 
 | ||||
|  | @ -1,132 +0,0 @@ | |||
| # AUTO GENERATED FILE | ||||
| # Modify template in /etc/alternc/templates/ | ||||
| # and launch alternc.install if you want  | ||||
| # to modify this file. | ||||
| # | ||||
| 
 | ||||
| # This file is opened as root, so it should be owned by root and mode 0600. | ||||
| # | ||||
| # http://wiki.dovecot.org/AuthDatabase/SQL | ||||
| # | ||||
| # For the sql passdb module, you'll need a database with a table that | ||||
| # contains fields for at least the username and password. If you want to | ||||
| # use the user@domain syntax, you might want to have a separate domain | ||||
| # field as well. | ||||
| # | ||||
| # If your users all have the same uig/gid, and have predictable home | ||||
| # directories, you can use the static userdb module to generate the home | ||||
| # dir based on the username and domain. In this case, you won't need fields | ||||
| # for home, uid, or gid in the database. | ||||
| # | ||||
| # If you prefer to use the sql userdb module, you'll want to add fields | ||||
| # for home, uid, and gid. Here is an example table: | ||||
| # | ||||
| # CREATE TABLE users ( | ||||
| #     username VARCHAR(128) NOT NULL, | ||||
| #     domain VARCHAR(128) NOT NULL, | ||||
| #     password VARCHAR(64) NOT NULL, | ||||
| #     home VARCHAR(255) NOT NULL, | ||||
| #     uid INTEGER NOT NULL, | ||||
| #     gid INTEGER NOT NULL, | ||||
| #     active CHAR(1) DEFAULT 'Y' NOT NULL | ||||
| # ); | ||||
| 
 | ||||
| # Database driver: mysql, pgsql, sqlite | ||||
| driver = mysql | ||||
| 
 | ||||
| # Database connection string. This is driver-specific setting. | ||||
| # | ||||
| # pgsql: | ||||
| #   For available options, see the PostgreSQL documention for the | ||||
| #   PQconnectdb function of libpq. | ||||
| # | ||||
| # mysql: | ||||
| #   Basic options emulate PostgreSQL option names: | ||||
| #     host, port, user, password, dbname | ||||
| # | ||||
| #   But also adds some new settings: | ||||
| #     client_flags        - See MySQL manual | ||||
| #     ssl_ca, ssl_ca_path - Set either one or both to enable SSL | ||||
| #     ssl_cert, ssl_key   - For sending client-side certificates to server | ||||
| #     ssl_cipher          - Set minimum allowed cipher security (default: HIGH) | ||||
| #     option_file         - Read options from the given file instead of | ||||
| #                           the default my.cnf location | ||||
| #     option_group        - Read options from the given group (default: client) | ||||
| #  | ||||
| #   You can connect to UNIX sockets by using host: host=/var/run/mysqld/mysqld.sock | ||||
| #   Note that currently you can't use spaces in parameters. | ||||
| # | ||||
| #   MySQL supports multiple host parameters for load balancing / HA. | ||||
| # | ||||
| # sqlite: | ||||
| #   The path to the database file. | ||||
| # | ||||
| # Examples: | ||||
| #   connect = host=192.168.1.1 dbname=users | ||||
| #   connect = host=sql.example.com dbname=virtual user=virtual password=blarg | ||||
| #   connect = /etc/dovecot/authdb.sqlite | ||||
| # | ||||
| connect = host=%%dbhost%% dbname=%%dbname%% user=%%db_mail_user%% password=%%db_mail_pwd%% | ||||
| 
 | ||||
| # Default password scheme. | ||||
| # | ||||
| # List of supported schemes is in | ||||
| # http://wiki.dovecot.org/Authentication/PasswordSchemes | ||||
| # | ||||
| default_pass_scheme = MD5 | ||||
| 
 | ||||
| # passdb query to retrieve the password. It can return fields: | ||||
| #   password - The user's password. This field must be returned. | ||||
| #   user - user@domain from the database. Needed with case-insensitive lookups. | ||||
| #   username and domain - An alternative way to represent the "user" field. | ||||
| # | ||||
| # The "user" field is often necessary with case-insensitive lookups to avoid | ||||
| # e.g. "name" and "nAme" logins creating two different mail directories. If | ||||
| # your user and domain names are in separate fields, you can return "username" | ||||
| # and "domain" fields instead of "user". | ||||
| # | ||||
| # The query can also return other fields which have a special meaning, see | ||||
| # http://wiki.dovecot.org/PasswordDatabase/ExtraFields | ||||
| # | ||||
| # Commonly used available substitutions (see http://wiki.dovecot.org/Variables | ||||
| # for full list): | ||||
| #   %u = entire user@domain | ||||
| #   %n = user part of user@domain | ||||
| #   %d = domain part of user@domain | ||||
| #  | ||||
| # Note that these can be used only as input to SQL query. If the query outputs | ||||
| # any of these substitutions, they're not touched. Otherwise it would be | ||||
| # difficult to have eg. usernames containing '%' characters. | ||||
| # | ||||
| # Example: | ||||
| #   password_query = SELECT userid AS user, pw AS password \ | ||||
| #     FROM users WHERE userid = '%u' AND active = 'Y' | ||||
| # | ||||
| #password_query = \ | ||||
| #  SELECT username, domain, password \ | ||||
| #  FROM users WHERE username = '%n' AND domain = '%d' | ||||
| 
 | ||||
| # userdb query to retrieve the user information. It can return fields: | ||||
| #   uid - System UID (overrides mail_uid setting) | ||||
| #   gid - System GID (overrides mail_gid setting) | ||||
| #   home - Home directory | ||||
| #   mail - Mail location (overrides mail_location setting) | ||||
| # | ||||
| # None of these are strictly required. If you use a single UID and GID, and | ||||
| # home or mail directory fits to a template string, you could use userdb static | ||||
| # instead. For a list of all fields that can be returned, see | ||||
| # http://wiki.dovecot.org/UserDatabase/ExtraFields | ||||
| # | ||||
| # Examples: | ||||
| #   user_query = SELECT home, uid, gid FROM users WHERE userid = '%u' | ||||
| #   user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u' | ||||
| #   user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u' | ||||
| # | ||||
| user_query = SELECT userdb_home AS home, userdb_uid AS uid, 1998 AS gid, userdb_quota_rule AS quota_rule FROM dovecot_view WHERE user = '%u'; | ||||
| 
 | ||||
| # If you wish to avoid two SQL lookups (passdb + userdb), you can use | ||||
| # userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll | ||||
| # also have to return userdb fields in password_query prefixed with "userdb_" | ||||
| # string. For example: | ||||
| password_query = SELECT user, password, userdb_home, userdb_uid, 1998 AS userdb_gid,userdb_quota_rule FROM dovecot_view where user= '%u';  | ||||
| 
 | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -79,7 +79,7 @@ if [ -e /etc/default/saslauthd ]; then | |||
| fi | ||||
| 
 | ||||
| if [ -e /etc/dovecot/dovecot.conf ]; then | ||||
|     CONFIG_FILES="$CONFIG_FILES etc/dovecot/dovecot.conf etc/dovecot/dovecot-sql.conf etc/dovecot/dovecot-dict-quota.conf" | ||||
|     CONFIG_FILES="$CONFIG_FILES etc/dovecot/alternc-sql.conf etc/dovecot/alternc-dict-quota.conf etc/dovecot/conf.d/95_alternc.conf" | ||||
| fi | ||||
| 
 | ||||
| INSTALLED_CONFIG_TAR="/var/lib/alternc/backups/etc-installed.tar.gz" | ||||
|  | @ -279,12 +279,20 @@ rm -f $SED_SCRIPT | |||
| # Ad-hoc fixes | ||||
| # | ||||
| 
 | ||||
| php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.\)\.so$/php\1/' | tail -1`" | ||||
| ln -fs /etc/alternc/alternc.ini /etc/$php/apache2/conf.d/alternc.ini || true | ||||
| ln -fs /etc/alternc/alternc.ini /etc/$php/cli/conf.d/alternc.ini || true | ||||
| php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.*\)\.so$/\1/' | tail -1`" | ||||
| if [ "$php" = "7.0" ] | ||||
| then | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php/$php/apache2/conf.d/alternc.ini || true | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php/$php/cli/conf.d/alternc.ini || true | ||||
| else | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php$php/apache2/conf.d/alternc.ini || true | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php$php/cli/conf.d/alternc.ini || true | ||||
| fi | ||||
| 
 | ||||
| if [ -x /usr/sbin/apache2 ]; then | ||||
|     # hook  | ||||
|     run-parts --arg=apache2 /usr/lib/alternc/install.d  | ||||
|     a2enmod mpm_itk | ||||
|      | ||||
|     s="" | ||||
|     # unused from AlternC 1.0, FIXME: remove it later | ||||
|  | @ -293,9 +301,9 @@ if [ -x /usr/sbin/apache2 ]; then | |||
|         a2dismod vhost_alias | ||||
|         s="apache2" | ||||
|     fi  | ||||
|     if ! [ -L /etc/apache2/mods-enabled/$php.load ] | ||||
|     if ! [ -L /etc/apache2/mods-enabled/php$php.load ] | ||||
|     then | ||||
| 	    a2enmod $php | ||||
| 	    a2enmod php$php | ||||
|     fi | ||||
|     if ! [ -L /etc/apache2/mods-enabled/rewrite.load ] | ||||
|     then | ||||
|  | @ -311,13 +319,14 @@ if [ -x /usr/sbin/apache2 ]; then | |||
|             a2enmod ssl | ||||
|             s="apache2" | ||||
|         fi | ||||
|         if [ ! -h /etc/apache2/conf.d/alternc-ssl.conf ] && [ -e /etc/apache2/conf.d/ ]; then | ||||
|             ln -sf /etc/alternc/apache2-ssl.conf /etc/apache2/conf.d/alternc-ssl.conf | ||||
|         if [ ! -h /etc/apache2/conf-available/alternc-ssl.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
|             ln -sf /etc/alternc/apache2-ssl.conf /etc/apache2/conf-available/alternc-ssl.conf | ||||
| 	    a2enconf alternc-ssl | ||||
|             s="apache2" | ||||
|         fi | ||||
| 
 | ||||
| 	# We enable dovecot SSL certificate instructions: (on wheezy we should use a new file in /etc/dovecot/conf.d/ ) | ||||
| 	sed -i -e 's#^ssl_cert_file.*$#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem#' -e 's#^ssl_key_file.*$#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key#' /etc/dovecot/dovecot.conf | ||||
| 	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/alternc/apache.pem" ; echo "ssl_key = </etc/alternc/apache.pem" ) >/etc/dovecot/conf.d/96_ssl.conf | ||||
| 
 | ||||
|     else | ||||
|         # We disable proftpd tls module | ||||
|  | @ -326,17 +335,18 @@ if [ -x /usr/sbin/apache2 ]; then | |||
|         cp /etc/proftpd/modules.conf /etc/alternc/templates/proftpd/ | ||||
| 
 | ||||
| 	# We disable dovecot SSL certificate instructions: (on wheezy we should remove a file in /etc/dovecot/conf.d/ ) | ||||
|         sed -i -e 's#^ssl_cert_file.*$#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem#' -e 's#^ssl_key_file.*$#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key#' /etc/dovecot/dovecot.conf | ||||
| 	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem" ; echo "ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key" ) >/etc/dovecot/conf.d/96_ssl.conf | ||||
| 
 | ||||
|         echo "SSL not configured" | ||||
|         echo "create a certificate in /etc/alternc/apache.pem and rerun alternc.install" | ||||
|     fi | ||||
|     if [ ! -h /etc/apache2/conf.d/alternc.conf ] && [ -e /etc/apache2/conf.d/ ]; then | ||||
|         ln -sf /etc/alternc/apache2.conf /etc/apache2/conf.d/alternc.conf | ||||
|     if [ ! -h /etc/apache2/conf-available/alternc.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
|         ln -sf /etc/alternc/apache2.conf /etc/apache2/conf-available/alternc.conf | ||||
| 	a2enconf alternc.conf | ||||
|         s="apache2" | ||||
|     fi | ||||
|     if [ -e /etc/apache2/sites-enabled/000-default ]; then | ||||
|         a2dissite default | ||||
|     if [ -e /etc/apache2/sites-enabled/000-default.conf ]; then | ||||
|         a2dissite 000-default | ||||
|         s="apache2" | ||||
|     fi | ||||
|     SERVICES="$SERVICES $s" | ||||
|  | @ -430,7 +440,7 @@ OLDDESTINATION=`postconf mydestination | awk -F '=' '{print $2}'` | |||
| echo "$OLDDESTINATION" | grep -q -v "$FQDN" && postconf -e "mydestination = $FQDN, $OLDDESTINATION" | ||||
| 
 | ||||
| # Remove phpmyadmin apache2 configuration | ||||
| rm -f /etc/apache2/conf.d/phpmyadmin.conf || true | ||||
| a2disconf phpmyadmin | ||||
| 
 | ||||
| # Configure PHPMyAdmin | ||||
| include_str='include("/etc/alternc/phpmyadmin.inc.php")' | ||||
|  | @ -582,9 +592,14 @@ else | |||
|     mysql --defaults-file=/etc/alternc/my.cnf -e "UPDATE db_servers SET host='$MYSQL_HOST', login='$MYSQL_USER', password='$MYSQL_PASS', client='$MYSQL_HOST_CLIENT' WHERE name='Default';" | ||||
| fi | ||||
| 
 | ||||
| #giving vmail user read access on dovecot sql file | ||||
| chgrp vmail /etc/dovecot/dovecot.conf | ||||
| chmod g+r /etc/dovecot/dovecot.conf | ||||
| # giving vmail user read access on dovecot sql file | ||||
| chgrp vmail /etc/dovecot/alternc-sql.conf | ||||
| chmod g+r /etc/dovecot/alternc-sql.conf | ||||
| # Override some dovecot 2.0 configuration that may have happened during dovecot postinst: | ||||
| sed -i -e 's/^ *!include/#!include/' /etc/dovecot/conf.d/10-auth.conf | ||||
| 
 | ||||
| # Changing owner of web panel's files | ||||
| chown -R alterncpanel:alterncpanel "/usr/share/alternc/panel/" | ||||
| 
 | ||||
| # We force the re-computing of the DNS zones, since we may have changed the IP address (see #460) | ||||
| /usr/bin/mysql --defaults-file="/etc/alternc/my.cnf" -B -e "update domaines set dns_action='UPDATE' WHERE gesdns=1;" | ||||
|  | @ -597,7 +612,7 @@ grep -q "^localhost\$" /etc/opendkim/TrustedHosts || echo "localhost" >>/etc/ope | |||
| grep -q "^$PUBLIC_IP\$" /etc/opendkim/TrustedHosts || echo "$PUBLIC_IP" >>/etc/opendkim/TrustedHosts | ||||
| 
 | ||||
| # Add opendkim to service to restart | ||||
| SERVICES="$SERVICES opendkim" | ||||
| SERVICES="$SERVICES opendkim bind9" | ||||
| 
 | ||||
| # hook  | ||||
| run-parts --arg=before-reload /usr/lib/alternc/install.d  | ||||
|  | @ -605,7 +620,7 @@ run-parts --arg=before-reload /usr/lib/alternc/install.d | |||
| ####################################################################### | ||||
| # Reload services | ||||
| # | ||||
| for service in postfix bind9 apache2 dovecot cron proftpd ; do | ||||
| for service in postfix dovecot cron proftpd ; do | ||||
|     invoke-rc.d $service force-reload || true | ||||
| done | ||||
| 
 | ||||
|  | @ -613,6 +628,10 @@ done | |||
| for service in $SERVICES; do | ||||
|     test -x /etc/init.d/$service && invoke-rc.d $service stop || true | ||||
| done | ||||
| 
 | ||||
| # on Jessie, apache2 does not stop/start properly due to "service" and "apache2ctl" having different behavior pid-file-wise | ||||
| killall apache2  | ||||
| 
 | ||||
| for service in $SERVICES; do | ||||
|     test -x /etc/init.d/$service && invoke-rc.d $service start || true | ||||
| done | ||||
|  |  | |||
|  | @ -1,49 +0,0 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| # Source debconf library. | ||||
| . /usr/share/debconf/confmodule | ||||
| 
 | ||||
| CONFIGFILE="/etc/alternc/local.sh" | ||||
| LOGROTATE="/etc/logrotate.d/roundcube-core" | ||||
| 
 | ||||
| case "$1" in | ||||
|     configure) | ||||
| 	 | ||||
|         # add alternc-roundcube user for php-itk special rights | ||||
| 	if ! getent passwd alternc-roundcube; then | ||||
| 	    useradd -g nogroup -u 1996 alternc-roundcube -d /usr/share/roundcube | ||||
| 	fi | ||||
| 
 | ||||
| 	# removed from 3.1 & 3.2 : | ||||
| 	dpkg-statoverride --list /var/lib/roundcube/temp >/dev/null &&   | ||||
| 	dpkg-statoverride --remove /var/lib/roundcube/temp | ||||
| 	chown -R www-data:root /var/lib/roundcube/temp | ||||
| 	chmod -R 750 /var/lib/roundcube/temp | ||||
| 
 | ||||
| 	dpkg-statoverride --list /etc/roundcube/debian-db.php >/dev/null &&  | ||||
| 	dpkg-statoverride --remove /etc/roundcube/debian-db.php | ||||
| 	chown -R www-data:root /etc/roundcube/debian-db.php | ||||
| 	chmod -R 460 /etc/roundcube/debian-db.php | ||||
| 
 | ||||
| 	dpkg-statoverride --list /etc/roundcube/config.inc.php >/dev/null &&  | ||||
| 	dpkg-statoverride --remove /etc/roundcube/config.inc.php | ||||
| 	chown -R www-data:root /etc/roundcube/config.inc.php | ||||
| 	chmod -R 460 /etc/roundcube/config.inc.php | ||||
| 
 | ||||
| 	dpkg-statoverride --list /var/log/roundcube >/dev/null &&  | ||||
| 	dpkg-statoverride --remove /var/log/roundcube | ||||
| 	chown -R www-data:root /var/log/roundcube | ||||
| 	chmod -R 750 /var/log/roundcube | ||||
| 
 | ||||
| 	echo "**********************************************" | ||||
| 	echo "*          ALTERNC-ROUNDCUBE:                *" | ||||
| 	echo "* Please run alternc.install to fully deploy *" | ||||
| 	echo "**********************************************" | ||||
| 	;; | ||||
| esac | ||||
| 
 | ||||
| # dh_installdeb will replace this with shell code automatically | ||||
| # generated by other debhelper scripts. | ||||
| #DEBHELPER# | ||||
|  | @ -1,67 +0,0 @@ | |||
| #!/usr/bin/php
 | ||||
| <?php | ||||
| /* | ||||
|   at alternc.install time | ||||
|   synchronize the required domain templates with the current install | ||||
|   (do they have php52, roundcube, squirrelmail, etc.?) | ||||
|  */ | ||||
| if ($argv[1] == "templates") { | ||||
|     // install ssl.conf
 | ||||
|     echo "[alternc-ssl] Installing ssl.conf template\n"; | ||||
|     copy("/etc/alternc/templates/apache2/mods-available/ssl.conf","/etc/apache2/mods-available/ssl.conf"); | ||||
|     mkdir("/var/run/alternc-ssl"); | ||||
|     chown("/var/run/alternc-ssl","alterncpanel"); | ||||
|     chgrp("/var/run/alternc-ssl","alterncpanel"); | ||||
|     // replace open_basedir line if necessary : 
 | ||||
|     exec('sed -i -e "s#:/var/run/alternc#:/var/run#" -e "s#:/run/alternc#:/run#" /etc/alternc/apache2.conf /etc/alternc/templates/alternc/apache2.conf'); | ||||
| } | ||||
| 
 | ||||
| if ($argv[1] == "before-reload") { | ||||
|     // Bootstrap
 | ||||
|     require_once("/usr/share/alternc/panel/class/config_nochk.php"); | ||||
| 
 | ||||
|     echo "[alternc-ssl] Installing domaines-types\n"; | ||||
|     $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|             ('vhost-ssl', 'Locally hosted forcing HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 0);");
 | ||||
| 
 | ||||
|     $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|             ('vhost-mixssl', 'Locally hosted HTTP and HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 1);");
 | ||||
| 
 | ||||
|     $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|             ('panel-ssl', 'HTTPS AlternC panel access', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'txt,mx,mx2,defmx,defmx2', 'ALL', 0, 0, 1);");
 | ||||
| 
 | ||||
|     $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|             ('url-ssl', 'URL redirection, HTTP & HTTPS', 'URL', '%SUB% IN A @@PUBLIC_IP@@', 'txt,mx,mx2,defmx,defmx2', 'ALL', 0, 0, 1);");
 | ||||
| 
 | ||||
|     $db->query("SELECT * FROM domaines_type WHERE name='roundcube';"); | ||||
|     if ($db->next_record()) { | ||||
|         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|     ('roundcube-ssl', 'HTTPS Roundcube Webmail', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'mx,mx2,defmx,defmx2,txt', 'ALL', 0, 0, 1);");
 | ||||
|     } else { | ||||
|         $db->query("DELETE FROM domaines_type WHERE name='roundcube-ssl';"); | ||||
|         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='roundcube-ssl';"); | ||||
|     } | ||||
| 
 | ||||
|     $db->query("SELECT * FROM domaines_type WHERE name='squirrelmail';"); | ||||
|     if ($db->next_record()) { | ||||
|         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|             ('squirrelmail-ssl', 'HTTPS Squirrelmail Webmail', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'mx,mx2,defmx,defmx2,txt', 'ALL', 0, 0, 1);");
 | ||||
|     } else { | ||||
|         $db->query("DELETE FROM domaines_type WHERE name='squirrelmail-ssl';"); | ||||
|         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='squirrelmail-ssl';"); | ||||
|     } | ||||
| 
 | ||||
|     $db->query("SELECT * FROM domaines_type WHERE name='php52';"); | ||||
|     if ($db->next_record()) { | ||||
|         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|             ('php52-ssl', 'php52 forcing HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 0);");
 | ||||
|         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||
|             ('php52-mixssl', 'php52 HTTP and HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 0);");
 | ||||
|     } else { | ||||
|         $db->query("DELETE FROM domaines_type WHERE name='php52-ssl';"); | ||||
|         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='php52-ssl';"); | ||||
|         $db->query("DELETE FROM domaines_type WHERE name='php52-mixssl';"); | ||||
|         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='php52-mixssl';"); | ||||
|     } | ||||
| 
 | ||||
| } // before-reload
 | ||||
|  | @ -1,666 +0,0 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # ---------------------------------------------------------------------- | ||||
| # AlternC - Web Hosting System | ||||
| # Copyright (C) 2000-2012 by the AlternC Development Team. | ||||
| # https://alternc.org/ | ||||
| # ---------------------------------------------------------------------- | ||||
| # LICENSE | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or | ||||
| # modify it under the terms of the GNU General Public License (GPL) | ||||
| # as published by the Free Software Foundation; either version 2 | ||||
| # of the License, 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 General Public License for more details. | ||||
| # | ||||
| # To read the license please visit http://www.gnu.org/copyleft/gpl.html | ||||
| # ---------------------------------------------------------------------- | ||||
| # Purpose of file: Main install script, launch it anytime ;)  | ||||
| # ---------------------------------------------------------------------- | ||||
| 
 | ||||
| # Somes check before start operations | ||||
| if [ `id -u` -ne 0 ]; then | ||||
|     echo "must be launched as root" | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| for i in $*; do | ||||
|     case "$i" in | ||||
|         -f|--force) | ||||
|             export force=1; shift;; | ||||
|         -s|--slave) | ||||
|             export slave=1; shift;; | ||||
|         --) | ||||
|             break;; | ||||
|         *) | ||||
|             echo "unknown option $i"; shift;; | ||||
|     esac | ||||
| done | ||||
| 
 | ||||
| . /usr/lib/alternc/functions.sh | ||||
| 
 | ||||
| # Lock the jobs ! | ||||
| lock_jobs | ||||
| 
 | ||||
| # hook  | ||||
| run-parts --arg=startup /usr/lib/alternc/install.d  | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Script configuration | ||||
| # | ||||
| 
 | ||||
| # Configuration template location | ||||
| TEMPLATE_DIR="/etc/alternc/templates" | ||||
| 
 | ||||
| # Find needed configuration files (without the initial '/') | ||||
| # replace this one unconditionnally | ||||
| CONFIG_FILES="etc/alternc/bureau.conf etc/apache2/envvars etc/alternc/apache2.conf etc/alternc/apache_logformat.conf etc/alternc/phpmyadmin.inc.php" | ||||
| 
 | ||||
| if [ -e /etc/bind/named.conf ]; then | ||||
|     CONFIG_FILES="$CONFIG_FILES etc/bind/named.conf.options" | ||||
| fi | ||||
| if [ -d /etc/postfix ]; then | ||||
|     CONFIG_FILES="$CONFIG_FILES etc/postfix/master.cf etc/postfix/myalias.cf etc/postfix/myrelay.cf | ||||
|                   etc/postfix/mydomain.cf etc/postfix/myrelay-domain.cf etc/postfix/mymail2mail.cf etc/postfix/mygid.cf etc/postfix/myquota.cf | ||||
|                   etc/postfix/myvirtual.cf etc/postfix/mytransport.cf etc/postfix/sasl/smtpd.conf | ||||
|                   etc/alternc/postfix/postfix.cf etc/alternc/postfix/postfix-slave.cf | ||||
|                   etc/opendkim.conf etc/default/opendkim" | ||||
| fi | ||||
| if [ -e /etc/proftpd/proftpd.conf ]; then | ||||
|     CONFIG_FILES="$CONFIG_FILES etc/proftpd/proftpd.conf etc/proftpd/welcome.msg etc/proftpd/modules.conf" | ||||
| fi | ||||
| 
 | ||||
| if [ -e /etc/default/saslauthd ]; then | ||||
|     CONFIG_FILES="$CONFIG_FILES etc/default/saslauthd" | ||||
| fi | ||||
| 
 | ||||
| if [ -e /etc/dovecot/dovecot.conf ]; then | ||||
|     CONFIG_FILES="$CONFIG_FILES etc/dovecot/alternc-sql.conf etc/dovecot/alternc-dict-quota.conf etc/dovecot/conf.d/95_alternc.conf" | ||||
| fi | ||||
| 
 | ||||
| INSTALLED_CONFIG_TAR="/var/lib/alternc/backups/etc-installed.tar.gz" | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Look for modified configuration files | ||||
| # | ||||
| if [ -f "$INSTALLED_CONFIG_TAR" ]; then | ||||
|     CHANGED="`env LANG=C tar -zdf "$INSTALLED_CONFIG_TAR" -C / 2> /dev/null |  | ||||
|               grep -v 'postfix/main.cf' | grep -v 'Uid differs'|grep -v 'Gid differs'  |grep -v 'Mode differs' |  | ||||
|               sed -e 's#^\([^:]*\).*#    /\1#' | sort -u`" | ||||
|     if [ ! -z "$CHANGED" ]; then | ||||
|         echo "The following configuration files has changed since last AlternC" | ||||
|         echo "installation :" | ||||
|         echo "$CHANGED" | ||||
|         echo "" | ||||
|         if [ "$force" = "1" ]; then | ||||
|             echo "Replacing them as you requested." | ||||
|         else | ||||
|             echo "These configuration files should normally be modified by" | ||||
|             echo "changing the template in $TEMPLATE_DIR and then calling" | ||||
|             echo "$0 to perform the update." | ||||
|             echo "" | ||||
|             echo "Please examine the situation closely and call '$0 -f'" | ||||
|             echo "if you still want to actually overwrite these files." | ||||
|             exit 1 | ||||
|         fi | ||||
|     fi | ||||
| fi | ||||
| 
 | ||||
| # Upgrade the DATA and DB SCHEMA | ||||
| /usr/share/alternc/install/upgrade_check.sh | ||||
| # Launch upgrade of alternc modules  | ||||
| run-parts --arg=upgrade /usr/lib/alternc/install.d | ||||
| 
 | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Prepare template expansions | ||||
| # | ||||
| 
 | ||||
| chown :alterncpanel /etc/alternc/local.sh | ||||
| . /etc/alternc/local.sh | ||||
| 
 | ||||
| # May be missing  | ||||
| test -d /var/run/alternc || ( mkdir -p /var/run/alternc && chown alterncpanel:alterncpanel /var/run/alternc ) | ||||
| 
 | ||||
| # Create the target directory | ||||
| for i in "$ALTERNC_HTML" "$ALTERNC_MAIL" "$ALTERNC_LOGS" ; do | ||||
|   test -d "$i" || mkdir -p "$i" | ||||
| done | ||||
| 
 | ||||
| for i in a b c d e f g h i j k l m n o p q r s t u v w x y z _ 0 1 2 3 4 5 6 7 8 9; do | ||||
|   test -d "$ALTERNC_HTML/$i" || ( mkdir -p "$ALTERNC_HTML/$i" && chown alterncpanel:alterncpanel "$ALTERNC_HTML/$i" && chmod 775 "$ALTERNC_HTML/$i" ) | ||||
|   test -d "$ALTERNC_MAIL/$i" || ( mkdir -p "$ALTERNC_MAIL/$i" && chown vmail:vmail "$ALTERNC_MAIL/$i" && chmod 775 "$ALTERNC_MAIL/$i" ) | ||||
| done | ||||
| 
 | ||||
| find $ALTERNC_LOGS -maxdepth 1 -type d -exec chown alterncpanel:adm {} \;  | ||||
| find $ALTERNC_HTML -maxdepth 1 -type d -exec chown alterncpanel:alterncpanel {} \;  | ||||
| find $ALTERNC_MAIL -maxdepth 1 -type d -exec chown vmail:vmail {} \; | ||||
| 
 | ||||
| # Check ACL | ||||
| aclcheckfile="$ALTERNC_HTML/test-acl" | ||||
| touch "$aclcheckfile" | ||||
| setfacl -m u:root:rwx "$aclcheckfile" 2>/dev/null || ( echo "Error : ACL aren't activated on $ALTERNC_HTML . AlternC can't work without it." ; test -e "$aclcheckfile" && rm -f "$aclcheckfile" ; exit 2) | ||||
| test -e "$aclcheckfile" && rm -f "$aclcheckfile" | ||||
| 
 | ||||
| # XXX: copy-paste from debian/config | ||||
| if [ -r /etc/alternc/my.cnf ]; then | ||||
|     # make mysql configuration available as shell variables | ||||
|     # to convert from .cnf to shell syntax, we: | ||||
|     # * match only lines with "equal" in them (/=/) | ||||
|     # * remove whitespace around the = and add a left quote operator ' (;s) | ||||
|     # * add a right quote operator at the end of line (;s) | ||||
|     # * convert mysql variables into our MYSQL_ naming convention (;s) | ||||
|     # * print the result (;p) | ||||
|     eval `sed -n -e "/=/{s/ *= *\"\?/='/;s/\"\?\$/'/;s/host/MYSQL_HOST/;s/user/MYSQL_USER/;s/password/MYSQL_PASS/;s/database/MYSQL_DATABASE/;p}" /etc/alternc/my.cnf` | ||||
|     chown root:alterncpanel /etc/alternc/my.cnf | ||||
|     chmod 640 /etc/alternc/my.cnf | ||||
| fi | ||||
| 
 | ||||
| if [ -r /etc/alternc/my_mail.cnf ]; then | ||||
|     # make mysql configuration available as shell variables | ||||
|     # to convert from .cnf to shell syntax, we: | ||||
|     # * match only lines with "equal" in them (/=/) | ||||
|     # * remove whitespace around the = and add a left quote operator ' (;s) | ||||
|     # * add a right quote operator at the end of line (;s) | ||||
|     # * convert mysql variables into our MYSQL_ naming convention (;s) | ||||
|     # * print the result (;p) | ||||
|     eval `sed -n -e "/=/{s/ *= *\"\?/='/;s/\"\?\$/'/;s/host/MYSQL_HOST/;s/user/MYSQL_MAIL_USER/;s/password/MYSQL_MAIL_PASS/;s/database/MYSQL_DATABASE/;p}" /etc/alternc/my_mail.cnf` | ||||
|     chown root:alterncpanel /etc/alternc/my_mail.cnf | ||||
|     chmod 640 /etc/alternc/my_mail.cnf | ||||
| fi | ||||
| 
 | ||||
| WARNING="WARNING: Do not edit this file, edit the one in /etc/alternc/templates and launch alternc.install again." | ||||
| 
 | ||||
| if [ "$slave" = "1" ]; then | ||||
|     VERSION="`dpkg -s alternc-slave | sed -n -e 's/^Version: \(.*\)/\1/p'`" | ||||
| else | ||||
|     VERSION="`dpkg -s alternc | sed -n -e 's/^Version: \(.*\)/\1/p'`" | ||||
| fi | ||||
| 
 | ||||
| # /var/ alternc/dns/d/www.example.com | ||||
| FQDN_LETTER="`echo $FQDN | sed -e 's/.*\.\([^\.]\)[^\.]*\.[^\.]*$/\1/'`" | ||||
| if [ "$FQDN_LETTER" = "$FQDN" ]  | ||||
| then | ||||
|        FQDN_LETTER="_"  | ||||
| fi | ||||
| 
 | ||||
| NS2_IP=`perl -e "\\$h = (gethostbyname(\"$NS2_HOSTNAME\"))[4]; | ||||
|                  @ip = unpack('C4', \\$h); | ||||
|                  print join (\".\", @ip);"` | ||||
| 
 | ||||
| if [ -z "$MONITOR_IP" ]; then | ||||
|     MONITOR_IP="127.0.0.1" | ||||
| fi | ||||
| 
 | ||||
| PUBLIC_IP_BEGIN=$(echo $PUBLIC_IP|cut -c 1) | ||||
| 
 | ||||
| # Secret for PhpMyAdmin sessions | ||||
| PHPMYADMIN_BLOWFISH="$(generate_string 24)" | ||||
| 
 | ||||
| # XXX: I assume this is secure if /tmp is sticky (+t) | ||||
| # we should have a better way to deal with templating, of course. | ||||
| SED_SCRIPT="/tmp/alternc.install.sedscript" | ||||
| cat > $SED_SCRIPT <<EOF | ||||
| s\\%%hosting%%\\$HOSTING\\; | ||||
| s\\%%fqdn%%\\$FQDN\\; | ||||
| s\\%%public_ip%%\\$PUBLIC_IP\\; | ||||
| s\\%%public_ip_begin%%\\$PUBLIC_IP_BEGIN\\; | ||||
| s\\%%internal_ip%%\\$INTERNAL_IP\\; | ||||
| s\\%%monitor_ip%%\\$MONITOR_IP\\; | ||||
| s\\%%ns1%%\\$NS1_HOSTNAME\\; | ||||
| s\\%%ns2%%\\$NS2_HOSTNAME\\; | ||||
| s\\%%mx%%\\$DEFAULT_MX\\; | ||||
| s\\%%dbhost%%\\$MYSQL_HOST\\; | ||||
| s\\%%dbname%%\\$MYSQL_DATABASE\\; | ||||
| s\\%%dbuser%%\\$MYSQL_USER\\; | ||||
| s\\%%dbpwd%%\\$MYSQL_PASS\\; | ||||
| s\\%%db_mail_user%%\\$MYSQL_MAIL_USER\\; | ||||
| s\\%%db_mail_pwd%%\\$MYSQL_MAIL_PASS\\; | ||||
| s\\%%warning_message%%\\$WARNING\\; | ||||
| s\\%%fqdn_lettre%%\\$FQDN_LETTER\\; | ||||
| s\\%%version%%\\$VERSION\\; | ||||
| s\\%%ns2_ip%%\\$NS2_IP\\; | ||||
| s\\%%ALTERNC_HTML%%\\$ALTERNC_HTML\\; | ||||
| s\\%%ALTERNC_MAIL%%\\$ALTERNC_MAIL\\; | ||||
| s\\%%ALTERNC_LOGS%%\\$ALTERNC_LOGS\\; | ||||
| s\\%%PHPMYADMIN_BLOWFISH%%\\$PHPMYADMIN_BLOWFISH\\; | ||||
| EOF | ||||
| 
 | ||||
| # hook  | ||||
| test -d /usr/lib/alternc/install.d || mkdir -p /usr/lib/alternc/install.d | ||||
| run-parts --arg=templates /usr/lib/alternc/install.d  | ||||
| 
 | ||||
| 
 | ||||
| ###################################################################### | ||||
| # Backup the Main database | ||||
| DB_BACKUP="/var/lib/alternc/backups/${MYSQL_DATABASE}-db-`date +%Y%m%d-%H:%M:%S`.gz" | ||||
| db_dump="mysqldump --defaults-file=/etc/alternc/my.cnf --add-drop-table --allow-keywords --quote-names --force --quick --add-locks --lock-tables --extended-insert ${MYSQL_DATABASE}" | ||||
| $db_dump | /bin/gzip -c > $DB_BACKUP || echo "backup of the main database failed" | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Backup configuration files | ||||
| # | ||||
| BACKUP_FILE="/var/lib/alternc/backups/etc-original-`date +%Y%m%d-%H%M`.tar.gz" | ||||
| 
 | ||||
| # Only backup what we are really going to replace | ||||
| BACKUPS="" | ||||
| for file in $CONFIG_FILES; do | ||||
|     TEMPLATE="$TEMPLATE_DIR/${file##etc/}" | ||||
|     if [ -f "$TEMPLATE" ]; then | ||||
|         BACKUPS="$BACKUPS $file" | ||||
|     fi | ||||
| done | ||||
| 
 | ||||
| # also backup main.cf since we're doing major changes to it | ||||
| BACKUPS="$BACKUPS etc/postfix/main.cf" | ||||
| 
 | ||||
| tar -zcf "$BACKUP_FILE" -C / $BACKUPS 2>/dev/null || true | ||||
| chmod 600 "$BACKUP_FILE" | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Expand templates in the right place | ||||
| # | ||||
| echo -n "Expanding variables in configuration files:" | ||||
| for file in $CONFIG_FILES; do | ||||
|     TEMPLATE="$TEMPLATE_DIR/${file##etc/}" | ||||
|     echo -n " $file" | ||||
|     if [ -f "$TEMPLATE" ]; then | ||||
|         sed -f "$SED_SCRIPT" < $TEMPLATE > /$file | ||||
|     fi | ||||
| done | ||||
| echo "." | ||||
| rm -f $SED_SCRIPT | ||||
| 
 | ||||
| ########################################################################  | ||||
| # Ad-hoc fixes | ||||
| # | ||||
| 
 | ||||
| php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.*\)\.so$/\1/' | tail -1`" | ||||
| if [ "$php" = "7.0" ] | ||||
| then | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php/$php/apache2/conf.d/alternc.ini || true | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php/$php/cli/conf.d/alternc.ini || true | ||||
| else | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php$php/apache2/conf.d/alternc.ini || true | ||||
|     ln -fs /etc/alternc/alternc.ini /etc/php$php/cli/conf.d/alternc.ini || true | ||||
| fi | ||||
| 
 | ||||
| if [ -x /usr/sbin/apache2 ]; then | ||||
|     # hook  | ||||
|     run-parts --arg=apache2 /usr/lib/alternc/install.d  | ||||
|     a2enmod mpm_itk | ||||
|      | ||||
|     s="" | ||||
|     # unused from AlternC 1.0, FIXME: remove it later | ||||
|     if [ -L /etc/apache2/mods-enabled/vhost_alias.load ] | ||||
|     then | ||||
|         a2dismod vhost_alias | ||||
|         s="apache2" | ||||
|     fi  | ||||
|     if ! [ -L /etc/apache2/mods-enabled/php$php.load ] | ||||
|     then | ||||
| 	    a2enmod php$php | ||||
|     fi | ||||
|     if ! [ -L /etc/apache2/mods-enabled/rewrite.load ] | ||||
|     then | ||||
| 	    a2enmod rewrite | ||||
|     fi | ||||
|     if [ -e /etc/alternc/apache.pem ]; then | ||||
|         # We enable proftpd tls module | ||||
|         cat /etc/proftpd/modules.conf | sed -e 's/^#LoadModule mod_tls.c/LoadModule mod_tls.c/' > /etc/proftpd/modules.conf.alternc-new | ||||
|         mv /etc/proftpd/modules.conf.alternc-new /etc/proftpd/modules.conf  | ||||
|         cp /etc/proftpd/modules.conf /etc/alternc/templates/proftpd/ | ||||
|         # We enable apache2 SSL :  | ||||
|         if [ ! -L /etc/apache2/mods-enabled/ssl.load ] ; then | ||||
|             a2enmod ssl | ||||
|             s="apache2" | ||||
|         fi | ||||
|         if [ ! -h /etc/apache2/conf-available/alternc-ssl.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
|             ln -sf /etc/alternc/apache2-ssl.conf /etc/apache2/conf-available/alternc-ssl.conf | ||||
| 	    a2enconf alternc-ssl | ||||
|             s="apache2" | ||||
|         fi | ||||
| 
 | ||||
| 	# We enable dovecot SSL certificate instructions: (on wheezy we should use a new file in /etc/dovecot/conf.d/ ) | ||||
| 	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/alternc/apache.pem" ; echo "ssl_key = </etc/alternc/apache.pem" ) >/etc/dovecot/conf.d/96_ssl.conf | ||||
| 
 | ||||
|     else | ||||
|         # We disable proftpd tls module | ||||
|         cat /etc/proftpd/modules.conf | sed -e 's/^LoadModule mod_tls.c/#LoadModule mod_tls.c/' > /etc/proftpd/modules.conf.alternc-new | ||||
|         mv /etc/proftpd/modules.conf.alternc-new /etc/proftpd/modules.conf  | ||||
|         cp /etc/proftpd/modules.conf /etc/alternc/templates/proftpd/ | ||||
| 
 | ||||
| 	# We disable dovecot SSL certificate instructions: (on wheezy we should remove a file in /etc/dovecot/conf.d/ ) | ||||
| 	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem" ; echo "ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key" ) >/etc/dovecot/conf.d/96_ssl.conf | ||||
| 
 | ||||
|         echo "SSL not configured" | ||||
|         echo "create a certificate in /etc/alternc/apache.pem and rerun alternc.install" | ||||
|     fi | ||||
|     if [ ! -h /etc/apache2/conf-available/alternc.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
|         ln -sf /etc/alternc/apache2.conf /etc/apache2/conf-available/alternc.conf | ||||
| 	a2enconf alternc.conf | ||||
|         s="apache2" | ||||
|     fi | ||||
|     if [ -e /etc/apache2/sites-enabled/000-default.conf ]; then | ||||
|         a2dissite 000-default | ||||
|         s="apache2" | ||||
|     fi | ||||
|     SERVICES="$SERVICES $s" | ||||
| fi | ||||
| 
 | ||||
| # Manage sudoers.d include appearing in Squeeze: | ||||
| # if the "includedir" is not here, we add it ONLY IF visudo -c is happy. | ||||
| if ! grep -q "#includedir */etc/sudoers.d" /etc/sudoers ; then | ||||
|     if ! cat /etc/sudoers.d/* | visudo -c -f -  >/dev/null ; then | ||||
| 	echo -e "\033[31m**********************************************" | ||||
| 	echo "*                                            *" | ||||
| 	echo "*   ALTERNC  ACTION REQUESTED                *" | ||||
| 	echo "*                                            *" | ||||
| 	echo "* SUDO is NOT configured properly            *" | ||||
| 	echo "* check your files in /etc/sudoers.d !       *"  | ||||
| 	echo "* then launch alternc.install again          *" | ||||
| 	echo "*                                            *" | ||||
| 	echo "**********************************************" | ||||
| 	echo -e "\033[0m" | ||||
| 	exit 1 | ||||
|     else  | ||||
| 	echo "#includedir */etc/sudoers.d" >>/etc/sudoers | ||||
|     fi | ||||
| fi | ||||
| 
 | ||||
| # Copy postfix *_checks if they do not exist | ||||
| for file in body_checks header_checks; do | ||||
|     if [ ! -e "/etc/postfix/$file" ]; then | ||||
|         cp /usr/share/alternc/install/$file /etc/postfix | ||||
|     fi | ||||
| done | ||||
| 
 | ||||
| # Attribute the correct rights to critical postfix files | ||||
| if [ -e /etc/postfix/myalias.cf -o -e /etc/postfix/mydomain.cf -o -e /etc/postfix/mygid.cf -o -e /etc/postfix/myrelay-domain.sh -o -e /etc/postfix/myvirtual.cf -o -e /etc/postfix/myrelay.cf -o -e /etc/postfix/myquota.cf ]; then | ||||
|     chown root:postfix /etc/postfix/my* | ||||
|     chmod 640 /etc/postfix/my* | ||||
| fi | ||||
| 
 | ||||
| if [ ! -f /etc/postfix/main.cf ] | ||||
| then | ||||
|     echo -e "\033[31m**********************************************" | ||||
|     echo "*                                            *" | ||||
|     echo "*   ALTERNC  ACTION REQUESTED                *" | ||||
|     echo "*                                            *" | ||||
|     echo "* POSTFIX is NOT configured properly         *" | ||||
|     echo "* launch dpkg-reconfigure -plow postfix      *"  | ||||
|     echo "* and choose 'Internet Site'                 *" | ||||
|     echo "* then launch alternc.install again          *" | ||||
|     echo "*                                            *" | ||||
|     echo "**********************************************" | ||||
|     echo -e "\033[0m" | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| # configure Postfix appropriatly for our needs | ||||
| if [ "$slave" = "1" ]; then | ||||
|     postfix_conf=/etc/alternc/postfix/postfix-slave.cf | ||||
| else | ||||
|     postfix_conf=/etc/alternc/postfix/postfix.cf | ||||
| fi | ||||
| grep -v '^\ *#' $postfix_conf |while read line ; do | ||||
|    if echo "$line" | grep -qi '^smtpd_tls_dcert_file' ;then | ||||
|      line_strip=`echo "$line"|tr -d '[:blank:]'` | ||||
|      pattern="*=" | ||||
|      cert_file=${line_strip#$pattern} | ||||
|      echo $cert_file | ||||
|      echo $line | ||||
|      echo $line_strip | ||||
|      if [ -e $cert_file ];then | ||||
|         postconf -e "$line" | ||||
|      else | ||||
|         echo -e "\033[31m*****************************************************" | ||||
|         echo "* The certificate file : $cert_file does not exists *" | ||||
| 	echo "* If you want to be able to use SSL/TLS             *" | ||||
|         echo "* please go to https://alternc.com/SSL              *" | ||||
| 	echo "* to get information on how to create a certificate *" | ||||
|         echo "* Finally relaunch alternc.install                  *" | ||||
|         echo "*****************************************************" | ||||
| 	echo -e "\033[0m" | ||||
|      fi | ||||
|   else | ||||
|         postconf -e "$line" | ||||
|   fi | ||||
| done | ||||
| 
 | ||||
| # Conviguring delivery used by Postfix | ||||
| /usr/lib/alternc/alternc_add_policy_dovecot | ||||
| 
 | ||||
| # Bug #1215: configure mydestination when $FQDN is not in | ||||
| OLDDESTINATION=`postconf mydestination | awk -F '=' '{print $2}'` | ||||
| echo "$OLDDESTINATION" | grep -q -v "$FQDN" && postconf -e "mydestination = $FQDN, $OLDDESTINATION" | ||||
| 
 | ||||
| # Remove phpmyadmin apache2 configuration | ||||
| a2disconf phpmyadmin | ||||
| 
 | ||||
| # Configure PHPMyAdmin | ||||
| include_str='include("/etc/alternc/phpmyadmin.inc.php")' | ||||
| pma_config='/etc/phpmyadmin/config.inc.php' | ||||
| 
 | ||||
| # Sur une configuration vierge, inclure la configuration alternc | ||||
| if ! grep -e "${include_str/\"/\\\"}" $pma_config > /dev/null 2>&1; then | ||||
|     echo "$include_str;" >> $pma_config | ||||
| fi | ||||
| 
 | ||||
| # Le template de /etc/alternc/phpmyadmin.inc.php viens d'être réappliqué, on  | ||||
| # regénére la liste des serveurs MySQL disponible dedans. | ||||
| mysql_query "select id,host,name from db_servers;" | while read id host name ; do | ||||
| echo " | ||||
| // Server #$id in db_servers | ||||
| \$i++; | ||||
| \$cfg['Servers'][\$i]['connect_type']  = 'tcp';    // How to connect to MySQL server ('tcp' or 'socket') | ||||
| \$cfg['Servers'][\$i]['auth_type']     = 'cookie';    // Authentication method (config, http or cookie based)? | ||||
| \$cfg['Servers'][\$i]['hide_db']       = 'information_schema'; | ||||
| \$cfg['Servers'][\$i]['verbose']       = '$name'; // human name | ||||
| \$cfg['Servers'][\$i]['host']          = '$host'; // MySQL hostname or IP address | ||||
| " >> '/etc/alternc/phpmyadmin.inc.php' | ||||
| done | ||||
| 
 | ||||
| # Reload incron. Useless, but who know? | ||||
| SERVICES="$SERVICES incron" | ||||
|   | ||||
| if [ -e /etc/proftpd.conf ] ; then | ||||
|     chmod 640 /etc/proftpd/proftpd.conf | ||||
| fi | ||||
| 
 | ||||
| if [ -x /usr/sbin/locale-gen ] ; then | ||||
|     touch /etc/locale.gen | ||||
|     LOCALECHANGED="" | ||||
|     # Add de_DE ISO-8859-1, en_US ISO-8859-1, es_ES ISO-8859-1, fr_FR ISO-8859-1 to the locales :  | ||||
|     if ! grep -q "^de_DE ISO-8859-1$" /etc/locale.gen ; then | ||||
| 	echo "de_DE ISO-8859-1" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^en_US ISO-8859-1$" /etc/locale.gen ; then | ||||
| 	echo "en_US ISO-8859-1" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^es_ES ISO-8859-1$" /etc/locale.gen ; then | ||||
| 	echo "es_ES ISO-8859-1" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^fr_FR ISO-8859-1$" /etc/locale.gen ; then  | ||||
| 	echo "fr_FR ISO-8859-1" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^de_DE.UTF-8 UTF-8$" /etc/locale.gen ; then | ||||
| 	echo "de_DE.UTF-8 UTF-8" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^fr_FR.UTF-8 UTF-8$" /etc/locale.gen ; then | ||||
| 	echo "fr_FR.UTF-8 UTF-8" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^es_ES.UTF-8 UTF-8$" /etc/locale.gen ; then | ||||
| 	echo "es_ES.UTF-8 UTF-8" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^en_US.UTF-8 UTF-8$" /etc/locale.gen ; then | ||||
| 	echo "en_US.UTF-8 UTF-8" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^it_IT.UTF-8 UTF-8$" /etc/locale.gen ; then | ||||
| 	echo "it_IT.UTF-8 UTF-8" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if ! grep -q "^nl_NL.UTF-8 UTF-8$" /etc/locale.gen ; then | ||||
| 	echo "nl_NL.UTF-8 UTF-8" >>/etc/locale.gen | ||||
| 	LOCALECHANGED=1 | ||||
|     fi | ||||
|     if [ "$LOCALECHANGED" ] ; then | ||||
| 	locale-gen | ||||
|     fi | ||||
| fi | ||||
| 
 | ||||
| # remaining steps are only for the master | ||||
| if [ "$slave" = "1" ]; then | ||||
|     exit 0 | ||||
| fi | ||||
| 
 | ||||
| ####################################################################### | ||||
| # populate alternc database with the mailname used by postfix to send mail for each vhost | ||||
| # | ||||
| # If mailname does not exist, create it. Fix #1495 | ||||
| test -e "/etc/mailname" || hostname -f > "/etc/mailname"  | ||||
| # Allow for all the users to view /etc/mailname | ||||
| chmod +r "/etc/mailname" | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Save installed files to check them during next install | ||||
| # | ||||
| tar -zcf "$INSTALLED_CONFIG_TAR" -C / $CONFIG_FILES | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Last touches | ||||
| # | ||||
| 
 | ||||
| find $ALTERNC_HTML -maxdepth 1 -type d -exec setfacl -b -k -m d:g:alterncpanel:-wx -m d:u:alterncpanel:-wx -m u:alterncpanel:-wx -m g:alterncpanel:-wx {} \; | ||||
| 
 | ||||
| #creating log file | ||||
| if [ ! -e "/var/log/alternc/bureau.log" ]; then | ||||
|   test -d "/var/log/alternc/" || mkdir -p "/var/log/alternc/" | ||||
|   touch "/var/log/alternc/bureau.log" | ||||
| fi | ||||
| 
 | ||||
| if [ ! -e "/var/log/alternc/update_domains.log" ]; then | ||||
|   test -d "/var/log/alternc/" || mkdir -p "/var/log/alternc/" | ||||
|   touch "/var/log/alternc/update_domains.log" | ||||
| fi | ||||
| 
 | ||||
| # Be sure of the owner of the logs files | ||||
| chmod 640 /var/log/alternc/bureau.log /var/log/alternc/update_domains.log | ||||
| chown alterncpanel:adm /var/log/alternc/bureau.log /var/log/alternc/update_domains.log | ||||
| 
 | ||||
| # Creating admin user if needed | ||||
| HAS_ROOT=`mysql --defaults-file=/etc/alternc/my.cnf -e "SELECT COUNT(*) FROM membres WHERE login = 'admin' OR login = 'root' and su = 1" | tail -1` | ||||
| 
 | ||||
| if [ "$HAS_ROOT" != "1" ]; then | ||||
|     echo "Creating admin user..." | ||||
|     echo "" | ||||
| 
 | ||||
|     if su - alterncpanel -s /bin/bash -c /usr/share/alternc/install/newone.php | ||||
|       then | ||||
|       echo "*******************************************" | ||||
|       echo "*                                         *" | ||||
|       echo "*               Admin account             *" | ||||
|       echo "*               ------------              *" | ||||
|       echo "*                                         *" | ||||
|       echo "* user: admin             password: admin *" | ||||
|       echo "*                                         *" | ||||
|       echo "* Please change this as soon as possible! *" | ||||
|       echo "*                                         *" | ||||
|       echo "*******************************************" | ||||
|     else | ||||
| 	echo "Unable to create the first AlternC account (named 'admin'). newone.php returned $?. Check your MySQL database, PHP, and the /etc/alternc/local.sh file. Also check for any error above during install." | ||||
|     fi | ||||
| else | ||||
|     ##UPDATE default db_server following /etc/alternc/my.cnf values | ||||
|     if [ "$MYSQL_HOST" == "localhost" ]; then | ||||
|         MYSQL_HOST_CLIENT="localhost" | ||||
|     else | ||||
|         MYSQL_HOST_CLIENT="%" | ||||
|     fi | ||||
|     mysql --defaults-file=/etc/alternc/my.cnf -e "UPDATE db_servers SET host='$MYSQL_HOST', login='$MYSQL_USER', password='$MYSQL_PASS', client='$MYSQL_HOST_CLIENT' WHERE name='Default';" | ||||
| fi | ||||
| 
 | ||||
| # giving vmail user read access on dovecot sql file | ||||
| chgrp vmail /etc/dovecot/alternc-sql.conf | ||||
| chmod g+r /etc/dovecot/alternc-sql.conf | ||||
| # Override some dovecot 2.0 configuration that may have happened during dovecot postinst: | ||||
| sed -i -e 's/^ *!include/#!include/' /etc/dovecot/conf.d/10-auth.conf | ||||
| 
 | ||||
| # Changing owner of web panel's files | ||||
| chown -R alterncpanel:alterncpanel "/usr/share/alternc/panel/" | ||||
| 
 | ||||
| # We force the re-computing of the DNS zones, since we may have changed the IP address (see #460) | ||||
| /usr/bin/mysql --defaults-file="/etc/alternc/my.cnf" -B -e "update domaines set dns_action='UPDATE' WHERE gesdns=1;" | ||||
| 
 | ||||
| # We ensure localhost is trusted to opendkim | ||||
| mkdir -p "/etc/opendkim/keys" | ||||
| touch /etc/opendkim/TrustedHosts /etc/opendkim/SigningTable /etc/opendkim/KeyTable | ||||
| grep -q "^127.0.0.1\$" /etc/opendkim/TrustedHosts || echo "127.0.0.1" >>/etc/opendkim/TrustedHosts | ||||
| grep -q "^localhost\$" /etc/opendkim/TrustedHosts || echo "localhost" >>/etc/opendkim/TrustedHosts | ||||
| grep -q "^$PUBLIC_IP\$" /etc/opendkim/TrustedHosts || echo "$PUBLIC_IP" >>/etc/opendkim/TrustedHosts | ||||
| 
 | ||||
| # Add opendkim to service to restart | ||||
| SERVICES="$SERVICES opendkim bind9" | ||||
| 
 | ||||
| # hook  | ||||
| run-parts --arg=before-reload /usr/lib/alternc/install.d  | ||||
| 
 | ||||
| ####################################################################### | ||||
| # Reload services | ||||
| # | ||||
| for service in postfix dovecot cron proftpd ; do | ||||
|     invoke-rc.d $service force-reload || true | ||||
| done | ||||
| 
 | ||||
| # We should restart apaches after all configuration stuff ... | ||||
| for service in $SERVICES; do | ||||
|     test -x /etc/init.d/$service && invoke-rc.d $service stop || true | ||||
| done | ||||
| 
 | ||||
| # on Jessie, apache2 does not stop/start properly due to "service" and "apache2ctl" having different behavior pid-file-wise | ||||
| killall apache2  | ||||
| 
 | ||||
| for service in $SERVICES; do | ||||
|     test -x /etc/init.d/$service && invoke-rc.d $service start || true | ||||
| done | ||||
| 
 | ||||
| echo "Fix all the permission. May be quite long..." | ||||
| echo "YOU CAN INTERUPT THIS BY USING Ctrl-c THEN y TO BYPASS THE ERROR."  | ||||
| /usr/lib/alternc/fixperms.sh | ||||
| echo "Compile PO files" | ||||
| 
 | ||||
| # TODO : includes the .MO in debian package ;)  | ||||
| find /usr/share/alternc/panel/locales -maxdepth 1 -mindepth 1 -type d -name "*_*" | while read A | ||||
| do  | ||||
|     B="$A/LC_MESSAGES" | ||||
|     cd $B | ||||
|     rm -f alternc.mo alternc.po | ||||
|     msgcat --use-first *.po alternc >alternc.po | ||||
|     msgfmt alternc.po -o alternc.mo | ||||
| done | ||||
| 
 | ||||
| # Fix some perms | ||||
| # Fix phpmyadmin import trac#1557 | ||||
| test -d "/var/lib/phpmyadmin/tmp" && dpkg-statoverride --update --add www-data alterncpanel 0775 "/var/lib/phpmyadmin/tmp" 2>/dev/null || true | ||||
| test -f "/etc/phpmyadmin/config-db.php" && dpkg-statoverride --update --add www-data alterncpanel 0644 "/etc/phpmyadmin/config-db.php" 2>/dev/null || true | ||||
| 
 | ||||
| # hook  | ||||
| run-parts --arg=end /usr/lib/alternc/install.d  | ||||
| 
 | ||||
| # Unlock jobs ! | ||||
| unlock_jobs | ||||
| 
 | ||||
| # Rebuild all web configuration | ||||
| /usr/lib/alternc/rebuild_all_webconf.sh --force | ||||
|  | @ -1,81 +0,0 @@ | |||
| # AUTO GENERATED FILE | ||||
| # Modify template in /etc/alternc/templates/ | ||||
| # and launch alternc.install if you want  | ||||
| # to modify this file. | ||||
| # | ||||
| # This module is loaded in /etc/apache/modules, and enabled by apache-modconf  | ||||
| # LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so | ||||
| 
 | ||||
| # Define the default user and group for mpm-itk | ||||
| AssignUserId www-data www-data | ||||
| 
 | ||||
| # Deny access to the root filesystem | ||||
| <Directory /> | ||||
|   Options +FollowSymLinks | ||||
|   AllowOverride None | ||||
|   Order allow,deny | ||||
|   Deny from all | ||||
| </Directory> | ||||
| #### End security parameters | ||||
| 
 | ||||
| ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ||||
| <Directory "/usr/lib/cgi-bin"> | ||||
|   AllowOverride None | ||||
|   Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
| </Directory> | ||||
| 
 | ||||
| 
 | ||||
| <Directory /usr/share/alternc/panel/admin/> | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
| 
 | ||||
|   php_admin_flag safe_mode_gid off | ||||
|   php_admin_flag safe_mode off | ||||
|   AddDefaultCharset UTF-8 | ||||
| # open_basedir allows access to specifics directories. We need to grant access to these directories for alternc, awstats, mailman... | ||||
|   php_admin_value open_basedir /usr/share/alternc-mailman/patches/:/etc/alternc/:/run/alternc:/var/run/alternc/:/usr/share/alternc/panel/:%%ALTERNC_HTML%%/:/tmp:/usr/share/php/:/var/cache/alternc-webalizer/:/etc/locale.gen:%%ALTERNC_LOGS%%:/etc/awstats/:/var/log/alternc/:/var/lib/alternc/panel/ | ||||
| 
 | ||||
| </Directory> | ||||
| 
 | ||||
| 
 | ||||
| <Directory %%ALTERNC_HTML%% > | ||||
|   AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
|   Options -Indexes +Includes -FollowSymLinks +MultiViews +SymLinksIfOwnerMatch | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
|   php_admin_flag safe_mode_gid off | ||||
|   php_admin_flag safe_mode off | ||||
|   php_admin_flag enable_dl off | ||||
| 
 | ||||
|   php_admin_value disable_functions chmod,chown,chgrp,link,symlink | ||||
|   php_admin_value safe_mode_exec_dir /usr/lib/alternc/safe_mode_exec_dir | ||||
|   php_admin_value disable_functions chgrp,link,symlink | ||||
|   php_admin_value sendmail_path /usr/lib/alternc/sendmail | ||||
| 
 | ||||
|   # Default upload_tmp_dir is /tmp . Be carefull, this value MUST be surcharged | ||||
|   # by the vhost to be a directory INSIDE the home of the user. If you don't do | ||||
|   # that, ACLs could be "strange" or inexistent. | ||||
|   php_admin_value upload_tmp_dir /tmp  | ||||
| </Directory> | ||||
| 
 | ||||
| <Directory /usr/share/phpmyadmin> | ||||
|   AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
|   Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
| </Directory> | ||||
| <Directory /usr/share/squirrelmail> | ||||
|   AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
|   Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
|   Order allow,deny | ||||
|   Allow from all | ||||
| </Directory> | ||||
| 
 | ||||
| <VirtualHost *:80> | ||||
|   Include /etc/alternc/bureau.conf | ||||
| </VirtualHost> | ||||
| 
 | ||||
| # Now we include all the generated configuration | ||||
| Include /var/lib/alternc/apache-vhost/vhosts_all.conf | ||||
|  | @ -1,37 +0,0 @@ | |||
| 
 | ||||
|   AssignUserId alterncpanel alterncpanel | ||||
|   SetEnv LOGIN "0000-panel" | ||||
| 
 | ||||
|   DocumentRoot /usr/share/alternc/panel/admin | ||||
|   ServerName %%fqdn%% | ||||
| 
 | ||||
|   # Mail autoconfig | ||||
|   ServerAlias autoconfig.* | ||||
|   ServerAlias autodiscover.* | ||||
| 
 | ||||
|   RewriteEngine on | ||||
|   RewriteRule   ^/admin/(.*)  /$1 [R=301,L] | ||||
|    | ||||
|   alias /alternc-sql      /usr/share/phpmyadmin | ||||
| 
 | ||||
|   RewriteEngine On | ||||
|   RewriteRule ^webmail /webmail-redirect.php [L] | ||||
| 
 | ||||
|   # Mail autoconfig | ||||
|   RewriteRule ^/mail/mailautoconfig.xml$ /mailautoconfig_thunderbird.php [L] | ||||
|   RewriteRule ^/mail/config-v1.1.xml$ /mailautoconfig_thunderbird.php [L] | ||||
|   RewriteRule ^mail/mailautoconfig.xml$ /mailautoconfig_thunderbird.php [L] | ||||
|   RewriteRule ^mail/config-v1.1.xml$ /mailautoconfig_thunderbird.php [L] | ||||
|   RewriteRule ^/autodiscover/autodiscover.xml$ /mailautoconfig_outlook.php [L] | ||||
|   RewriteRule ^/Autodiscover/Autodiscover.xml$ /mailautoconfig_outlook.php [L] | ||||
|   RewriteRule ^/Autodiscover.xml$ mailautoconfig_outlook.php [L] | ||||
|   RewriteRule ^/autodiscover.xml$ mailautoconfig_outlook.php [L] | ||||
|   RewriteRule ^autodiscover/autodiscover.xml$ /mailautoconfig_outlook.php [L] | ||||
|   RewriteRule ^Autodiscover/Autodiscover.xml$ /mailautoconfig_outlook.php [L] | ||||
|   RewriteRule ^Autodiscover.xml$ mailautoconfig_outlook.php [L] | ||||
|   RewriteRule ^autodiscover.xml$ mailautoconfig_outlook.php [L] | ||||
| 
 | ||||
| 
 | ||||
|   # will be used to define aliases such as /javascript /webmail /squirrelmail ... | ||||
|   IncludeOptional /etc/alternc/apache-panel.d/*.conf | ||||
| 
 | ||||
|  | @ -1,13 +0,0 @@ | |||
| --- changelog	2014-06-24 13:42:50.234304438 +0200
 | ||||
| +++ changelog.wheezy	2014-06-24 13:43:51.978313552 +0200
 | ||||
| @@ -1,1 +1,8 @@
 | ||||
| +alternc (3.3.10) stable; urgency=low
 | ||||
| +
 | ||||
| +  * Version identical to 3.1 for Squeeze
 | ||||
| +  * Includes small patches / dependency for apache & dovecot 2.0 for Jessie
 | ||||
| +
 | ||||
| + -- Benjamin Sonntag <benjamin@sonntag.fr>  Fri, 15 Jan 2016 15:26:00 +0100
 | ||||
| +
 | ||||
|  alternc (3.2.10) oldstable; urgency=low | ||||
| 
 | ||||
|   * Version identical to 3.1 for Squeeze | ||||
|  | @ -1,28 +0,0 @@ | |||
| --- control.wheezy	2017-10-06 12:13:49.765062335 +0200
 | ||||
| +++ control	2017-10-06 12:15:52.021333089 +0200
 | ||||
| @@ -38,9 +38,9 @@
 | ||||
|         , sudo | ||||
|         , adduser | ||||
|         , dnsutils | ||||
| -       , dovecot-common (>=1:2.1.7)
 | ||||
| -       , dovecot-imapd
 | ||||
| -       , dovecot-pop3d
 | ||||
| +       , dovecot-core (>=1:2.1.7)
 | ||||
| +       , dovecot-imapd (>=1:2.1.7)
 | ||||
| +       , dovecot-pop3d (>=1:2.1.7)
 | ||||
|         , dovecot-mysql | ||||
|         , vlogger | ||||
|         , mailutils | mailx | ||||
| @@ -126,9 +126,9 @@
 | ||||
|           , gettext (>= 0.10.40-5) | ||||
|           , adduser | ||||
|           , sudo | ||||
| -         , dovecot-common (>=1:2.1.7)
 | ||||
| -         , dovecot-imapd
 | ||||
| -         , dovecot-pop3d
 | ||||
| +         , dovecot-core (>=1:2.1.7)
 | ||||
| +         , dovecot-imapd (>=1:2.1.7)
 | ||||
| +         , dovecot-pop3d (>=1:2.1.7)
 | ||||
|           , dovecot-mysql | ||||
|           , vlogger | ||||
|           , mailutils | mailx | ||||
|  | @ -1,28 +0,0 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # Migrate a repository to WHEEZY | ||||
| 
 | ||||
| # DON'T COMMIT ANYTHING AFTER launching this | ||||
| # reset your subversion repos back to the serverside one! | ||||
| 
 | ||||
| cd `dirname $0`  | ||||
| 
 | ||||
| pushd ../debian  | ||||
| patch <../jessie/control.diff | ||||
| patch <../jessie/changelog.diff | ||||
| popd | ||||
| 
 | ||||
| cp vhost.conf ../etc/alternc/templates/apache2/ | ||||
| cp bureau.conf ../etc/alternc/templates/alternc/ | ||||
| cp alternc.install ../install/ | ||||
| cp apache2.conf ../etc/alternc/templates/alternc/ | ||||
| # alternc-roundcube package :  | ||||
| cp roundcube.config.inc.php ../roundcube/templates/roundcube/config.inc.php | ||||
| rm ../roundcube/templates/roundcube/main.inc.php | ||||
| cp roundcube.password.config.inc.php ../roundcube/templates/roundcube/plugins/password/config.inc.php | ||||
| cp roundcube-install ../roundcube/ | ||||
| cp alternc-roundcube.postinst ../debian/ | ||||
| 
 | ||||
| # alternc-ssl package :  | ||||
| cp ssl.conf ../ssl/ | ||||
| cp alternc-ssl.install.php ../ssl/ | ||||
|  | @ -1,98 +0,0 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # ---------------------------------------------------------------------- | ||||
| # AlternC - Web Hosting System | ||||
| # Copyright (C) 2000-2012 by the AlternC Development Team. | ||||
| # https://alternc.org/ | ||||
| # ---------------------------------------------------------------------- | ||||
| # LICENSE | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or | ||||
| # modify it under the terms of the GNU General Public License (GPL) | ||||
| # as published by the Free Software Foundation; either version 2 | ||||
| # of the License, 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 General Public License for more details. | ||||
| # | ||||
| # To read the license please visit http://www.gnu.org/copyleft/gpl.html | ||||
| # ---------------------------------------------------------------------- | ||||
| # Purpose of file: Install roundcube conf files. | ||||
| # ---------------------------------------------------------------------- | ||||
| 
 | ||||
| if [ "$1" = "templates" ] | ||||
| then | ||||
|     echo "Installing Roundcube Templates ..." | ||||
| #    cp -f /etc/alternc/templates/roundcube/avelsieve-config.php /etc/alternc/templates/roundcube/apache.conf /etc/roundcube/ | ||||
| #    cp -f /etc/alternc/templates/javascript-common/javascript-common.conf /etc/javascript-common/ | ||||
| 
 | ||||
|     LOGIN="0000_roundcube" | ||||
|     PASSWORD="`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..10)'`" | ||||
|     DESKEY="`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..24)'`" | ||||
| 
 | ||||
|     # Add new variables to the sed script ... | ||||
|     SED_SCRIPT="/tmp/alternc-roundcube.sedscript" | ||||
|     # cf alternc.install for more explanations on this horror :  | ||||
|     eval `sed -n -e "/=/{s/ *= *\"\?/='/;s/\"\?\$/'/;s/host/MYSQL_HOST/;s/user/MYSQL_USER/;s/password/MYSQL_PASS/;s/database/MYSQL_DATABASE/;p}" /etc/alternc/my.cnf` | ||||
|     . /etc/alternc/local.sh | ||||
|     # Configuration template location | ||||
|     TEMPLATE_DIR="/etc/alternc/templates" | ||||
|     CONFIG_FILES="etc/roundcube/config.inc.php etc/roundcube/plugins/password/config.inc.php" | ||||
| 
 | ||||
|     cat > $SED_SCRIPT <<EOF | ||||
| s\\%%ALTERNC_LOC%%\\$ALTERNC_LOC\\; | ||||
| s\\%%dbhost%%\\$MYSQL_HOST\\; | ||||
| s\\%%dbname%%\\$MYSQL_DATABASE\\; | ||||
| s\\%%roundcube-login%%\\$LOGIN\\; | ||||
| s\\%%roundcube-password%%\\$PASSWORD\\; | ||||
| s\\%%deskey%%\\$DESKEY\\; | ||||
| EOF | ||||
|     for file in $CONFIG_FILES; do | ||||
| 	TEMPLATE="$TEMPLATE_DIR/${file##etc/}" | ||||
| 	echo -n " $file" | ||||
| 	if [ -f "$TEMPLATE" ]; then | ||||
|             sed -f "$SED_SCRIPT" < $TEMPLATE > /$file | ||||
| 	fi | ||||
|     done | ||||
| 
 | ||||
|     rm -f $SED_SCRIPT | ||||
| 
 | ||||
|     echo "    Done" | ||||
| 
 | ||||
|     . /usr/lib/alternc/functions.sh | ||||
| 
 | ||||
|     echo "giving write access to roundcube to the email password ..." | ||||
|     # now database host user and password are mysql root account values ;)  | ||||
|     mysql_query "GRANT UPDATE (password) ON ${database}.address TO '${LOGIN}'@'${MYSQL_CLIENT}' IDENTIFIED BY '${PASSWORD}';" | ||||
|     mysql_query "GRANT SELECT ON ${database}.address TO '${LOGIN}'@'${MYSQL_CLIENT}';" | ||||
|     mysql_query "GRANT SELECT ON ${database}.domaines TO '${LOGIN}'@'${MYSQL_CLIENT}';" | ||||
|     echo "    Done" | ||||
|     | ||||
|     echo "Setting roundcube domaintype" | ||||
|     mysql_query "INSERT IGNORE INTO domaines_type (name ,description ,target ,entry ,compatibility ,enable ,only_dns ,need_dns ,advanced )VALUES ('roundcube','Roundcube Webmail access', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'txt', 'ALL', '0', '0', '0');" | ||||
|     echo "    Done" | ||||
| 
 | ||||
|     echo "Migrating old webmail domaine type to roundcube one:" | ||||
|     # migration of the "webmail" hosts to "roundcube" hosts: | ||||
|     mysql_query "INSERT IGNORE INTO sub_domaines (compte, domaine, sub, valeur, type, web_action, web_result, enable) SELECT compte, domaine, sub, valeur,'roundcube', 'UPDATE',0, enable FROM sub_domaines WHERE type='WEBMAIL';" | ||||
|     mysql_query "UPDATE sub_domaines SET web_action='DELETE' WHERE type='WEBMAIL';" | ||||
|     echo "    Done" | ||||
| 
 | ||||
|     echo "Deconfiguring javascript-common alias" | ||||
|     if [ -f /etc/apache2/conf.d/javascript-common.conf ]; then | ||||
|         	rm -f /etc/apache2/conf.d/javascript-common.conf | ||||
|     fi | ||||
|     if [ -f /etc/apache2/conf-available/javascript-common.conf ] ; then | ||||
| 		a2disconf javascript-common.conf | ||||
| 		service apache2 reload | ||||
|     fi | ||||
|     # just in case  | ||||
|     if [ -f /etc/javascript-common/javascript-common.conf ]; then | ||||
|         sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf | ||||
|     fi | ||||
|     echo "    Done" | ||||
|      | ||||
| fi | ||||
| 
 | ||||
|  | @ -1,401 +0,0 @@ | |||
| <?php | ||||
| 
 | ||||
| // Password Plugin options
 | ||||
| // -----------------------
 | ||||
| // A driver to use for password change. Default: "sql".
 | ||||
| // See README file for list of supported driver names.
 | ||||
| $config['password_driver'] = 'sql'; | ||||
| 
 | ||||
| // Determine whether current password is required to change password.
 | ||||
| // Default: false.
 | ||||
| $config['password_confirm_current'] = true; | ||||
| 
 | ||||
| // Require the new password to be a certain length.
 | ||||
| // set to blank to allow passwords of any length
 | ||||
| $config['password_minimum_length'] = 8; | ||||
| 
 | ||||
| // Require the new password to contain a letter and punctuation character
 | ||||
| // Change to false to remove this check.
 | ||||
| $config['password_require_nonalpha'] = true; | ||||
| 
 | ||||
| // Enables logging of password changes into logs/password
 | ||||
| $config['password_log'] = true; | ||||
| 
 | ||||
| // Comma-separated list of login exceptions for which password change
 | ||||
| // will be not available (no Password tab in Settings)
 | ||||
| $config['password_login_exceptions'] = null; | ||||
| 
 | ||||
| // Array of hosts that support password changing. Default is NULL.
 | ||||
| // Listed hosts will feature a Password option in Settings; others will not.
 | ||||
| // Example:
 | ||||
| //$config['password_hosts'] = array('mail.example.com', 'mail2.example.org');
 | ||||
| $config['password_hosts'] = null; | ||||
| 
 | ||||
| // Enables saving the new password even if it matches the old password. Useful
 | ||||
| // for upgrading the stored passwords after the encryption scheme has changed.
 | ||||
| $config['password_force_save'] = false; | ||||
| 
 | ||||
| // Enables forcing new users to change their password at their first login.
 | ||||
| $config['password_force_new_user'] = false; | ||||
| 
 | ||||
| 
 | ||||
| // SQL Driver options
 | ||||
| // ------------------
 | ||||
| // PEAR database DSN for performing the query. By default
 | ||||
| // Roundcube DB settings are used.
 | ||||
| $config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%%@%%dbhost%%/%%dbname%%'; | ||||
| 
 | ||||
| // The SQL query used to change the password.
 | ||||
| // The query can contain the following macros that will be expanded as follows:
 | ||||
| //      %p is replaced with the plaintext new password
 | ||||
| //      %c is replaced with the crypt version of the new password, MD5 if available
 | ||||
| //         otherwise DES. More hash function can be enabled using the password_crypt_hash 
 | ||||
| //         configuration parameter.
 | ||||
| //      %D is replaced with the dovecotpw-crypted version of the new password
 | ||||
| //      %o is replaced with the password before the change
 | ||||
| //      %n is replaced with the hashed version of the new password
 | ||||
| //      %q is replaced with the hashed password before the change
 | ||||
| //      %h is replaced with the imap host (from the session info)
 | ||||
| //      %u is replaced with the username (from the session info)
 | ||||
| //      %l is replaced with the local part of the username
 | ||||
| //         (in case the username is an email address)
 | ||||
| //      %d is replaced with the domain part of the username
 | ||||
| //         (in case the username is an email address)
 | ||||
| // Escaping of macros is handled by this module.
 | ||||
| // Default: "SELECT update_passwd(%c, %u)"
 | ||||
| $config['password_query'] = 'UPDATE address a LEFT JOIN domaines d ON d.id=a.domain_id SET a.password=%c WHERE d.domaine=%d AND address=%l'; | ||||
| 
 | ||||
| // By default the crypt() function which is used to create the '%c' 
 | ||||
| // parameter uses the md5 algorithm. To use different algorithms 
 | ||||
| // you can choose between: des, md5, blowfish, sha256, sha512.
 | ||||
| // Before using other hash functions than des or md5 please make sure
 | ||||
| // your operating system supports the other hash functions.
 | ||||
| $config['password_crypt_hash'] = 'md5'; | ||||
| 
 | ||||
| // By default domains in variables are using unicode.
 | ||||
| // Enable this option to use punycoded names
 | ||||
| $config['password_idn_ascii'] = false; | ||||
| 
 | ||||
| // Path for dovecotpw (if not in $PATH)
 | ||||
| // $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw';
 | ||||
| 
 | ||||
| // Dovecot method (dovecotpw -s 'method')
 | ||||
| $config['password_dovecotpw_method'] = 'CRAM-MD5'; | ||||
| 
 | ||||
| // Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
 | ||||
| $config['password_dovecotpw_with_method'] = false; | ||||
| 
 | ||||
| // Using a password hash for %n and %q variables.
 | ||||
| // Determine which hashing algorithm should be used to generate
 | ||||
| // the hashed new and current password for using them within the
 | ||||
| // SQL query. Requires PHP's 'hash' extension.
 | ||||
| $config['password_hash_algorithm'] = 'sha1'; | ||||
| 
 | ||||
| // You can also decide whether the hash should be provided
 | ||||
| // as hex string or in base64 encoded format.
 | ||||
| $config['password_hash_base64'] = false; | ||||
| 
 | ||||
| // Iteration count parameter for Blowfish-based hashing algo.
 | ||||
| // It must be between 4 and 31. Default: 12.
 | ||||
| // Be aware, the higher the value, the longer it takes to generate the password hashes.
 | ||||
| $config['password_blowfish_cost'] = 12; | ||||
| 
 | ||||
| 
 | ||||
| // Poppassd Driver options
 | ||||
| // -----------------------
 | ||||
| // The host which changes the password
 | ||||
| $config['password_pop_host'] = 'localhost'; | ||||
| 
 | ||||
| // TCP port used for poppassd connections
 | ||||
| $config['password_pop_port'] = 106; | ||||
| 
 | ||||
| 
 | ||||
| // SASL Driver options
 | ||||
| // -------------------
 | ||||
| // Additional arguments for the saslpasswd2 call
 | ||||
| $config['password_saslpasswd_args'] = ''; | ||||
| 
 | ||||
| 
 | ||||
| // LDAP and LDAP_SIMPLE Driver options
 | ||||
| // -----------------------------------
 | ||||
| // LDAP server name to connect to. 
 | ||||
| // 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'
 | ||||
| $config['password_ldap_host'] = 'localhost'; | ||||
| 
 | ||||
| // LDAP server port to connect to
 | ||||
| // Default: '389'
 | ||||
| $config['password_ldap_port'] = '389'; | ||||
| 
 | ||||
| // TLS is started after connecting
 | ||||
| // Using TLS for password modification is recommanded.
 | ||||
| // Default: false
 | ||||
| $config['password_ldap_starttls'] = false; | ||||
| 
 | ||||
| // LDAP version
 | ||||
| // Default: '3'
 | ||||
| $config['password_ldap_version'] = '3'; | ||||
| 
 | ||||
| // LDAP base name (root directory)
 | ||||
| // Exemple: 'dc=exemple,dc=com'
 | ||||
| $config['password_ldap_basedn'] = 'dc=exemple,dc=com'; | ||||
| 
 | ||||
| // 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'
 | ||||
| $config['password_ldap_method'] = 'user'; | ||||
| 
 | ||||
| // LDAP Admin DN
 | ||||
| // Used only in admin connection mode
 | ||||
| // Default: null
 | ||||
| $config['password_ldap_adminDN'] = null; | ||||
| 
 | ||||
| // LDAP Admin Password
 | ||||
| // Used only in admin connection mode
 | ||||
| // Default: null
 | ||||
| $config['password_ldap_adminPW'] = null; | ||||
| 
 | ||||
| // LDAP user DN mask
 | ||||
| // The user's DN is mandatory and as we only have his login,
 | ||||
| // we need to re-create his DN using a mask
 | ||||
| // '%login' will be replaced by the current roundcube user's login
 | ||||
| // '%name' will be replaced by the current roundcube user's name part
 | ||||
| // '%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'
 | ||||
| $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
 | ||||
| // based on his login. Note that you should comment out the default
 | ||||
| // password_ldap_userDN_mask setting for this to take effect.
 | ||||
| // Use this if you cannot specify a general template for user DN with
 | ||||
| // password_ldap_userDN_mask. You need to perform a search based on
 | ||||
| // 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.
 | ||||
| $config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; | ||||
| 
 | ||||
| // LDAP search password
 | ||||
| // If password_ldap_searchDN is set, the password to use for
 | ||||
| // binding to search for user's DN. Note that you should comment out the default
 | ||||
| // password_ldap_userDN_mask setting for this to take effect.
 | ||||
| // Warning: Be sure to set approperiate permissions on this file so this password
 | ||||
| // 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.
 | ||||
| $config['password_ldap_searchPW'] = 'secret'; | ||||
| 
 | ||||
| // 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.
 | ||||
| $config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
| 
 | ||||
| // LDAP search filter
 | ||||
| // If password_ldap_searchDN is set, the filter to use when
 | ||||
| // searching for user's DN. Note that you should comment out the default
 | ||||
| // password_ldap_userDN_mask setting for this to take effect.
 | ||||
| // '%login' will be replaced by the current roundcube user's login
 | ||||
| // '%name' will be replaced by the current roundcube user's name part
 | ||||
| // '%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"
 | ||||
| // Example: '(uid=%login)'
 | ||||
| // Example: '(&(objectClass=posixAccount)(uid=%login))'
 | ||||
| $config['password_ldap_search_filter'] = '(uid=%login)'; | ||||
| 
 | ||||
| // LDAP password hash type
 | ||||
| // Standard LDAP encryption type which must be one of: crypt,
 | ||||
| // ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad, cram-md5 (dovecot style) or clear.
 | ||||
| // 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.
 | ||||
| // Multiple password Values can be generated by concatenating encodings with a +. E.g. 'cram-md5+crypt'
 | ||||
| // Default: 'crypt'.
 | ||||
| $config['password_ldap_encodage'] = 'crypt'; | ||||
| 
 | ||||
| // LDAP password attribute
 | ||||
| // Name of the ldap's attribute used for storing user password
 | ||||
| // Default: '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
 | ||||
| $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)
 | ||||
| $config['password_ldap_lchattr'] = ''; | ||||
| 
 | ||||
| // LDAP Samba password attribute, e.g. sambaNTPassword
 | ||||
| // Name of the LDAP's Samba attribute used for storing user password
 | ||||
| $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
 | ||||
| $config['password_ldap_samba_lchattr'] = ''; | ||||
| 
 | ||||
| 
 | ||||
| // DirectAdmin Driver options
 | ||||
| // --------------------------
 | ||||
| // The host which changes the password
 | ||||
| // Use 'ssl://host' instead of 'tcp://host' when running DirectAdmin over SSL.
 | ||||
| // The host can contain the following macros that will be expanded as follows:
 | ||||
| //     %h is replaced with the imap host (from the session info)
 | ||||
| //     %d is replaced with the domain part of the username (if the username is an email)
 | ||||
| $config['password_directadmin_host'] = 'tcp://localhost'; | ||||
| 
 | ||||
| // TCP port used for DirectAdmin connections
 | ||||
| $config['password_directadmin_port'] = 2222; | ||||
| 
 | ||||
| 
 | ||||
| // vpopmaild Driver options
 | ||||
| // -----------------------
 | ||||
| // The host which changes the password
 | ||||
| $config['password_vpopmaild_host'] = 'localhost'; | ||||
| 
 | ||||
| // TCP port used for vpopmaild connections
 | ||||
| $config['password_vpopmaild_port'] = 89; | ||||
| 
 | ||||
| // Timout used for the connection to vpopmaild (in seconds)
 | ||||
| $config['password_vpopmaild_timeout'] = 10; | ||||
| 
 | ||||
| 
 | ||||
| // cPanel Driver options
 | ||||
| // --------------------------
 | ||||
| // The cPanel Host name
 | ||||
| $config['password_cpanel_host'] = 'host.domain.com'; | ||||
| 
 | ||||
| // The cPanel admin username
 | ||||
| $config['password_cpanel_username'] = 'username'; | ||||
| 
 | ||||
| // The cPanel admin password
 | ||||
| $config['password_cpanel_password'] = 'password'; | ||||
| 
 | ||||
| // The cPanel port to use
 | ||||
| $config['password_cpanel_port'] = 2087; | ||||
| 
 | ||||
| 
 | ||||
| // XIMSS (Communigate server) Driver options
 | ||||
| // -----------------------------------------
 | ||||
| // Host name of the Communigate server
 | ||||
| $config['password_ximss_host'] = 'mail.example.com'; | ||||
| 
 | ||||
| // XIMSS port on Communigate server
 | ||||
| $config['password_ximss_port'] = 11024; | ||||
| 
 | ||||
| 
 | ||||
| // chpasswd Driver options
 | ||||
| // ---------------------
 | ||||
| // Command to use
 | ||||
| $config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; | ||||
| 
 | ||||
| 
 | ||||
| // XMail Driver options
 | ||||
| // ---------------------
 | ||||
| $config['xmail_host'] = 'localhost'; | ||||
| $config['xmail_user'] = 'YourXmailControlUser'; | ||||
| $config['xmail_pass'] = 'YourXmailControlPass'; | ||||
| $config['xmail_port'] = 6017; | ||||
| 
 | ||||
| 
 | ||||
| // hMail Driver options
 | ||||
| // -----------------------
 | ||||
| // Remote hMailServer configuration
 | ||||
| // true:  HMailserver is on a remote box (php.ini: com.allow_dcom = true)
 | ||||
| // false: Hmailserver is on same box as PHP
 | ||||
| $config['hmailserver_remote_dcom'] = false; | ||||
| // Windows credentials
 | ||||
| $config['hmailserver_server'] = array( | ||||
|     'Server' => 'localhost', // hostname or ip address
 | ||||
|     'Username' => 'administrator', // windows username
 | ||||
|     'Password' => 'password' // windows user password
 | ||||
| ); | ||||
| 
 | ||||
| 
 | ||||
| // Virtualmin Driver options
 | ||||
| // -------------------------
 | ||||
| // Username format:
 | ||||
| // 0: username@domain
 | ||||
| // 1: username%domain
 | ||||
| // 2: username.domain
 | ||||
| // 3: domain.username
 | ||||
| // 4: username-domain
 | ||||
| // 5: domain-username
 | ||||
| // 6: username_domain
 | ||||
| // 7: domain_username
 | ||||
| $config['password_virtualmin_format'] = 0; | ||||
| 
 | ||||
| 
 | ||||
| // pw_usermod Driver options
 | ||||
| // --------------------------
 | ||||
| // Use comma delimited exlist to disable password change for users
 | ||||
| // Add the following line to visudo to tighten security:
 | ||||
| // www  ALL=NOPASSWORD: /usr/sbin/pw
 | ||||
| $config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n'; | ||||
| 
 | ||||
| 
 | ||||
| // DBMail Driver options
 | ||||
| // -------------------
 | ||||
| // Additional arguments for the dbmail-users call
 | ||||
| $config['password_dbmail_args'] = '-p sha512'; | ||||
| 
 | ||||
| 
 | ||||
| // Expect Driver options
 | ||||
| // ---------------------
 | ||||
| // Location of expect binary
 | ||||
| $config['password_expect_bin'] = '/usr/bin/expect'; | ||||
| 
 | ||||
| // Location of expect script (see helpers/passwd-expect)
 | ||||
| $config['password_expect_script'] = ''; | ||||
| 
 | ||||
| // Arguments for the expect script. See the helpers/passwd-expect file for details.
 | ||||
| // This is probably a good starting default:
 | ||||
| //   -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log
 | ||||
| $config['password_expect_params'] = ''; | ||||
| 
 | ||||
| 
 | ||||
| // smb Driver options
 | ||||
| // ---------------------
 | ||||
| // Samba host (default: localhost)
 | ||||
| // 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)
 | ||||
| $config['password_smb_host'] = 'localhost'; | ||||
| // Location of smbpasswd binary
 | ||||
| $config['password_smb_cmd'] = '/usr/bin/smbpasswd'; | ||||
| 
 | ||||
| // gearman driver options
 | ||||
| // ---------------------
 | ||||
| // Gearman host (default: localhost)
 | ||||
| $config['password_gearman_host'] = 'localhost'; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // Plesk/PPA Driver options
 | ||||
| // --------------------
 | ||||
| // You need to allow RCP for IP of roundcube-server in Plesk/PPA Panel 
 | ||||
| 
 | ||||
| // Plesk RCP Host
 | ||||
| $config['password_plesk_host'] = '10.0.0.5'; | ||||
| 
 | ||||
| // Plesk RPC Username
 | ||||
| $config['password_plesk_user'] = 'admin'; | ||||
| 
 | ||||
| // Plesk RPC Password
 | ||||
| $config['password_plesk_pass'] = 'password'; | ||||
| 
 | ||||
| // Plesk RPC Port
 | ||||
| $config['password_plesk_rpc_port'] = '8443'; | ||||
| 
 | ||||
| // Plesk RPC Path
 | ||||
| $config['password_plesk_rpc_path'] = 'enterprise/control/agent.php'; | ||||
|  | @ -1,91 +0,0 @@ | |||
| # ############################################################################ | ||||
| #           WARNING : this file is overwritten by alternc.install.  | ||||
| #        Edit /etc/alternc/templates/apache2/mods-available/ instead. | ||||
| # ############################################################################ | ||||
| 
 | ||||
| <IfModule mod_ssl.c> | ||||
| # | ||||
| # Pseudo Random Number Generator (PRNG): | ||||
| # Configure one or more sources to seed the PRNG of the SSL library. | ||||
| # The seed data should be of good random quality. | ||||
| # WARNING! On some platforms /dev/random blocks if not enough entropy | ||||
| # is available. This means you then cannot use the /dev/random device | ||||
| # because it would lead to very long connection times (as long as | ||||
| # it requires to make more entropy available). But usually those | ||||
| # platforms additionally provide a /dev/urandom device which doesn't | ||||
| # block. So, if available, use this one instead. Read the mod_ssl User | ||||
| # Manual for more details. | ||||
| # | ||||
| SSLRandomSeed startup builtin | ||||
| SSLRandomSeed startup file:/dev/urandom 512 | ||||
| SSLRandomSeed connect builtin | ||||
| SSLRandomSeed connect file:/dev/urandom 512 | ||||
| 
 | ||||
| ## | ||||
| ##  SSL Global Context | ||||
| ## | ||||
| ##  All SSL configuration in this context applies both to | ||||
| ##  the main server and all SSL-enabled virtual hosts. | ||||
| ## | ||||
| 
 | ||||
| # | ||||
| #   Some MIME-types for downloading Certificates and CRLs | ||||
| # | ||||
| AddType application/x-x509-ca-cert .crt | ||||
| AddType application/x-pkcs7-crl    .crl | ||||
| 
 | ||||
| #   Pass Phrase Dialog: | ||||
| #   Configure the pass phrase gathering process. | ||||
| #   The filtering dialog program (`builtin' is a internal | ||||
| #   terminal dialog) has to provide the pass phrase on stdout. | ||||
| SSLPassPhraseDialog  builtin | ||||
| 
 | ||||
| #   Inter-Process Session Cache: | ||||
| #   Configure the SSL Session Cache: First the mechanism  | ||||
| #   to use and second the expiring timeout (in seconds). | ||||
| #   (The mechanism dbm has known memory leaks and should not be used). | ||||
| #SSLSessionCache         dbm:${APACHE_RUN_DIR}/ssl_scache | ||||
| SSLSessionCache        shmcb:${APACHE_RUN_DIR}/ssl_scache(512000) | ||||
| SSLSessionCacheTimeout  300 | ||||
| 
 | ||||
| #   Semaphore: | ||||
| #   Configure the path to the mutual exclusion semaphore the | ||||
| #   SSL engine uses internally for inter-process synchronization.  | ||||
| Mutex  file:${APACHE_RUN_DIR} | ||||
| 
 | ||||
| #   SSL Cipher Suite: | ||||
| #   List the ciphers that the client is permitted to negotiate. See the | ||||
| #   ciphers(1) man page from the openssl package for list of all available | ||||
| #   options. | ||||
| #   Enable only secure ciphers: | ||||
| #SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 | ||||
| SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM | ||||
| # Other possible ciphersuite (requires wheezy-version of apache2 at least) | ||||
|  #SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS" | ||||
| 
 | ||||
| #   Speed-optimized SSL Cipher configuration: | ||||
| #   If speed is your main concern (on busy HTTPS servers e.g.), | ||||
| #   you might want to force clients to specific, performance | ||||
| #   optimized ciphers. In this case, prepend those ciphers | ||||
| #   to the SSLCipherSuite list, and enable SSLHonorCipherOrder. | ||||
| #   Caveat: by giving precedence to RC4-SHA and AES128-SHA | ||||
| #   (as in the example below), most connections will no longer | ||||
| #   have perfect forward secrecy - if the server's key is | ||||
| #   compromised, captures of past or future traffic must be | ||||
| #   considered compromised, too. | ||||
| #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5 | ||||
| SSLHonorCipherOrder on | ||||
| 
 | ||||
| # enable only secure protocols: SSLv3 and TLSv1, but not SSLv2 | ||||
| #SSLProtocol all -SSLv2 | ||||
| SSLProtocol all -SSLv2 -SSLv3 | ||||
| 
 | ||||
| # Allow insecure renegotiation with clients which do not yet support the | ||||
| # secure renegotiation protocol. Default: Off | ||||
| #SSLInsecureRenegotiation on | ||||
| 
 | ||||
| # Whether to forbid non-SNI clients to access name based virtual hosts. | ||||
| # Default: Off | ||||
| SSLStrictSNIVHostCheck Off | ||||
| 
 | ||||
| </IfModule> | ||||
|  | @ -1,25 +0,0 @@ | |||
| <VirtualHost *:80> | ||||
|   ServerName %%fqdn%% | ||||
|   DocumentRoot "%%document_root%%" | ||||
|   AssignUserId #%%UID%% #%%GID%% | ||||
|   SetEnv LOGIN "%%UID%%-%%LOGIN%%" | ||||
| 
 | ||||
|   <Directory "%%document_root%%"> | ||||
|     php_admin_value open_basedir "%%account_root%%:/usr/share/php/" | ||||
|     php_admin_value upload_tmp_dir %%account_root%%/tmp | ||||
|     php_admin_value sendmail_path '/usr/lib/alternc/sendmail "%%mail_account%%" ' | ||||
|     php_admin_flag mail.add_x_header on | ||||
|     Options -MultiViews -FollowSymLinks +SymLinksIfOwnerMatch | ||||
|     AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
|     Order allow,deny | ||||
|     Allow from all | ||||
|     Require all granted | ||||
|   </Directory> | ||||
| 
 | ||||
| # If you want to log the errors also in /var/log/alternc/sites/  | ||||
| # WARNING: this WILL FORK a vlogger for EACH VHOST havingg this !!! the load on the machine may be high  | ||||
| # on hosting with many vhosts. as a consequence, this is disabled by default | ||||
| #  ErrorLog "|| /usr/sbin/vlogger -e -u alterncpanel -g alterncpanel -s error.log -t \"error-%Y%m%d.log\" /var/log/alternc/sites/%%UID%%-%%LOGIN%%/" | ||||
| 
 | ||||
| </VirtualHost> | ||||
| 
 | ||||
|  | @ -20,7 +20,7 @@ define('ALTERNC_PANEL',realpath(__DIR__."/../bureau"));; // Custom | |||
| define('PHPUNIT_DATASETS_PATH',realpath(__DIR__."/tests/_datasets")); | ||||
| require_once ALTERNC_PANEL."/class/db_mysql.php"; | ||||
| require_once ALTERNC_PANEL."/class/functions.php"; | ||||
| 
 | ||||
| require_once ALTERNC_PANEL."/class/variables.php"; | ||||
| 
 | ||||
| // General variables setup
 | ||||
| // *********************
 | ||||
|  | @ -143,7 +143,7 @@ echo "*** In progress: mysql.sql imported\n"; | |||
| 
 | ||||
| $db                                     = new \DB_system($database, $user, $password); | ||||
| $cuid                                   = 0; | ||||
| $variables                              = new \m_variables(); | ||||
| $msg                                  = new \m_messages(); | ||||
| $mem                                    = new \m_mem(); | ||||
| $err                                    = new \m_err(); | ||||
| $authip                                 = new \m_authip(); | ||||
|  |  | |||
|  | @ -3,9 +3,14 @@ | |||
|  * This is the abstract class for all tests | ||||
|  * @see http://phpunit.de/manual/ | ||||
|  */ | ||||
| abstract class AlterncTest extends PHPUnit_Extensions_Database_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| use PHPUnit\DbUnit\TestCaseTrait; | ||||
| 
 | ||||
| abstract class AlterncTest extends TestCase | ||||
| { | ||||
|         /** | ||||
|     use TestCaseTrait; | ||||
| 
 | ||||
|     /** | ||||
|      * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection | ||||
|      */ | ||||
|     public function getConnection() | ||||
|  | @ -14,9 +19,9 @@ abstract class AlterncTest extends PHPUnit_Extensions_Database_TestCase | |||
|         $pdo = new PDO('mysql:dbname='.$database.';host=127.0.0.1',$user,$password); | ||||
|         return $this->createDefaultDBConnection($pdo); | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     /** | ||||
|      *  | ||||
|      * | ||||
|      * @param string $fileList | ||||
|      * @return \PHPUnit_Extensions_Database_DataSet_YamlDataSet | ||||
|      * @throws \Exception | ||||
|  | @ -40,8 +45,6 @@ abstract class AlterncTest extends PHPUnit_Extensions_Database_TestCase | |||
|         } | ||||
|         $compositeDataSet            = new PHPUnit_Extensions_Database_DataSet_CompositeDataSet($datasetList); | ||||
|         return $dataSet; | ||||
|     }  | ||||
| 
 | ||||
|      | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -2,7 +2,10 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_adminTest extends PHPUnit_Framework_TestCase | ||||
| 
 | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_adminTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_admin | ||||
|  |  | |||
|  | @ -2,7 +2,10 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_authipTest extends PHPUnit_Framework_TestCase | ||||
| 
 | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_authipTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_authip | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_broTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_broTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_bro | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_cronTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_cronTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_cron | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_cryptoTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_cryptoTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_crypto | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_debug_alterncTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_debug_alterncTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_debug_alternc | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_domTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_domTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_dom | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_errTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_errTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_err | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_exportTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_exportTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_export | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_ftpTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_ftpTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_ftp | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_hooksTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_hooksTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_hooks | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_htaTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_htaTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_hta | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_logTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_logTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_log | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:58. | ||||
|  */ | ||||
| class m_lxcTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_lxcTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_lxc | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:59. | ||||
|  */ | ||||
| class m_memTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_memTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_mem | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:59. | ||||
|  */ | ||||
| class m_menuTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_menuTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_menu | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:59. | ||||
|  */ | ||||
| class m_piwikTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_piwikTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_piwik | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ | |||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:59. | ||||
|  */ | ||||
| class m_quotaTest extends PHPUnit_Framework_TestCase | ||||
| use PHPUnit\Framework\TestCase; | ||||
| 
 | ||||
| class m_quotaTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @var m_quota | ||||
|  |  | |||
|  | @ -1,225 +0,0 @@ | |||
| <?php | ||||
| /** | ||||
|  * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2014-03-13 at 15:55:59. | ||||
|  */ | ||||
| class m_variablesTest extends AlterncTest | ||||
| { | ||||
|     /** | ||||
|      * @var m_variables | ||||
|      */ | ||||
|     protected $object; | ||||
|      | ||||
|     /** | ||||
|      * @return PHPUnit_Extensions_Database_DataSet_IDataSet | ||||
|      */ | ||||
|     public function getDataSet() | ||||
|     { | ||||
|         $list = array( | ||||
|             "testVariable_getNewWayArray"   => "variables-empty.yml", | ||||
|             "testVariable_getNewWayString"  => "variables-empty.yml", | ||||
|             "testVariable_getOldWay"        => "variables-empty.yml", | ||||
|             "default"                       => "variables.yml" | ||||
|         ); | ||||
|         if (isset($list[$this->getName()])) { | ||||
|             $dataset_file = $list[$this->getName()]; | ||||
|         } else { | ||||
|             $dataset_file = "variables.yml"; | ||||
|         } | ||||
|         return parent::loadDataSet($dataset_file); | ||||
| 
 | ||||
|     }  | ||||
| 
 | ||||
|     /** | ||||
|      * Sets up the fixture, for example, opens a network connection. | ||||
|      * This method is called before a test is executed. | ||||
|      */ | ||||
|     protected function setUp() | ||||
|     { | ||||
|         parent::setUp(); | ||||
|         $this->object = new m_variables; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Tears down the fixture, for example, closes a network connection. | ||||
|      * This method is called after a test is executed. | ||||
|      */ | ||||
|     protected function tearDown() | ||||
|     { | ||||
|         parent::tearDown(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::variable_init | ||||
|      * @depends testGet_impersonated | ||||
|      */ | ||||
|     public function testVariable_init($variables) | ||||
|     { | ||||
|         $this->object->variable_init(); | ||||
|         global $conf; | ||||
|         $this->assertTrue(is_array($conf)); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::get_impersonated | ||||
|      */ | ||||
|     public function testGet_impersonated() | ||||
|     { | ||||
|         $variables = $this->object->get_impersonated(); | ||||
|         return $variables; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::variable_init_maybe | ||||
|      */ | ||||
|     public function testVariable_init_maybe() | ||||
|     { | ||||
|         $this->object->variable_init_maybe(); | ||||
|         $this->assertTrue( (is_array($this->object->cache_conf) && !empty($this->object->cache_conf)) ); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::variable_get | ||||
|      */ | ||||
|     public function testVariable_get() | ||||
|     { | ||||
|         $result                     = $this->object->variable_get("phpunit"); | ||||
|         $this->assertStringMatchesFormat("phpunit",$result); | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * @covers m_variables::variable_get | ||||
|      */ | ||||
|     public function testVariable_getOldWay() | ||||
|     { | ||||
| 
 | ||||
|         $this->object->variable_get('phpunit', 'phpunit-default','phpunit-comment'); | ||||
|         $result                             = $this->object->variable_get('phpunit'); | ||||
|         $this->assertSame("phpunit-default",$result); | ||||
|          | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * @covers m_variables::variable_get | ||||
|      */ | ||||
|     public function testVariable_getNewWayString() | ||||
|     { | ||||
| 
 | ||||
|         // New way
 | ||||
|         $this->object->variable_get('phpunit', 'phpunit-default','comment', array('desc'=>'Want a string','type'=>'string')); | ||||
|         $result = $this->object->variable_get('phpunit'); | ||||
|         $this->assertSame("phpunit-default",$result); | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * @covers m_variables::variable_get | ||||
|      */ | ||||
|     public function testVariable_getNewWayArray() | ||||
|     { | ||||
|         $phpunitArray = array("ns1"=>'ns1.tld',"ip"=>"1.2.3.4"); | ||||
|         $this->object->variable_get('phpunit', $phpunitArray,'phpunit-comment', array("ns1"=>array('desc'=>'ns name','type'=>'string'),"ip"=>array("desc"=>"here an ip", "type"=>"ip"))); | ||||
|         $result = $this->object->variable_get('phpunit'); | ||||
|         $this->assertSame($phpunitArray,$result); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::variable_update_or_create | ||||
|      * @expectedException \Exception | ||||
|      */ | ||||
|     public function testVariable_create_exception() | ||||
|     { | ||||
|         // Insert key with already existing key : success
 | ||||
|         $result                     = $this->object->variable_update_or_create("phpunit","phpunit-fail","DEFAULT",0); | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * @covers m_variables::variable_update_or_create | ||||
|      */ | ||||
|     public function testVariable_create() | ||||
|     { | ||||
|         // Insert key with new key : success
 | ||||
|         $result                     = $this->object->variable_update_or_create("phpunit-success","phpunit","DEFAULT",0); | ||||
|         $this->assertTrue($result); | ||||
|         $this->assertEquals(2, $this->getConnection()->getRowCount('variable')); | ||||
|          | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::variable_update_or_create | ||||
|      */ | ||||
|     public function testVariable_update() | ||||
|     { | ||||
|         $result                     = $this->object->variable_update_or_create("phpunit","phpunit-updated","DEFAULT",0,999); | ||||
|         $this->assertTrue($result); | ||||
|         $this->assertEquals(1, $this->getConnection()->getRowCount('variable')); | ||||
|         $expectedTable              = $this->loadDataSet("variables-updated.yml")->getTable("variable"); | ||||
|         $currentTable               = $this->getConnection()->createQueryTable('variable', 'SELECT * FROM variable'); | ||||
|         $this->assertTablesEqual($expectedTable, $currentTable); | ||||
|          | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::del | ||||
|      */ | ||||
|     public function testDel() | ||||
|     { | ||||
|         $result                     = $this->object->del(999); | ||||
|         $this->assertTrue($result); | ||||
|         $this->assertEquals(0, $this->getConnection()->getRowCount('variable')); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::display_valueraw_html | ||||
|      */ | ||||
|     public function testDisplay_valueraw_html() | ||||
|     { | ||||
|         // Empty string
 | ||||
|         $empty_result = $this->object->display_valueraw_html(null, "phpunit",FALSE); | ||||
|         $this->assertStringMatchesFormat("<em>"._("Empty")."</em>",$empty_result); | ||||
|         // Empty array
 | ||||
|         $empty_array_result = $this->object->display_valueraw_html(array(), "phpunit",FALSE); | ||||
|         $this->assertStringMatchesFormat("<em>"._("Empty array")."</em>",$empty_array_result); | ||||
|         // String
 | ||||
|         $value_result = $this->object->display_valueraw_html("value", "phpunit",FALSE); | ||||
|         $this->assertStringMatchesFormat($value_result,$value_result); | ||||
|         // String
 | ||||
|         $array_result = $this->object->display_valueraw_html(array("value","value"), "phpunit",FALSE); | ||||
|         $this->assertStringMatchesFormat("<ul>%s</ul>",$array_result); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::display_value_html | ||||
|      * @depends testVariables_list | ||||
|      */ | ||||
|     public function testDisplay_value_html( $variables ) | ||||
|     { | ||||
|         $valid_result = $this->object->display_value_html($variables, "DEFAULT", 0, "phpunit",FALSE); | ||||
|         $this->assertStringMatchesFormat("phpunit",$valid_result); | ||||
|          | ||||
|         $invalid_result = $this->object->display_value_html($variables, "DEFAULT", 0, "phpunit-absent",FALSE); | ||||
|         $this->assertStringMatchesFormat("<em>"._("None defined")."</em>",$invalid_result); | ||||
|          | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::variables_list_name | ||||
|      * @todo   Implement testVariables_list_name(). | ||||
|      */ | ||||
|     public function testVariables_list_name() | ||||
|     { | ||||
|         $variables = $this->object->variables_list_name(); | ||||
|         $this->assertTrue(is_array($variables)); | ||||
|         return $variables; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @covers m_variables::variables_list | ||||
|      * @todo   Implement testVariables_list(). | ||||
|      */ | ||||
|     public function testVariables_list() | ||||
|     { | ||||
|         $variables = $this->object->variables_list(); | ||||
|         $this->assertTrue(is_array($variables)); | ||||
|         return $variables; | ||||
|     } | ||||
| } | ||||
|  | @ -39,7 +39,7 @@ then | |||
|     . /etc/alternc/local.sh | ||||
|     # Configuration template location | ||||
|     TEMPLATE_DIR="/etc/alternc/templates" | ||||
|     CONFIG_FILES="etc/roundcube/main.inc.php etc/roundcube/plugins/password/config.inc.php etc/roundcube/plugins/managesieve/config.inc.php" | ||||
|     CONFIG_FILES="etc/roundcube/config.inc.php etc/roundcube/plugins/password/config.inc.php" | ||||
| 
 | ||||
|     cat > $SED_SCRIPT <<EOF | ||||
| s\\%%ALTERNC_LOC%%\\$ALTERNC_LOC\\; | ||||
|  | @ -81,9 +81,17 @@ EOF | |||
|     echo "    Done" | ||||
| 
 | ||||
|     echo "Deconfiguring javascript-common alias" | ||||
|     rm -f /etc/apache2/conf.d/javascript-common.conf | ||||
|     if [ -f /etc/apache2/conf.d/javascript-common.conf ]; then | ||||
|         	rm -f /etc/apache2/conf.d/javascript-common.conf | ||||
|     fi | ||||
|     if [ -f /etc/apache2/conf-available/javascript-common.conf ] ; then | ||||
| 		a2disconf javascript-common.conf | ||||
| 		service apache2 reload | ||||
|     fi | ||||
|     # just in case  | ||||
|     sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf | ||||
|     if [ -f /etc/javascript-common/javascript-common.conf ]; then | ||||
|         sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf | ||||
|     fi | ||||
|     echo "    Done" | ||||
|      | ||||
| fi | ||||
|  |  | |||
|  | @ -1,803 +0,0 @@ | |||
| <?php | ||||
| 
 | ||||
| /***********************************************************************/ | ||||
| // Roundcube's Configuration file for AlternC                          //
 | ||||
| //                                                                     //
 | ||||
| // /!\ WARNING /!\ Do not edit this file, edit the one in              //
 | ||||
| // /etc/alternc/templates/roundcube/ and launch alternc.install again. //
 | ||||
| //                                                                     //
 | ||||
| /***********************************************************************/ | ||||
| 
 | ||||
| /* | ||||
| +-----------------------------------------------------------------------+ | ||||
| | Main configuration file                                               | | ||||
| |                                                                       | | ||||
| | This file is part of the Roundcube Webmail client                     | | ||||
| | Copyright (C) 2005-2011, The Roundcube Dev Team                       | | ||||
| | Licensed under the GNU GPL                                            | | ||||
| |                                                                       | | ||||
| +-----------------------------------------------------------------------+ | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| $rcmail_config = array(); | ||||
| 
 | ||||
| // ----------------------------------
 | ||||
| // LOGGING/DEBUGGING
 | ||||
| // ----------------------------------
 | ||||
| 
 | ||||
| // system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace
 | ||||
| $rcmail_config['debug_level'] = 1; | ||||
| 
 | ||||
| // log driver:  'syslog' or 'file'.
 | ||||
| $rcmail_config['log_driver'] = 'file'; | ||||
| 
 | ||||
| // date format for log entries
 | ||||
| // (read http://php.net/manual/en/function.date.php for all format characters)
 | ||||
| $rcmail_config['log_date_format'] = 'd-M-Y H:i:s O'; | ||||
| 
 | ||||
| // Syslog ident string to use, if using the 'syslog' log driver.
 | ||||
| $rcmail_config['syslog_id'] = 'roundcube'; | ||||
| 
 | ||||
| // Syslog facility to use, if using the 'syslog' log driver.
 | ||||
| // For possible values see installer or http://php.net/manual/en/function.openlog.php
 | ||||
| $rcmail_config['syslog_facility'] = LOG_USER; | ||||
| 
 | ||||
| // Log sent messages to <log_dir>/sendmail or to syslog
 | ||||
| $rcmail_config['smtp_log'] = true; | ||||
| 
 | ||||
| // Log successful logins to <log_dir>/userlogins or to syslog
 | ||||
| $rcmail_config['log_logins'] = false; | ||||
| 
 | ||||
| // Log session authentication errors to <log_dir>/session or to syslog
 | ||||
| $rcmail_config['log_session'] = false; | ||||
| 
 | ||||
| // Log SQL queries to <log_dir>/sql or to syslog
 | ||||
| $rcmail_config['sql_debug'] = false; | ||||
| 
 | ||||
| // Log IMAP conversation to <log_dir>/imap or to syslog
 | ||||
| $rcmail_config['imap_debug'] = false; | ||||
| 
 | ||||
| // Log LDAP conversation to <log_dir>/ldap or to syslog
 | ||||
| $rcmail_config['ldap_debug'] = false; | ||||
| 
 | ||||
| // Log SMTP conversation to <log_dir>/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 - http hostname ($_SERVER['SERVER_NAME'])
 | ||||
| // %d - domain (http hostname without the first part)
 | ||||
| // %s - domain name after the '@' from e-mail address provided at login screen
 | ||||
| // For example %n = mail.domain.tld, %d = domain.tld
 | ||||
| $rcmail_config['default_host'] = 'localhost'; | ||||
| 
 | ||||
| // TCP port used for IMAP connections
 | ||||
| $rcmail_config['default_port'] = 143; | ||||
| 
 | ||||
| // IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty 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'] = true; | ||||
| 
 | ||||
| // IMAP connection timeout, in seconds. Default: 0 (no limit)
 | ||||
| $rcmail_config['imap_timeout'] = 10; | ||||
| 
 | ||||
| // 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; | ||||
| 
 | ||||
| 
 | ||||
| // ----------------------------------
 | ||||
| // 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 - 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, %d = domain.tld
 | ||||
| $rcmail_config['smtp_server'] = 'localhost'; | ||||
| 
 | ||||
| // SMTP port (default is 25; 465 for SSL)
 | ||||
| $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'] = '%u'; | ||||
| 
 | ||||
| // 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'] = '%p'; | ||||
| 
 | ||||
| // 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; | ||||
| 
 | ||||
| // ----------------------------------
 | ||||
| // 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; | ||||
| 
 | ||||
| // 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/'; | ||||
| 
 | ||||
| // lifetime of message cache
 | ||||
| // possible units: s, m, h, d, w
 | ||||
| $rcmail_config['message_cache_lifetime'] = '10d'; | ||||
| 
 | ||||
| // 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
 | ||||
| $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'] = 2; | ||||
| 
 | ||||
| // If users authentication is not case sensitive this must be enabled.
 | ||||
| // You can also use it to force conversion of logins to lower case.
 | ||||
| // After enabling it all user records need to be updated, e.g. with query:
 | ||||
| // UPDATE users SET username = LOWER(username);
 | ||||
| $rcmail_config['login_lc'] = false; | ||||
| 
 | ||||
| // 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; | ||||
| 
 | ||||
| // replace Roundcube logo with this image
 | ||||
| // specify an URL relative to the document root of this Roundcube installation
 | ||||
| $rcmail_config['skin_logo'] = 'skins/default/images/roundcube_alternc_logo.png'; | ||||
| 
 | ||||
| // Includes should be interpreted as PHP files
 | ||||
| $rcmail_config['skin_include_php'] = false; | ||||
| 
 | ||||
| // Session lifetime in minutes
 | ||||
| // must be greater than 'keep_alive'/60
 | ||||
| $rcmail_config['session_lifetime'] = 60; | ||||
| 
 | ||||
| // session domain: .example.org
 | ||||
| $rcmail_config['session_domain'] = ''; | ||||
| 
 | ||||
| // session name. Default: 'roundcube_sessid'
 | ||||
| $rcmail_config['session_name'] = null; | ||||
| 
 | ||||
| // Backend to use for session storage. Can either be 'db' (default) or 'memcache'
 | ||||
| // 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
 | ||||
| $rcmail_config['session_storage'] = 'db'; | ||||
| 
 | ||||
| // Use these hosts for accessing memcached
 | ||||
| // Define any number of hosts in the form hostname:port
 | ||||
| $rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211' );
 | ||||
| 
 | ||||
| // 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'] = '%%deskey%%'; | ||||
| 
 | ||||
| // 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 - 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, %d = 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, %d = 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; | ||||
| 
 | ||||
| // don't allow these settings to be overriden by the user
 | ||||
| $rcmail_config['dont_override'] = array(); | ||||
| 
 | ||||
| // 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
 | ||||
| $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
 | ||||
| 
 | ||||
| // mime magic database
 | ||||
| $rcmail_config['mime_magic'] = '/usr/share/misc/magic'; | ||||
| 
 | ||||
| // path to imagemagick identify binary
 | ||||
| $rcmail_config['im_identify_path'] = '/usr/bin/identify'; | ||||
| 
 | ||||
| // path to imagemagick convert binary
 | ||||
| $rcmail_config['im_convert_path'] = '/usr/bin/convert'; | ||||
| 
 | ||||
| // 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'] = true; | ||||
| 
 | ||||
| // ----------------------------------
 | ||||
| // PLUGINS
 | ||||
| // ----------------------------------
 | ||||
| 
 | ||||
| // List of active plugins (in plugins/ directory)
 | ||||
| $rcmail_config['plugins'] = array("managesieve","password"); | ||||
| 
 | ||||
| // ----------------------------------
 | ||||
| // USER INTERFACE
 | ||||
| // ----------------------------------
 | ||||
| 
 | ||||
| // default messages sort column. Use empty value for default server's sorting,
 | ||||
| // or 'arrival', 'date', 'subject', 'from', 'to', '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, cc, replyto, date, size, status, flag, attachment, 'priority'
 | ||||
| $rcmail_config['list_cols'] = array('subject', 'status', 'from', '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_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); | ||||
| 
 | ||||
| // automatically create the above listed default folders on first login
 | ||||
| $rcmail_config['create_default_folders'] = true; | ||||
| 
 | ||||
| // 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'] = true; | ||||
| 
 | ||||
| // 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'] = 'pspell'; | ||||
| 
 | ||||
| // 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 'keep_alive' setting (in seconds)
 | ||||
| // Must be less than 'session_lifetime'
 | ||||
| $rcmail_config['min_keep_alive'] = 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) and 'ldap'.
 | ||||
| // 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.
 | ||||
| $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 - 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, %d = domain.tld
 | ||||
| 'hosts'         => array('directory.verisign.com'), | ||||
| 'port'          => 389, | ||||
| 'use_tls'	      => false, | ||||
| 'ldap_version'  => 3,       // using LDAPv3
 | ||||
| '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'       => 'mail', | ||||
| // 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
 | ||||
| 'fieldmap' => array( | ||||
| // Roundcube  => LDAP
 | ||||
| 'name'        => 'cn', | ||||
| 'surname'     => 'sn', | ||||
| 'firstname'   => 'givenName', | ||||
| 'email'       => 'mail', | ||||
| 'phone:home'  => 'homePhone', | ||||
| 'phone:work'  => 'telephoneNumber', | ||||
| 'phone:mobile' => 'mobile', | ||||
| 'street'      => 'street', | ||||
| 'zipcode'     => 'postalCode', | ||||
| 'locality'    => 'l', | ||||
| 'country'     => 'c', | ||||
| 'organization' => 'o', | ||||
| ), | ||||
| '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'     => '', | ||||
| '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}<br/>{locality} {zipcode}<br/>{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'] = 'UTF-8'; | ||||
| 
 | ||||
| // skin name: folder from skins/
 | ||||
| $rcmail_config['skin'] = 'default'; | ||||
| 
 | ||||
| // show up to X items in list view
 | ||||
| $rcmail_config['pagesize'] = 40; | ||||
| 
 | ||||
| // use this timezone to display date/time
 | ||||
| $rcmail_config['timezone'] = 'auto'; | ||||
| 
 | ||||
| // is daylight saving On? Default: (bool)date('I');
 | ||||
| $rcmail_config['dst_active'] = null; | ||||
| 
 | ||||
| // 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; | ||||
| 
 | ||||
| // compose html formatted messages by default
 | ||||
| // 0 - never, 1 - always, 2 - on reply to HTML message only
 | ||||
| $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'] = true; | ||||
| 
 | ||||
| // 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'] = -1; | ||||
| 
 | ||||
| // Clear Trash on logout
 | ||||
| $rcmail_config['logout_purge'] = true; | ||||
| 
 | ||||
| // 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 keep-alive/check-recent requests (in seconds)
 | ||||
| // Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime'
 | ||||
| $rcmail_config['keep_alive'] = 60; | ||||
| 
 | ||||
| // If true all folders will be checked for recent messages
 | ||||
| $rcmail_config['check_all_folders'] = true; | ||||
| 
 | ||||
| // 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 place cursor above original message (top posting)
 | ||||
| $rcmail_config['top_posting'] = false; | ||||
| 
 | ||||
| // 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; | ||||
| 
 | ||||
| // When replying or forwarding place sender's signature above existing message
 | ||||
| $rcmail_config['sig_above'] = false; | ||||
| 
 | ||||
| // 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_imap_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; | ||||
| 
 | ||||
| // 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'] = 2; | ||||
| 
 | ||||
| // 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; | ||||
| 
 | ||||
| // end of config file
 | ||||
| 
 | ||||
| ?>
 | ||||
|  | @ -1,47 +1,56 @@ | |||
| <?php | ||||
| 
 | ||||
| /***********************************************************************/ | ||||
| // Configuration file of password's plugin of Roundcube for AlternC    //
 | ||||
| //                                                                     //
 | ||||
| // /!\ WARNING /!\ Do not edit this file, edit the one in              //
 | ||||
| // /etc/alternc/templates/roundcube/plugins/password/                  //
 | ||||
| // and launch alternc.install again.                                   //
 | ||||
| //                                                                     //
 | ||||
| /***********************************************************************/ | ||||
| 
 | ||||
| // Password Plugin options
 | ||||
| // -----------------------
 | ||||
| // A driver to use for password change. Default: "sql".
 | ||||
| // See README file for list of supported driver names.
 | ||||
| $rcmail_config['password_driver'] = 'sql'; | ||||
| $config['password_driver'] = 'sql'; | ||||
| 
 | ||||
| // 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'] = 8; | ||||
| $config['password_minimum_length'] = 8; | ||||
| 
 | ||||
| // Require the new password to contain a letter and punctuation character
 | ||||
| // Change to false to remove this check.
 | ||||
| $rcmail_config['password_require_nonalpha'] = true; | ||||
| $config['password_require_nonalpha'] = true; | ||||
| 
 | ||||
| // Enables logging of password changes into logs/password
 | ||||
| $rcmail_config['password_log'] = true; | ||||
| $config['password_log'] = true; | ||||
| 
 | ||||
| // Comma-separated list of login exceptions for which password change
 | ||||
| // will be not available (no Password tab in Settings)
 | ||||
| $config['password_login_exceptions'] = null; | ||||
| 
 | ||||
| // Array of hosts that support password changing. Default is NULL.
 | ||||
| // Listed hosts will feature a Password option in Settings; others will not.
 | ||||
| // Example:
 | ||||
| //$config['password_hosts'] = array('mail.example.com', 'mail2.example.org');
 | ||||
| $config['password_hosts'] = null; | ||||
| 
 | ||||
| // Enables saving the new password even if it matches the old password. Useful
 | ||||
| // for upgrading the stored passwords after the encryption scheme has changed.
 | ||||
| $config['password_force_save'] = false; | ||||
| 
 | ||||
| // Enables forcing new users to change their password at their first login.
 | ||||
| $config['password_force_new_user'] = false; | ||||
| 
 | ||||
| 
 | ||||
| // SQL Driver options
 | ||||
| // ------------------
 | ||||
| // PEAR database DSN for performing the query. By default
 | ||||
| // Roundcube DB settings are used.
 | ||||
| $rcmail_config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%%@%%dbhost%%/%%dbname%%'; | ||||
| $config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%%@%%dbhost%%/%%dbname%%'; | ||||
| 
 | ||||
| // The SQL query used to change the password.
 | ||||
| // The query can contain the following macros that will be expanded as follows:
 | ||||
| //      %p is replaced with the plaintext new password
 | ||||
| //      %c is replaced with the crypt version of the new password, MD5 if available
 | ||||
| //         otherwise DES.
 | ||||
| //         otherwise DES. More hash function can be enabled using the password_crypt_hash 
 | ||||
| //         configuration parameter.
 | ||||
| //      %D is replaced with the dovecotpw-crypted version of the new password
 | ||||
| //      %o is replaced with the password before the change
 | ||||
| //      %n is replaced with the hashed version of the new password
 | ||||
|  | @ -54,45 +63,57 @@ $rcmail_config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-pas | |||
| //         (in case the username is an email address)
 | ||||
| // Escaping of macros is handled by this module.
 | ||||
| // Default: "SELECT update_passwd(%c, %u)"
 | ||||
| $rcmail_config['password_query'] = 'UPDATE address a LEFT JOIN domaines d ON d.id=a.domain_id SET a.password=%c WHERE d.domaine=%d AND address=%l'; | ||||
| $config['password_query'] = 'UPDATE address a LEFT JOIN domaines d ON d.id=a.domain_id SET a.password=%c WHERE d.domaine=%d AND address=%l'; | ||||
| 
 | ||||
| // By default the crypt() function which is used to create the '%c' 
 | ||||
| // parameter uses the md5 algorithm. To use different algorithms 
 | ||||
| // you can choose between: des, md5, blowfish, sha256, sha512.
 | ||||
| // Before using other hash functions than des or md5 please make sure
 | ||||
| // your operating system supports the other hash functions.
 | ||||
| $config['password_crypt_hash'] = 'md5'; | ||||
| 
 | ||||
| // By default domains in variables are using unicode.
 | ||||
| // Enable this option to use punycoded names
 | ||||
| $rcmail_config['password_idn_ascii'] = false; | ||||
| $config['password_idn_ascii'] = false; | ||||
| 
 | ||||
| // Path for dovecotpw (if not in $PATH)
 | ||||
| // $rcmail_config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw';
 | ||||
| // $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw';
 | ||||
| 
 | ||||
| // Dovecot method (dovecotpw -s 'method')
 | ||||
| $rcmail_config['password_dovecotpw_method'] = 'CRAM-MD5'; | ||||
| $config['password_dovecotpw_method'] = 'CRAM-MD5'; | ||||
| 
 | ||||
| // Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
 | ||||
| $rcmail_config['password_dovecotpw_with_method'] = false; | ||||
| $config['password_dovecotpw_with_method'] = false; | ||||
| 
 | ||||
| // Using a password hash for %n and %q variables.
 | ||||
| // Determine which hashing algorithm should be used to generate
 | ||||
| // the hashed new and current password for using them within the
 | ||||
| // SQL query. Requires PHP's 'hash' extension.
 | ||||
| $rcmail_config['password_hash_algorithm'] = 'sha1'; | ||||
| $config['password_hash_algorithm'] = 'sha1'; | ||||
| 
 | ||||
| // You can also decide whether the hash should be provided
 | ||||
| // as hex string or in base64 encoded format.
 | ||||
| $rcmail_config['password_hash_base64'] = false; | ||||
| $config['password_hash_base64'] = false; | ||||
| 
 | ||||
| // Iteration count parameter for Blowfish-based hashing algo.
 | ||||
| // It must be between 4 and 31. Default: 12.
 | ||||
| // Be aware, the higher the value, the longer it takes to generate the password hashes.
 | ||||
| $config['password_blowfish_cost'] = 12; | ||||
| 
 | ||||
| 
 | ||||
| // Poppassd Driver options
 | ||||
| // -----------------------
 | ||||
| // The host which changes the password
 | ||||
| $rcmail_config['password_pop_host'] = 'localhost'; | ||||
| $config['password_pop_host'] = 'localhost'; | ||||
| 
 | ||||
| // TCP port used for poppassd connections
 | ||||
| $rcmail_config['password_pop_port'] = 106; | ||||
| $config['password_pop_port'] = 106; | ||||
| 
 | ||||
| 
 | ||||
| // SASL Driver options
 | ||||
| // -------------------
 | ||||
| // Additional arguments for the saslpasswd2 call
 | ||||
| $rcmail_config['password_saslpasswd_args'] = ''; | ||||
| $config['password_saslpasswd_args'] = ''; | ||||
| 
 | ||||
| 
 | ||||
| // LDAP and LDAP_SIMPLE Driver options
 | ||||
|  | @ -101,41 +122,41 @@ $rcmail_config['password_saslpasswd_args'] = ''; | |||
| // 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 recommanded.
 | ||||
| // 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'] = 'dc=exemple,dc=com'; | ||||
| $config['password_ldap_basedn'] = 'dc=exemple,dc=com'; | ||||
| 
 | ||||
| // 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,
 | ||||
|  | @ -145,7 +166,7 @@ $rcmail_config['password_ldap_adminPW'] = null; | |||
| // '%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
 | ||||
|  | @ -156,7 +177,7 @@ $rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,d | |||
| // 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'] = 'cn=roundcube,ou=services,dc=example,dc=com'; | ||||
| $config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; | ||||
| 
 | ||||
| // LDAP search password
 | ||||
| // If password_ldap_searchDN is set, the password to use for
 | ||||
|  | @ -166,13 +187,13 @@ $rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example, | |||
| // 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'] = 'secret'; | ||||
| $config['password_ldap_searchPW'] = 'secret'; | ||||
| 
 | ||||
| // 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'] = 'ou=people,dc=example,dc=com'; | ||||
| $config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
| 
 | ||||
| // LDAP search filter
 | ||||
| // If password_ldap_searchDN is set, the filter to use when
 | ||||
|  | @ -184,42 +205,43 @@ $rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | |||
| // '%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)'; | ||||
| $config['password_ldap_search_filter'] = '(uid=%login)'; | ||||
| 
 | ||||
| // LDAP password hash type
 | ||||
| // Standard LDAP encryption type which must be one of: crypt,
 | ||||
| // ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear.
 | ||||
| // ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad, cram-md5 (dovecot style) or clear.
 | ||||
| // 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'] = 'crypt'; | ||||
| // Multiple password Values can be generated by concatenating encodings with a +. E.g. 'cram-md5+crypt'
 | ||||
| // Default: 'crypt'.
 | ||||
| $config['password_ldap_encodage'] = 'crypt'; | ||||
| 
 | ||||
| // 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'] = ''; | ||||
| 
 | ||||
| 
 | ||||
| // DirectAdmin Driver options
 | ||||
|  | @ -229,63 +251,60 @@ $rcmail_config['password_ldap_samba_lchattr'] = ''; | |||
| // The host can contain the following macros that will be expanded as follows:
 | ||||
| //     %h is replaced with the imap host (from the session info)
 | ||||
| //     %d is replaced with the domain part of the username (if the username is an email)
 | ||||
| $rcmail_config['password_directadmin_host'] = 'tcp://localhost'; | ||||
| $config['password_directadmin_host'] = 'tcp://localhost'; | ||||
| 
 | ||||
| // TCP port used for DirectAdmin connections
 | ||||
| $rcmail_config['password_directadmin_port'] = 2222; | ||||
| $config['password_directadmin_port'] = 2222; | ||||
| 
 | ||||
| 
 | ||||
| // vpopmaild Driver options
 | ||||
| // -----------------------
 | ||||
| // The host which changes the password
 | ||||
| $rcmail_config['password_vpopmaild_host'] = 'localhost'; | ||||
| $config['password_vpopmaild_host'] = 'localhost'; | ||||
| 
 | ||||
| // TCP port used for vpopmaild connections
 | ||||
| $rcmail_config['password_vpopmaild_port'] = 89; | ||||
| $config['password_vpopmaild_port'] = 89; | ||||
| 
 | ||||
| // Timout used for the connection to vpopmaild (in seconds)
 | ||||
| $config['password_vpopmaild_timeout'] = 10; | ||||
| 
 | ||||
| 
 | ||||
| // cPanel Driver options
 | ||||
| // --------------------------
 | ||||
| // The cPanel Host name
 | ||||
| $rcmail_config['password_cpanel_host'] = 'host.domain.com'; | ||||
| $config['password_cpanel_host'] = 'host.domain.com'; | ||||
| 
 | ||||
| // The cPanel admin username
 | ||||
| $rcmail_config['password_cpanel_username'] = 'username'; | ||||
| $config['password_cpanel_username'] = 'username'; | ||||
| 
 | ||||
| // The cPanel admin password
 | ||||
| $rcmail_config['password_cpanel_password'] = 'password'; | ||||
| $config['password_cpanel_password'] = 'password'; | ||||
| 
 | ||||
| // The cPanel port to use
 | ||||
| $rcmail_config['password_cpanel_port'] = 2082; | ||||
| 
 | ||||
| // Using ssl for cPanel connections?
 | ||||
| $rcmail_config['password_cpanel_ssl'] = true; | ||||
| 
 | ||||
| // The cPanel theme in use
 | ||||
| $rcmail_config['password_cpanel_theme'] = 'x'; | ||||
| $config['password_cpanel_port'] = 2087; | ||||
| 
 | ||||
| 
 | ||||
| // XIMSS (Communigate server) Driver options
 | ||||
| // -----------------------------------------
 | ||||
| // Host name of the Communigate server
 | ||||
| $rcmail_config['password_ximss_host'] = 'mail.example.com'; | ||||
| $config['password_ximss_host'] = 'mail.example.com'; | ||||
| 
 | ||||
| // XIMSS port on Communigate server
 | ||||
| $rcmail_config['password_ximss_port'] = 11024; | ||||
| $config['password_ximss_port'] = 11024; | ||||
| 
 | ||||
| 
 | ||||
| // chpasswd Driver options
 | ||||
| // ---------------------
 | ||||
| // Command to use
 | ||||
| $rcmail_config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; | ||||
| $config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; | ||||
| 
 | ||||
| 
 | ||||
| // XMail Driver options
 | ||||
| // ---------------------
 | ||||
| $rcmail_config['xmail_host'] = 'localhost'; | ||||
| $rcmail_config['xmail_user'] = 'YourXmailControlUser'; | ||||
| $rcmail_config['xmail_pass'] = 'YourXmailControlPass'; | ||||
| $rcmail_config['xmail_port'] = 6017; | ||||
| $config['xmail_host'] = 'localhost'; | ||||
| $config['xmail_user'] = 'YourXmailControlUser'; | ||||
| $config['xmail_pass'] = 'YourXmailControlPass'; | ||||
| $config['xmail_port'] = 6017; | ||||
| 
 | ||||
| 
 | ||||
| // hMail Driver options
 | ||||
|  | @ -293,9 +312,9 @@ $rcmail_config['xmail_port'] = 6017; | |||
| // Remote hMailServer configuration
 | ||||
| // true:  HMailserver is on a remote box (php.ini: com.allow_dcom = true)
 | ||||
| // false: Hmailserver is on same box as PHP
 | ||||
| $rcmail_config['hmailserver_remote_dcom'] = false; | ||||
| $config['hmailserver_remote_dcom'] = false; | ||||
| // Windows credentials
 | ||||
| $rcmail_config['hmailserver_server'] = array( | ||||
| $config['hmailserver_server'] = array( | ||||
|     'Server' => 'localhost', // hostname or ip address
 | ||||
|     'Username' => 'administrator', // windows username
 | ||||
|     'Password' => 'password' // windows user password
 | ||||
|  | @ -313,6 +332,70 @@ $rcmail_config['hmailserver_server'] = array( | |||
| // 5: domain-username
 | ||||
| // 6: username_domain
 | ||||
| // 7: domain_username
 | ||||
| $rcmail_config['password_virtualmin_format'] = 0; | ||||
| $config['password_virtualmin_format'] = 0; | ||||
| 
 | ||||
| ?>
 | ||||
| 
 | ||||
| // pw_usermod Driver options
 | ||||
| // --------------------------
 | ||||
| // Use comma delimited exlist to disable password change for users
 | ||||
| // Add the following line to visudo to tighten security:
 | ||||
| // www  ALL=NOPASSWORD: /usr/sbin/pw
 | ||||
| $config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n'; | ||||
| 
 | ||||
| 
 | ||||
| // DBMail Driver options
 | ||||
| // -------------------
 | ||||
| // Additional arguments for the dbmail-users call
 | ||||
| $config['password_dbmail_args'] = '-p sha512'; | ||||
| 
 | ||||
| 
 | ||||
| // Expect Driver options
 | ||||
| // ---------------------
 | ||||
| // Location of expect binary
 | ||||
| $config['password_expect_bin'] = '/usr/bin/expect'; | ||||
| 
 | ||||
| // Location of expect script (see helpers/passwd-expect)
 | ||||
| $config['password_expect_script'] = ''; | ||||
| 
 | ||||
| // Arguments for the expect script. See the helpers/passwd-expect file for details.
 | ||||
| // This is probably a good starting default:
 | ||||
| //   -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log
 | ||||
| $config['password_expect_params'] = ''; | ||||
| 
 | ||||
| 
 | ||||
| // smb Driver options
 | ||||
| // ---------------------
 | ||||
| // Samba host (default: localhost)
 | ||||
| // 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)
 | ||||
| $config['password_smb_host'] = 'localhost'; | ||||
| // Location of smbpasswd binary
 | ||||
| $config['password_smb_cmd'] = '/usr/bin/smbpasswd'; | ||||
| 
 | ||||
| // gearman driver options
 | ||||
| // ---------------------
 | ||||
| // Gearman host (default: localhost)
 | ||||
| $config['password_gearman_host'] = 'localhost'; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // Plesk/PPA Driver options
 | ||||
| // --------------------
 | ||||
| // You need to allow RCP for IP of roundcube-server in Plesk/PPA Panel 
 | ||||
| 
 | ||||
| // Plesk RCP Host
 | ||||
| $config['password_plesk_host'] = '10.0.0.5'; | ||||
| 
 | ||||
| // Plesk RPC Username
 | ||||
| $config['password_plesk_user'] = 'admin'; | ||||
| 
 | ||||
| // Plesk RPC Password
 | ||||
| $config['password_plesk_pass'] = 'password'; | ||||
| 
 | ||||
| // Plesk RPC Port
 | ||||
| $config['password_plesk_rpc_port'] = '8443'; | ||||
| 
 | ||||
| // Plesk RPC Path
 | ||||
| $config['password_plesk_rpc_path'] = 'enterprise/control/agent.php'; | ||||
|  |  | |||
|  | @ -0,0 +1,350 @@ | |||
| diff --git a/etc/alternc/templates/dovecot/conf.d/95_alternc.conf b/etc/alternc/templates/dovecot/conf.d/95_alternc.conf | ||||
| deleted file mode 100644 | ||||
| index dda55336..00000000 | ||||
| --- a/etc/alternc/templates/dovecot/conf.d/95_alternc.conf | ||||
| +++ /dev/null | ||||
| @@ -1,344 +0,0 @@ | ||||
| -# AUTO GENERATED FILE | ||||
| -# Modify template in /etc/alternc/templates/ | ||||
| -# and launch alternc.install if you want  | ||||
| -# to modify this file. | ||||
| -# | ||||
| -## Dovecot configuration file | ||||
| -# This is a concatenation of all /etc/dovecot/conf.d/* from DEBIAN package | ||||
| -# with rules adapted to AlternC best practices and link with MySQL tables. | ||||
| - | ||||
| -protocols = imap pop3 sieve | ||||
| - | ||||
| -default_process_limit = 1000 | ||||
| - | ||||
| -## ------------------------------------------------------------------------- | ||||
| -## 10-auth | ||||
| - | ||||
| -# Disable LOGIN command and all other plaintext authentications unless | ||||
| -# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP | ||||
| -# matches the local IP (ie. you're connecting from the same computer), the | ||||
| -# connection is considered secure and plaintext authentication is allowed. | ||||
| -disable_plaintext_auth = no | ||||
| - | ||||
| -# Space separated list of wanted authentication mechanisms: | ||||
| -#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey | ||||
| -#   gss-spnego | ||||
| -# NOTE: See also disable_plaintext_auth setting. | ||||
| -auth_mechanisms = plain login | ||||
| - | ||||
| -## | ||||
| -## Password and user databases | ||||
| -## | ||||
| - | ||||
| -# | ||||
| -# Password database is used to verify user's password (and nothing more). | ||||
| -# You can have multiple passdbs and userdbs. This is useful if you want to | ||||
| -# allow both system users (/etc/passwd) and virtual users to login without | ||||
| -# duplicating the system users into virtual database. | ||||
| -# | ||||
| -# <doc/wiki/PasswordDatabase.txt> | ||||
| -# | ||||
| -# User database specifies where mails are located and what user/group IDs | ||||
| -# own them. For single-UID configuration use "static" userdb. | ||||
| -# | ||||
| -# <doc/wiki/UserDatabase.txt> | ||||
| - | ||||
| -#!include auth-deny.conf.ext | ||||
| -#!include auth-master.conf.ext | ||||
| - | ||||
| -#!include auth-system.conf.ext | ||||
| -#!include auth-sql.conf.ext | ||||
| -#!include auth-ldap.conf.ext | ||||
| -#!include auth-passwdfile.conf.ext | ||||
| -#!include auth-checkpassword.conf.ext | ||||
| -#!include auth-vpopmail.conf.ext | ||||
| -#!include auth-static.conf.ext | ||||
| - | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 10-login.conf | ||||
| - | ||||
| -# Prefix for each line written to log file. % codes are in strftime(3) | ||||
| -# format. | ||||
| -#log_timestamp = "%b %d %H:%M:%S " | ||||
| -log_timestamp = "%Y-%m-%d %H:%M:%S " | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 10-mail.conf | ||||
| - | ||||
| - | ||||
| -# Location for users' mailboxes. This is the same as the old default_mail_env | ||||
| -# setting. The default is empty, which means that Dovecot tries to find the | ||||
| -# mailboxes automatically. This won't work if the user doesn't have any mail | ||||
| -# yet, so you should explicitly tell Dovecot the full location. | ||||
| -# | ||||
| -# If you're using mbox, giving a path to the INBOX file (eg. /var/mail/%u) | ||||
| -# isn't enough. You'll also need to tell Dovecot where the other mailboxes are | ||||
| -# kept. This is called the "root mail directory", and it must be the first | ||||
| -# path given in the mail_location setting. | ||||
| -# | ||||
| -# There are a few special variables you can use, eg.: | ||||
| -# | ||||
| -#   %u - username | ||||
| -#   %n - user part in user@domain, same as %u if there's no domain | ||||
| -#   %d - domain part in user@domain, empty if there's no domain | ||||
| -#   %h - home directory | ||||
| -# | ||||
| -# See </usr/share/doc/dovecot-common/wiki/Variables.txt> for full list. | ||||
| -# Some examples: | ||||
| -# | ||||
| -#   mail_location = maildir:~/Maildir | ||||
| -#   mail_location = mbox:~/mail:INBOX=/var/mail/%u | ||||
| -#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n | ||||
| -# | ||||
| -# </usr/share/doc/dovecot-common/wiki/MailLocation.txt> | ||||
| -# | ||||
| -mail_location = maildir:~/Maildir | ||||
| - | ||||
| - | ||||
| -# Group to enable temporarily for privileged operations. Currently this is | ||||
| -# used only with INBOX when either its initial creation or dotlocking fails. | ||||
| -# Typically this is set to "mail" to give access to /var/mail. | ||||
| -#mail_privileged_group = | ||||
| -mail_privileged_group = vmail | ||||
| - | ||||
| - | ||||
| -# Valid UID range for users, defaults to 500 and above. This is mostly | ||||
| -# to make sure that users can't log in as daemons or other system users. | ||||
| -# Note that denying root logins is hardcoded to dovecot binary and can't | ||||
| -# be done even if first_valid_uid is set to 0. | ||||
| -first_valid_uid = 2000 | ||||
| -last_valid_uid = 65000 | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 10-master.conf | ||||
| - | ||||
| -passdb { | ||||
| -  driver = sql | ||||
| -  args = /etc/dovecot/alternc-sql.conf | ||||
| -} | ||||
| - | ||||
| -userdb { | ||||
| -  driver = sql | ||||
| -  args = /etc/dovecot/alternc-sql.conf | ||||
| -} | ||||
| -userdb { | ||||
| -  driver = prefetch | ||||
| -} | ||||
| - | ||||
| -service auth { | ||||
| -  unix_listener /var/spool/postfix/private/auth { | ||||
| -    group = postfix | ||||
| -    mode = 0660 | ||||
| -    user = postfix | ||||
| -  } | ||||
| -  unix_listener auth-master { | ||||
| -    mode = 0600 | ||||
| -    user = vmail | ||||
| -  } | ||||
| - | ||||
| -  # set this to (default_client_limit * number of services using it)  | ||||
| -  client_limit = 5000 | ||||
| -} | ||||
| - | ||||
| -service anvil { | ||||
| -  # set this to (default_client_limit * number of services using it)  | ||||
| -  client_limit = 5000 | ||||
| -} | ||||
| - | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 10-ssl.conf | ||||
| - | ||||
| -# SSL/TLS support: yes, no, required. </usr/share/doc/dovecot-common/wiki/SSL.txt> | ||||
| -ssl = yes | ||||
| - | ||||
| -# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before | ||||
| -# dropping root privileges, so keep the key file unreadable by anyone but | ||||
| -# root. | ||||
| -#ssl_cert = </etc/dovecot/dovecot.pem | ||||
| -#ssl_cert_file = /etc/alternc/apache.pem | ||||
| -#ssl_key = </etc/dovecot/dovecot.pem | ||||
| -#ssl_key_file = /etc/alternc/apache.pem | ||||
| - | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 15-lda.conf | ||||
| - | ||||
| -## | ||||
| -## LDA specific settings | ||||
| -## | ||||
| - | ||||
| -protocol lda { | ||||
| -  # Address to use when sending rejection mails (e.g. postmaster@example.com). | ||||
| -  postmaster_address = postmaster@localhost | ||||
| - | ||||
| -  # Hostname to use in various parts of sent mails, eg. in Message-Id. | ||||
| -  # Default is the system's real hostname. | ||||
| -  #hostname =  | ||||
| - | ||||
| -  # Support for dynamically loadable plugins. mail_plugins is a space separated | ||||
| -  # list of plugins to load. | ||||
| -  mail_plugins = quota sieve | ||||
| -  #mail_plugin_dir = /usr/lib/dovecot/modules/lda | ||||
| - | ||||
| - | ||||
| -  # UNIX socket path to master authentication server to find users. | ||||
| -  auth_socket_path = /var/run/dovecot/auth-master | ||||
| -} | ||||
| - | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 20-imap.conf | ||||
| - | ||||
| -protocol imap { | ||||
| -  # Support for dynamically loadable plugins. mail_plugins is a space separated | ||||
| -  # list of plugins to load. | ||||
| -  mail_plugins = quota imap_quota  | ||||
| -  #mail_plugin_dir = /usr/lib/dovecot/modules/imap | ||||
| -  mail_max_userip_connections = 500 | ||||
| -} | ||||
| - | ||||
| -service imap { | ||||
| -  executable = imap imap-postlogin | ||||
| -  vsz_limit = 512M | ||||
| -} | ||||
| - | ||||
| -service imap-postlogin { | ||||
| -	executable =   script-login /usr/lib/alternc/popimap-log-login.sh | ||||
| -  # the script process runs as the user specified here (v2.0.14+): | ||||
| -#  user = $default_internal_user | ||||
| -  # this UNIX socket listener must use the same name as given to imap executable | ||||
| -  unix_listener imap-postlogin { | ||||
| -  } | ||||
| -} | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 20-managesieve.conf | ||||
| - | ||||
| -protocol sieve { | ||||
| -  managesieve_notify_capability = mailto | ||||
| -  managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave | ||||
| -} | ||||
| - | ||||
| -service managesieve { | ||||
| -  executable = /usr/lib/dovecot/managesieve | ||||
| -} | ||||
| - | ||||
| - | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 20-pop3.conf | ||||
| - | ||||
| -protocol pop3 { | ||||
| - | ||||
| -  # POP3 UIDL (unique mail identifier) format to use. You can use following | ||||
| -  # variables, along with the variable modifiers described in | ||||
| -  # </usr/share/doc/dovecot-common/wiki/Variables.txt> (e.g. %Uf for the | ||||
| -  # filename in uppercase) | ||||
| -  # | ||||
| -  #  %v - Mailbox's IMAP UIDVALIDITY | ||||
| -  #  %u - Mail's IMAP UID | ||||
| -  #  %m - MD5 sum of the mailbox headers in hex (mbox only) | ||||
| -  #  %f - filename (maildir only) | ||||
| -  # | ||||
| -  # If you want UIDL compatibility with other POP3 servers, use: | ||||
| -  #  UW's ipop3d         : %08Xv%08Xu | ||||
| -  #  Courier             : %f or %v-%u (both might be used simultaneosly) | ||||
| -  #  Cyrus (<= 2.1.3)    : %u | ||||
| -  #  Cyrus (>= 2.1.4)    : %v.%u | ||||
| -  #  Dovecot v0.99.x     : %v.%u | ||||
| -  #  tpop3d              : %Mf | ||||
| -  # | ||||
| -  # Note that Outlook 2003 seems to have problems with %v.%u format which was | ||||
| -  # Dovecot's default, so if you're building a new server it would be a good | ||||
| -  # idea to change this. %08Xu%08Xv should be pretty fail-safe. | ||||
| -  # | ||||
| -  pop3_uidl_format = %08Xu%08Xv | ||||
| - | ||||
| -  # Support for dynamically loadable plugins. mail_plugins is a space separated | ||||
| -  # list of plugins to load. | ||||
| -  mail_plugins = quota | ||||
| -  #mail_plugin_dir = /usr/lib/dovecot/modules/pop3 | ||||
| - | ||||
| -} | ||||
| - | ||||
| -service pop3 { | ||||
| -  executable = /usr/lib/alternc/popimap-log-login.sh /usr/lib/dovecot/pop3 | ||||
| -} | ||||
| - | ||||
| -# ---------------------------------------------------------------------------- | ||||
| -# 90-plugin.conf | ||||
| - | ||||
| -plugin { | ||||
| - | ||||
| -  # Quota plugin. Multiple backends are supported: | ||||
| -  #   dirsize: Find and sum all the files found from mail directory. | ||||
| -  #            Extremely SLOW with Maildir. It'll eat your CPU and disk I/O. | ||||
| -  #   dict: Keep quota stored in dictionary (eg. SQL) | ||||
| -  #   maildir: Maildir++ quota | ||||
| -  #   fs: Read-only support for filesystem quota | ||||
| -  # | ||||
| -  # Quota limits are set using "quota_rule" parameters, either in here or in | ||||
| -  # userdb. It's also possible to give mailbox-specific limits, for example: | ||||
| -  #   quota_rule = *:storage=1048576 | ||||
| -     quota_rule = *:storage=100M | ||||
| -     quota_rule2 = Trash:storage=+10%% | ||||
| -  #   quota_rule2 = Trash:storage=102400 | ||||
| -  # User has now 1GB quota, but when saving to Trash mailbox the user gets | ||||
| -  # additional 100MB. | ||||
| -  # | ||||
| -  # Multiple quota roots are also possible, for example: | ||||
| -  #   quota = dict:user::proxy::quota | ||||
| -  #   quota2 = dict:domain:%d:proxy::quota_domain | ||||
| -  #   quota_rule = *:storage=102400 | ||||
| -  #   quota2_rule = *:storage=1048576 | ||||
| -  # Gives each user their own 100MB quota and one shared 1GB quota within | ||||
| -  # the domain. | ||||
| -  # | ||||
| -  # You can execute a given command when user exceeds a specified quota limit. | ||||
| -  # Each quota root has separate limits. Only the command for the first | ||||
| -  # exceeded limit is excecuted, so put the highest limit first. | ||||
| -  # Note that % needs to be escaped as %%, otherwise "% " expands to empty. | ||||
| -  #   quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95 | ||||
| -  #   quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80 | ||||
| -     quota_warning = storage=95%% /usr/lib/alternc/quota-warning.sh 95 | ||||
| -     quota_warning2 = storage=80%% /usr/lib/alternc/quota-warning.sh 80 | ||||
| -  #quota = maildir | ||||
| -  quota = dict:user::proxy::quotadict | ||||
| - | ||||
| - | ||||
| -  # Sieve plugin (http://wiki.dovecot.org/LDA/Sieve) and ManageSieve service | ||||
| -  # | ||||
| -  # Location of the active script. When ManageSieve is used this is actually | ||||
| -  # a symlink pointing to the active script in the sieve storage directory. | ||||
| -  sieve=~/.dovecot.sieve | ||||
| -  # | ||||
| -  # The path to the directory where the personal Sieve scripts are stored. For | ||||
| -  # ManageSieve this is where the uploaded scripts are stored. | ||||
| -  sieve_dir=~/sieve | ||||
| -} | ||||
| - | ||||
| -# Dictionary can be used by some plugins to store key=value lists, such as | ||||
| -# quota, expire and acl plugins. The dictionary can be used either directly or | ||||
| -# though a dictionary server. The following dict block maps dictionary names to | ||||
| -# URIs when the server is used. These can then be referenced using URIs in | ||||
| -# format "proxy::<name>". | ||||
| - | ||||
| -dict { | ||||
| -  quotadict = mysql:/etc/dovecot/alternc-dict-quota.conf | ||||
| -  #expire = db:/var/lib/dovecot/expire.db | ||||
| -} | ||||
| - | ||||
| - | ||||
| -service auth-worker { | ||||
| -  user = vmail | ||||
| -} | ||||
| - | ||||
| -service dict { | ||||
| -  unix_listener dict { | ||||
| -    mode = 0660 | ||||
| -    user = vmail | ||||
| -    group = vmail | ||||
| -  } | ||||
| -} | ||||
|  | @ -0,0 +1,19 @@ | |||
| diff --git a/debian/alternc-roundcube.postinst b/debian/alternc-roundcube.postinst | ||||
| index 0d99169d..6dfe23c9 100644 | ||||
| --- a/debian/alternc-roundcube.postinst | ||||
| +++ b/debian/alternc-roundcube.postinst | ||||
| @@ -27,10 +27,10 @@ case "$1" in | ||||
|  	chown -R www-data:root /etc/roundcube/debian-db.php | ||||
|  	chmod -R 460 /etc/roundcube/debian-db.php | ||||
|   | ||||
| -	dpkg-statoverride --list /etc/roundcube/config.inc.php >/dev/null &&  | ||||
| -	dpkg-statoverride --remove /etc/roundcube/config.inc.php | ||||
| -	chown -R www-data:root /etc/roundcube/config.inc.php | ||||
| -	chmod -R 460 /etc/roundcube/config.inc.php | ||||
| +	dpkg-statoverride --list /etc/roundcube/main.inc.php >/dev/null &&  | ||||
| +	dpkg-statoverride --remove /etc/roundcube/main.inc.php | ||||
| +	chown -R www-data:root /etc/roundcube/main.inc.php | ||||
| +	chmod -R 460 /etc/roundcube/main.inc.php | ||||
|   | ||||
|  	dpkg-statoverride --list /var/log/roundcube >/dev/null &&  | ||||
|  	dpkg-statoverride --remove /var/log/roundcube | ||||
|  | @ -0,0 +1,39 @@ | |||
| diff --git a/ssl/alternc-ssl.install.php b/ssl/alternc-ssl.install.php | ||||
| index ba568910..041eef80 100644 | ||||
| --- a/ssl/alternc-ssl.install.php | ||||
| +++ b/ssl/alternc-ssl.install.php | ||||
| @@ -9,7 +9,9 @@ if ($argv[1] == "templates") { | ||||
|      // install ssl.conf
 | ||||
|      echo "[alternc-ssl] Installing ssl.conf template\n"; | ||||
|      copy("/etc/alternc/templates/apache2/mods-available/ssl.conf","/etc/apache2/mods-available/ssl.conf"); | ||||
| -    mkdir("/var/run/alternc-ssl"); | ||||
| +    if (!is_dir('/var/run/alternc-ssl')) { | ||||
| +        mkdir("/var/run/alternc-ssl"); | ||||
| +    } | ||||
|      chown("/var/run/alternc-ssl","alterncpanel"); | ||||
|      chgrp("/var/run/alternc-ssl","alterncpanel"); | ||||
|      // replace open_basedir line if necessary : 
 | ||||
| @@ -64,4 +66,23 @@ if ($argv[1] == "before-reload") { | ||||
|          $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='php52-mixssl';"); | ||||
|      } | ||||
|   | ||||
| +    // Enable name-based virtual hosts in Apache2 : 
 | ||||
| +    $f = fopen("/etc/apache2/ports.conf", "rb"); | ||||
| +    if (!$f) { | ||||
| +        echo "FATAL: there is no /etc/apache2/ports.conf ! I can't configure name-based virtual hosts\n"; | ||||
| +    } else { | ||||
| +        $found = false; | ||||
| +        while ($s = fgets($f, 1024)) { | ||||
| +            if (preg_match(":^[^#]*NameVirtualHost.*443:", $s)) { | ||||
| +                $found = true; | ||||
| +                break; | ||||
| +            } | ||||
| +        } | ||||
| +        fclose($f); | ||||
| +        if (!$found) { | ||||
| +            $f = fopen("/etc/apache2/ports.conf", "ab"); | ||||
| +            fputs($f, "\n<IfModule mod_ssl.c>\n  NameVirtualHost *:443\n\n</IfModule>\n"); | ||||
| +            fclose($f); | ||||
| +        } | ||||
| +    } | ||||
|  } // before-reload
 | ||||
|  | @ -0,0 +1,147 @@ | |||
| diff --git a/install/alternc.install b/install/alternc.install | ||||
| index 95060b7c..10bcbacc 100644 | ||||
| --- a/install/alternc.install | ||||
| +++ b/install/alternc.install | ||||
| @@ -79,7 +79,7 @@ if [ -e /etc/default/saslauthd ]; then | ||||
|  fi | ||||
|   | ||||
|  if [ -e /etc/dovecot/dovecot.conf ]; then | ||||
| -    CONFIG_FILES="$CONFIG_FILES etc/dovecot/alternc-sql.conf etc/dovecot/alternc-dict-quota.conf etc/dovecot/conf.d/95_alternc.conf" | ||||
| +    CONFIG_FILES="$CONFIG_FILES etc/dovecot/dovecot.conf etc/dovecot/dovecot-sql.conf etc/dovecot/dovecot-dict-quota.conf" | ||||
|  fi | ||||
|   | ||||
|  INSTALLED_CONFIG_TAR="/var/lib/alternc/backups/etc-installed.tar.gz" | ||||
| @@ -279,20 +279,12 @@ rm -f $SED_SCRIPT | ||||
|  # Ad-hoc fixes | ||||
|  # | ||||
|   | ||||
| -php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.*\)\.so$/\1/' | tail -1`" | ||||
| -if [ "$php" = "7.0" ] | ||||
| -then | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php/$php/apache2/conf.d/alternc.ini || true | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php/$php/cli/conf.d/alternc.ini || true | ||||
| -else | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php$php/apache2/conf.d/alternc.ini || true | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php$php/cli/conf.d/alternc.ini || true | ||||
| -fi | ||||
| - | ||||
| +php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.\)\.so$/php\1/' | tail -1`" | ||||
| +ln -fs /etc/alternc/alternc.ini /etc/$php/apache2/conf.d/alternc.ini || true | ||||
| +ln -fs /etc/alternc/alternc.ini /etc/$php/cli/conf.d/alternc.ini || true | ||||
|  if [ -x /usr/sbin/apache2 ]; then | ||||
|      # hook  | ||||
|      run-parts --arg=apache2 /usr/lib/alternc/install.d  | ||||
| -    a2enmod mpm_itk | ||||
|       | ||||
|      s="" | ||||
|      # unused from AlternC 1.0, FIXME: remove it later | ||||
| @@ -301,9 +293,9 @@ if [ -x /usr/sbin/apache2 ]; then | ||||
|          a2dismod vhost_alias | ||||
|          s="apache2" | ||||
|      fi  | ||||
| -    if ! [ -L /etc/apache2/mods-enabled/php$php.load ] | ||||
| +    if ! [ -L /etc/apache2/mods-enabled/$php.load ] | ||||
|      then | ||||
| -	    a2enmod php$php | ||||
| +	    a2enmod $php | ||||
|      fi | ||||
|      if ! [ -L /etc/apache2/mods-enabled/rewrite.load ] | ||||
|      then | ||||
| @@ -319,14 +311,13 @@ if [ -x /usr/sbin/apache2 ]; then | ||||
|              a2enmod ssl | ||||
|              s="apache2" | ||||
|          fi | ||||
| -        if [ ! -h /etc/apache2/conf-available/alternc-ssl.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
| -            ln -sf /etc/alternc/apache2-ssl.conf /etc/apache2/conf-available/alternc-ssl.conf | ||||
| -	    a2enconf alternc-ssl | ||||
| +        if [ ! -h /etc/apache2/conf.d/alternc-ssl.conf ] && [ -e /etc/apache2/conf.d/ ]; then | ||||
| +            ln -sf /etc/alternc/apache2-ssl.conf /etc/apache2/conf.d/alternc-ssl.conf | ||||
|              s="apache2" | ||||
|          fi | ||||
|   | ||||
|  	# We enable dovecot SSL certificate instructions: (on wheezy we should use a new file in /etc/dovecot/conf.d/ ) | ||||
| -	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/alternc/apache.pem" ; echo "ssl_key = </etc/alternc/apache.pem" ) >/etc/dovecot/conf.d/96_ssl.conf | ||||
| +	sed -i -e 's#^ssl_cert_file.*$#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem#' -e 's#^ssl_key_file.*$#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key#' /etc/dovecot/dovecot.conf | ||||
|   | ||||
|      else | ||||
|          # We disable proftpd tls module | ||||
| @@ -335,18 +326,17 @@ if [ -x /usr/sbin/apache2 ]; then | ||||
|          cp /etc/proftpd/modules.conf /etc/alternc/templates/proftpd/ | ||||
|   | ||||
|  	# We disable dovecot SSL certificate instructions: (on wheezy we should remove a file in /etc/dovecot/conf.d/ ) | ||||
| -	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem" ; echo "ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key" ) >/etc/dovecot/conf.d/96_ssl.conf | ||||
| +        sed -i -e 's#^ssl_cert_file.*$#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem#' -e 's#^ssl_key_file.*$#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key#' /etc/dovecot/dovecot.conf | ||||
|   | ||||
|          echo "SSL not configured" | ||||
|          echo "create a certificate in /etc/alternc/apache.pem and rerun alternc.install" | ||||
|      fi | ||||
| -    if [ ! -h /etc/apache2/conf-available/alternc.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
| -        ln -sf /etc/alternc/apache2.conf /etc/apache2/conf-available/alternc.conf | ||||
| -	a2enconf alternc.conf | ||||
| +    if [ ! -h /etc/apache2/conf.d/alternc.conf ] && [ -e /etc/apache2/conf.d/ ]; then | ||||
| +        ln -sf /etc/alternc/apache2.conf /etc/apache2/conf.d/alternc.conf | ||||
|          s="apache2" | ||||
|      fi | ||||
| -    if [ -e /etc/apache2/sites-enabled/000-default.conf ]; then | ||||
| -        a2dissite 000-default | ||||
| +    if [ -e /etc/apache2/sites-enabled/000-default ]; then | ||||
| +        a2dissite default | ||||
|          s="apache2" | ||||
|      fi | ||||
|      SERVICES="$SERVICES $s" | ||||
| @@ -440,7 +430,7 @@ OLDDESTINATION=`postconf mydestination | awk -F '=' '{print $2}'` | ||||
|  echo "$OLDDESTINATION" | grep -q -v "$FQDN" && postconf -e "mydestination = $FQDN, $OLDDESTINATION" | ||||
|   | ||||
|  # Remove phpmyadmin apache2 configuration | ||||
| -a2disconf phpmyadmin | ||||
| +rm -f /etc/apache2/conf.d/phpmyadmin.conf || true | ||||
|   | ||||
|  # Configure PHPMyAdmin | ||||
|  include_str='include("/etc/alternc/phpmyadmin.inc.php")' | ||||
| @@ -592,14 +582,9 @@ else | ||||
|      mysql --defaults-file=/etc/alternc/my.cnf -e "UPDATE db_servers SET host='$MYSQL_HOST', login='$MYSQL_USER', password='$MYSQL_PASS', client='$MYSQL_HOST_CLIENT' WHERE name='Default';" | ||||
|  fi | ||||
|   | ||||
| -# giving vmail user read access on dovecot sql file | ||||
| -chgrp vmail /etc/dovecot/alternc-sql.conf | ||||
| -chmod g+r /etc/dovecot/alternc-sql.conf | ||||
| -# Override some dovecot 2.0 configuration that may have happened during dovecot postinst: | ||||
| -sed -i -e 's/^ *!include/#!include/' /etc/dovecot/conf.d/10-auth.conf | ||||
| - | ||||
| -# Changing owner of web panel's files | ||||
| -chown -R alterncpanel:alterncpanel "/usr/share/alternc/panel/" | ||||
| +#giving vmail user read access on dovecot sql file | ||||
| +chgrp vmail /etc/dovecot/dovecot.conf | ||||
| +chmod g+r /etc/dovecot/dovecot.conf | ||||
|   | ||||
|  # We force the re-computing of the DNS zones, since we may have changed the IP address (see #460) | ||||
|  /usr/bin/mysql --defaults-file="/etc/alternc/my.cnf" -B -e "update domaines set dns_action='UPDATE' WHERE gesdns=1;" | ||||
| @@ -612,7 +597,7 @@ grep -q "^localhost\$" /etc/opendkim/TrustedHosts || echo "localhost" >>/etc/ope | ||||
|  grep -q "^$PUBLIC_IP\$" /etc/opendkim/TrustedHosts || echo "$PUBLIC_IP" >>/etc/opendkim/TrustedHosts | ||||
|   | ||||
|  # Add opendkim to service to restart | ||||
| -SERVICES="$SERVICES opendkim bind9" | ||||
| +SERVICES="$SERVICES opendkim" | ||||
|   | ||||
|  # hook  | ||||
|  run-parts --arg=before-reload /usr/lib/alternc/install.d  | ||||
| @@ -620,7 +605,7 @@ run-parts --arg=before-reload /usr/lib/alternc/install.d | ||||
|  ####################################################################### | ||||
|  # Reload services | ||||
|  # | ||||
| -for service in postfix dovecot cron proftpd ; do | ||||
| +for service in postfix bind9 apache2 dovecot cron proftpd ; do | ||||
|      invoke-rc.d $service force-reload || true | ||||
|  done | ||||
|   | ||||
| @@ -628,10 +613,6 @@ done | ||||
|  for service in $SERVICES; do | ||||
|      test -x /etc/init.d/$service && invoke-rc.d $service stop || true | ||||
|  done | ||||
| - | ||||
| -# on Jessie, apache2 does not stop/start properly due to "service" and "apache2ctl" having different behavior pid-file-wise | ||||
| -killall apache2  | ||||
| - | ||||
|  for service in $SERVICES; do | ||||
|      test -x /etc/init.d/$service && invoke-rc.d $service start || true | ||||
|  done | ||||
|  | @ -0,0 +1,43 @@ | |||
| diff --git a/etc/alternc/templates/alternc/apache2.conf b/etc/alternc/templates/alternc/apache2.conf | ||||
| index 0732de07..514d695d 100644 | ||||
| --- a/etc/alternc/templates/alternc/apache2.conf | ||||
| +++ b/etc/alternc/templates/alternc/apache2.conf | ||||
| @@ -9,9 +9,12 @@ | ||||
|  # Define the default user and group for mpm-itk | ||||
|  AssignUserId www-data www-data | ||||
|   | ||||
| +# Logformat information | ||||
| +Include /etc/alternc/apache_logformat.conf | ||||
| + | ||||
|  # Deny access to the root filesystem | ||||
|  <Directory /> | ||||
| -  Options +FollowSymLinks | ||||
| +  Options FollowSymLinks | ||||
|    AllowOverride None | ||||
|    Order allow,deny | ||||
|    Deny from all | ||||
| @@ -42,7 +45,7 @@ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ||||
|   | ||||
|  <Directory %%ALTERNC_HTML%% > | ||||
|    AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
| -  Options -Indexes +Includes -FollowSymLinks +MultiViews +SymLinksIfOwnerMatch | ||||
| +  Options Indexes Includes -FollowSymLinks MultiViews SymLinksIfOwnerMatch | ||||
|    Order allow,deny | ||||
|    Allow from all | ||||
|    php_admin_flag safe_mode_gid off | ||||
| @@ -62,13 +65,13 @@ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ||||
|   | ||||
|  <Directory /usr/share/phpmyadmin> | ||||
|    AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
| -  Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
| +  Options Indexes Includes FollowSymLinks MultiViews | ||||
|    Order allow,deny | ||||
|    Allow from all | ||||
|  </Directory> | ||||
|  <Directory /usr/share/squirrelmail> | ||||
|    AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
| -  Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
| +  Options Indexes Includes FollowSymLinks MultiViews | ||||
|    Order allow,deny | ||||
|    Allow from all | ||||
|  </Directory> | ||||
|  | @ -0,0 +1,11 @@ | |||
| diff --git a/etc/alternc/templates/alternc/bureau.conf b/etc/alternc/templates/alternc/bureau.conf | ||||
| index 65bca635..aa7066b9 100644 | ||||
| --- a/etc/alternc/templates/alternc/bureau.conf | ||||
| +++ b/etc/alternc/templates/alternc/bureau.conf | ||||
| @@ -33,5 +33,5 @@ | ||||
|   | ||||
|   | ||||
|    # will be used to define aliases such as /javascript /webmail /squirrelmail ... | ||||
| -  IncludeOptional /etc/alternc/apache-panel.d/*.conf | ||||
| +  Include /etc/alternc/apache-panel.d/*.conf | ||||
|   | ||||
|  | @ -0,0 +1,22 @@ | |||
| diff --git a/debian/changelog b/debian/changelog | ||||
| index 3ed86856..943f76d2 100644 | ||||
| --- a/debian/changelog | ||||
| +++ b/debian/changelog | ||||
| @@ -1,17 +1,3 @@ | ||||
| -alternc (3.3.10) stable; urgency=low | ||||
| - | ||||
| -  * Version identical to 3.1 for Squeeze | ||||
| -  * Includes small patches / dependency for apache & dovecot 2.0 for Jessie | ||||
| - | ||||
| - -- Benjamin Sonntag <benjamin@sonntag.fr>  Fri, 15 Jan 2016 15:26:00 +0100 | ||||
| - | ||||
| -alternc (3.2.10) oldstable; urgency=low | ||||
| - | ||||
| -  * Version identical to 3.1 for Squeeze | ||||
| -  * Includes a small dovecot patch / dependency for dovecot 2.0 for Wheezy | ||||
| - | ||||
| - -- Benjamin Sonntag <benjamin@sonntag.fr>  Fri, 15 Jan 2016 15:26:00 +0100 | ||||
| - | ||||
|  alternc (3.1.11) oldoldstable; urgency=low | ||||
|   | ||||
|    * fix This is a big security upgrade of AlternC 3.x | ||||
|  | @ -0,0 +1,449 @@ | |||
| diff --git a/roundcube/templates/roundcube/plugins/password/config.inc.php b/roundcube/templates/roundcube/plugins/password/config.inc.php | ||||
| index 6d49ef6e..f2741c57 100644 | ||||
| --- a/roundcube/templates/roundcube/plugins/password/config.inc.php | ||||
| +++ b/roundcube/templates/roundcube/plugins/password/config.inc.php | ||||
| @@ -1,56 +1,47 @@ | ||||
|  <?php | ||||
|   | ||||
| +/***********************************************************************/ | ||||
| +// Configuration file of password's plugin of Roundcube for AlternC    //
 | ||||
| +//                                                                     //
 | ||||
| +// /!\ WARNING /!\ Do not edit this file, edit the one in              //
 | ||||
| +// /etc/alternc/templates/roundcube/plugins/password/                  //
 | ||||
| +// and launch alternc.install again.                                   //
 | ||||
| +//                                                                     //
 | ||||
| +/***********************************************************************/ | ||||
| + | ||||
|  // Password Plugin options
 | ||||
|  // -----------------------
 | ||||
|  // A driver to use for password change. Default: "sql".
 | ||||
|  // See README file for list of supported driver names.
 | ||||
| -$config['password_driver'] = 'sql'; | ||||
| +$rcmail_config['password_driver'] = 'sql'; | ||||
|   | ||||
|  // Determine whether current password is required to change password.
 | ||||
|  // Default: false.
 | ||||
| -$config['password_confirm_current'] = true; | ||||
| +$rcmail_config['password_confirm_current'] = true; | ||||
|   | ||||
|  // Require the new password to be a certain length.
 | ||||
|  // set to blank to allow passwords of any length
 | ||||
| -$config['password_minimum_length'] = 8; | ||||
| +$rcmail_config['password_minimum_length'] = 8; | ||||
|   | ||||
|  // Require the new password to contain a letter and punctuation character
 | ||||
|  // Change to false to remove this check.
 | ||||
| -$config['password_require_nonalpha'] = true; | ||||
| +$rcmail_config['password_require_nonalpha'] = true; | ||||
|   | ||||
|  // Enables logging of password changes into logs/password
 | ||||
| -$config['password_log'] = true; | ||||
| - | ||||
| -// Comma-separated list of login exceptions for which password change | ||||
| -// will be not available (no Password tab in Settings) | ||||
| -$config['password_login_exceptions'] = null; | ||||
| - | ||||
| -// Array of hosts that support password changing. Default is NULL. | ||||
| -// Listed hosts will feature a Password option in Settings; others will not. | ||||
| -// Example: | ||||
| -//$config['password_hosts'] = array('mail.example.com', 'mail2.example.org'); | ||||
| -$config['password_hosts'] = null; | ||||
| - | ||||
| -// Enables saving the new password even if it matches the old password. Useful | ||||
| -// for upgrading the stored passwords after the encryption scheme has changed. | ||||
| -$config['password_force_save'] = false; | ||||
| - | ||||
| -// Enables forcing new users to change their password at their first login. | ||||
| -$config['password_force_new_user'] = false; | ||||
| +$rcmail_config['password_log'] = true; | ||||
|   | ||||
|   | ||||
|  // SQL Driver options
 | ||||
|  // ------------------
 | ||||
|  // PEAR database DSN for performing the query. By default
 | ||||
|  // Roundcube DB settings are used.
 | ||||
| -$config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%%@%%dbhost%%/%%dbname%%'; | ||||
| +$rcmail_config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%%@%%dbhost%%/%%dbname%%'; | ||||
|   | ||||
|  // The SQL query used to change the password.
 | ||||
|  // The query can contain the following macros that will be expanded as follows:
 | ||||
|  //      %p is replaced with the plaintext new password
 | ||||
|  //      %c is replaced with the crypt version of the new password, MD5 if available
 | ||||
| -//         otherwise DES. More hash function can be enabled using the password_crypt_hash  | ||||
| -//         configuration parameter. | ||||
| +//         otherwise DES. | ||||
|  //      %D is replaced with the dovecotpw-crypted version of the new password
 | ||||
|  //      %o is replaced with the password before the change
 | ||||
|  //      %n is replaced with the hashed version of the new password
 | ||||
| @@ -63,57 +54,45 @@ $config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%% | ||||
|  //         (in case the username is an email address)
 | ||||
|  // Escaping of macros is handled by this module.
 | ||||
|  // Default: "SELECT update_passwd(%c, %u)"
 | ||||
| -$config['password_query'] = 'UPDATE address a LEFT JOIN domaines d ON d.id=a.domain_id SET a.password=%c WHERE d.domaine=%d AND address=%l'; | ||||
| - | ||||
| -// By default the crypt() function which is used to create the '%c'  | ||||
| -// parameter uses the md5 algorithm. To use different algorithms  | ||||
| -// you can choose between: des, md5, blowfish, sha256, sha512. | ||||
| -// Before using other hash functions than des or md5 please make sure | ||||
| -// your operating system supports the other hash functions. | ||||
| -$config['password_crypt_hash'] = 'md5'; | ||||
| +$rcmail_config['password_query'] = 'UPDATE address a LEFT JOIN domaines d ON d.id=a.domain_id SET a.password=%c WHERE d.domaine=%d AND address=%l'; | ||||
|   | ||||
|  // By default domains in variables are using unicode.
 | ||||
|  // Enable this option to use punycoded names
 | ||||
| -$config['password_idn_ascii'] = false; | ||||
| +$rcmail_config['password_idn_ascii'] = false; | ||||
|   | ||||
|  // Path for dovecotpw (if not in $PATH)
 | ||||
| -// $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; | ||||
| +// $rcmail_config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; | ||||
|   | ||||
|  // Dovecot method (dovecotpw -s 'method')
 | ||||
| -$config['password_dovecotpw_method'] = 'CRAM-MD5'; | ||||
| +$rcmail_config['password_dovecotpw_method'] = 'CRAM-MD5'; | ||||
|   | ||||
|  // Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
 | ||||
| -$config['password_dovecotpw_with_method'] = false; | ||||
| +$rcmail_config['password_dovecotpw_with_method'] = false; | ||||
|   | ||||
|  // Using a password hash for %n and %q variables.
 | ||||
|  // Determine which hashing algorithm should be used to generate
 | ||||
|  // the hashed new and current password for using them within the
 | ||||
|  // SQL query. Requires PHP's 'hash' extension.
 | ||||
| -$config['password_hash_algorithm'] = 'sha1'; | ||||
| +$rcmail_config['password_hash_algorithm'] = 'sha1'; | ||||
|   | ||||
|  // You can also decide whether the hash should be provided
 | ||||
|  // as hex string or in base64 encoded format.
 | ||||
| -$config['password_hash_base64'] = false; | ||||
| - | ||||
| -// Iteration count parameter for Blowfish-based hashing algo. | ||||
| -// It must be between 4 and 31. Default: 12. | ||||
| -// Be aware, the higher the value, the longer it takes to generate the password hashes. | ||||
| -$config['password_blowfish_cost'] = 12; | ||||
| +$rcmail_config['password_hash_base64'] = false; | ||||
|   | ||||
|   | ||||
|  // Poppassd Driver options
 | ||||
|  // -----------------------
 | ||||
|  // The host which changes the password
 | ||||
| -$config['password_pop_host'] = 'localhost'; | ||||
| +$rcmail_config['password_pop_host'] = 'localhost'; | ||||
|   | ||||
|  // TCP port used for poppassd connections
 | ||||
| -$config['password_pop_port'] = 106; | ||||
| +$rcmail_config['password_pop_port'] = 106; | ||||
|   | ||||
|   | ||||
|  // SASL Driver options
 | ||||
|  // -------------------
 | ||||
|  // Additional arguments for the saslpasswd2 call
 | ||||
| -$config['password_saslpasswd_args'] = ''; | ||||
| +$rcmail_config['password_saslpasswd_args'] = ''; | ||||
|   | ||||
|   | ||||
|  // LDAP and LDAP_SIMPLE Driver options
 | ||||
| @@ -122,41 +101,41 @@ $config['password_saslpasswd_args'] = ''; | ||||
|  // 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'
 | ||||
| -$config['password_ldap_host'] = 'localhost'; | ||||
| +$rcmail_config['password_ldap_host'] = 'localhost'; | ||||
|   | ||||
|  // LDAP server port to connect to
 | ||||
|  // Default: '389'
 | ||||
| -$config['password_ldap_port'] = '389'; | ||||
| +$rcmail_config['password_ldap_port'] = '389'; | ||||
|   | ||||
|  // TLS is started after connecting
 | ||||
|  // Using TLS for password modification is recommanded.
 | ||||
|  // Default: false
 | ||||
| -$config['password_ldap_starttls'] = false; | ||||
| +$rcmail_config['password_ldap_starttls'] = false; | ||||
|   | ||||
|  // LDAP version
 | ||||
|  // Default: '3'
 | ||||
| -$config['password_ldap_version'] = '3'; | ||||
| +$rcmail_config['password_ldap_version'] = '3'; | ||||
|   | ||||
|  // LDAP base name (root directory)
 | ||||
|  // Exemple: 'dc=exemple,dc=com'
 | ||||
| -$config['password_ldap_basedn'] = 'dc=exemple,dc=com'; | ||||
| +$rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com'; | ||||
|   | ||||
|  // 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'
 | ||||
| -$config['password_ldap_method'] = 'user'; | ||||
| +$rcmail_config['password_ldap_method'] = 'user'; | ||||
|   | ||||
|  // LDAP Admin DN
 | ||||
|  // Used only in admin connection mode
 | ||||
|  // Default: null
 | ||||
| -$config['password_ldap_adminDN'] = null; | ||||
| +$rcmail_config['password_ldap_adminDN'] = null; | ||||
|   | ||||
|  // LDAP Admin Password
 | ||||
|  // Used only in admin connection mode
 | ||||
|  // Default: null
 | ||||
| -$config['password_ldap_adminPW'] = null; | ||||
| +$rcmail_config['password_ldap_adminPW'] = null; | ||||
|   | ||||
|  // LDAP user DN mask
 | ||||
|  // The user's DN is mandatory and as we only have his login,
 | ||||
| @@ -166,7 +145,7 @@ $config['password_ldap_adminPW'] = null; | ||||
|  // '%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'
 | ||||
| -$config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; | ||||
| +$rcmail_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
 | ||||
| @@ -177,7 +156,7 @@ $config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; | ||||
|  // 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.
 | ||||
| -$config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; | ||||
| +$rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; | ||||
|   | ||||
|  // LDAP search password
 | ||||
|  // If password_ldap_searchDN is set, the password to use for
 | ||||
| @@ -187,13 +166,13 @@ $config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com' | ||||
|  // 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.
 | ||||
| -$config['password_ldap_searchPW'] = 'secret'; | ||||
| +$rcmail_config['password_ldap_searchPW'] = 'secret'; | ||||
|   | ||||
|  // 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.
 | ||||
| -$config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
| +$rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
|   | ||||
|  // LDAP search filter
 | ||||
|  // If password_ldap_searchDN is set, the filter to use when
 | ||||
| @@ -205,43 +184,42 @@ $config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
|  // '%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))'
 | ||||
| -$config['password_ldap_search_filter'] = '(uid=%login)'; | ||||
| +$rcmail_config['password_ldap_search_filter'] = '(uid=%login)'; | ||||
|   | ||||
|  // LDAP password hash type
 | ||||
|  // Standard LDAP encryption type which must be one of: crypt,
 | ||||
| -// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad, cram-md5 (dovecot style) or clear. | ||||
| +// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear. | ||||
|  // 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.
 | ||||
| -// Multiple password Values can be generated by concatenating encodings with a +. E.g. 'cram-md5+crypt' | ||||
| -// Default: 'crypt'. | ||||
| -$config['password_ldap_encodage'] = 'crypt'; | ||||
| +// Default: 'crypt' | ||||
| +$rcmail_config['password_ldap_encodage'] = 'crypt'; | ||||
|   | ||||
|  // LDAP password attribute
 | ||||
|  // Name of the ldap's attribute used for storing user password
 | ||||
|  // Default: 'userPassword'
 | ||||
| -$config['password_ldap_pwattr'] = 'userPassword'; | ||||
| +$rcmail_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
 | ||||
| -$config['password_ldap_force_replace'] = true; | ||||
| +$rcmail_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)
 | ||||
| -$config['password_ldap_lchattr'] = ''; | ||||
| +$rcmail_config['password_ldap_lchattr'] = ''; | ||||
|   | ||||
|  // LDAP Samba password attribute, e.g. sambaNTPassword
 | ||||
|  // Name of the LDAP's Samba attribute used for storing user password
 | ||||
| -$config['password_ldap_samba_pwattr'] = ''; | ||||
| +$rcmail_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
 | ||||
| -$config['password_ldap_samba_lchattr'] = ''; | ||||
| +$rcmail_config['password_ldap_samba_lchattr'] = ''; | ||||
|   | ||||
|   | ||||
|  // DirectAdmin Driver options
 | ||||
| @@ -251,60 +229,63 @@ $config['password_ldap_samba_lchattr'] = ''; | ||||
|  // The host can contain the following macros that will be expanded as follows:
 | ||||
|  //     %h is replaced with the imap host (from the session info)
 | ||||
|  //     %d is replaced with the domain part of the username (if the username is an email)
 | ||||
| -$config['password_directadmin_host'] = 'tcp://localhost'; | ||||
| +$rcmail_config['password_directadmin_host'] = 'tcp://localhost'; | ||||
|   | ||||
|  // TCP port used for DirectAdmin connections
 | ||||
| -$config['password_directadmin_port'] = 2222; | ||||
| +$rcmail_config['password_directadmin_port'] = 2222; | ||||
|   | ||||
|   | ||||
|  // vpopmaild Driver options
 | ||||
|  // -----------------------
 | ||||
|  // The host which changes the password
 | ||||
| -$config['password_vpopmaild_host'] = 'localhost'; | ||||
| +$rcmail_config['password_vpopmaild_host'] = 'localhost'; | ||||
|   | ||||
|  // TCP port used for vpopmaild connections
 | ||||
| -$config['password_vpopmaild_port'] = 89; | ||||
| - | ||||
| -// Timout used for the connection to vpopmaild (in seconds) | ||||
| -$config['password_vpopmaild_timeout'] = 10; | ||||
| +$rcmail_config['password_vpopmaild_port'] = 89; | ||||
|   | ||||
|   | ||||
|  // cPanel Driver options
 | ||||
|  // --------------------------
 | ||||
|  // The cPanel Host name
 | ||||
| -$config['password_cpanel_host'] = 'host.domain.com'; | ||||
| +$rcmail_config['password_cpanel_host'] = 'host.domain.com'; | ||||
|   | ||||
|  // The cPanel admin username
 | ||||
| -$config['password_cpanel_username'] = 'username'; | ||||
| +$rcmail_config['password_cpanel_username'] = 'username'; | ||||
|   | ||||
|  // The cPanel admin password
 | ||||
| -$config['password_cpanel_password'] = 'password'; | ||||
| +$rcmail_config['password_cpanel_password'] = 'password'; | ||||
|   | ||||
|  // The cPanel port to use
 | ||||
| -$config['password_cpanel_port'] = 2087; | ||||
| +$rcmail_config['password_cpanel_port'] = 2082; | ||||
| + | ||||
| +// Using ssl for cPanel connections? | ||||
| +$rcmail_config['password_cpanel_ssl'] = true; | ||||
| + | ||||
| +// The cPanel theme in use | ||||
| +$rcmail_config['password_cpanel_theme'] = 'x'; | ||||
|   | ||||
|   | ||||
|  // XIMSS (Communigate server) Driver options
 | ||||
|  // -----------------------------------------
 | ||||
|  // Host name of the Communigate server
 | ||||
| -$config['password_ximss_host'] = 'mail.example.com'; | ||||
| +$rcmail_config['password_ximss_host'] = 'mail.example.com'; | ||||
|   | ||||
|  // XIMSS port on Communigate server
 | ||||
| -$config['password_ximss_port'] = 11024; | ||||
| +$rcmail_config['password_ximss_port'] = 11024; | ||||
|   | ||||
|   | ||||
|  // chpasswd Driver options
 | ||||
|  // ---------------------
 | ||||
|  // Command to use
 | ||||
| -$config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; | ||||
| +$rcmail_config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; | ||||
|   | ||||
|   | ||||
|  // XMail Driver options
 | ||||
|  // ---------------------
 | ||||
| -$config['xmail_host'] = 'localhost'; | ||||
| -$config['xmail_user'] = 'YourXmailControlUser'; | ||||
| -$config['xmail_pass'] = 'YourXmailControlPass'; | ||||
| -$config['xmail_port'] = 6017; | ||||
| +$rcmail_config['xmail_host'] = 'localhost'; | ||||
| +$rcmail_config['xmail_user'] = 'YourXmailControlUser'; | ||||
| +$rcmail_config['xmail_pass'] = 'YourXmailControlPass'; | ||||
| +$rcmail_config['xmail_port'] = 6017; | ||||
|   | ||||
|   | ||||
|  // hMail Driver options
 | ||||
| @@ -312,9 +293,9 @@ $config['xmail_port'] = 6017; | ||||
|  // Remote hMailServer configuration
 | ||||
|  // true:  HMailserver is on a remote box (php.ini: com.allow_dcom = true)
 | ||||
|  // false: Hmailserver is on same box as PHP
 | ||||
| -$config['hmailserver_remote_dcom'] = false; | ||||
| +$rcmail_config['hmailserver_remote_dcom'] = false; | ||||
|  // Windows credentials
 | ||||
| -$config['hmailserver_server'] = array( | ||||
| +$rcmail_config['hmailserver_server'] = array( | ||||
|      'Server' => 'localhost', // hostname or ip address
 | ||||
|      'Username' => 'administrator', // windows username
 | ||||
|      'Password' => 'password' // windows user password
 | ||||
| @@ -332,70 +313,6 @@ $config['hmailserver_server'] = array( | ||||
|  // 5: domain-username
 | ||||
|  // 6: username_domain
 | ||||
|  // 7: domain_username
 | ||||
| -$config['password_virtualmin_format'] = 0; | ||||
| - | ||||
| - | ||||
| -// pw_usermod Driver options | ||||
| -// -------------------------- | ||||
| -// Use comma delimited exlist to disable password change for users | ||||
| -// Add the following line to visudo to tighten security: | ||||
| -// www  ALL=NOPASSWORD: /usr/sbin/pw | ||||
| -$config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n'; | ||||
| - | ||||
| - | ||||
| -// DBMail Driver options | ||||
| -// ------------------- | ||||
| -// Additional arguments for the dbmail-users call | ||||
| -$config['password_dbmail_args'] = '-p sha512'; | ||||
| - | ||||
| - | ||||
| -// Expect Driver options | ||||
| -// --------------------- | ||||
| -// Location of expect binary | ||||
| -$config['password_expect_bin'] = '/usr/bin/expect'; | ||||
| - | ||||
| -// Location of expect script (see helpers/passwd-expect) | ||||
| -$config['password_expect_script'] = ''; | ||||
| - | ||||
| -// Arguments for the expect script. See the helpers/passwd-expect file for details. | ||||
| -// This is probably a good starting default: | ||||
| -//   -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log | ||||
| -$config['password_expect_params'] = ''; | ||||
| - | ||||
| - | ||||
| -// smb Driver options | ||||
| -// --------------------- | ||||
| -// Samba host (default: localhost) | ||||
| -// 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) | ||||
| -$config['password_smb_host'] = 'localhost'; | ||||
| -// Location of smbpasswd binary | ||||
| -$config['password_smb_cmd'] = '/usr/bin/smbpasswd'; | ||||
| - | ||||
| -// gearman driver options | ||||
| -// --------------------- | ||||
| -// Gearman host (default: localhost) | ||||
| -$config['password_gearman_host'] = 'localhost'; | ||||
| - | ||||
| - | ||||
| - | ||||
| -// Plesk/PPA Driver options | ||||
| -// -------------------- | ||||
| -// You need to allow RCP for IP of roundcube-server in Plesk/PPA Panel  | ||||
| - | ||||
| -// Plesk RCP Host | ||||
| -$config['password_plesk_host'] = '10.0.0.5'; | ||||
| - | ||||
| -// Plesk RPC Username | ||||
| -$config['password_plesk_user'] = 'admin'; | ||||
| - | ||||
| -// Plesk RPC Password | ||||
| -$config['password_plesk_pass'] = 'password'; | ||||
| - | ||||
| -// Plesk RPC Port | ||||
| -$config['password_plesk_rpc_port'] = '8443'; | ||||
| +$rcmail_config['password_virtualmin_format'] = 0; | ||||
|   | ||||
| -// Plesk RPC Path | ||||
| -$config['password_plesk_rpc_path'] = 'enterprise/control/agent.php'; | ||||
| +?>
 | ||||
|  | @ -0,0 +1,51 @@ | |||
| diff --git a/debian/control b/debian/control | ||||
| index 551f6171..394506f9 100644 | ||||
| --- a/debian/control | ||||
| +++ b/debian/control | ||||
| @@ -38,19 +38,16 @@ Depends: debianutils (>= 1.13.1) | ||||
|         , sudo | ||||
|         , adduser | ||||
|         , dnsutils | ||||
| -       , dovecot-core (>=1:2.1.7) | ||||
| -       , dovecot-imapd (>=1:2.1.7) | ||||
| -       , dovecot-pop3d (>=1:2.1.7) | ||||
| -       , dovecot-mysql | ||||
| +       , dovecot-common (>=1:1.2.15) | ||||
| +       , dovecot-common(<< 1:2.0) | ||||
| +       , dovecot-imapd (>= 1:1.2.15) | ||||
| +       , dovecot-pop3d (>= 1:1.2.15) | ||||
|         , vlogger | ||||
|         , mailutils | mailx | ||||
|         , zip | ||||
|         , incron | ||||
|         , cron | ||||
|         , opendkim | ||||
| -       , opendkim-tools | ||||
| -       , dovecot-sieve | ||||
| -       , dovecot-managesieved | ||||
|         , mysql-client(>= 5.0) | mariadb-client | ||||
|         , php5-curl | php7.0-curl | ||||
|         , quota | ||||
| @@ -126,18 +123,15 @@ Depends: debianutils (>= 1.13.1) | ||||
|           , gettext (>= 0.10.40-5) | ||||
|           , adduser | ||||
|           , sudo | ||||
| -         , dovecot-core (>=1:2.1.7) | ||||
| -         , dovecot-imapd (>=1:2.1.7) | ||||
| -         , dovecot-pop3d (>=1:2.1.7) | ||||
| -         , dovecot-mysql | ||||
| +         , dovecot-common (>=1:1.2.15) | ||||
| +         , dovecot-common(<< 1:2.0) | ||||
| +         , dovecot-imapd (>= 1:1.2.15) | ||||
| +         , dovecot-pop3d (>= 1:1.2.15) | ||||
|           , vlogger | ||||
|           , mailutils | mailx | ||||
|           , incron | ||||
|           , cron | ||||
|           , opendkim | ||||
| -         , opendkim-tools | ||||
| -         , dovecot-sieve | ||||
| -         , dovecot-managesieved | ||||
|           , mysql-client(>= 5.0) | mariadb-client | ||||
|           , php5-curl | ||||
|           , ${misc:Depends} | ||||
|  | @ -0,0 +1,53 @@ | |||
| diff --git a/etc/alternc/templates/dovecot/dovecot-dict-quota.conf b/etc/alternc/templates/dovecot/dovecot-dict-quota.conf | ||||
| new file mode 100644 | ||||
| index 00000000..8ad06548 | ||||
| --- /dev/null | ||||
| +++ b/etc/alternc/templates/dovecot/dovecot-dict-quota.conf | ||||
| @@ -0,0 +1,47 @@ | ||||
| +# AUTO GENERATED FILE | ||||
| +# Modify template in /etc/alternc/templates/ | ||||
| +# and launch alternc.install if you want  | ||||
| +# to modify this file. | ||||
| +# | ||||
| + | ||||
| +connect=host=%%dbhost%% dbname=%%dbname%% user=%%db_mail_user%% password=%%db_mail_pwd%% | ||||
| +#connect = host=localhost dbname=mails user=testuser password=pass | ||||
| + | ||||
| +# CREATE TABLE quota ( | ||||
| +#   username varchar(100) not null, | ||||
| +#   bytes bigint not null default 0, | ||||
| +#   messages integer not null default 0, | ||||
| +#   primary key (username) | ||||
| +# ); | ||||
| + | ||||
| +map { | ||||
| +  pattern = priv/quota/storage | ||||
| +  table = dovecot_quota | ||||
| +  username_field = user | ||||
| +  value_field = quota_dovecot  | ||||
| +} | ||||
| +map { | ||||
| + pattern = priv/quota/messages | ||||
| + table = dovecot_quota | ||||
| + username_field = user | ||||
| + value_field = nb_messages | ||||
| +} | ||||
| + | ||||
| +# CREATE TABLE expires ( | ||||
| +#   username varchar(100) not null, | ||||
| +#   mailbox varchar(255) not null, | ||||
| +#   expire_stamp integer not null, | ||||
| +#   primary key (username, mailbox) | ||||
| +# ); | ||||
| + | ||||
| +#map { | ||||
| + # pattern = shared/expire/$user/$mailbox | ||||
| + # table = expires | ||||
| + # value_field = expire_stamp | ||||
| + | ||||
| + # fields { | ||||
| + #   username = $user | ||||
| + #   mailbox = $mailbox | ||||
| + # } | ||||
| +#} | ||||
| + | ||||
|  | @ -0,0 +1,138 @@ | |||
| diff --git a/etc/alternc/templates/dovecot/dovecot-sql.conf b/etc/alternc/templates/dovecot/dovecot-sql.conf | ||||
| new file mode 100644 | ||||
| index 00000000..befef217 | ||||
| --- /dev/null | ||||
| +++ b/etc/alternc/templates/dovecot/dovecot-sql.conf | ||||
| @@ -0,0 +1,132 @@ | ||||
| +# AUTO GENERATED FILE | ||||
| +# Modify template in /etc/alternc/templates/ | ||||
| +# and launch alternc.install if you want  | ||||
| +# to modify this file. | ||||
| +# | ||||
| + | ||||
| +# This file is opened as root, so it should be owned by root and mode 0600. | ||||
| +# | ||||
| +# http://wiki.dovecot.org/AuthDatabase/SQL | ||||
| +# | ||||
| +# For the sql passdb module, you'll need a database with a table that | ||||
| +# contains fields for at least the username and password. If you want to | ||||
| +# use the user@domain syntax, you might want to have a separate domain | ||||
| +# field as well. | ||||
| +# | ||||
| +# If your users all have the same uig/gid, and have predictable home | ||||
| +# directories, you can use the static userdb module to generate the home | ||||
| +# dir based on the username and domain. In this case, you won't need fields | ||||
| +# for home, uid, or gid in the database. | ||||
| +# | ||||
| +# If you prefer to use the sql userdb module, you'll want to add fields | ||||
| +# for home, uid, and gid. Here is an example table: | ||||
| +# | ||||
| +# CREATE TABLE users ( | ||||
| +#     username VARCHAR(128) NOT NULL, | ||||
| +#     domain VARCHAR(128) NOT NULL, | ||||
| +#     password VARCHAR(64) NOT NULL, | ||||
| +#     home VARCHAR(255) NOT NULL, | ||||
| +#     uid INTEGER NOT NULL, | ||||
| +#     gid INTEGER NOT NULL, | ||||
| +#     active CHAR(1) DEFAULT 'Y' NOT NULL | ||||
| +# ); | ||||
| + | ||||
| +# Database driver: mysql, pgsql, sqlite | ||||
| +driver = mysql | ||||
| + | ||||
| +# Database connection string. This is driver-specific setting. | ||||
| +# | ||||
| +# pgsql: | ||||
| +#   For available options, see the PostgreSQL documention for the | ||||
| +#   PQconnectdb function of libpq. | ||||
| +# | ||||
| +# mysql: | ||||
| +#   Basic options emulate PostgreSQL option names: | ||||
| +#     host, port, user, password, dbname | ||||
| +# | ||||
| +#   But also adds some new settings: | ||||
| +#     client_flags        - See MySQL manual | ||||
| +#     ssl_ca, ssl_ca_path - Set either one or both to enable SSL | ||||
| +#     ssl_cert, ssl_key   - For sending client-side certificates to server | ||||
| +#     ssl_cipher          - Set minimum allowed cipher security (default: HIGH) | ||||
| +#     option_file         - Read options from the given file instead of | ||||
| +#                           the default my.cnf location | ||||
| +#     option_group        - Read options from the given group (default: client) | ||||
| +#  | ||||
| +#   You can connect to UNIX sockets by using host: host=/var/run/mysqld/mysqld.sock | ||||
| +#   Note that currently you can't use spaces in parameters. | ||||
| +# | ||||
| +#   MySQL supports multiple host parameters for load balancing / HA. | ||||
| +# | ||||
| +# sqlite: | ||||
| +#   The path to the database file. | ||||
| +# | ||||
| +# Examples: | ||||
| +#   connect = host=192.168.1.1 dbname=users | ||||
| +#   connect = host=sql.example.com dbname=virtual user=virtual password=blarg | ||||
| +#   connect = /etc/dovecot/authdb.sqlite | ||||
| +# | ||||
| +connect = host=%%dbhost%% dbname=%%dbname%% user=%%db_mail_user%% password=%%db_mail_pwd%% | ||||
| + | ||||
| +# Default password scheme. | ||||
| +# | ||||
| +# List of supported schemes is in | ||||
| +# http://wiki.dovecot.org/Authentication/PasswordSchemes | ||||
| +# | ||||
| +default_pass_scheme = MD5 | ||||
| + | ||||
| +# passdb query to retrieve the password. It can return fields: | ||||
| +#   password - The user's password. This field must be returned. | ||||
| +#   user - user@domain from the database. Needed with case-insensitive lookups. | ||||
| +#   username and domain - An alternative way to represent the "user" field. | ||||
| +# | ||||
| +# The "user" field is often necessary with case-insensitive lookups to avoid | ||||
| +# e.g. "name" and "nAme" logins creating two different mail directories. If | ||||
| +# your user and domain names are in separate fields, you can return "username" | ||||
| +# and "domain" fields instead of "user". | ||||
| +# | ||||
| +# The query can also return other fields which have a special meaning, see | ||||
| +# http://wiki.dovecot.org/PasswordDatabase/ExtraFields | ||||
| +# | ||||
| +# Commonly used available substitutions (see http://wiki.dovecot.org/Variables | ||||
| +# for full list): | ||||
| +#   %u = entire user@domain | ||||
| +#   %n = user part of user@domain | ||||
| +#   %d = domain part of user@domain | ||||
| +#  | ||||
| +# Note that these can be used only as input to SQL query. If the query outputs | ||||
| +# any of these substitutions, they're not touched. Otherwise it would be | ||||
| +# difficult to have eg. usernames containing '%' characters. | ||||
| +# | ||||
| +# Example: | ||||
| +#   password_query = SELECT userid AS user, pw AS password \ | ||||
| +#     FROM users WHERE userid = '%u' AND active = 'Y' | ||||
| +# | ||||
| +#password_query = \ | ||||
| +#  SELECT username, domain, password \ | ||||
| +#  FROM users WHERE username = '%n' AND domain = '%d' | ||||
| + | ||||
| +# userdb query to retrieve the user information. It can return fields: | ||||
| +#   uid - System UID (overrides mail_uid setting) | ||||
| +#   gid - System GID (overrides mail_gid setting) | ||||
| +#   home - Home directory | ||||
| +#   mail - Mail location (overrides mail_location setting) | ||||
| +# | ||||
| +# None of these are strictly required. If you use a single UID and GID, and | ||||
| +# home or mail directory fits to a template string, you could use userdb static | ||||
| +# instead. For a list of all fields that can be returned, see | ||||
| +# http://wiki.dovecot.org/UserDatabase/ExtraFields | ||||
| +# | ||||
| +# Examples: | ||||
| +#   user_query = SELECT home, uid, gid FROM users WHERE userid = '%u' | ||||
| +#   user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u' | ||||
| +#   user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u' | ||||
| +# | ||||
| +user_query = SELECT userdb_home AS home, userdb_uid AS uid, 1998 AS gid, userdb_quota_rule AS quota_rule FROM dovecot_view WHERE user = '%u'; | ||||
| + | ||||
| +# If you wish to avoid two SQL lookups (passdb + userdb), you can use | ||||
| +# userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll | ||||
| +# also have to return userdb fields in password_query prefixed with "userdb_" | ||||
| +# string. For example: | ||||
| +password_query = SELECT user, password, userdb_home, userdb_uid, 1998 AS userdb_gid,userdb_quota_rule FROM dovecot_view where user= '%u';  | ||||
| + | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -0,0 +1,809 @@ | |||
| diff --git a/roundcube/templates/roundcube/main.inc.php b/roundcube/templates/roundcube/main.inc.php | ||||
| new file mode 100644 | ||||
| index 00000000..97c9f6bf | ||||
| --- /dev/null | ||||
| +++ b/roundcube/templates/roundcube/main.inc.php | ||||
| @@ -0,0 +1,803 @@ | ||||
| +<?php | ||||
| + | ||||
| +/***********************************************************************/ | ||||
| +// Roundcube's Configuration file for AlternC                          //
 | ||||
| +//                                                                     //
 | ||||
| +// /!\ WARNING /!\ Do not edit this file, edit the one in              //
 | ||||
| +// /etc/alternc/templates/roundcube/ and launch alternc.install again. //
 | ||||
| +//                                                                     //
 | ||||
| +/***********************************************************************/ | ||||
| + | ||||
| +/* | ||||
| ++-----------------------------------------------------------------------+ | ||||
| +| Main configuration file                                               | | ||||
| +|                                                                       | | ||||
| +| This file is part of the Roundcube Webmail client                     | | ||||
| +| Copyright (C) 2005-2011, The Roundcube Dev Team                       | | ||||
| +| Licensed under the GNU GPL                                            | | ||||
| +|                                                                       | | ||||
| ++-----------------------------------------------------------------------+ | ||||
| + | ||||
| +*/ | ||||
| + | ||||
| +$rcmail_config = array(); | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// LOGGING/DEBUGGING | ||||
| +// ---------------------------------- | ||||
| + | ||||
| +// system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace | ||||
| +$rcmail_config['debug_level'] = 1; | ||||
| + | ||||
| +// log driver:  'syslog' or 'file'. | ||||
| +$rcmail_config['log_driver'] = 'file'; | ||||
| + | ||||
| +// date format for log entries | ||||
| +// (read http://php.net/manual/en/function.date.php for all format characters) | ||||
| +$rcmail_config['log_date_format'] = 'd-M-Y H:i:s O'; | ||||
| + | ||||
| +// Syslog ident string to use, if using the 'syslog' log driver. | ||||
| +$rcmail_config['syslog_id'] = 'roundcube'; | ||||
| + | ||||
| +// Syslog facility to use, if using the 'syslog' log driver. | ||||
| +// For possible values see installer or http://php.net/manual/en/function.openlog.php | ||||
| +$rcmail_config['syslog_facility'] = LOG_USER; | ||||
| + | ||||
| +// Log sent messages to <log_dir>/sendmail or to syslog | ||||
| +$rcmail_config['smtp_log'] = true; | ||||
| + | ||||
| +// Log successful logins to <log_dir>/userlogins or to syslog | ||||
| +$rcmail_config['log_logins'] = false; | ||||
| + | ||||
| +// Log session authentication errors to <log_dir>/session or to syslog | ||||
| +$rcmail_config['log_session'] = false; | ||||
| + | ||||
| +// Log SQL queries to <log_dir>/sql or to syslog | ||||
| +$rcmail_config['sql_debug'] = false; | ||||
| + | ||||
| +// Log IMAP conversation to <log_dir>/imap or to syslog | ||||
| +$rcmail_config['imap_debug'] = false; | ||||
| + | ||||
| +// Log LDAP conversation to <log_dir>/ldap or to syslog | ||||
| +$rcmail_config['ldap_debug'] = false; | ||||
| + | ||||
| +// Log SMTP conversation to <log_dir>/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 - http hostname ($_SERVER['SERVER_NAME']) | ||||
| +// %d - domain (http hostname without the first part) | ||||
| +// %s - domain name after the '@' from e-mail address provided at login screen | ||||
| +// For example %n = mail.domain.tld, %d = domain.tld | ||||
| +$rcmail_config['default_host'] = 'localhost'; | ||||
| + | ||||
| +// TCP port used for IMAP connections | ||||
| +$rcmail_config['default_port'] = 143; | ||||
| + | ||||
| +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty 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'] = true; | ||||
| + | ||||
| +// IMAP connection timeout, in seconds. Default: 0 (no limit) | ||||
| +$rcmail_config['imap_timeout'] = 10; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// 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 - 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, %d = domain.tld | ||||
| +$rcmail_config['smtp_server'] = 'localhost'; | ||||
| + | ||||
| +// SMTP port (default is 25; 465 for SSL) | ||||
| +$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'] = '%u'; | ||||
| + | ||||
| +// 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'] = '%p'; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// 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; | ||||
| + | ||||
| +// 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/'; | ||||
| + | ||||
| +// lifetime of message cache | ||||
| +// possible units: s, m, h, d, w | ||||
| +$rcmail_config['message_cache_lifetime'] = '10d'; | ||||
| + | ||||
| +// 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 | ||||
| +$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'] = 2; | ||||
| + | ||||
| +// If users authentication is not case sensitive this must be enabled. | ||||
| +// You can also use it to force conversion of logins to lower case. | ||||
| +// After enabling it all user records need to be updated, e.g. with query: | ||||
| +// UPDATE users SET username = LOWER(username); | ||||
| +$rcmail_config['login_lc'] = false; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// replace Roundcube logo with this image | ||||
| +// specify an URL relative to the document root of this Roundcube installation | ||||
| +$rcmail_config['skin_logo'] = 'skins/default/images/roundcube_alternc_logo.png'; | ||||
| + | ||||
| +// Includes should be interpreted as PHP files | ||||
| +$rcmail_config['skin_include_php'] = false; | ||||
| + | ||||
| +// Session lifetime in minutes | ||||
| +// must be greater than 'keep_alive'/60 | ||||
| +$rcmail_config['session_lifetime'] = 60; | ||||
| + | ||||
| +// session domain: .example.org | ||||
| +$rcmail_config['session_domain'] = ''; | ||||
| + | ||||
| +// session name. Default: 'roundcube_sessid' | ||||
| +$rcmail_config['session_name'] = null; | ||||
| + | ||||
| +// Backend to use for session storage. Can either be 'db' (default) or 'memcache' | ||||
| +// 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 | ||||
| +$rcmail_config['session_storage'] = 'db'; | ||||
| + | ||||
| +// Use these hosts for accessing memcached | ||||
| +// Define any number of hosts in the form hostname:port | ||||
| +$rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211' );
 | ||||
| + | ||||
| +// 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'] = '%%deskey%%'; | ||||
| + | ||||
| +// 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 - 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, %d = 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, %d = 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; | ||||
| + | ||||
| +// don't allow these settings to be overriden by the user | ||||
| +$rcmail_config['dont_override'] = array(); | ||||
| + | ||||
| +// 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 | ||||
| +$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
 | ||||
| + | ||||
| +// mime magic database | ||||
| +$rcmail_config['mime_magic'] = '/usr/share/misc/magic'; | ||||
| + | ||||
| +// path to imagemagick identify binary | ||||
| +$rcmail_config['im_identify_path'] = '/usr/bin/identify'; | ||||
| + | ||||
| +// path to imagemagick convert binary | ||||
| +$rcmail_config['im_convert_path'] = '/usr/bin/convert'; | ||||
| + | ||||
| +// 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'] = true; | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// PLUGINS | ||||
| +// ---------------------------------- | ||||
| + | ||||
| +// List of active plugins (in plugins/ directory) | ||||
| +$rcmail_config['plugins'] = array("managesieve","password"); | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// USER INTERFACE | ||||
| +// ---------------------------------- | ||||
| + | ||||
| +// default messages sort column. Use empty value for default server's sorting, | ||||
| +// or 'arrival', 'date', 'subject', 'from', 'to', '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, cc, replyto, date, size, status, flag, attachment, 'priority' | ||||
| +$rcmail_config['list_cols'] = array('subject', 'status', 'from', '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_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); | ||||
| + | ||||
| +// automatically create the above listed default folders on first login | ||||
| +$rcmail_config['create_default_folders'] = true; | ||||
| + | ||||
| +// 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'] = true; | ||||
| + | ||||
| +// 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'] = 'pspell'; | ||||
| + | ||||
| +// 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 'keep_alive' setting (in seconds) | ||||
| +// Must be less than 'session_lifetime' | ||||
| +$rcmail_config['min_keep_alive'] = 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) and 'ldap'. | ||||
| +// 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. | ||||
| +$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 - 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, %d = domain.tld | ||||
| +'hosts'         => array('directory.verisign.com'), | ||||
| +'port'          => 389, | ||||
| +'use_tls'	      => false, | ||||
| +'ldap_version'  => 3,       // using LDAPv3
 | ||||
| +'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'       => 'mail', | ||||
| +// 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 | ||||
| +'fieldmap' => array( | ||||
| +// Roundcube  => LDAP | ||||
| +'name'        => 'cn', | ||||
| +'surname'     => 'sn', | ||||
| +'firstname'   => 'givenName', | ||||
| +'email'       => 'mail', | ||||
| +'phone:home'  => 'homePhone', | ||||
| +'phone:work'  => 'telephoneNumber', | ||||
| +'phone:mobile' => 'mobile', | ||||
| +'street'      => 'street', | ||||
| +'zipcode'     => 'postalCode', | ||||
| +'locality'    => 'l', | ||||
| +'country'     => 'c', | ||||
| +'organization' => 'o', | ||||
| +), | ||||
| +'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'     => '', | ||||
| +'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}<br/>{locality} {zipcode}<br/>{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'] = 'UTF-8'; | ||||
| + | ||||
| +// skin name: folder from skins/ | ||||
| +$rcmail_config['skin'] = 'default'; | ||||
| + | ||||
| +// show up to X items in list view | ||||
| +$rcmail_config['pagesize'] = 40; | ||||
| + | ||||
| +// use this timezone to display date/time | ||||
| +$rcmail_config['timezone'] = 'auto'; | ||||
| + | ||||
| +// is daylight saving On? Default: (bool)date('I'); | ||||
| +$rcmail_config['dst_active'] = null; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// compose html formatted messages by default | ||||
| +// 0 - never, 1 - always, 2 - on reply to HTML message only | ||||
| +$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'] = true; | ||||
| + | ||||
| +// 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'] = -1; | ||||
| + | ||||
| +// Clear Trash on logout | ||||
| +$rcmail_config['logout_purge'] = true; | ||||
| + | ||||
| +// 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 keep-alive/check-recent requests (in seconds) | ||||
| +// Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime' | ||||
| +$rcmail_config['keep_alive'] = 60; | ||||
| + | ||||
| +// If true all folders will be checked for recent messages | ||||
| +$rcmail_config['check_all_folders'] = true; | ||||
| + | ||||
| +// 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 place cursor above original message (top posting) | ||||
| +$rcmail_config['top_posting'] = false; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// When replying or forwarding place sender's signature above existing message | ||||
| +$rcmail_config['sig_above'] = false; | ||||
| + | ||||
| +// 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_imap_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; | ||||
| + | ||||
| +// 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'] = 2; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// end of config file | ||||
| + | ||||
| +?>
 | ||||
|  | @ -0,0 +1,18 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # Apply diffs to build for squeeze | ||||
| 
 | ||||
| # DON'T COMMIT ANYTHING AFTER launching this | ||||
| # reset your repos back to the serverside one! | ||||
| 
 | ||||
| # The patch files were generated by running | ||||
| # export REV_NEW=ebb3471f04d49dd839237608bafc396e8b5090e5; export REV_OLD=d6d9be4c6a751279c9ad2a9b50aeb5d3ff1f91f9; \ | ||||
| # for i in `git diff --name-only $REV_NEW $REV_OLD` ; do BASE_NAME=`echo $i | rev | cut -d '/' -f 1 | rev` ; \ | ||||
| # git diff -p $REV_NEW $REV_OLD -- "$i" > jessie/$BASE_NAME ; done | ||||
| 
 | ||||
| DIR_NAME=`dirname $0` | ||||
| cd "$DIR_NAME"/../ | ||||
| 
 | ||||
| for i in `ls "$DIR_NAME"`; do | ||||
|   patch -p1 < "$DIR_NAME/$i" | ||||
| done | ||||
|  | @ -0,0 +1,33 @@ | |||
| diff --git a/roundcube/roundcube-install b/roundcube/roundcube-install | ||||
| index 59a26119..81011d12 100644 | ||||
| --- a/roundcube/roundcube-install | ||||
| +++ b/roundcube/roundcube-install | ||||
| @@ -39,7 +39,7 @@ then | ||||
|      . /etc/alternc/local.sh | ||||
|      # Configuration template location | ||||
|      TEMPLATE_DIR="/etc/alternc/templates" | ||||
| -    CONFIG_FILES="etc/roundcube/config.inc.php etc/roundcube/plugins/password/config.inc.php" | ||||
| +    CONFIG_FILES="etc/roundcube/main.inc.php etc/roundcube/plugins/password/config.inc.php etc/roundcube/plugins/managesieve/config.inc.php" | ||||
|   | ||||
|      cat > $SED_SCRIPT <<EOF | ||||
|  s\\%%ALTERNC_LOC%%\\$ALTERNC_LOC\\; | ||||
| @@ -81,17 +81,9 @@ EOF | ||||
|      echo "    Done" | ||||
|   | ||||
|      echo "Deconfiguring javascript-common alias" | ||||
| -    if [ -f /etc/apache2/conf.d/javascript-common.conf ]; then | ||||
| -        	rm -f /etc/apache2/conf.d/javascript-common.conf | ||||
| -    fi | ||||
| -    if [ -f /etc/apache2/conf-available/javascript-common.conf ] ; then | ||||
| -		a2disconf javascript-common.conf | ||||
| -		service apache2 reload | ||||
| -    fi | ||||
| +    rm -f /etc/apache2/conf.d/javascript-common.conf | ||||
|      # just in case  | ||||
| -    if [ -f /etc/javascript-common/javascript-common.conf ]; then | ||||
| -        sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf | ||||
| -    fi | ||||
| +    sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf | ||||
|      echo "    Done" | ||||
|       | ||||
|  fi | ||||
|  | @ -0,0 +1,13 @@ | |||
| diff --git a/ssl/ssl.conf b/ssl/ssl.conf | ||||
| index 68b422b3..c3a599d5 100644 | ||||
| --- a/ssl/ssl.conf | ||||
| +++ b/ssl/ssl.conf | ||||
| @@ -51,7 +51,7 @@ SSLSessionCacheTimeout  300 | ||||
|  #   Semaphore: | ||||
|  #   Configure the path to the mutual exclusion semaphore the | ||||
|  #   SSL engine uses internally for inter-process synchronization.  | ||||
| -Mutex  file:${APACHE_RUN_DIR} | ||||
| +SSLMutex  file:${APACHE_RUN_DIR}/ssl_mutex | ||||
|   | ||||
|  #   SSL Cipher Suite: | ||||
|  #   List the ciphers that the client is permitted to negotiate. See the | ||||
|  | @ -0,0 +1,17 @@ | |||
| diff --git a/etc/alternc/templates/apache2/vhost.conf b/etc/alternc/templates/apache2/vhost.conf | ||||
| index 8b4f304f..77f5e038 100644 | ||||
| --- a/etc/alternc/templates/apache2/vhost.conf | ||||
| +++ b/etc/alternc/templates/apache2/vhost.conf | ||||
| @@ -9,11 +9,8 @@ | ||||
|      php_admin_value upload_tmp_dir %%account_root%%/tmp | ||||
|      php_admin_value sendmail_path '/usr/lib/alternc/sendmail "%%mail_account%%" ' | ||||
|      php_admin_flag mail.add_x_header on | ||||
| -    Options -MultiViews -FollowSymLinks +SymLinksIfOwnerMatch | ||||
| +    Options +MultiViews -FollowSymLinks +SymLinksIfOwnerMatch | ||||
|      AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
| -    Order allow,deny | ||||
| -    Allow from all | ||||
| -    Require all granted | ||||
|    </Directory> | ||||
|   | ||||
|  # If you want to log the errors also in /var/log/alternc/sites/  | ||||
|  | @ -9,9 +9,7 @@ if ($argv[1] == "templates") { | |||
|     // install ssl.conf
 | ||||
|     echo "[alternc-ssl] Installing ssl.conf template\n"; | ||||
|     copy("/etc/alternc/templates/apache2/mods-available/ssl.conf","/etc/apache2/mods-available/ssl.conf"); | ||||
|     if (!is_dir('/var/run/alternc-ssl')) { | ||||
|         mkdir("/var/run/alternc-ssl"); | ||||
|     } | ||||
|     mkdir("/var/run/alternc-ssl"); | ||||
|     chown("/var/run/alternc-ssl","alterncpanel"); | ||||
|     chgrp("/var/run/alternc-ssl","alterncpanel"); | ||||
|     // replace open_basedir line if necessary : 
 | ||||
|  | @ -66,23 +64,4 @@ if ($argv[1] == "before-reload") { | |||
|         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='php52-mixssl';"); | ||||
|     } | ||||
| 
 | ||||
|     // Enable name-based virtual hosts in Apache2 : 
 | ||||
|     $f = fopen("/etc/apache2/ports.conf", "rb"); | ||||
|     if (!$f) { | ||||
|         echo "FATAL: there is no /etc/apache2/ports.conf ! I can't configure name-based virtual hosts\n"; | ||||
|     } else { | ||||
|         $found = false; | ||||
|         while ($s = fgets($f, 1024)) { | ||||
|             if (preg_match(":^[^#]*NameVirtualHost.*443:", $s)) { | ||||
|                 $found = true; | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         fclose($f); | ||||
|         if (!$found) { | ||||
|             $f = fopen("/etc/apache2/ports.conf", "ab"); | ||||
|             fputs($f, "\n<IfModule mod_ssl.c>\n  NameVirtualHost *:443\n\n</IfModule>\n"); | ||||
|             fclose($f); | ||||
|         } | ||||
|     } | ||||
| } // before-reload
 | ||||
|  |  | |||
|  | @ -51,7 +51,7 @@ SSLSessionCacheTimeout  300 | |||
| #   Semaphore: | ||||
| #   Configure the path to the mutual exclusion semaphore the | ||||
| #   SSL engine uses internally for inter-process synchronization.  | ||||
| SSLMutex  file:${APACHE_RUN_DIR}/ssl_mutex | ||||
| Mutex  file:${APACHE_RUN_DIR} | ||||
| 
 | ||||
| #   SSL Cipher Suite: | ||||
| #   List the ciphers that the client is permitted to negotiate. See the | ||||
|  |  | |||
|  | @ -0,0 +1,19 @@ | |||
| diff --git a/debian/alternc-roundcube.postinst b/debian/alternc-roundcube.postinst | ||||
| index 0d99169d..6dfe23c9 100644 | ||||
| --- a/debian/alternc-roundcube.postinst | ||||
| +++ b/debian/alternc-roundcube.postinst | ||||
| @@ -27,10 +27,10 @@ case "$1" in | ||||
|  	chown -R www-data:root /etc/roundcube/debian-db.php | ||||
|  	chmod -R 460 /etc/roundcube/debian-db.php | ||||
|   | ||||
| -	dpkg-statoverride --list /etc/roundcube/config.inc.php >/dev/null &&  | ||||
| -	dpkg-statoverride --remove /etc/roundcube/config.inc.php | ||||
| -	chown -R www-data:root /etc/roundcube/config.inc.php | ||||
| -	chmod -R 460 /etc/roundcube/config.inc.php | ||||
| +	dpkg-statoverride --list /etc/roundcube/main.inc.php >/dev/null &&  | ||||
| +	dpkg-statoverride --remove /etc/roundcube/main.inc.php | ||||
| +	chown -R www-data:root /etc/roundcube/main.inc.php | ||||
| +	chmod -R 460 /etc/roundcube/main.inc.php | ||||
|   | ||||
|  	dpkg-statoverride --list /var/log/roundcube >/dev/null &&  | ||||
|  	dpkg-statoverride --remove /var/log/roundcube | ||||
|  | @ -0,0 +1,39 @@ | |||
| diff --git a/ssl/alternc-ssl.install.php b/ssl/alternc-ssl.install.php | ||||
| index ba568910..041eef80 100644 | ||||
| --- a/ssl/alternc-ssl.install.php | ||||
| +++ b/ssl/alternc-ssl.install.php | ||||
| @@ -9,7 +9,9 @@ if ($argv[1] == "templates") { | ||||
|      // install ssl.conf
 | ||||
|      echo "[alternc-ssl] Installing ssl.conf template\n"; | ||||
|      copy("/etc/alternc/templates/apache2/mods-available/ssl.conf","/etc/apache2/mods-available/ssl.conf"); | ||||
| -    mkdir("/var/run/alternc-ssl"); | ||||
| +    if (!is_dir('/var/run/alternc-ssl')) { | ||||
| +        mkdir("/var/run/alternc-ssl"); | ||||
| +    } | ||||
|      chown("/var/run/alternc-ssl","alterncpanel"); | ||||
|      chgrp("/var/run/alternc-ssl","alterncpanel"); | ||||
|      // replace open_basedir line if necessary : 
 | ||||
| @@ -64,4 +66,23 @@ if ($argv[1] == "before-reload") { | ||||
|          $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='php52-mixssl';"); | ||||
|      } | ||||
|   | ||||
| +    // Enable name-based virtual hosts in Apache2 : 
 | ||||
| +    $f = fopen("/etc/apache2/ports.conf", "rb"); | ||||
| +    if (!$f) { | ||||
| +        echo "FATAL: there is no /etc/apache2/ports.conf ! I can't configure name-based virtual hosts\n"; | ||||
| +    } else { | ||||
| +        $found = false; | ||||
| +        while ($s = fgets($f, 1024)) { | ||||
| +            if (preg_match(":^[^#]*NameVirtualHost.*443:", $s)) { | ||||
| +                $found = true; | ||||
| +                break; | ||||
| +            } | ||||
| +        } | ||||
| +        fclose($f); | ||||
| +        if (!$found) { | ||||
| +            $f = fopen("/etc/apache2/ports.conf", "ab"); | ||||
| +            fputs($f, "\n<IfModule mod_ssl.c>\n  NameVirtualHost *:443\n\n</IfModule>\n"); | ||||
| +            fclose($f); | ||||
| +        } | ||||
| +    } | ||||
|  } // before-reload
 | ||||
|  | @ -0,0 +1,118 @@ | |||
| diff --git a/install/alternc.install b/install/alternc.install | ||||
| index 95060b7c..5d92cf0c 100644 | ||||
| --- a/install/alternc.install | ||||
| +++ b/install/alternc.install | ||||
| @@ -279,20 +279,12 @@ rm -f $SED_SCRIPT | ||||
|  # Ad-hoc fixes | ||||
|  # | ||||
|   | ||||
| -php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.*\)\.so$/\1/' | tail -1`" | ||||
| -if [ "$php" = "7.0" ] | ||||
| -then | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php/$php/apache2/conf.d/alternc.ini || true | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php/$php/cli/conf.d/alternc.ini || true | ||||
| -else | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php$php/apache2/conf.d/alternc.ini || true | ||||
| -    ln -fs /etc/alternc/alternc.ini /etc/php$php/cli/conf.d/alternc.ini || true | ||||
| -fi | ||||
| - | ||||
| +php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.\)\.so$/php\1/' | tail -1`" | ||||
| +ln -fs /etc/alternc/alternc.ini /etc/$php/apache2/conf.d/alternc.ini || true | ||||
| +ln -fs /etc/alternc/alternc.ini /etc/$php/cli/conf.d/alternc.ini || true | ||||
|  if [ -x /usr/sbin/apache2 ]; then | ||||
|      # hook  | ||||
|      run-parts --arg=apache2 /usr/lib/alternc/install.d  | ||||
| -    a2enmod mpm_itk | ||||
|       | ||||
|      s="" | ||||
|      # unused from AlternC 1.0, FIXME: remove it later | ||||
| @@ -301,9 +293,9 @@ if [ -x /usr/sbin/apache2 ]; then | ||||
|          a2dismod vhost_alias | ||||
|          s="apache2" | ||||
|      fi  | ||||
| -    if ! [ -L /etc/apache2/mods-enabled/php$php.load ] | ||||
| +    if ! [ -L /etc/apache2/mods-enabled/$php.load ] | ||||
|      then | ||||
| -	    a2enmod php$php | ||||
| +	    a2enmod $php | ||||
|      fi | ||||
|      if ! [ -L /etc/apache2/mods-enabled/rewrite.load ] | ||||
|      then | ||||
| @@ -319,9 +311,8 @@ if [ -x /usr/sbin/apache2 ]; then | ||||
|              a2enmod ssl | ||||
|              s="apache2" | ||||
|          fi | ||||
| -        if [ ! -h /etc/apache2/conf-available/alternc-ssl.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
| -            ln -sf /etc/alternc/apache2-ssl.conf /etc/apache2/conf-available/alternc-ssl.conf | ||||
| -	    a2enconf alternc-ssl | ||||
| +        if [ ! -h /etc/apache2/conf.d/alternc-ssl.conf ] && [ -e /etc/apache2/conf.d/ ]; then | ||||
| +            ln -sf /etc/alternc/apache2-ssl.conf /etc/apache2/conf.d/alternc-ssl.conf | ||||
|              s="apache2" | ||||
|          fi | ||||
|   | ||||
| @@ -340,13 +331,12 @@ if [ -x /usr/sbin/apache2 ]; then | ||||
|          echo "SSL not configured" | ||||
|          echo "create a certificate in /etc/alternc/apache.pem and rerun alternc.install" | ||||
|      fi | ||||
| -    if [ ! -h /etc/apache2/conf-available/alternc.conf ] && [ -e /etc/apache2/conf-available/ ]; then | ||||
| -        ln -sf /etc/alternc/apache2.conf /etc/apache2/conf-available/alternc.conf | ||||
| -	a2enconf alternc.conf | ||||
| +    if [ ! -h /etc/apache2/conf.d/alternc.conf ] && [ -e /etc/apache2/conf.d/ ]; then | ||||
| +        ln -sf /etc/alternc/apache2.conf /etc/apache2/conf.d/alternc.conf | ||||
|          s="apache2" | ||||
|      fi | ||||
| -    if [ -e /etc/apache2/sites-enabled/000-default.conf ]; then | ||||
| -        a2dissite 000-default | ||||
| +    if [ -e /etc/apache2/sites-enabled/000-default ]; then | ||||
| +        a2dissite default | ||||
|          s="apache2" | ||||
|      fi | ||||
|      SERVICES="$SERVICES $s" | ||||
| @@ -440,7 +430,7 @@ OLDDESTINATION=`postconf mydestination | awk -F '=' '{print $2}'` | ||||
|  echo "$OLDDESTINATION" | grep -q -v "$FQDN" && postconf -e "mydestination = $FQDN, $OLDDESTINATION" | ||||
|   | ||||
|  # Remove phpmyadmin apache2 configuration | ||||
| -a2disconf phpmyadmin | ||||
| +rm -f /etc/apache2/conf.d/phpmyadmin.conf || true | ||||
|   | ||||
|  # Configure PHPMyAdmin | ||||
|  include_str='include("/etc/alternc/phpmyadmin.inc.php")' | ||||
| @@ -598,9 +588,6 @@ chmod g+r /etc/dovecot/alternc-sql.conf | ||||
|  # Override some dovecot 2.0 configuration that may have happened during dovecot postinst: | ||||
|  sed -i -e 's/^ *!include/#!include/' /etc/dovecot/conf.d/10-auth.conf | ||||
|   | ||||
| -# Changing owner of web panel's files | ||||
| -chown -R alterncpanel:alterncpanel "/usr/share/alternc/panel/" | ||||
| - | ||||
|  # We force the re-computing of the DNS zones, since we may have changed the IP address (see #460) | ||||
|  /usr/bin/mysql --defaults-file="/etc/alternc/my.cnf" -B -e "update domaines set dns_action='UPDATE' WHERE gesdns=1;" | ||||
|   | ||||
| @@ -612,7 +599,7 @@ grep -q "^localhost\$" /etc/opendkim/TrustedHosts || echo "localhost" >>/etc/ope | ||||
|  grep -q "^$PUBLIC_IP\$" /etc/opendkim/TrustedHosts || echo "$PUBLIC_IP" >>/etc/opendkim/TrustedHosts | ||||
|   | ||||
|  # Add opendkim to service to restart | ||||
| -SERVICES="$SERVICES opendkim bind9" | ||||
| +SERVICES="$SERVICES opendkim" | ||||
|   | ||||
|  # hook  | ||||
|  run-parts --arg=before-reload /usr/lib/alternc/install.d  | ||||
| @@ -620,7 +607,7 @@ run-parts --arg=before-reload /usr/lib/alternc/install.d | ||||
|  ####################################################################### | ||||
|  # Reload services | ||||
|  # | ||||
| -for service in postfix dovecot cron proftpd ; do | ||||
| +for service in postfix bind9 apache2 dovecot cron proftpd ; do | ||||
|      invoke-rc.d $service force-reload || true | ||||
|  done | ||||
|   | ||||
| @@ -628,10 +615,6 @@ done | ||||
|  for service in $SERVICES; do | ||||
|      test -x /etc/init.d/$service && invoke-rc.d $service stop || true | ||||
|  done | ||||
| - | ||||
| -# on Jessie, apache2 does not stop/start properly due to "service" and "apache2ctl" having different behavior pid-file-wise | ||||
| -killall apache2  | ||||
| - | ||||
|  for service in $SERVICES; do | ||||
|      test -x /etc/init.d/$service && invoke-rc.d $service start || true | ||||
|  done | ||||
|  | @ -1,46 +0,0 @@ | |||
| diff --git a/install/alternc.install b/install/alternc.install
 | ||||
| index b9691b0..2ee07b8 100644
 | ||||
| --- alternc.install.squeeze
 | ||||
| +++ alternc.install
 | ||||
| @@ -79,7 +79,7 @@ if [ -e /etc/default/saslauthd ]; then
 | ||||
|  fi | ||||
|   | ||||
|  if [ -e /etc/dovecot/dovecot.conf ]; then | ||||
| -    CONFIG_FILES="$CONFIG_FILES etc/dovecot/dovecot.conf etc/dovecot/dovecot-sql.conf etc/dovecot/dovecot-dict-quota.conf"
 | ||||
| +    CONFIG_FILES="$CONFIG_FILES etc/dovecot/alternc-sql.conf etc/dovecot/alternc-dict-quota.conf etc/dovecot/conf.d/95_alternc.conf"
 | ||||
|  fi | ||||
|   | ||||
|  INSTALLED_CONFIG_TAR="/var/lib/alternc/backups/etc-installed.tar.gz" | ||||
| @@ -317,7 +317,7 @@ if [ -x /usr/sbin/apache2 ]; then
 | ||||
|          fi | ||||
|   | ||||
|  	# We enable dovecot SSL certificate instructions: (on wheezy we should use a new file in /etc/dovecot/conf.d/ ) | ||||
| -	sed -i -e 's#^ssl_cert_file.*$#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem#' -e 's#^ssl_key_file.*$#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key#' /etc/dovecot/dovecot.conf
 | ||||
| +	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/alternc/apache.pem" ; echo "ssl_key = </etc/alternc/apache.pem" ) >/etc/dovecot/conf.d/96_ssl.conf
 | ||||
|   | ||||
|      else | ||||
|          # We disable proftpd tls module | ||||
| @@ -326,7 +326,7 @@ if [ -x /usr/sbin/apache2 ]; then
 | ||||
|          cp /etc/proftpd/modules.conf /etc/alternc/templates/proftpd/ | ||||
|   | ||||
|  	# We disable dovecot SSL certificate instructions: (on wheezy we should remove a file in /etc/dovecot/conf.d/ ) | ||||
| -        sed -i -e 's#^ssl_cert_file.*$#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem#' -e 's#^ssl_key_file.*$#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key#' /etc/dovecot/dovecot.conf
 | ||||
| +	( echo "# Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead" ; echo "ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem" ; echo "ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key" ) >/etc/dovecot/conf.d/96_ssl.conf
 | ||||
|   | ||||
|          echo "SSL not configured" | ||||
|          echo "create a certificate in /etc/alternc/apache.pem and rerun alternc.install" | ||||
| @@ -574,9 +574,11 @@ if [ "$HAS_ROOT" != "1" ]; then
 | ||||
|      fi | ||||
|  fi | ||||
|   | ||||
| -#giving vmail user read access on dovecot sql file
 | ||||
| -chgrp vmail /etc/dovecot/dovecot.conf
 | ||||
| -chmod g+r /etc/dovecot/dovecot.conf
 | ||||
| +# giving vmail user read access on dovecot sql file
 | ||||
| +chgrp vmail /etc/dovecot/alternc-sql.conf
 | ||||
| +chmod g+r /etc/dovecot/alternc-sql.conf
 | ||||
| +# Override some dovecot 2.0 configuration that may have happened during dovecot postinst:
 | ||||
| +sed -i -e 's/^ *!include/#!include/' /etc/dovecot/conf.d/10-auth.conf
 | ||||
|   | ||||
|  # We force the re-computing of the DNS zones, since we may have changed the IP address (see #460) | ||||
|  /usr/bin/mysql --defaults-file="/etc/alternc/my.cnf" -B -e "update domaines set dns_action='UPDATE' WHERE gesdns=1;" | ||||
|  | @ -0,0 +1,43 @@ | |||
| diff --git a/etc/alternc/templates/alternc/apache2.conf b/etc/alternc/templates/alternc/apache2.conf | ||||
| index 0732de07..514d695d 100644 | ||||
| --- a/etc/alternc/templates/alternc/apache2.conf | ||||
| +++ b/etc/alternc/templates/alternc/apache2.conf | ||||
| @@ -9,9 +9,12 @@ | ||||
|  # Define the default user and group for mpm-itk | ||||
|  AssignUserId www-data www-data | ||||
|   | ||||
| +# Logformat information | ||||
| +Include /etc/alternc/apache_logformat.conf | ||||
| + | ||||
|  # Deny access to the root filesystem | ||||
|  <Directory /> | ||||
| -  Options +FollowSymLinks | ||||
| +  Options FollowSymLinks | ||||
|    AllowOverride None | ||||
|    Order allow,deny | ||||
|    Deny from all | ||||
| @@ -42,7 +45,7 @@ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ||||
|   | ||||
|  <Directory %%ALTERNC_HTML%% > | ||||
|    AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
| -  Options -Indexes +Includes -FollowSymLinks +MultiViews +SymLinksIfOwnerMatch | ||||
| +  Options Indexes Includes -FollowSymLinks MultiViews SymLinksIfOwnerMatch | ||||
|    Order allow,deny | ||||
|    Allow from all | ||||
|    php_admin_flag safe_mode_gid off | ||||
| @@ -62,13 +65,13 @@ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ||||
|   | ||||
|  <Directory /usr/share/phpmyadmin> | ||||
|    AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
| -  Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
| +  Options Indexes Includes FollowSymLinks MultiViews | ||||
|    Order allow,deny | ||||
|    Allow from all | ||||
|  </Directory> | ||||
|  <Directory /usr/share/squirrelmail> | ||||
|    AllowOverride AuthConfig Options FileInfo Limit Indexes | ||||
| -  Options +Indexes +Includes +FollowSymLinks +MultiViews | ||||
| +  Options Indexes Includes FollowSymLinks MultiViews | ||||
|    Order allow,deny | ||||
|    Allow from all | ||||
|  </Directory> | ||||
|  | @ -0,0 +1,11 @@ | |||
| diff --git a/etc/alternc/templates/alternc/bureau.conf b/etc/alternc/templates/alternc/bureau.conf | ||||
| index 65bca635..aa7066b9 100644 | ||||
| --- a/etc/alternc/templates/alternc/bureau.conf | ||||
| +++ b/etc/alternc/templates/alternc/bureau.conf | ||||
| @@ -33,5 +33,5 @@ | ||||
|   | ||||
|   | ||||
|    # will be used to define aliases such as /javascript /webmail /squirrelmail ... | ||||
| -  IncludeOptional /etc/alternc/apache-panel.d/*.conf | ||||
| +  Include /etc/alternc/apache-panel.d/*.conf | ||||
|   | ||||
|  | @ -0,0 +1,15 @@ | |||
| diff --git a/debian/changelog b/debian/changelog | ||||
| index 3ed86856..75cd7999 100644 | ||||
| --- a/debian/changelog | ||||
| +++ b/debian/changelog | ||||
| @@ -1,10 +1,3 @@ | ||||
| -alternc (3.3.10) stable; urgency=low | ||||
| - | ||||
| -  * Version identical to 3.1 for Squeeze | ||||
| -  * Includes small patches / dependency for apache & dovecot 2.0 for Jessie | ||||
| - | ||||
| - -- Benjamin Sonntag <benjamin@sonntag.fr>  Fri, 15 Jan 2016 15:26:00 +0100 | ||||
| - | ||||
|  alternc (3.2.10) oldstable; urgency=low | ||||
|   | ||||
|    * Version identical to 3.1 for Squeeze | ||||
|  | @ -1,13 +0,0 @@ | |||
| --- changelog	2014-06-24 13:42:50.234304438 +0200
 | ||||
| +++ changelog.wheezy	2014-06-24 13:43:51.978313552 +0200
 | ||||
| @@ -1,3 +1,10 @@
 | ||||
| +alternc (3.2.10) oldstable; urgency=low
 | ||||
| +
 | ||||
| +  * Version identical to 3.1 for Squeeze
 | ||||
| +  * Includes a small dovecot patch / dependency for dovecot 2.0 for Wheezy
 | ||||
| +
 | ||||
| + -- Benjamin Sonntag <benjamin@sonntag.fr>  Fri, 15 Jan 2016 15:26:00 +0100
 | ||||
| +
 | ||||
|  alternc (3.1.11) oldoldstable; urgency=low | ||||
|   | ||||
|    * fix This is a big security upgrade of AlternC 3.x | ||||
|  | @ -0,0 +1,449 @@ | |||
| diff --git a/roundcube/templates/roundcube/plugins/password/config.inc.php b/roundcube/templates/roundcube/plugins/password/config.inc.php | ||||
| index 6d49ef6e..f2741c57 100644 | ||||
| --- a/roundcube/templates/roundcube/plugins/password/config.inc.php | ||||
| +++ b/roundcube/templates/roundcube/plugins/password/config.inc.php | ||||
| @@ -1,56 +1,47 @@ | ||||
|  <?php | ||||
|   | ||||
| +/***********************************************************************/ | ||||
| +// Configuration file of password's plugin of Roundcube for AlternC    //
 | ||||
| +//                                                                     //
 | ||||
| +// /!\ WARNING /!\ Do not edit this file, edit the one in              //
 | ||||
| +// /etc/alternc/templates/roundcube/plugins/password/                  //
 | ||||
| +// and launch alternc.install again.                                   //
 | ||||
| +//                                                                     //
 | ||||
| +/***********************************************************************/ | ||||
| + | ||||
|  // Password Plugin options
 | ||||
|  // -----------------------
 | ||||
|  // A driver to use for password change. Default: "sql".
 | ||||
|  // See README file for list of supported driver names.
 | ||||
| -$config['password_driver'] = 'sql'; | ||||
| +$rcmail_config['password_driver'] = 'sql'; | ||||
|   | ||||
|  // Determine whether current password is required to change password.
 | ||||
|  // Default: false.
 | ||||
| -$config['password_confirm_current'] = true; | ||||
| +$rcmail_config['password_confirm_current'] = true; | ||||
|   | ||||
|  // Require the new password to be a certain length.
 | ||||
|  // set to blank to allow passwords of any length
 | ||||
| -$config['password_minimum_length'] = 8; | ||||
| +$rcmail_config['password_minimum_length'] = 8; | ||||
|   | ||||
|  // Require the new password to contain a letter and punctuation character
 | ||||
|  // Change to false to remove this check.
 | ||||
| -$config['password_require_nonalpha'] = true; | ||||
| +$rcmail_config['password_require_nonalpha'] = true; | ||||
|   | ||||
|  // Enables logging of password changes into logs/password
 | ||||
| -$config['password_log'] = true; | ||||
| - | ||||
| -// Comma-separated list of login exceptions for which password change | ||||
| -// will be not available (no Password tab in Settings) | ||||
| -$config['password_login_exceptions'] = null; | ||||
| - | ||||
| -// Array of hosts that support password changing. Default is NULL. | ||||
| -// Listed hosts will feature a Password option in Settings; others will not. | ||||
| -// Example: | ||||
| -//$config['password_hosts'] = array('mail.example.com', 'mail2.example.org'); | ||||
| -$config['password_hosts'] = null; | ||||
| - | ||||
| -// Enables saving the new password even if it matches the old password. Useful | ||||
| -// for upgrading the stored passwords after the encryption scheme has changed. | ||||
| -$config['password_force_save'] = false; | ||||
| - | ||||
| -// Enables forcing new users to change their password at their first login. | ||||
| -$config['password_force_new_user'] = false; | ||||
| +$rcmail_config['password_log'] = true; | ||||
|   | ||||
|   | ||||
|  // SQL Driver options
 | ||||
|  // ------------------
 | ||||
|  // PEAR database DSN for performing the query. By default
 | ||||
|  // Roundcube DB settings are used.
 | ||||
| -$config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%%@%%dbhost%%/%%dbname%%'; | ||||
| +$rcmail_config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%%@%%dbhost%%/%%dbname%%'; | ||||
|   | ||||
|  // The SQL query used to change the password.
 | ||||
|  // The query can contain the following macros that will be expanded as follows:
 | ||||
|  //      %p is replaced with the plaintext new password
 | ||||
|  //      %c is replaced with the crypt version of the new password, MD5 if available
 | ||||
| -//         otherwise DES. More hash function can be enabled using the password_crypt_hash  | ||||
| -//         configuration parameter. | ||||
| +//         otherwise DES. | ||||
|  //      %D is replaced with the dovecotpw-crypted version of the new password
 | ||||
|  //      %o is replaced with the password before the change
 | ||||
|  //      %n is replaced with the hashed version of the new password
 | ||||
| @@ -63,57 +54,45 @@ $config['password_db_dsn'] = 'mysql://%%roundcube-login%%:%%roundcube-password%% | ||||
|  //         (in case the username is an email address)
 | ||||
|  // Escaping of macros is handled by this module.
 | ||||
|  // Default: "SELECT update_passwd(%c, %u)"
 | ||||
| -$config['password_query'] = 'UPDATE address a LEFT JOIN domaines d ON d.id=a.domain_id SET a.password=%c WHERE d.domaine=%d AND address=%l'; | ||||
| - | ||||
| -// By default the crypt() function which is used to create the '%c'  | ||||
| -// parameter uses the md5 algorithm. To use different algorithms  | ||||
| -// you can choose between: des, md5, blowfish, sha256, sha512. | ||||
| -// Before using other hash functions than des or md5 please make sure | ||||
| -// your operating system supports the other hash functions. | ||||
| -$config['password_crypt_hash'] = 'md5'; | ||||
| +$rcmail_config['password_query'] = 'UPDATE address a LEFT JOIN domaines d ON d.id=a.domain_id SET a.password=%c WHERE d.domaine=%d AND address=%l'; | ||||
|   | ||||
|  // By default domains in variables are using unicode.
 | ||||
|  // Enable this option to use punycoded names
 | ||||
| -$config['password_idn_ascii'] = false; | ||||
| +$rcmail_config['password_idn_ascii'] = false; | ||||
|   | ||||
|  // Path for dovecotpw (if not in $PATH)
 | ||||
| -// $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; | ||||
| +// $rcmail_config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; | ||||
|   | ||||
|  // Dovecot method (dovecotpw -s 'method')
 | ||||
| -$config['password_dovecotpw_method'] = 'CRAM-MD5'; | ||||
| +$rcmail_config['password_dovecotpw_method'] = 'CRAM-MD5'; | ||||
|   | ||||
|  // Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
 | ||||
| -$config['password_dovecotpw_with_method'] = false; | ||||
| +$rcmail_config['password_dovecotpw_with_method'] = false; | ||||
|   | ||||
|  // Using a password hash for %n and %q variables.
 | ||||
|  // Determine which hashing algorithm should be used to generate
 | ||||
|  // the hashed new and current password for using them within the
 | ||||
|  // SQL query. Requires PHP's 'hash' extension.
 | ||||
| -$config['password_hash_algorithm'] = 'sha1'; | ||||
| +$rcmail_config['password_hash_algorithm'] = 'sha1'; | ||||
|   | ||||
|  // You can also decide whether the hash should be provided
 | ||||
|  // as hex string or in base64 encoded format.
 | ||||
| -$config['password_hash_base64'] = false; | ||||
| - | ||||
| -// Iteration count parameter for Blowfish-based hashing algo. | ||||
| -// It must be between 4 and 31. Default: 12. | ||||
| -// Be aware, the higher the value, the longer it takes to generate the password hashes. | ||||
| -$config['password_blowfish_cost'] = 12; | ||||
| +$rcmail_config['password_hash_base64'] = false; | ||||
|   | ||||
|   | ||||
|  // Poppassd Driver options
 | ||||
|  // -----------------------
 | ||||
|  // The host which changes the password
 | ||||
| -$config['password_pop_host'] = 'localhost'; | ||||
| +$rcmail_config['password_pop_host'] = 'localhost'; | ||||
|   | ||||
|  // TCP port used for poppassd connections
 | ||||
| -$config['password_pop_port'] = 106; | ||||
| +$rcmail_config['password_pop_port'] = 106; | ||||
|   | ||||
|   | ||||
|  // SASL Driver options
 | ||||
|  // -------------------
 | ||||
|  // Additional arguments for the saslpasswd2 call
 | ||||
| -$config['password_saslpasswd_args'] = ''; | ||||
| +$rcmail_config['password_saslpasswd_args'] = ''; | ||||
|   | ||||
|   | ||||
|  // LDAP and LDAP_SIMPLE Driver options
 | ||||
| @@ -122,41 +101,41 @@ $config['password_saslpasswd_args'] = ''; | ||||
|  // 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'
 | ||||
| -$config['password_ldap_host'] = 'localhost'; | ||||
| +$rcmail_config['password_ldap_host'] = 'localhost'; | ||||
|   | ||||
|  // LDAP server port to connect to
 | ||||
|  // Default: '389'
 | ||||
| -$config['password_ldap_port'] = '389'; | ||||
| +$rcmail_config['password_ldap_port'] = '389'; | ||||
|   | ||||
|  // TLS is started after connecting
 | ||||
|  // Using TLS for password modification is recommanded.
 | ||||
|  // Default: false
 | ||||
| -$config['password_ldap_starttls'] = false; | ||||
| +$rcmail_config['password_ldap_starttls'] = false; | ||||
|   | ||||
|  // LDAP version
 | ||||
|  // Default: '3'
 | ||||
| -$config['password_ldap_version'] = '3'; | ||||
| +$rcmail_config['password_ldap_version'] = '3'; | ||||
|   | ||||
|  // LDAP base name (root directory)
 | ||||
|  // Exemple: 'dc=exemple,dc=com'
 | ||||
| -$config['password_ldap_basedn'] = 'dc=exemple,dc=com'; | ||||
| +$rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com'; | ||||
|   | ||||
|  // 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'
 | ||||
| -$config['password_ldap_method'] = 'user'; | ||||
| +$rcmail_config['password_ldap_method'] = 'user'; | ||||
|   | ||||
|  // LDAP Admin DN
 | ||||
|  // Used only in admin connection mode
 | ||||
|  // Default: null
 | ||||
| -$config['password_ldap_adminDN'] = null; | ||||
| +$rcmail_config['password_ldap_adminDN'] = null; | ||||
|   | ||||
|  // LDAP Admin Password
 | ||||
|  // Used only in admin connection mode
 | ||||
|  // Default: null
 | ||||
| -$config['password_ldap_adminPW'] = null; | ||||
| +$rcmail_config['password_ldap_adminPW'] = null; | ||||
|   | ||||
|  // LDAP user DN mask
 | ||||
|  // The user's DN is mandatory and as we only have his login,
 | ||||
| @@ -166,7 +145,7 @@ $config['password_ldap_adminPW'] = null; | ||||
|  // '%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'
 | ||||
| -$config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; | ||||
| +$rcmail_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
 | ||||
| @@ -177,7 +156,7 @@ $config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; | ||||
|  // 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.
 | ||||
| -$config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; | ||||
| +$rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; | ||||
|   | ||||
|  // LDAP search password
 | ||||
|  // If password_ldap_searchDN is set, the password to use for
 | ||||
| @@ -187,13 +166,13 @@ $config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com' | ||||
|  // 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.
 | ||||
| -$config['password_ldap_searchPW'] = 'secret'; | ||||
| +$rcmail_config['password_ldap_searchPW'] = 'secret'; | ||||
|   | ||||
|  // 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.
 | ||||
| -$config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
| +$rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
|   | ||||
|  // LDAP search filter
 | ||||
|  // If password_ldap_searchDN is set, the filter to use when
 | ||||
| @@ -205,43 +184,42 @@ $config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; | ||||
|  // '%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))'
 | ||||
| -$config['password_ldap_search_filter'] = '(uid=%login)'; | ||||
| +$rcmail_config['password_ldap_search_filter'] = '(uid=%login)'; | ||||
|   | ||||
|  // LDAP password hash type
 | ||||
|  // Standard LDAP encryption type which must be one of: crypt,
 | ||||
| -// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad, cram-md5 (dovecot style) or clear. | ||||
| +// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear. | ||||
|  // 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.
 | ||||
| -// Multiple password Values can be generated by concatenating encodings with a +. E.g. 'cram-md5+crypt' | ||||
| -// Default: 'crypt'. | ||||
| -$config['password_ldap_encodage'] = 'crypt'; | ||||
| +// Default: 'crypt' | ||||
| +$rcmail_config['password_ldap_encodage'] = 'crypt'; | ||||
|   | ||||
|  // LDAP password attribute
 | ||||
|  // Name of the ldap's attribute used for storing user password
 | ||||
|  // Default: 'userPassword'
 | ||||
| -$config['password_ldap_pwattr'] = 'userPassword'; | ||||
| +$rcmail_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
 | ||||
| -$config['password_ldap_force_replace'] = true; | ||||
| +$rcmail_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)
 | ||||
| -$config['password_ldap_lchattr'] = ''; | ||||
| +$rcmail_config['password_ldap_lchattr'] = ''; | ||||
|   | ||||
|  // LDAP Samba password attribute, e.g. sambaNTPassword
 | ||||
|  // Name of the LDAP's Samba attribute used for storing user password
 | ||||
| -$config['password_ldap_samba_pwattr'] = ''; | ||||
| +$rcmail_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
 | ||||
| -$config['password_ldap_samba_lchattr'] = ''; | ||||
| +$rcmail_config['password_ldap_samba_lchattr'] = ''; | ||||
|   | ||||
|   | ||||
|  // DirectAdmin Driver options
 | ||||
| @@ -251,60 +229,63 @@ $config['password_ldap_samba_lchattr'] = ''; | ||||
|  // The host can contain the following macros that will be expanded as follows:
 | ||||
|  //     %h is replaced with the imap host (from the session info)
 | ||||
|  //     %d is replaced with the domain part of the username (if the username is an email)
 | ||||
| -$config['password_directadmin_host'] = 'tcp://localhost'; | ||||
| +$rcmail_config['password_directadmin_host'] = 'tcp://localhost'; | ||||
|   | ||||
|  // TCP port used for DirectAdmin connections
 | ||||
| -$config['password_directadmin_port'] = 2222; | ||||
| +$rcmail_config['password_directadmin_port'] = 2222; | ||||
|   | ||||
|   | ||||
|  // vpopmaild Driver options
 | ||||
|  // -----------------------
 | ||||
|  // The host which changes the password
 | ||||
| -$config['password_vpopmaild_host'] = 'localhost'; | ||||
| +$rcmail_config['password_vpopmaild_host'] = 'localhost'; | ||||
|   | ||||
|  // TCP port used for vpopmaild connections
 | ||||
| -$config['password_vpopmaild_port'] = 89; | ||||
| - | ||||
| -// Timout used for the connection to vpopmaild (in seconds) | ||||
| -$config['password_vpopmaild_timeout'] = 10; | ||||
| +$rcmail_config['password_vpopmaild_port'] = 89; | ||||
|   | ||||
|   | ||||
|  // cPanel Driver options
 | ||||
|  // --------------------------
 | ||||
|  // The cPanel Host name
 | ||||
| -$config['password_cpanel_host'] = 'host.domain.com'; | ||||
| +$rcmail_config['password_cpanel_host'] = 'host.domain.com'; | ||||
|   | ||||
|  // The cPanel admin username
 | ||||
| -$config['password_cpanel_username'] = 'username'; | ||||
| +$rcmail_config['password_cpanel_username'] = 'username'; | ||||
|   | ||||
|  // The cPanel admin password
 | ||||
| -$config['password_cpanel_password'] = 'password'; | ||||
| +$rcmail_config['password_cpanel_password'] = 'password'; | ||||
|   | ||||
|  // The cPanel port to use
 | ||||
| -$config['password_cpanel_port'] = 2087; | ||||
| +$rcmail_config['password_cpanel_port'] = 2082; | ||||
| + | ||||
| +// Using ssl for cPanel connections? | ||||
| +$rcmail_config['password_cpanel_ssl'] = true; | ||||
| + | ||||
| +// The cPanel theme in use | ||||
| +$rcmail_config['password_cpanel_theme'] = 'x'; | ||||
|   | ||||
|   | ||||
|  // XIMSS (Communigate server) Driver options
 | ||||
|  // -----------------------------------------
 | ||||
|  // Host name of the Communigate server
 | ||||
| -$config['password_ximss_host'] = 'mail.example.com'; | ||||
| +$rcmail_config['password_ximss_host'] = 'mail.example.com'; | ||||
|   | ||||
|  // XIMSS port on Communigate server
 | ||||
| -$config['password_ximss_port'] = 11024; | ||||
| +$rcmail_config['password_ximss_port'] = 11024; | ||||
|   | ||||
|   | ||||
|  // chpasswd Driver options
 | ||||
|  // ---------------------
 | ||||
|  // Command to use
 | ||||
| -$config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; | ||||
| +$rcmail_config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; | ||||
|   | ||||
|   | ||||
|  // XMail Driver options
 | ||||
|  // ---------------------
 | ||||
| -$config['xmail_host'] = 'localhost'; | ||||
| -$config['xmail_user'] = 'YourXmailControlUser'; | ||||
| -$config['xmail_pass'] = 'YourXmailControlPass'; | ||||
| -$config['xmail_port'] = 6017; | ||||
| +$rcmail_config['xmail_host'] = 'localhost'; | ||||
| +$rcmail_config['xmail_user'] = 'YourXmailControlUser'; | ||||
| +$rcmail_config['xmail_pass'] = 'YourXmailControlPass'; | ||||
| +$rcmail_config['xmail_port'] = 6017; | ||||
|   | ||||
|   | ||||
|  // hMail Driver options
 | ||||
| @@ -312,9 +293,9 @@ $config['xmail_port'] = 6017; | ||||
|  // Remote hMailServer configuration
 | ||||
|  // true:  HMailserver is on a remote box (php.ini: com.allow_dcom = true)
 | ||||
|  // false: Hmailserver is on same box as PHP
 | ||||
| -$config['hmailserver_remote_dcom'] = false; | ||||
| +$rcmail_config['hmailserver_remote_dcom'] = false; | ||||
|  // Windows credentials
 | ||||
| -$config['hmailserver_server'] = array( | ||||
| +$rcmail_config['hmailserver_server'] = array( | ||||
|      'Server' => 'localhost', // hostname or ip address
 | ||||
|      'Username' => 'administrator', // windows username
 | ||||
|      'Password' => 'password' // windows user password
 | ||||
| @@ -332,70 +313,6 @@ $config['hmailserver_server'] = array( | ||||
|  // 5: domain-username
 | ||||
|  // 6: username_domain
 | ||||
|  // 7: domain_username
 | ||||
| -$config['password_virtualmin_format'] = 0; | ||||
| - | ||||
| - | ||||
| -// pw_usermod Driver options | ||||
| -// -------------------------- | ||||
| -// Use comma delimited exlist to disable password change for users | ||||
| -// Add the following line to visudo to tighten security: | ||||
| -// www  ALL=NOPASSWORD: /usr/sbin/pw | ||||
| -$config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n'; | ||||
| - | ||||
| - | ||||
| -// DBMail Driver options | ||||
| -// ------------------- | ||||
| -// Additional arguments for the dbmail-users call | ||||
| -$config['password_dbmail_args'] = '-p sha512'; | ||||
| - | ||||
| - | ||||
| -// Expect Driver options | ||||
| -// --------------------- | ||||
| -// Location of expect binary | ||||
| -$config['password_expect_bin'] = '/usr/bin/expect'; | ||||
| - | ||||
| -// Location of expect script (see helpers/passwd-expect) | ||||
| -$config['password_expect_script'] = ''; | ||||
| - | ||||
| -// Arguments for the expect script. See the helpers/passwd-expect file for details. | ||||
| -// This is probably a good starting default: | ||||
| -//   -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log | ||||
| -$config['password_expect_params'] = ''; | ||||
| - | ||||
| - | ||||
| -// smb Driver options | ||||
| -// --------------------- | ||||
| -// Samba host (default: localhost) | ||||
| -// 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) | ||||
| -$config['password_smb_host'] = 'localhost'; | ||||
| -// Location of smbpasswd binary | ||||
| -$config['password_smb_cmd'] = '/usr/bin/smbpasswd'; | ||||
| - | ||||
| -// gearman driver options | ||||
| -// --------------------- | ||||
| -// Gearman host (default: localhost) | ||||
| -$config['password_gearman_host'] = 'localhost'; | ||||
| - | ||||
| - | ||||
| - | ||||
| -// Plesk/PPA Driver options | ||||
| -// -------------------- | ||||
| -// You need to allow RCP for IP of roundcube-server in Plesk/PPA Panel  | ||||
| - | ||||
| -// Plesk RCP Host | ||||
| -$config['password_plesk_host'] = '10.0.0.5'; | ||||
| - | ||||
| -// Plesk RPC Username | ||||
| -$config['password_plesk_user'] = 'admin'; | ||||
| - | ||||
| -// Plesk RPC Password | ||||
| -$config['password_plesk_pass'] = 'password'; | ||||
| - | ||||
| -// Plesk RPC Port | ||||
| -$config['password_plesk_rpc_port'] = '8443'; | ||||
| +$rcmail_config['password_virtualmin_format'] = 0; | ||||
|   | ||||
| -// Plesk RPC Path | ||||
| -$config['password_plesk_rpc_path'] = 'enterprise/control/agent.php'; | ||||
| +?>
 | ||||
|  | @ -0,0 +1,30 @@ | |||
| diff --git a/debian/control b/debian/control | ||||
| index 551f6171..ac10f87d 100644 | ||||
| --- a/debian/control | ||||
| +++ b/debian/control | ||||
| @@ -38,9 +38,9 @@ Depends: debianutils (>= 1.13.1) | ||||
|         , sudo | ||||
|         , adduser | ||||
|         , dnsutils | ||||
| -       , dovecot-core (>=1:2.1.7) | ||||
| -       , dovecot-imapd (>=1:2.1.7) | ||||
| -       , dovecot-pop3d (>=1:2.1.7) | ||||
| +       , dovecot-common (>=1:2.1.7) | ||||
| +       , dovecot-imapd | ||||
| +       , dovecot-pop3d | ||||
|         , dovecot-mysql | ||||
|         , vlogger | ||||
|         , mailutils | mailx | ||||
| @@ -126,9 +126,9 @@ Depends: debianutils (>= 1.13.1) | ||||
|           , gettext (>= 0.10.40-5) | ||||
|           , adduser | ||||
|           , sudo | ||||
| -         , dovecot-core (>=1:2.1.7) | ||||
| -         , dovecot-imapd (>=1:2.1.7) | ||||
| -         , dovecot-pop3d (>=1:2.1.7) | ||||
| +         , dovecot-common (>=1:2.1.7) | ||||
| +         , dovecot-imapd | ||||
| +         , dovecot-pop3d | ||||
|           , dovecot-mysql | ||||
|           , vlogger | ||||
|           , mailutils | mailx | ||||
|  | @ -1,49 +0,0 @@ | |||
| --- control.squeeze	2017-10-06 12:01:52.272243664 +0200
 | ||||
| +++ control	2017-10-06 12:03:02.016307914 +0200
 | ||||
| @@ -38,16 +38,19 @@
 | ||||
|         , sudo | ||||
|         , adduser | ||||
|         , dnsutils | ||||
| -       , dovecot-common (>=1:1.2.15)
 | ||||
| -       , dovecot-common(<< 1:2.0)
 | ||||
| -       , dovecot-imapd (>= 1:1.2.15)
 | ||||
| -       , dovecot-pop3d (>= 1:1.2.15)
 | ||||
| +       , dovecot-common (>=1:2.1.7)
 | ||||
| +       , dovecot-imapd
 | ||||
| +       , dovecot-pop3d
 | ||||
| +       , dovecot-mysql
 | ||||
|         , vlogger | ||||
|         , mailutils | mailx | ||||
|         , zip | ||||
|         , incron | ||||
|         , cron | ||||
|         , opendkim | ||||
| +       , opendkim-tools
 | ||||
| +       , dovecot-sieve
 | ||||
| +       , dovecot-managesieved
 | ||||
|         , mysql-client(>= 5.0) | mariadb-client | ||||
|         , php5-curl | ||||
|         , quota | ||||
| @@ -123,15 +126,18 @@
 | ||||
|           , gettext (>= 0.10.40-5) | ||||
|           , adduser | ||||
|           , sudo | ||||
| -         , dovecot-common (>=1:1.2.15)
 | ||||
| -         , dovecot-common(<< 1:2.0)
 | ||||
| -         , dovecot-imapd (>= 1:1.2.15)
 | ||||
| -         , dovecot-pop3d (>= 1:1.2.15)
 | ||||
| +         , dovecot-common (>=1:2.1.7)
 | ||||
| +         , dovecot-imapd
 | ||||
| +         , dovecot-pop3d
 | ||||
| +         , dovecot-mysql
 | ||||
|           , vlogger | ||||
|           , mailutils | mailx | ||||
|           , incron | ||||
|           , cron | ||||
|           , opendkim | ||||
| +         , opendkim-tools
 | ||||
| +         , dovecot-sieve
 | ||||
| +         , dovecot-managesieved
 | ||||
|           , mysql-client(>= 5.0) | mariadb-client | ||||
|           , php5-curl | ||||
|           , ${misc:Depends} | ||||
|  | @ -0,0 +1,809 @@ | |||
| diff --git a/roundcube/templates/roundcube/main.inc.php b/roundcube/templates/roundcube/main.inc.php | ||||
| new file mode 100644 | ||||
| index 00000000..97c9f6bf | ||||
| --- /dev/null | ||||
| +++ b/roundcube/templates/roundcube/main.inc.php | ||||
| @@ -0,0 +1,803 @@ | ||||
| +<?php | ||||
| + | ||||
| +/***********************************************************************/ | ||||
| +// Roundcube's Configuration file for AlternC                          //
 | ||||
| +//                                                                     //
 | ||||
| +// /!\ WARNING /!\ Do not edit this file, edit the one in              //
 | ||||
| +// /etc/alternc/templates/roundcube/ and launch alternc.install again. //
 | ||||
| +//                                                                     //
 | ||||
| +/***********************************************************************/ | ||||
| + | ||||
| +/* | ||||
| ++-----------------------------------------------------------------------+ | ||||
| +| Main configuration file                                               | | ||||
| +|                                                                       | | ||||
| +| This file is part of the Roundcube Webmail client                     | | ||||
| +| Copyright (C) 2005-2011, The Roundcube Dev Team                       | | ||||
| +| Licensed under the GNU GPL                                            | | ||||
| +|                                                                       | | ||||
| ++-----------------------------------------------------------------------+ | ||||
| + | ||||
| +*/ | ||||
| + | ||||
| +$rcmail_config = array(); | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// LOGGING/DEBUGGING | ||||
| +// ---------------------------------- | ||||
| + | ||||
| +// system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace | ||||
| +$rcmail_config['debug_level'] = 1; | ||||
| + | ||||
| +// log driver:  'syslog' or 'file'. | ||||
| +$rcmail_config['log_driver'] = 'file'; | ||||
| + | ||||
| +// date format for log entries | ||||
| +// (read http://php.net/manual/en/function.date.php for all format characters) | ||||
| +$rcmail_config['log_date_format'] = 'd-M-Y H:i:s O'; | ||||
| + | ||||
| +// Syslog ident string to use, if using the 'syslog' log driver. | ||||
| +$rcmail_config['syslog_id'] = 'roundcube'; | ||||
| + | ||||
| +// Syslog facility to use, if using the 'syslog' log driver. | ||||
| +// For possible values see installer or http://php.net/manual/en/function.openlog.php | ||||
| +$rcmail_config['syslog_facility'] = LOG_USER; | ||||
| + | ||||
| +// Log sent messages to <log_dir>/sendmail or to syslog | ||||
| +$rcmail_config['smtp_log'] = true; | ||||
| + | ||||
| +// Log successful logins to <log_dir>/userlogins or to syslog | ||||
| +$rcmail_config['log_logins'] = false; | ||||
| + | ||||
| +// Log session authentication errors to <log_dir>/session or to syslog | ||||
| +$rcmail_config['log_session'] = false; | ||||
| + | ||||
| +// Log SQL queries to <log_dir>/sql or to syslog | ||||
| +$rcmail_config['sql_debug'] = false; | ||||
| + | ||||
| +// Log IMAP conversation to <log_dir>/imap or to syslog | ||||
| +$rcmail_config['imap_debug'] = false; | ||||
| + | ||||
| +// Log LDAP conversation to <log_dir>/ldap or to syslog | ||||
| +$rcmail_config['ldap_debug'] = false; | ||||
| + | ||||
| +// Log SMTP conversation to <log_dir>/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 - http hostname ($_SERVER['SERVER_NAME']) | ||||
| +// %d - domain (http hostname without the first part) | ||||
| +// %s - domain name after the '@' from e-mail address provided at login screen | ||||
| +// For example %n = mail.domain.tld, %d = domain.tld | ||||
| +$rcmail_config['default_host'] = 'localhost'; | ||||
| + | ||||
| +// TCP port used for IMAP connections | ||||
| +$rcmail_config['default_port'] = 143; | ||||
| + | ||||
| +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty 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'] = true; | ||||
| + | ||||
| +// IMAP connection timeout, in seconds. Default: 0 (no limit) | ||||
| +$rcmail_config['imap_timeout'] = 10; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// 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 - 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, %d = domain.tld | ||||
| +$rcmail_config['smtp_server'] = 'localhost'; | ||||
| + | ||||
| +// SMTP port (default is 25; 465 for SSL) | ||||
| +$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'] = '%u'; | ||||
| + | ||||
| +// 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'] = '%p'; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// 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; | ||||
| + | ||||
| +// 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/'; | ||||
| + | ||||
| +// lifetime of message cache | ||||
| +// possible units: s, m, h, d, w | ||||
| +$rcmail_config['message_cache_lifetime'] = '10d'; | ||||
| + | ||||
| +// 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 | ||||
| +$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'] = 2; | ||||
| + | ||||
| +// If users authentication is not case sensitive this must be enabled. | ||||
| +// You can also use it to force conversion of logins to lower case. | ||||
| +// After enabling it all user records need to be updated, e.g. with query: | ||||
| +// UPDATE users SET username = LOWER(username); | ||||
| +$rcmail_config['login_lc'] = false; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// replace Roundcube logo with this image | ||||
| +// specify an URL relative to the document root of this Roundcube installation | ||||
| +$rcmail_config['skin_logo'] = 'skins/default/images/roundcube_alternc_logo.png'; | ||||
| + | ||||
| +// Includes should be interpreted as PHP files | ||||
| +$rcmail_config['skin_include_php'] = false; | ||||
| + | ||||
| +// Session lifetime in minutes | ||||
| +// must be greater than 'keep_alive'/60 | ||||
| +$rcmail_config['session_lifetime'] = 60; | ||||
| + | ||||
| +// session domain: .example.org | ||||
| +$rcmail_config['session_domain'] = ''; | ||||
| + | ||||
| +// session name. Default: 'roundcube_sessid' | ||||
| +$rcmail_config['session_name'] = null; | ||||
| + | ||||
| +// Backend to use for session storage. Can either be 'db' (default) or 'memcache' | ||||
| +// 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 | ||||
| +$rcmail_config['session_storage'] = 'db'; | ||||
| + | ||||
| +// Use these hosts for accessing memcached | ||||
| +// Define any number of hosts in the form hostname:port | ||||
| +$rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211' );
 | ||||
| + | ||||
| +// 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'] = '%%deskey%%'; | ||||
| + | ||||
| +// 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 - 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, %d = 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, %d = 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; | ||||
| + | ||||
| +// don't allow these settings to be overriden by the user | ||||
| +$rcmail_config['dont_override'] = array(); | ||||
| + | ||||
| +// 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 | ||||
| +$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
 | ||||
| + | ||||
| +// mime magic database | ||||
| +$rcmail_config['mime_magic'] = '/usr/share/misc/magic'; | ||||
| + | ||||
| +// path to imagemagick identify binary | ||||
| +$rcmail_config['im_identify_path'] = '/usr/bin/identify'; | ||||
| + | ||||
| +// path to imagemagick convert binary | ||||
| +$rcmail_config['im_convert_path'] = '/usr/bin/convert'; | ||||
| + | ||||
| +// 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'] = true; | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// PLUGINS | ||||
| +// ---------------------------------- | ||||
| + | ||||
| +// List of active plugins (in plugins/ directory) | ||||
| +$rcmail_config['plugins'] = array("managesieve","password"); | ||||
| + | ||||
| +// ---------------------------------- | ||||
| +// USER INTERFACE | ||||
| +// ---------------------------------- | ||||
| + | ||||
| +// default messages sort column. Use empty value for default server's sorting, | ||||
| +// or 'arrival', 'date', 'subject', 'from', 'to', '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, cc, replyto, date, size, status, flag, attachment, 'priority' | ||||
| +$rcmail_config['list_cols'] = array('subject', 'status', 'from', '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_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); | ||||
| + | ||||
| +// automatically create the above listed default folders on first login | ||||
| +$rcmail_config['create_default_folders'] = true; | ||||
| + | ||||
| +// 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'] = true; | ||||
| + | ||||
| +// 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'] = 'pspell'; | ||||
| + | ||||
| +// 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 'keep_alive' setting (in seconds) | ||||
| +// Must be less than 'session_lifetime' | ||||
| +$rcmail_config['min_keep_alive'] = 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) and 'ldap'. | ||||
| +// 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. | ||||
| +$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 - 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, %d = domain.tld | ||||
| +'hosts'         => array('directory.verisign.com'), | ||||
| +'port'          => 389, | ||||
| +'use_tls'	      => false, | ||||
| +'ldap_version'  => 3,       // using LDAPv3
 | ||||
| +'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'       => 'mail', | ||||
| +// 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 | ||||
| +'fieldmap' => array( | ||||
| +// Roundcube  => LDAP | ||||
| +'name'        => 'cn', | ||||
| +'surname'     => 'sn', | ||||
| +'firstname'   => 'givenName', | ||||
| +'email'       => 'mail', | ||||
| +'phone:home'  => 'homePhone', | ||||
| +'phone:work'  => 'telephoneNumber', | ||||
| +'phone:mobile' => 'mobile', | ||||
| +'street'      => 'street', | ||||
| +'zipcode'     => 'postalCode', | ||||
| +'locality'    => 'l', | ||||
| +'country'     => 'c', | ||||
| +'organization' => 'o', | ||||
| +), | ||||
| +'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'     => '', | ||||
| +'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}<br/>{locality} {zipcode}<br/>{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'] = 'UTF-8'; | ||||
| + | ||||
| +// skin name: folder from skins/ | ||||
| +$rcmail_config['skin'] = 'default'; | ||||
| + | ||||
| +// show up to X items in list view | ||||
| +$rcmail_config['pagesize'] = 40; | ||||
| + | ||||
| +// use this timezone to display date/time | ||||
| +$rcmail_config['timezone'] = 'auto'; | ||||
| + | ||||
| +// is daylight saving On? Default: (bool)date('I'); | ||||
| +$rcmail_config['dst_active'] = null; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// compose html formatted messages by default | ||||
| +// 0 - never, 1 - always, 2 - on reply to HTML message only | ||||
| +$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'] = true; | ||||
| + | ||||
| +// 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'] = -1; | ||||
| + | ||||
| +// Clear Trash on logout | ||||
| +$rcmail_config['logout_purge'] = true; | ||||
| + | ||||
| +// 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 keep-alive/check-recent requests (in seconds) | ||||
| +// Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime' | ||||
| +$rcmail_config['keep_alive'] = 60; | ||||
| + | ||||
| +// If true all folders will be checked for recent messages | ||||
| +$rcmail_config['check_all_folders'] = true; | ||||
| + | ||||
| +// 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 place cursor above original message (top posting) | ||||
| +$rcmail_config['top_posting'] = false; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// When replying or forwarding place sender's signature above existing message | ||||
| +$rcmail_config['sig_above'] = false; | ||||
| + | ||||
| +// 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_imap_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; | ||||
| + | ||||
| +// 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'] = 2; | ||||
| + | ||||
| +// 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; | ||||
| + | ||||
| +// end of config file | ||||
| + | ||||
| +?>
 | ||||
|  | @ -1,27 +1,18 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # Migrate a repository to WHEEZY | ||||
| # Apply diffs to build for wheezy | ||||
| 
 | ||||
| # DON'T COMMIT ANYTHING AFTER launching this | ||||
| # reset your subversion repos back to the serverside one! | ||||
| 
 | ||||
| cd `dirname $0`  | ||||
| 
 | ||||
| pushd ../debian  | ||||
| patch <../wheezy/control.diff | ||||
| patch <../wheezy/changelog.diff | ||||
| popd | ||||
| pushd ../install | ||||
| patch <../wheezy/alternc.install.diff | ||||
| popd | ||||
| 
 | ||||
| cp -vf alternc-dict-quota.conf  alternc-sql.conf ../etc/alternc/templates/dovecot/ | ||||
| mkdir -p ../etc/alternc/templates/dovecot/conf.d/ | ||||
| cp -vf 95_alternc.conf ../etc/alternc/templates/dovecot/conf.d/ | ||||
| 
 | ||||
| pushd ../etc/alternc/templates/dovecot | ||||
| rm -vf dovecot.conf  dovecot-dict-quota.conf dovecot-sql.conf | ||||
| popd | ||||
| # reset your repos back to the serverside one! | ||||
| 
 | ||||
| # The patch files were generated by running | ||||
| # REV_NEW=ebb3471f04d49dd839237608bafc396e8b5090e5 REV_OLD=3ae6c0a5c2eecf864319dd42afbfc995baee9f68 \ | ||||
| # for i in `git diff --name-only $REV_NEW $REV_OLD` ; do BASE_NAME=`echo $i | rev | cut -d '/' -f 1 | rev` ; \ | ||||
| # git diff -p $REV_NEW $REV_OLD -- "$i" > jessie/$BASE_NAME ; done | ||||
| 
 | ||||
| DIR_NAME=`dirname $0` | ||||
| cd "$DIR_NAME"/../ | ||||
| 
 | ||||
| for i in `ls "$DIR_NAME"`; do | ||||
|   patch -p1 < "$DIR_NAME/$i" | ||||
| done | ||||
|  |  | |||
|  | @ -0,0 +1,33 @@ | |||
| diff --git a/roundcube/roundcube-install b/roundcube/roundcube-install | ||||
| index 59a26119..81011d12 100644 | ||||
| --- a/roundcube/roundcube-install | ||||
| +++ b/roundcube/roundcube-install | ||||
| @@ -39,7 +39,7 @@ then | ||||
|      . /etc/alternc/local.sh | ||||
|      # Configuration template location | ||||
|      TEMPLATE_DIR="/etc/alternc/templates" | ||||
| -    CONFIG_FILES="etc/roundcube/config.inc.php etc/roundcube/plugins/password/config.inc.php" | ||||
| +    CONFIG_FILES="etc/roundcube/main.inc.php etc/roundcube/plugins/password/config.inc.php etc/roundcube/plugins/managesieve/config.inc.php" | ||||
|   | ||||
|      cat > $SED_SCRIPT <<EOF | ||||
|  s\\%%ALTERNC_LOC%%\\$ALTERNC_LOC\\; | ||||
| @@ -81,17 +81,9 @@ EOF | ||||
|      echo "    Done" | ||||
|   | ||||
|      echo "Deconfiguring javascript-common alias" | ||||
| -    if [ -f /etc/apache2/conf.d/javascript-common.conf ]; then | ||||
| -        	rm -f /etc/apache2/conf.d/javascript-common.conf | ||||
| -    fi | ||||
| -    if [ -f /etc/apache2/conf-available/javascript-common.conf ] ; then | ||||
| -		a2disconf javascript-common.conf | ||||
| -		service apache2 reload | ||||
| -    fi | ||||
| +    rm -f /etc/apache2/conf.d/javascript-common.conf | ||||
|      # just in case  | ||||
| -    if [ -f /etc/javascript-common/javascript-common.conf ]; then | ||||
| -        sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf | ||||
| -    fi | ||||
| +    sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf | ||||
|      echo "    Done" | ||||
|       | ||||
|  fi | ||||
|  | @ -0,0 +1,13 @@ | |||
| diff --git a/ssl/ssl.conf b/ssl/ssl.conf | ||||
| index 68b422b3..c3a599d5 100644 | ||||
| --- a/ssl/ssl.conf | ||||
| +++ b/ssl/ssl.conf | ||||
| @@ -51,7 +51,7 @@ SSLSessionCacheTimeout  300 | ||||
|  #   Semaphore: | ||||
|  #   Configure the path to the mutual exclusion semaphore the | ||||
|  #   SSL engine uses internally for inter-process synchronization.  | ||||
| -Mutex  file:${APACHE_RUN_DIR} | ||||
| +SSLMutex  file:${APACHE_RUN_DIR}/ssl_mutex | ||||
|   | ||||
|  #   SSL Cipher Suite: | ||||
|  #   List the ciphers that the client is permitted to negotiate. See the | ||||
|  | @ -0,0 +1,17 @@ | |||
| diff --git a/etc/alternc/templates/apache2/vhost.conf b/etc/alternc/templates/apache2/vhost.conf | ||||
| index 8b4f304f..77f5e038 100644 | ||||
| --- a/etc/alternc/templates/apache2/vhost.conf | ||||
| +++ b/etc/alternc/templates/apache2/vhost.conf | ||||
| @@ -9,11 +9,8 @@ | ||||
|      php_admin_value upload_tmp_dir %%account_root%%/tmp | ||||
|      php_admin_value sendmail_path '/usr/lib/alternc/sendmail "%%mail_account%%" ' | ||||
|      php_admin_flag mail.add_x_header on | ||||
| -    Options -MultiViews -FollowSymLinks +SymLinksIfOwnerMatch | ||||
| +    Options +MultiViews -FollowSymLinks +SymLinksIfOwnerMatch | ||||
|      AllowOverride AuthConfig FileInfo Limit Options Indexes | ||||
| -    Order allow,deny | ||||
| -    Allow from all | ||||
| -    Require all granted | ||||
|    </Directory> | ||||
|   | ||||
|  # If you want to log the errors also in /var/log/alternc/sites/  | ||||
		Loading…
	
		Reference in New Issue