initial commit of file from CVS for e-smith-ingo on Wed 12 Jul 08:57:44 BST 2023

This commit is contained in:
Brian Read
2023-07-12 08:57:44 +01:00
parent a4bbd1a04a
commit cd0a45b0f2
39 changed files with 1378 additions and 2 deletions

View 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";
}

View File

@@ -0,0 +1,2 @@
PERMS=0540

View File

@@ -0,0 +1,2 @@
PERMS=0540

View File

@@ -0,0 +1,2 @@
GID="www"
PERMS=0640

View File

@@ -0,0 +1,2 @@
GID="www"
PERMS=0640

View File

@@ -0,0 +1,2 @@
GID="www"
PERMS=0640

View File

@@ -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

View File

@@ -0,0 +1,3 @@
#! /bin/sh
exec /etc/e-smith/events/actions/ingo_upgrade

View File

@@ -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>
);
}
}

View File

@@ -0,0 +1,5 @@
{
my $IngoMenu = $ingo{MenuArray} || "enabled"; return "" unless ($IngoMenu eq "enabled");
$apps{ingo} = 1;
$OUT = '';
}

View File

@@ -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'
);

View File

@@ -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.
*/

View File

@@ -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
);

View File

@@ -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
//);

View File

@@ -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
//);

View File

@@ -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
//);

View File

@@ -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,
//);

View File

@@ -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()
//);

View File

@@ -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
// );
//\}

View File

@@ -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 $

View File

@@ -0,0 +1,3 @@
//120menu
include '/home/httpd/html/horde/conf.menu.apps.php';

View File

@@ -0,0 +1,5 @@
//140storage
$conf['storage']['driver'] = 'prefs';
$conf['storage']['maxblacklist'] = 0;
$conf['storage']['maxwhitelist'] = 0;

View File

@@ -0,0 +1,4 @@
//160rules
$conf['rules']['userheader'] = true;
$conf['rules']['usefolderapi'] = true;

View File

@@ -0,0 +1,4 @@
//180hooks
$conf['hooks']['vacation_addresses'] = false;
$conf['hooks']['vacation_only'] = true;

View File

@@ -0,0 +1,3 @@
//800footer
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

View File

@@ -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.
*/

View File

@@ -0,0 +1,4 @@
//120storage
// Make sure that INGO_STORAGE_* constants are defined.
require_once dirname(__FILE__) . '/../lib/Storage.php';

View File

@@ -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'));
\}

View File

@@ -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

View File

@@ -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

View File

@@ -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'
);