initial commit of file from CVS for e-smith-ingo on Wed 12 Jul 08:57:44 BST 2023
This commit is contained in:
216
root/etc/e-smith/events/actions/ingo_upgrade
Normal file
216
root/etc/e-smith/events/actions/ingo_upgrade
Normal file
@@ -0,0 +1,216 @@
|
||||
#!/usr/bin/perl -w
|
||||
#----------------------------------------------------------------------
|
||||
# copyright (C) 2002-20085 Mitel Networks Corporation
|
||||
# copyright (C) 2002-2008 SME Server, INC
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; 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.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use DBI;
|
||||
use esmith::ConfigDB;
|
||||
use esmith::util;
|
||||
|
||||
# Exit early if there is nothing to do
|
||||
die("horde db must exist") unless ( -d "/var/lib/mysql/horde/");
|
||||
die("ingo db must exist") unless ( -f "/var/lib/mysql/horde/ingo_rules.frm");
|
||||
|
||||
# This is a translation of the script 'mysql_upgrade_1.1_to_1.2.sql
|
||||
# that is safe to run multiple times, and which can be run on a 1.2
|
||||
# installation without barfing.
|
||||
|
||||
my $conf = esmith::ConfigDB->open_ro
|
||||
or die "Can't open configuration database: $!\n";
|
||||
our $username = 'root';
|
||||
our $password = esmith::util::LdapPassword();
|
||||
our $ingo_DATABASE = 'horde';
|
||||
our $dbi_options = {RaiseError => 1, ChopBlanks => 1, AutoCommit => 1};
|
||||
|
||||
my $db_ingohandle = DBI->connect
|
||||
("DBI:mysql:$ingo_DATABASE",
|
||||
$username, $password, $dbi_options )
|
||||
|| die ("Connection error: $DBI::errstr");
|
||||
|
||||
|
||||
# These are all safe to run multiple times
|
||||
|
||||
my @statements = (
|
||||
"ALTER TABLE ingo_shares CHANGE share_flags share_flags SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE ingo_shares CHANGE perm_creator perm_creator SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE ingo_shares CHANGE perm_default perm_default SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE ingo_shares CHANGE perm_guest perm_guest SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE ingo_shares_groups CHANGE group_uid group_uid VARCHAR(255)",
|
||||
);
|
||||
|
||||
foreach my $statement (@statements)
|
||||
{
|
||||
$statement =
|
||||
$db_ingohandle->prepare("$statement")
|
||||
or die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# We now need to create some columns, but we need to first check
|
||||
# whether they exist already
|
||||
my $sth = $db_ingohandle->prepare("show columns from ingo_rules");
|
||||
$sth->execute;
|
||||
my $ingo_rules = $sth->fetchall_hashref('Field');
|
||||
|
||||
my $sth1 = $db_ingohandle->prepare("show columns from ingo_lists");
|
||||
$sth1->execute;
|
||||
my $ingo_lists = $sth1->fetchall_hashref('Field');
|
||||
|
||||
my $sth2 = $db_ingohandle->prepare("show columns from ingo_shares");
|
||||
$sth2->execute;
|
||||
my $ingo_shares = $sth2->fetchall_hashref('Field');
|
||||
|
||||
my $sth3 = $db_ingohandle->prepare("show columns from ingo_shares_groups");
|
||||
$sth3->execute;
|
||||
my $ingo_shares_groups = $sth3->fetchall_hashref('Field');
|
||||
|
||||
my $sth4 = $db_ingohandle->prepare("show columns from ingo_shares_users");
|
||||
$sth4->execute;
|
||||
my $ingo_shares_users = $sth4->fetchall_hashref('Field');
|
||||
|
||||
# Create an index for rule_owner if needed
|
||||
unless ($ingo_rules->{rule_owner}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_rules ' .
|
||||
'add index rule_owner_idx (rule_owner)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for list_owner, list_blacklist) if needed
|
||||
unless ($ingo_lists->{list_owner}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_lists ' .
|
||||
'add index list_idx (list_owner, list_blacklist)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_name if needed
|
||||
unless ($ingo_shares->{share_name}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares ' .
|
||||
'add index ingo_shares_share_name_idx (share_name)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_owner if needed
|
||||
unless ($ingo_shares->{share_owner}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares ' .
|
||||
'add index ingo_shares_share_owner_idx (share_owner)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm_creator if needed
|
||||
unless ($ingo_shares->{perm_creator}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares ' .
|
||||
'add index ingo_shares_perm_creator_idx (perm_creator)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm_default if needed
|
||||
unless ($ingo_shares->{perm_default}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares ' .
|
||||
'add index ingo_shares_perm_default_idx (perm_default)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm_guest if needed
|
||||
unless ($ingo_shares->{perm_guest}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares ' .
|
||||
'add index ingo_shares_perm_guest_idx (perm_guest)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_id if needed
|
||||
unless ($ingo_shares_groups->{share_id}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares_groups ' .
|
||||
'add index ingo_shares_groups_share_id_idx (share_id)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for group_uid if needed
|
||||
unless ($ingo_shares_groups->{group_uid}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares_groups ' .
|
||||
'add index ingo_shares_groups_group_uid_idx (group_uid)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm if needed
|
||||
unless ($ingo_shares_groups->{perm}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares_groups ' .
|
||||
'add index ingo_shares_groups_perm_idx (perm)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_id if needed
|
||||
unless ($ingo_shares_users->{share_id}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares_users ' .
|
||||
'add index ingo_shares_users_share_id_idx (share_id)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for user_uid if needed
|
||||
unless ($ingo_shares_users->{user_uid}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares_users ' .
|
||||
'add index ingo_shares_users_user_uid_idx (user_uid)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm if needed
|
||||
unless ($ingo_shares_users->{perm}->{Key})
|
||||
{
|
||||
my $statement = 'alter table ingo_shares_users ' .
|
||||
'add index ingo_shares_users_perm_idx (perm)';
|
||||
$statement = $db_ingohandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
@@ -0,0 +1,2 @@
|
||||
PERMS=0540
|
||||
|
@@ -0,0 +1,2 @@
|
||||
PERMS=0540
|
||||
|
@@ -0,0 +1,2 @@
|
||||
GID="www"
|
||||
PERMS=0640
|
@@ -0,0 +1,2 @@
|
||||
GID="www"
|
||||
PERMS=0640
|
@@ -0,0 +1,2 @@
|
||||
GID="www"
|
||||
PERMS=0640
|
@@ -0,0 +1,4 @@
|
||||
#! /bin/sh
|
||||
#test -f /var/lib/mysql/horde/mingo_rules.frm && exit 0
|
||||
exec mysql horde < /home/httpd/html/horde/smeserver/ingo.sql
|
||||
|
@@ -0,0 +1,3 @@
|
||||
#! /bin/sh
|
||||
exec /etc/e-smith/events/actions/ingo_upgrade
|
||||
|
@@ -0,0 +1,30 @@
|
||||
{
|
||||
my $status = $imp{status} || 'disabled';
|
||||
|
||||
if ($status eq 'enabled')
|
||||
{
|
||||
$OUT .= qq(
|
||||
# INGO specific access configuration
|
||||
|
||||
<Directory /home/httpd/html/horde/ingo/config>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
|
||||
<Directory /home/httpd/html/horde/ingo/lib>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
|
||||
<Directory /home/httpd/html/horde/ingo/locale>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
|
||||
<Directory /home/httpd/html/horde/ingo/templates>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
);
|
||||
}
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
{
|
||||
my $IngoMenu = $ingo{MenuArray} || "enabled"; return "" unless ($IngoMenu eq "enabled");
|
||||
$apps{ingo} = 1;
|
||||
$OUT = '';
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
// 130AppRegistryIngo
|
||||
$this->applications['ingo'] = array(
|
||||
'fileroot' => dirname(__FILE__) . '/../ingo',
|
||||
'webroot' => $this->applications['horde']['webroot'] . '/ingo',
|
||||
'name' => _("Filters"),
|
||||
'status' => 'active',
|
||||
'provides' => array('filter', 'mail/blacklistFrom', 'mail/showBlacklist', 'mail/whitelistFrom', 'mail/showWhitelist', 'mail/applyFilters', 'mail/canApplyFilters', 'mail/showFilters'),
|
||||
'menu_parent' => 'imp'
|
||||
);
|
||||
|
@@ -0,0 +1,43 @@
|
||||
//100header
|
||||
/**
|
||||
* $Horde: ingo/config/backends.php.dist,v 1.20.8.14 2009/12/21 18:29:08 jan Exp $
|
||||
*
|
||||
* Ingo works purely on a preferred mechanism for server selection. There are
|
||||
* a number of properties that you can set for each backend:
|
||||
*
|
||||
* driver: The Ingo_Driver driver to use to store the script on the
|
||||
* backend server. Valid options:
|
||||
* 'null' -- No backend server
|
||||
* 'timsieved' -- Cyrus timsieved server
|
||||
* 'vfs' -- Use Horde VFS
|
||||
* 'ldap' -- LDAP server
|
||||
*
|
||||
* preferred: This is the field that is used to choose which server is
|
||||
* used. The value for this field may be a single string or an
|
||||
* array of strings containing the hostnames to use with this
|
||||
* server.
|
||||
*
|
||||
* hordeauth: Ingo uses the current logged in username and password. If
|
||||
* you want the full username@realm to be used to connect then
|
||||
* set this to 'full' otherwise set this to true and just the
|
||||
* username will be used to connect to the driver.
|
||||
*
|
||||
* params: An array containing any additional information that the
|
||||
* Ingo_Driver class needs.
|
||||
*
|
||||
* script: The type of Ingo_Script driver this server uses.
|
||||
* Valid options:
|
||||
* 'imap' -- IMAP client side filtering
|
||||
* 'maildrop' -- Maildrop scripts
|
||||
* 'procmail' -- Procmail scripts
|
||||
* 'sieve' -- Sieve scripts
|
||||
*
|
||||
* scriptparams: An array containing any additional information that the
|
||||
* Ingo_Script driver needs.
|
||||
*
|
||||
* shares: Some drivers support sharing filter rules with other users.
|
||||
* Users can then configure filters for each other if they
|
||||
* give them permissions to do so. If you want to enable this
|
||||
* feature, you need to set this parameter to true.
|
||||
*/
|
||||
|
@@ -0,0 +1,12 @@
|
||||
//120imap
|
||||
/* IMAP Example */
|
||||
$backends['imap'] = array(
|
||||
'driver' => 'null',
|
||||
'preferred' => 'mail.{ $DomainName }',
|
||||
'hordeauth' => true,
|
||||
'params' => array(),
|
||||
'script' => 'imap',
|
||||
'scriptparams' => array(),
|
||||
'shares' => false
|
||||
);
|
||||
|
@@ -0,0 +1,59 @@
|
||||
//130maildrop
|
||||
//* Maildrop Example */
|
||||
//$backends['maildrop'] = array(
|
||||
// 'driver' => 'vfs',
|
||||
// 'preferred' => 'example.com',
|
||||
// 'hordeauth' => true,
|
||||
// 'params' => array(
|
||||
// // Hostname of the VFS server
|
||||
// 'hostspec' => 'ftp.example.com',
|
||||
// // Name of the maildrop config file to write
|
||||
// 'filename' => '.mailfilter',
|
||||
// // The VFS username to use, defaults to current user. If you want to
|
||||
// // use a different user, you also need to disable 'hordeauth' above.
|
||||
// // 'username' => 'user',
|
||||
// // The VFS password to use, defaults to current user's password
|
||||
// // 'password' => 'secret',
|
||||
// // The path to the .mailfilter filter file, defaults to the filters'
|
||||
// // owner's home directory.
|
||||
// // You can use the following variables:
|
||||
// // %u = name of the filters' owner
|
||||
// // %d = domain name of the filters' owner
|
||||
// // %U = the 'username' from above
|
||||
// // Example:
|
||||
// // '/data/maildrop/filters/%d/%u'
|
||||
// // This would be translated into:
|
||||
// // '/data/maildrop/filters/<filter_owners_domainname>/<filter_owners_username>/.mailfilter'
|
||||
// // 'vfs_path' => '/path/to/maildrop',
|
||||
//
|
||||
// // VFS: FTP example
|
||||
// // The VFS driver to use
|
||||
// 'vfstype' => 'ftp',
|
||||
// // Port of the VFS server
|
||||
// 'port' => 21,
|
||||
// // Specify permissions for uploaded files if necessary:
|
||||
// // 'file_perms' => '0640',
|
||||
//
|
||||
// // VFS: SSH2 example
|
||||
// // The VFS driver to use
|
||||
// // 'vfstype' => 'ssh2',
|
||||
// // Port of the VFS server
|
||||
// // 'port' => 22,
|
||||
// ),
|
||||
// 'script' => 'maildrop',
|
||||
// 'scriptparams' => array(
|
||||
// // What path style does the IMAP server use ['mbox'|'maildir']?
|
||||
// 'path_style' => 'mbox',
|
||||
// // Strip 'INBOX.' from the beginning of folder names in generated
|
||||
// // scripts?
|
||||
// 'strip_inbox' => false,
|
||||
// // An array of variables to append to every generated script.
|
||||
// // Use if you need to set up specific environment variables.
|
||||
// 'variables' => array(
|
||||
// // Example for the $PATH variable
|
||||
// // 'PATH' => '/usr/bin'
|
||||
// )
|
||||
// ),
|
||||
// 'shares' => false
|
||||
//);
|
||||
|
@@ -0,0 +1,74 @@
|
||||
//140procmail
|
||||
///* Procmail Example */
|
||||
//$backends['procmail'] = array(
|
||||
// 'driver' => 'vfs',
|
||||
// 'preferred' => 'example.com',
|
||||
// 'hordeauth' => true,
|
||||
// 'params' => array(
|
||||
// // Hostname of the VFS server
|
||||
// 'hostspec' => 'ftp.example.com',
|
||||
// // Name of the procmail config file to write
|
||||
// 'filename' => '.procmailrc',
|
||||
// // The VFS username to use, defaults to current user. If you want to
|
||||
// // use a different user, you also need to disable 'hordeauth' above.
|
||||
// // 'username' => 'user',
|
||||
// // The VFS password to use, defaults to current user's password
|
||||
// // 'password' => 'secret',
|
||||
// // The path to the .procmailrc filter file, defaults to the filters'
|
||||
// // owner's home directory.
|
||||
// // You can use the following variables:
|
||||
// // %u = name of the filters' owner
|
||||
// // %U = the 'username' from above
|
||||
// // Example:
|
||||
// // '/data/procmail/filters/%u'
|
||||
// // This would be translated into:
|
||||
// // '/data/procmail/filters/<filter_owners_username>/.procmailrc'
|
||||
// // 'vfs_path' => '/path/to/procmail',
|
||||
//
|
||||
// // If procmail needs an external command for mail delivery, you
|
||||
// // can specify it below. You can also set a prefix for the mailbox name
|
||||
// // eg. for /usr/local/sbin/dmail +INBOX
|
||||
// // 'delivery_agent' => '/usr/local/sbin/dmail',
|
||||
// // 'delivery_mailbox_prefix' => '+',
|
||||
//
|
||||
// // If you need procmail to be called from .forward in the user's home
|
||||
// // directory, set the file and the content below:
|
||||
// // 'forward_file' => '.forward',
|
||||
// // 'forward_string' => '"|/usr/local/bin/procmail"',
|
||||
//
|
||||
// // if the GNU utilities cannot be found in the path
|
||||
// // or have different names, you can specify their location below
|
||||
// // 'date' => '/opt/csw/bin/gdate',
|
||||
// // 'echo' => '/opt/csw/bin/gecho',
|
||||
// // 'ls' => '/opt/csw/bin/gls',
|
||||
|
||||
// // VFS: FTP example
|
||||
// // The VFS driver to use
|
||||
// 'vfstype' => 'ftp',
|
||||
// // Port of the VFS server
|
||||
// 'port' => 21,
|
||||
//
|
||||
// // VFS: SSH2 example
|
||||
// // The VFS driver to use
|
||||
// // 'vfstype' => 'ssh2',
|
||||
// // Port of the VFS server
|
||||
// // 'port' => 22,
|
||||
// ),
|
||||
// 'script' => 'procmail',
|
||||
// 'scriptparams' => array(
|
||||
// // What path style does the IMAP server use ['mbox'|'maildir']?
|
||||
// 'path_style' => 'mbox',
|
||||
// // An array of variables to append to every generated script.
|
||||
// // Use if you need to set up specific environment variables.
|
||||
// 'variables' => array(
|
||||
// // Example for the $PATH variable
|
||||
// // 'PATH' => '/usr/bin',
|
||||
// // Example for the $DEFAULT variable
|
||||
// // 'DEFAULT' => '$HOME/Maildir',
|
||||
// // Example for the $VACATION_DIR variable (used to store vacation files)
|
||||
// // 'VACATION_DIR' => '$HOME',
|
||||
// )
|
||||
// ),
|
||||
// 'shares' => false
|
||||
//);
|
||||
|
@@ -0,0 +1,37 @@
|
||||
//160sieve
|
||||
///* Sieve Example */
|
||||
//$backends['sieve'] = array(
|
||||
// 'driver' => 'timsieved',
|
||||
// 'preferred' => 'example.com',
|
||||
// 'hordeauth' => true,
|
||||
// 'params' => array(
|
||||
// // Hostname of the timsieved server
|
||||
// 'hostspec' => 'mail.example.com',
|
||||
// // Login type of the server
|
||||
// 'logintype' => 'PLAIN',
|
||||
// // Enable/disable TLS encryption
|
||||
// 'usetls' => true,
|
||||
// // Port number of the timsieved server
|
||||
// 'port' => 2000,
|
||||
// // Name of the sieve script
|
||||
// 'scriptname' => 'ingo',
|
||||
// // The following settings can be used to specify an administration
|
||||
// // user to update all users' scripts. If you want to use an admin
|
||||
// // user, you also need to disable 'hordeauth' above. You have to use
|
||||
// // an admin user if you want to use shared rules.
|
||||
// // 'username' => 'cyrus',
|
||||
// // 'password' => '*****',
|
||||
// // Enable debugging. With Net_Sieve 1.2.0 or later, the sieve protocol
|
||||
// // communication is logged with the DEBUG level. Earlier versions
|
||||
// // print the log to the screen.
|
||||
// 'debug' => false,
|
||||
// ),
|
||||
// 'script' => 'sieve',
|
||||
// 'scriptparams' => array(
|
||||
// // If using Dovecot or any other Sieve implementation that requires
|
||||
// // folder names to be UTF-8 encoded, set this parameter to true.
|
||||
// 'utf8' => false,
|
||||
// ),
|
||||
// 'shares' => false
|
||||
//);
|
||||
|
@@ -0,0 +1,28 @@
|
||||
//165sivtest
|
||||
///* sivtest Example */
|
||||
//$backends['sivtest'] = array(
|
||||
// 'driver' => 'sivtest',
|
||||
// 'preferred' => 'example.com',
|
||||
// 'hordeauth' => true,
|
||||
// 'params' => array(
|
||||
// // Hostname of the timsieved server
|
||||
// 'hostspec' => 'mail.example.com',
|
||||
// // Login type of the server
|
||||
// 'logintype' => 'GSSAPI',
|
||||
// // Enable/disable TLS encryption
|
||||
// 'usetls' => true,
|
||||
// // Port number of the timsieved server
|
||||
// 'port' => 2000,
|
||||
// // Name of the sieve script
|
||||
// 'scriptname' => 'ingo',
|
||||
// // Location of sivtest
|
||||
// 'command' => '/usr/bin/sivtest',
|
||||
// // name of the socket we're using
|
||||
// 'socket' => Horde::getTempDir() . '/sivtest.'
|
||||
// . md5(uniqid(rand())) . '.sock',
|
||||
// ),
|
||||
// 'script' => 'sieve',
|
||||
// 'scriptparams' => array(),
|
||||
// 'shares' => false,
|
||||
//);
|
||||
|
@@ -0,0 +1,61 @@
|
||||
//170ldapsieve
|
||||
///* Sun ONE/JES Example (LDAP/Sieve) */
|
||||
//$backends['ldapsieve'] = array(
|
||||
// 'driver' => 'ldap',
|
||||
// 'preferred' => 'example.com',
|
||||
// 'hordeauth' => false,
|
||||
// 'params' => array(
|
||||
// //
|
||||
// // Hostname of the ldap server
|
||||
// //
|
||||
// 'hostspec' => 'ldap.example.com',
|
||||
// //
|
||||
// // Port number of the timsieved server
|
||||
// //
|
||||
// 'port' => 389,
|
||||
// //
|
||||
// // LDAP Protocol Version (default = 2). 3 is required for TLS.
|
||||
// //
|
||||
// 'version' => 3,
|
||||
// //
|
||||
// // Whether or not to use TLS. If using TLS, you MUST configure
|
||||
// // OpenLDAP (either /etc/ldap.conf or /etc/ldap/ldap.conf) with the CA
|
||||
// // certificate which signed the certificate of the server to which you
|
||||
// // are connecting. e.g.:
|
||||
// //
|
||||
// // TLS_CACERT /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
|
||||
// //
|
||||
// // You MAY have problems if you are using TLS and your server is
|
||||
// // configured to make random referrals, since some OpenLDAP libraries
|
||||
// // appear to check the certificate against the original domain name,
|
||||
// // and not the referred-to domain. This can be worked around by
|
||||
// // putting the following directive in the ldap.conf:
|
||||
// //
|
||||
// // TLS_REQCERT never
|
||||
// //
|
||||
// 'tls' => true,
|
||||
// //
|
||||
// // Bind DN (for bind and script distinguished names, %u is replaced
|
||||
// // with username, and %d is replaced with the internet domain
|
||||
// // components (e.g. "dc=example, dc=com") if available).
|
||||
// //
|
||||
// 'bind_dn' => 'cn=ingo, ou=applications, dc=example, dc=com',
|
||||
// //
|
||||
// // Bind password. If not provided, user's password is used (useful
|
||||
// // when bind_dn contains %u).
|
||||
// //
|
||||
// 'bind_password' => 'secret',
|
||||
// //
|
||||
// // How to find user object.
|
||||
// //
|
||||
// 'script_base' => 'ou=People, dc=example, dc=com',
|
||||
// 'script_filter' => '(uid=%u)',
|
||||
// //
|
||||
// // Attribute script is stored in. Will not touch non-Ingo scripts.
|
||||
// //
|
||||
// 'script_attribute' => 'mailSieveRuleSource'
|
||||
// ),
|
||||
// 'script' => 'sieve',
|
||||
// 'scriptparams' => array()
|
||||
//);
|
||||
|
@@ -0,0 +1,28 @@
|
||||
//180kolabsieve
|
||||
///* Kolab Example (using Sieve) */
|
||||
//if ($GLOBALS['conf']['kolab']['enabled']) \{
|
||||
// require_once 'Horde/Kolab.php';
|
||||
//
|
||||
// if (!is_callable('Kolab', 'getServer')) \{
|
||||
// $server = $GLOBALS['conf']['kolab']['imap']['server'];
|
||||
// \} else \{
|
||||
// $server = Kolab::getServer('imap');
|
||||
// \}
|
||||
//
|
||||
// $backends['kolab'] = array(
|
||||
// 'driver' => 'timsieved',
|
||||
// 'preferred' => '',
|
||||
// 'hordeauth' => 'full',
|
||||
// 'params' => array(
|
||||
// 'hostspec' => $server,
|
||||
// 'logintype' => 'PLAIN',
|
||||
// 'usetls' => false,
|
||||
// 'port' => $GLOBALS['conf']['kolab']['imap']['sieveport'],
|
||||
// 'scriptname' => 'kmail-vacation.siv'
|
||||
// ),
|
||||
// 'script' => 'sieve',
|
||||
// 'scriptparams' => array(),
|
||||
// 'shares' => false
|
||||
// );
|
||||
//\}
|
||||
|
@@ -0,0 +1,4 @@
|
||||
//100header
|
||||
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
|
||||
// $Horde: ingo/config/conf.xml,v 1.13.12.1 2007/12/20 14:05:46 jan Exp $
|
||||
|
@@ -0,0 +1,3 @@
|
||||
//120menu
|
||||
include '/home/httpd/html/horde/conf.menu.apps.php';
|
||||
|
@@ -0,0 +1,5 @@
|
||||
//140storage
|
||||
$conf['storage']['driver'] = 'prefs';
|
||||
$conf['storage']['maxblacklist'] = 0;
|
||||
$conf['storage']['maxwhitelist'] = 0;
|
||||
|
@@ -0,0 +1,4 @@
|
||||
//160rules
|
||||
$conf['rules']['userheader'] = true;
|
||||
$conf['rules']['usefolderapi'] = true;
|
||||
|
@@ -0,0 +1,4 @@
|
||||
//180hooks
|
||||
$conf['hooks']['vacation_addresses'] = false;
|
||||
$conf['hooks']['vacation_only'] = true;
|
||||
|
@@ -0,0 +1,3 @@
|
||||
//800footer
|
||||
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
|
||||
|
@@ -0,0 +1,7 @@
|
||||
//100header
|
||||
/**
|
||||
* $Horde: ingo/config/prefs.php.dist,v 1.30.10.4 2010-07-06 09:49:33 jan Exp $
|
||||
*
|
||||
* See horde/config/prefs.php for documentation on the structure of this file.
|
||||
*/
|
||||
|
@@ -0,0 +1,4 @@
|
||||
//120storage
|
||||
// Make sure that INGO_STORAGE_* constants are defined.
|
||||
require_once dirname(__FILE__) . '/../lib/Storage.php';
|
||||
|
@@ -0,0 +1,12 @@
|
||||
//140ingoscript
|
||||
// This preference group will only be displayed if the configured
|
||||
// Ingo_Script:: driver can create script files.
|
||||
if (!isset($_SESSION['ingo']['script_generate']) ||
|
||||
$_SESSION['ingo']['script_generate']) \{
|
||||
$prefGroups['script'] = array(
|
||||
'column' => _("Other Options"),
|
||||
'label' => _("Script Updating"),
|
||||
'desc' => _("Options about script updating."),
|
||||
'members' => array('auto_update'));
|
||||
\}
|
||||
|
@@ -0,0 +1,15 @@
|
||||
//160hordescript
|
||||
// The following preferences are only used for Horde_Script:: drivers that use
|
||||
// scripts.
|
||||
|
||||
// Automatically update the script?
|
||||
$_prefs['auto_update'] = array(
|
||||
'value' => 1,
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'checkbox',
|
||||
'desc' => _("Automatically activate the script after each change?")
|
||||
);
|
||||
|
||||
// End script preferences
|
||||
|
@@ -0,0 +1,24 @@
|
||||
//180filtering
|
||||
// The following preferences are only used for Horde_Script:: drivers that can
|
||||
// do on-demand filtering.
|
||||
|
||||
// Show detailed filter status messages?
|
||||
// a value of 0 = no, 1 = yes
|
||||
$_prefs['show_filter_msg'] = array(
|
||||
'value' => 1,
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
||||
// Only filter [un]seen messages?
|
||||
// Values: 0, INGO_SCRIPT_FILTER_UNSEEN, INGO_SCRIPT_FILTER_SEEN
|
||||
$_prefs['filter_seen'] = array(
|
||||
'value' => 0,
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
||||
// End on-demand filtering preferences
|
||||
|
@@ -0,0 +1,57 @@
|
||||
//200prefs
|
||||
// If NOT using the 'prefs' storage driver (see conf.php), you can comment out
|
||||
// the below entries.
|
||||
|
||||
// Filter rules.
|
||||
$_prefs['rules'] = array(
|
||||
'value' => 'a:5:\{i:0;a:2:\{s:4:"name";s:9:"Whitelist";s:6:"action";i:' . INGO_STORAGE_ACTION_WHITELIST . ';\}i:1;a:3:\{s:4:"name";;s:8:"Vacation";s:6:"action";i:' . INGO_STORAGE_ACTION_VACATION . ';s:7:"disable";b:1;\}i:2;a:2:\{s:4:"name";s:9:"Blacklist";s:6:"action";i:' . INGO_STORAGE_ACTION_BLACKLIST . ';\}i:3;a:2:\{s:4:"name";s:7:"Forward";s:6:"action";i:' . INGO_STORAGE_ACTION_FORWARD . ';\}\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
||||
// Blacklist.
|
||||
// Lock this preference to disable blacklists.
|
||||
$_prefs['blacklist'] = array(
|
||||
'value' => 'a:2:\{s:1:"a";a:0:\{\}s:1:"f";s:0:"";\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
||||
// Whitelist.
|
||||
// Lock this preference to disable whitelists.
|
||||
$_prefs['whitelist'] = array(
|
||||
'value' => 'a:0:\{\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
||||
// Vacation notices.
|
||||
// Lock this preference to disable vacation notices.
|
||||
$_prefs['vacation'] = array(
|
||||
'value' => 'a:8:\{s:9:"addresses";a:0:\{\}s:4:"days";i:7;s:8:"excludes";a:0:\{\}s:10:"ignorelist";b:1;s:6:"reason";s:0:"";s:7:"subject";s:0:"";\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
||||
// Forwarding.
|
||||
// Lock this preference to disable forwarding.
|
||||
$_prefs['forward'] = array(
|
||||
'value' => 'a:2:\{s:1:"a";a:0:\{\}s:1:"k";i:0;\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
||||
// Spam rule.
|
||||
// Lock this preference to disable the spam rule.
|
||||
$_prefs['spam'] = array(
|
||||
'value' => 'a:2:\{s:6:"folder";N;s:5:"level";i:5;\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
Reference in New Issue
Block a user