adding a THIRD Debian Package : alternc-squirrelmail: configures squirrelmail + avelsieve + changepass. BIG change also in alternc.install : uses /usr/lib/alternc/install.d/ with run-parts. Also adding /etc/alternc/apache-panel.d/ for apache2 instructions ONLY in panel vhosts. TO BE TESTED

This commit is contained in:
Benjamin Sonntag 2012-08-26 17:20:10 +00:00
parent 18898953ae
commit 6e2a1196cc
16 changed files with 552 additions and 62 deletions

7
.gitattributes vendored
View File

@ -382,6 +382,7 @@ debian/alternc-slave.postinst -text
debian/alternc-slave.postrm -text
debian/alternc-slave.prerm -text
debian/alternc-slave.templates -text
debian/alternc-squirrelmail.dirs -text
debian/alternc.config -text
debian/alternc.cron.d -text
debian/alternc.dirs -text
@ -444,7 +445,6 @@ etc/alternc/templates/postfix/sasl/smtpd.conf -text
etc/alternc/templates/proftpd/modules.conf -text
etc/alternc/templates/proftpd/proftpd.conf -text
etc/alternc/templates/proftpd/welcome.msg -text
etc/alternc/templates/squirrelmail/apache.conf -text
install/alternc.install -text
install/body_checks -text
install/domaines.template -text
@ -500,6 +500,11 @@ po/fr/LC_MESSAGES/alternc-admintools.po -text
selenium/20120826-alternc-panel-testsuite.html -text
selenium/README -text
selenium/alternc.domain-local-mail-tld.html -text
squirrelmail/apache-panel.d/squirrelmail.conf -text
squirrelmail/squirrelmail-install -text
squirrelmail/templates/javascript-common/javascript-common.conf -text
squirrelmail/templates/squirrelmail/apache.conf -text
squirrelmail/templates/squirrelmail/avelsieve-config.php -text
src/Makefile -text
src/alternc-check -text
src/alternc-dboptimize -text

View File

@ -1,14 +1,10 @@
<?php
/*
$Id: index.php,v 1.11 2004/05/24 17:30:22 anonymous Exp $
----------------------------------------------------------------------
AlternC - Web Hosting System
Copyright (C) 2002 by the AlternC Development Team.
http://alternc.org/
----------------------------------------------------------------------
Based on:
Valentin Lacambre's web hosting softwares: http://altern.org/
Copyright (C) 2000-2012 by the AlternC Development Team.
https://alternc.org/
----------------------------------------------------------------------
LICENSE
@ -24,7 +20,6 @@
To read the license please visit http://www.gnu.org/copyleft/gpl.html
----------------------------------------------------------------------
Original Author of file: Benjamin Sonntag
Purpose of file: Main index : show the login page
----------------------------------------------------------------------
*/

8
debian/alternc-squirrelmail.dirs vendored Normal file
View File

@ -0,0 +1,8 @@
etc/alternc
etc/alternc/apache-panel.d
etc/alternc/templates/squirrelmail
etc/alternc/templates/javascript-common
etc/cron.d
etc/squirrelmail
usr/share/alternc/install
usr/lib/alternc/install.d

5
debian/alternc.dirs vendored
View File

@ -1,4 +1,5 @@
etc/alternc
etc/alternc/apache-panel.d
etc/alternc/templates
etc/alternc/templates/apache2
etc/alternc/functions_hosting
@ -7,10 +8,10 @@ etc/bind/templates
etc/cron.d
etc/phpmyadmin
etc/postfix
etc/squirrelmail
/etc/sudoers.d
etc/sudoers.d
usr/bin
usr/lib/alternc
usr/lib/alternc/install.d
usr/sbin
usr/share/alternc/install
usr/share/locale/fr/LC_MESSAGES

37
debian/control vendored
View File

@ -10,12 +10,12 @@ Standards-Version: 3.9.1
Package: alternc
Architecture: all
Pre-depends: debconf (>= 0.5.00) | debconf-2.0
Depends: debianutils (>= 1.13.1), apache2-mpm-itk, libapache2-mod-php5, php5-mysql, phpmyadmin, postfix, proftpd-mod-mysql, proftpd-basic, squirrelmail, squirrelmail-locales, bind9, wget, rsync, quota, ca-certificates, locales, perl-suid, perl, postfix-mysql, wwwconfig-common, sasl2-bin, fam | gamin, libsasl2-modules, php5-cli, lockfile-progs (>= 0.1.9), gettext (>= 0.10.40-5), sudo, adduser, mysql-client, dnsutils, bash, acl, dovecot-common (>= 1:1.2.15), dovecot-imapd, dovecot-pop3d, vlogger, mailx
Depends: debianutils (>= 1.13.1), apache2-mpm-itk, libapache2-mod-php5, php5-mysql, phpmyadmin, postfix, proftpd-mod-mysql, proftpd-basic, bind9, wget, rsync, quota, ca-certificates, locales, perl-suid, perl, postfix-mysql, wwwconfig-common, sasl2-bin, fam | gamin, libsasl2-modules, php5-cli, lockfile-progs (>= 0.1.9), gettext (>= 0.10.40-5), sudo, adduser, mysql-client, dnsutils, bash, acl, dovecot-common (>= 1:1.2.15), dovecot-imapd, dovecot-pop3d, vlogger, mailx
Recommends: mysql-server(>= 5.0), dovecot-managesieved, dovecot-sieve, dovecot-mysql, ntp
Conflicts: alternc-admintools, alternc-awstats (< 1.0), alternc-webalizer (<= 0.9.4), alternc-mailman (< 2.0), courier-authdaemon
Provides: alternc-admintools
Replaces: alternc-admintools
Suggests: alternc-awstats, alternc-mailman, alternc-changepass, amavisd-new, clamav-daemon, spamassassin, pop-before-smtp, magpierss, zip, ncompress, bzip2
Suggests: alternc-awstats, alternc-mailman, alternc-changepass, amavisd-new, clamav-daemon, spamassassin, pop-before-smtp, magpierss, zip, ncompress, bzip2, alternc-squirrelmail, alternc-roundcube
Description: Hosting software managment suite for Debian
AlternC is a mutualized hosting software manager for Linux.
It allows you to manage your websites, domains, ftp, emails, aliases,
@ -36,8 +36,6 @@ Description-fr.UTF-8: Suite logicielle d'hébergement mutualisé pour Debian
.
Pour plus d'informations, consultez http://www.alternc.com/
Package: alternc-slave
Architecture: all
Pre-depends: debconf (>= 0.5.00) | debconf-2.0
@ -74,4 +72,33 @@ Description-fr.UTF-8: Suite logicielle d'hébergement mutualisé pour Debian
.
Pour plus d'informations, consultez http://www.alternc.com/
Package: alternc-squirrelmail
Architecture: all
Pre-depends: debconf (>= 0.5.00) | debconf-2.0
Depends: debianutils (>= 1.13.1), alternc (>= 1.1), squirrelmail, squirrelmail-locales, avelsieve
Conflicts: alternc (<= 1.0.3)
Provides: alternc-webmail
Suggests:
Description: Squirrelmail-Webmail plugin and configuration for AlternC
AlternC is a mutualized hosting software manager for Linux.
It allows you to manage your websites, domains, ftp, emails, aliases,
web statistics, mailing-lists, jabber accounts, etc.
.
This extension to AlternC is installing and configuring properly the
Squirrelmail Webmail. It also configure Avelsieve to allow server-side
filtering, the password changing through MySQL, and the automatic
creation of proper profile with the right address and language.
.
More information at http://www.alternc.com/
Homepage: http://www.alternc.com/
Description-fr.UTF-8: Suite logicielle d'hébergement mutualisé pour Debian
AlternC est un logiciel d'hébergement mutualisé pour serveur Linux.
Il permet de gérer les sites web, domaines, ftp, emails, alias,
statistiques web, listes de discussions, comptes jabber, etc.
.
Cette extension d'AlternC installe et configure le webmail Squirrelmail.
Il configure aussi Avelsieve pour permettre l'accès au filtrage du courrier
côté serveur, ainsi que le changement de mot de passe via MySQL et la création
automatique des profiles avec la bonne adresse et la bonne langue.
.
Pour plus d'informations, consultez http://www.alternc.com/

5
debian/rules vendored
View File

@ -96,6 +96,11 @@ install: build
cp debian/alternc.lintian debian/alternc/usr/share/lintian/overrides/alternc
cp debian/alternc-slave.lintian debian/alternc/usr/share/lintian/overrides/alternc-slave
install -m 644 squirrelmail/templates/squirrelmail/* debian/alternc-squirrelmail/etc/alternc/templates/squirrelmail/
install -m 644 squirrelmail/templates/javascript-common/* debian/alternc-squirrelmail/etc/alternc/templates/javascript-common/
install -m 750 squirrelmail/squirrelmail-install debian/alternc-squirrelmail/usr/lib/alternc/install.d/
install -m 644 squirrelmail/apache-panel.d/squirrelmail.conf debian/alternc-squirrelmail/etc/alternc/apache-panel.d/
# This single target is used to build all the packages, all at once, or
# one at a time. So keep in mind: any options passed to commands here will
# affect _all_ packages. Anything you want to only affect one package

View File

@ -7,5 +7,7 @@
RewriteRule ^/admin/(.*) /$1 [R=301,L]
alias /alternc-sql /usr/share/phpmyadmin
alias /webmail /usr/share/squirrelmail
# will be used to define aliases such as /javascript /webmail /squirrelmail ...
Include /etc/alternc/apache-panel.d/*.conf

View File

@ -7,5 +7,8 @@
RewriteRule ^/admin/(.*) /$1
alias /alternc-sql /usr/share/phpmyadmin
alias /webmail /usr/share/squirrelmail
# will be used to define aliases such as /javascript /webmail /squirrelmail ...
Include /etc/alternc/apache-panel.d/*.conf
</VirtualHost>

View File

@ -22,7 +22,6 @@
# Protocols we want to be serving: imap imaps pop3 pop3s managesieve
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap imaps pop3 pop3s managesieve
protocols = imap imaps
# A space separated list of IP or host addresses where to listen in for
# connections. "*" listens in all IPv4 interfaces. "[::]" listens in all IPv6

View File

@ -1,21 +1,48 @@
#!/bin/sh
# ----------------------------------------------------------------------
# AlternC - Web Hosting System
# Copyright (C) 2000-2012 by the AlternC Development Team.
# https://alternc.org/
# ----------------------------------------------------------------------
# LICENSE
#
# AlternC Main install script.
# This script should be launched only once, when installing AlternC
# on a new server. THIS SCRIPT ERASE ALL DATA ON THE AlternC SYSTEM !!
# YOU HAVE BEEN WARNED !
# 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 ;)
# ----------------------------------------------------------------------
# This script now assumes it has MySQL connectivity through
# /etc/alternc/my.cnf
# Also launches scripts in /usr/lib/alternc/install.d/
# with an argument telling where you are in alternc.install
# argument will be : startup, templates, before-reload, end
# Somes check before start operations
if [ `id -u` -ne 0 ]; then
echo "must be launched as root"
exit 1
fi
set -e
for i in $*; do
case "$i" in
-f|--force)
force=1; shift;;
export force=1; shift;;
-s|--slave)
slave=1; shift;;
export slave=1; shift;;
--)
break;;
*)
@ -25,6 +52,9 @@ done
. /usr/lib/alternc/functions.sh
# hook
run-parts --arg=startup /usr/lib/alternc/install.d
#######################################################################
# Script configuration
#
@ -48,9 +78,6 @@ 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/squirrelmail/apache.conf ]; then
CONFIG_FILES="$CONFIG_FILES etc/squirrelmail/apache.conf"
fi
if [ -e /etc/default/saslauthd ]; then
CONFIG_FILES="$CONFIG_FILES etc/default/saslauthd"
@ -82,7 +109,7 @@ if [ -f "$INSTALLED_CONFIG_TAR" ]; then
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 --force'"
echo "Please examine the situation closely and call '$0 -f'"
echo "if you still want to actually overwrite these files."
exit 1
fi
@ -174,6 +201,9 @@ s\\%%version%%\\$VERSION\\;
s\\%%ns2_ip%%\\$NS2_IP\\;
EOF
# hook
run-parts --arg=templates /usr/lib/alternc/install.d
#######################################################################
# Backup configuration files
#
@ -214,9 +244,10 @@ php="`ls /usr/lib/apache*/*/*php*.so | sed -e 's/^.*libphp\(.\)\.so$/php\1/' | t
ln -fs /etc/alternc/alternc.ini /etc/$php/conf.d/alternc.ini || true
if [ -x /usr/sbin/apache2 ]; then
s=""
if ! [ -L /etc/apache2/mods-enabled/vhost_alias.load ]
# unused from AlternC 1.1
if [ -L /etc/apache2/mods-enabled/vhost_alias.load ]
then
a2enmod vhost_alias
a2dismod vhost_alias
s="apache2"
fi
if ! [ -L /etc/apache2/mods-enabled/$php.load ]
@ -279,7 +310,7 @@ then
echo "POSTFIX is NOT configured properly"
echo "please launch dpkg-reconfigure -plow postfix"
echo "and choose 'Internet Site'"
echo "then reinstall alternc"
echo "then launch alternc.install again"
echo "****************************************"
exit 1
fi
@ -294,7 +325,7 @@ grep -v '^\ *#' $postfix_conf |while read line ; do
postconf -e "$line"
done
# Conviguring delivery used bu Postfix
# Conviguring delivery used by Postfix
echo `/usr/lib/alternc/postfix-add-policy dovecot vmail:vmail DRhu pipe '/usr/bin/sudo /usr/lib/dovecot/deliver -f ${sender} -d ${recipient} '`
# Bug #1215: configure mydestination when $FQDN is not in
@ -325,13 +356,29 @@ if [ -x /usr/sbin/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 [ "$LOCALECHANGED" ] ; then
locale-gen
fi
fi
#######################################################################
#populate alternc database with the mailname used by postfix to send mail for each vhost
# populate alternc database with the mailname used by postfix to send mail for each vhost
#
mailname=`cat /etc/mailname`
mysql_query "update variable SET value='"$mailname"' where name='mailname_bounce';"
@ -343,13 +390,6 @@ chmod +r "/etc/mailname"
#
tar -zcf "$INSTALLED_CONFIG_TAR" -C / $CONFIG_FILES
#######################################################################
# Reload services
#
for service in postfix bind9 dovecot cron proftpd; do
invoke-rc.d $service force-reload || true
done
#######################################################################
# Last touches
#
@ -390,6 +430,16 @@ chown -R alterncpanel:alterncpanel "$ALTERNC_LOC/bureau"
# 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';"
# hook
run-parts --arg=before-reload /usr/lib/alternc/install.d
#######################################################################
# Reload services
#
for service in postfix bind9 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
@ -397,3 +447,6 @@ done
for service in $SERVICES; do
test -x /etc/init.d/$service && invoke-rc.d $service start || true
done
# hook
run-parts --arg=end /usr/lib/alternc/install.d

View File

@ -0,0 +1,4 @@
Alias /squirrelmail /usr/share/squirrelmail
Alias /javascript /usr/share/javascript-common

View File

@ -0,0 +1,33 @@
#!/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 squirrelmail conf files.
# ----------------------------------------------------------------------
if [ "$1" = "templates" ]
then
echo "Installing Squirrelmail Templates ..."
cp -f /etc/alternc/templates/squirrelmail/avelsieve-config.php /etc/alternc/templates/squirrelmail/apache.conf /etc/squirrelmail/
cp -f /etc/alternc/templates/javascript-common/javascript-common.conf /etc/javascript-common/
echo "Done"
fi

View File

@ -0,0 +1,11 @@
# WARNING: Do not edit this file, edit the one in /etc/alternc/templates and launch alternc.install again.
#Alias /javascript /usr/share/javascript/
<Directory "/usr/share/javascript/">
Options FollowSymLinks MultiViews
Order allow,deny
Allow from all
</Directory>

View File

@ -1,7 +1,7 @@
#
# Squirrelmail apache config modified for AlternC
#
# %%warning_message%%
# WARNING: Do not edit this file, edit the one in /etc/alternc/templates and launch alternc.install again.
#
#Alias /squirrelmail /usr/share/squirrelmail

View File

@ -0,0 +1,330 @@
<?php
// WARNING: Do not edit this file, edit the one in /etc/alternc/templates and launch alternc.install again.
/**
* User-friendly interface to SIEVE server-side mail filtering.
* Plugin for Squirrelmail 1.4+
*
* Licensed under the GNU GPL. For full terms see the file COPYING that came
* with the Squirrelmail distribution.
*
* This file contains configuration parameters for SIEVE mail filters plugin
* (aka avelsieve)
*
* @version $Id: config_sample.php 1025 2009-05-21 08:35:24Z avel $
* @author Alexandros Vellis <avel@users.sourceforge.net>
* @copyright 2002-2004 Alexandros Vellis
* @package plugins
* @subpackage avelsieve
*/
/**
* Debug Mode. Enable this (change to 1) if you need to send a bug report,
* or to 2 or 3 if you are a developer!
*
* Valid values:
* 0 = No debugging output
* 1 = Normal debugging output
* 2 = Firebug-enhanced debugging output
* 3 = Enhanced debugging output and no Sieve capabilities checks - enables
* all UI features!
*/
if(!defined('AVELSIEVE_DEBUG')) {
define('AVELSIEVE_DEBUG', 0);
}
/* ======================================================================== */
/* =================== IMAP Server / SIEVE Setup ========================= */
/* ======================================================================== */
/** @var string Backend to use. Available backends are:
* 'ManageSieve': Uses the ManageSieve protocol. e.g. Cyrus
* 'File': Writes files straight to disk. e.g. Exim4, Dovecot LDA.
*/
global $avelsieve_backend;
$avelsieve_backend = 'ManageSieve';
/* ======================================================================== */
/* =================== ManageSieve Backend Options ======================== */
/* ======================================================================== */
/* Port where timsieved listens on the Cyrus IMAP server. Default is 2000. */
/** DEBIAN CHANGE: Depsite upstream's intention Debian changed this default
* distribution wide to 4190 which is thus default here.
*/
global $sieveport;
$sieveport = 2000;
/**
* @var string Space separated list of preferred SASL mechanisms for the
* authentication to timsieved. e.g. "PLAIN DIGEST-MD5";*/
global $sieve_preferred_sasl_mech;
$sieve_preferred_sasl_mech = 'PLAIN';
/**
* @var boolean Disable STARTTLS for ManageSieve. You can set this to true,
* if you do not wish to use encryption via TLS mechanisms (i.e. the server
* is not configured properly, or this is a local connection and TLS is not
* needed.
* Note that STARTTLS is supported only in PHP5+. In PHP4 this option will
* have no effect and STARTTLS will be disabled anyway.
*
* DEBIAN CHANGE:
* To properly work with a default cyrus installation on the same host as
* SquirrelMail $avelsieve_disabletls defaults to true.
*/
global $avelsieve_disabletls;
$avelsieve_disabletls = true;
/* ======================================================================== */
/* ======================= File Backend Options =========================== */
/* ======================================================================== */
global $avelsieve_file_backend_options, $data_dir, $username;
$avelsieve_file_backend_options = array(
'avelsieve_default_file' => "$data_dir/$username.sievesource"
);
/* ======================================================================== */
/* ====== Implementation- and Server-Specific Options ==================== */
/* ======================================================================== */
/* In Cyrus 2.3+, the notification action is a bit more complex than the
* others. The oldcyrus variable is for supporting the partially implemented
* notify extension implementation of Cyrus < 2.3. If you have Cyrus < 2.3,
* just set this to true.
*
* This only changes the informational / help text displayed in avelsieve.
*
* Cyrus < 2.3 : $from$, $env-from$, $subject$
* Cyrus 2.3+ : $from$, $env-from$, $subject$, $text$, $text[n]$
*/
global $avelsieve_oldcyrus;
$avelsieve_oldcyrus = true;
/* If you have Cyrus with an lmtpd that can understand the "auth" argument to
* the :envelope test as the SMTP/LMTP auth, or any other Sieve implementation,
* then you can enable this to provide this functionality to the user.
*
* This was not clarified in the base spec of RFC 3028. It will be done
* correctly in a new version of Cyrus, based on a new draft / spec.
*/
global $avelsieve_enable_envelope_auth;
$avelsieve_enable_envelope_auth = true;
/* Some Implementations of Sieve need certain things in order to operate
* correctly. If you use any of the following server implementations, you MUST
* set this variable to the corresponding value for the filtering to work
* correctly.
* Valid values are:
* - Any RFC3028-mostly-compatible implementation: '' (empty).
* - Exim MTA: 'exim'
* - MFL (as supported by mvmf): 'mfl'
*/
global $avelsieve_custom_sieve_implementation;
$avelsieve_custom_sieve_implementation = '';
/* For delivery agents that don't know how to handle some mailbox prefixes, you
* can enable this option. Example for Dovecot LDA: 'INBOX.';
*/
global $avelsieve_striproot;
$avelsieve_striproot = '';
/* If the backend does not support capabilities reporting, such as the File
* Backend, then you should define which capabilities are used by the server
* implementation.
*
* The following are the capabilities supported by Exim4 as of Exim version
* 4.60, according to README.SIEVE. You can change them if a new version of
* Exim provides more functionality:
* 'envelope', 'fileinto', 'copy', 'vacation', 'comparator-i;ascii-numeric'
*
* The following are the capabilities that are suported by MFM, according to:
* http://www.mvmf.org/mfl/language.shtml#sieve
* 'envelope', 'fileinto', 'reject', 'relational', 'subaddress', 'regex',
* 'editheader', 'copy', 'vacation', 'comparator-i;ascii-casemap',
* 'comparator-i;octet'
*
* The following capabilities have been reported to work with Dovecot LDA:
* 'envelope', 'fileinto', 'copy', 'vacation', 'comparator-i;ascii-numeric',
* 'imapflags', 'subaddress','relational','regex'
*
*/
global $avelsieve_hardcoded_capabilities;
$avelsieve_hardcoded_capabilities = array(
'envelope', 'fileinto', 'copy', 'vacation', 'comparator-i;ascii-numeric'
);
/** @var boolean Enable ImapProxy mode.
* If you use imapproxy, because imapproxy cannot understand and proxy the
* SIEVE protocol, you must connect to the SIEVE daemon (usually on the IMAP
* server) itself. So you need to set $imapproxymode to true, and define a
* mapping, from the imapproxy host (usually localhost) to your real IMAP
* server (usually the same that is defined on Imapproxy's configuration).
*
* This will not work if you use a perdition-style proxy, where different users
* go to different IMAP servers; it applies mostly to people running imapproxy
* for speed and want a quick hack. */
global $avelsieve_imapproxymode, $avelsieve_imapproxyserv;
$avelsieve_imapproxymode = false;
$avelsieve_imapproxyserv = array(
'localhost' => 'imap.example.org'
);
/** @var boolean Ldapuserdata mode: Gets user's email addresses (including
* mailAlternate & mailAuthorized) from LDAP Prefs Backend plugin's cache */
global $avelsieve_ldapuserdatamode;
$avelsieve_ldapuserdatamode = false;
/** @var array Map of cyrus administrator users, for proxy authentication */
global $avelsieve_cyrusadmins_map;
$avelsieve_cyrusadmins_map = array(
'cyrusimap' => 'cyrussieve'
);
/* ======================================================================== */
/* =============== Avelsieve Interface / Behavior Setup ================== */
/* ======================================================================== */
/* Be conservative to our updates on the SIEVE server? If true, a button
* entitled "Save Changes" will appear, which will give the user the
* functionality to register her changes. 'false' is recommended. */
$conservative = false;
/* Use images for the move up / down, delete rule buttons and STOP? */
$useimages = true;
/* Translate the messages returned by the "Reject" and "Vacation" actions? The
* default behaviour since 0.9 is not to translate them. Change to true if in
* an intranet environment or in a same-language environment. */
global $translate_return_msgs;
$translate_return_msgs = false;
/* Theme to use for the images. A directory with the same name must exist under
* plugins/avelsieve/$imagetheme, that contains the files: up.png, down.png,
* del.png, dup.png, edit.png, top.png, bottom.png. */
$imagetheme = 'famfamfam';
//$imagetheme = 'bluecurve_24x24';
//$imagetheme = 'bluecurve_16x16';
/* Number of items to display _initially_, when displaying the header match
* rule */
global $startitems;
$startitems = 3;
/* Maximum number of items to allow in one header match rule. */
global $maxitems;
$maxitems = 10;
/* Headers to display in listbox widget, when adding a new header rule. */
global $headers;
$headers = array(
'From', 'To', 'Cc', 'Bcc', 'Subject', 'Reply-To', 'Sender', 'List-Id',
'MailingList', 'Mailing-List', 'X-ML-Name', 'X-List', 'X-List-Name', 'X-Mailing-List',
'Resent-From', 'Resent-To', 'X-Mailer', 'X-Mailing-List',
/* debian and ubuntu flags */
'X-PTS-Package', 'X-Loop', 'X-Debian-PR-Message', 'X-Debian-PR-Package',
'X-Debian-PR-Keywords', 'X-Debian-PR-Source', 'X-PTS-Keyword',
'X-Debian', 'X-Debian-Package',
'X-Launchpad-Bug', 'X-Launchpad-Bug-Private', 'X-Launchpad-Bug-Security-Vulnerability',
'X-Launchpad-Message-Rationale', 'X-Generated-By',
/* debian and ubuntu flags end */
'X-Spam-Flag', 'X-Spam-Status',
'X-Priority', 'Importance', 'X-MSMail-Priority', 'Precedence',
'Return-Path', 'Received', 'Auto-Submitted',
'X-Spam-Flag', 'X-Spam-Status','X-Spam-Tests'
);
/* Available :method's for the :notify extension (if applicable) */
global $notifymethods;
$notifymethods = array(
'mailto', 'sms'
);
/* use the value "false" if you want to provide a simple input box so that
* users can edit the method themselves : */
//$notifymethods = false;
/* Capabilities to disable. If you would like to force avelsieve not to display
* certain features, even though there _is_ a capability for them by
* Cyrus/timsieved, you should specify these here. For instance, if you would
* like to disable the notify extension, even though timsieved advertises it,
* you should add 'notify' in this array: $force_disable_avelsieve_capability =
* array("notify");. This will still leave the defined feature on, and if the
* user can upload her own scripts then she can use that feature; this option
* just disables the GUI of it. Leave as-is (empty array) if you do not need
* that.
*
* Look in $implemented_capabilities array in include/constants.inc.php for
* valid values */
// $disable_avelsieve_capabilities = array("notify");
global $disable_avelsieve_capabilities;
$disable_avelsieve_capabilities = array();
/* Display Filters link in the top Squirrelmail header? */
global $avelsieveheaderlink;
$avelsieveheaderlink = true;
/* Default rules table display mode, one of 'verbose' or 'terse' */
global $avelsieve_default_mode;
$avelsieve_default_mode = 'terse';
/* ======================================================================== */
/* ========================= Custom rules Configuration =================== */
/* ======================================================================== */
/**
* @var array
* List of additional rules to enable. This must be the numeric id of the
* rule.
*
* 10: Spam Rule (as existed in Avelsieve)
* 11: Junk-Mail Rule (new-style SPAM Rule, only one exists per Sieve script)
* 12: Global Whitelist (only one exists per Sieve script)
* 13: Custom Sieve Code (allows users to enter whatever Sieve code they like -
* Alpha/Experimental)
*
* Example:
* array(11, 12);
*/
global $avelsieve_enable_rules;
$avelsieve_enable_rules = array();
global $avelsieve_rules_settings;
$avelsieve_rules_settings = array();
foreach($avelsieve_enable_rules as $r) {
if(file_exists(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.php')) {
require(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.php');
} else {
require(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.default.php');
}
}
/* Please keep the following setting false; it is alpha + needs Squirrelmail
* to be patched in three or four places. */
$avelsieve_spam_highlight_enable = false;

View File

@ -1,29 +1,45 @@
#!/bin/bash
# functions.sh next-gen by Fufroma
# Init some vars
# ----------------------------------------------------------------------
# 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 functions used for any bash script for AlternC.
# ----------------------------------------------------------------------
# Init some vars
. /etc/alternc/local.sh
# Init some other vars
MYSQL_DO="/usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -Bs -e "
mysql_query() { /usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -Bs -e "$@" ; }
DOMAIN_LOG_FILE="/var/log/alternc/update_domains.log"
VHOST_FILE="$VHOST_DIR/vhosts_all.conf"
# Some usefull miscellaneous shell functions
# Some useful miscellaneous shell functions
print_domain_letter() {
# local domain="$1"
#
# local letter=`echo "$domain" | awk '{z=split($NF, a, ".") ; print substr(a[z-1], 1, 1)}'`
# if [ -z "$letter" ]; then
# letter="_"
# fi
# echo $letter
local domain=$1
domain=${domain/.${domain/*./}/}
domain=${domain/*./}
domain=${domain:0:1}
# Bash match un é quand on lui donne [a-z]. Etrange
# Bash match a 'é' when we give him [a-z]. Strange
if [[ "$domain" =~ [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9]{1} ]]; then
echo $domain
else
@ -31,30 +47,28 @@ print_domain_letter() {
fi
}
# echoes the first letter of an alternc account name.
print_user_letter() {
local user="$1"
echo ${user:0:1}
}
# return the uid of an alternc account
get_uid_by_name() {
mysql_query 'SELECT uid FROM membres WHERE login="'"$1"'" LIMIT 1;'
}
# imprime le nom d'usager associé au domaine
get_account_by_domain() {
# les admintools ne sont peut-être pas là
# if [ -x "/usr/bin/get_account_by_domain" ]
# then
# # only first field, only first line
# /usr/bin/get_account_by_domain "$1"|head -1|awk '{ print $1;}'
# else
# implantons localement ce que nous avons besoin, puisque admintools
# n'est pas là
mysql_query 'SELECT a.login FROM membres a, sub_domaines b WHERE a.uid = b.compte AND \
CONCAT(IF(sub="", "", CONCAT(sub, ".")), domaine) = "'"$1"'" LIMIT 1;'
# fi
}
# Log (echoes+log) an error and exit the current script with an error.
log_error() {
local error=$1
echo "`date` $0 : $1" | tee -a "$DOMAIN_LOG_FILE" >&2