initial commit of file from CVS for smeserver-horde on Sat Mar 23 16:05:15 AEDT 2024

This commit is contained in:
Trevor Batley
2024-03-23 16:05:15 +11:00
parent 21bc0fdf89
commit 46a910a743
129 changed files with 4154 additions and 2 deletions

View File

@@ -0,0 +1,6 @@
{
use esmith::util;
$basedn = esmith::util::ldapBase ($DomainName);
$ldapPW = esmith::util::LdapPassword ();
$OUT = '';
}

View File

@@ -0,0 +1,250 @@
//100ConfHordePHP
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Hash: dd22d3283033d73071e7f49fd9e570144d651fcd
// $Id: 5841de7a8bd742b764f603953bef5d16a75a0da4 $
$conf['vhosts'] = false;
$conf['debug_level'] = E_ALL & ~E_NOTICE & ~E_DEPRECATED;
$conf['max_exec_time'] = 0;
$conf['compress_pages'] = true;
$conf['secret_key'] = '{$horde{SecretKey}}';
$conf['umask'] = 077;
$conf['testdisable'] = true;
$conf['use_ssl'] = 2;
$conf['server']['name'] = $_SERVER['SERVER_NAME'];
$conf['urls']['token_lifetime'] = 30;
$conf['urls']['hmac_lifetime'] = 30;
$conf['urls']['pretty'] = false;
$conf['safe_ips'] = array();
$conf['session']['name'] = 'Horde';
{
if (($horde{'Cookies'} || 'enabled') eq 'disabled')
{
$OUT .="\$conf['session']['use_only_cookies'] = false;";
} else {
$OUT .="\$conf['session']['use_only_cookies'] = true;"; }
}
$conf['session']['timeout'] = 0;
$conf['session']['cache_limiter'] = 'nocache';
$conf['session']['max_time'] = 0;
$conf['cookie']['domain'] = $_SERVER['SERVER_NAME'];
$conf['cookie']['path'] = '/horde';
$conf['sql']['username'] = 'horde';
$conf['sql']['password'] = '{$horde{DbPassword}}';
$conf['sql']['socket'] = '/var/lib/mysql/mysql.sock';
$conf['sql']['protocol'] = 'unix';
$conf['sql']['database'] = 'horde';
$conf['sql']['charset'] = 'latin1';
$conf['sql']['ssl'] = false;
$conf['sql']['splitread'] = false;
$conf['sql']['logqueries'] = false;
$conf['sql']['phptype'] = 'mysqli';
$conf['nosql']['phptype'] = false;
{
if (($ldap{'Authentication'} || 'disabled') eq 'enabled')
{
$OUT .= qq(\$conf['ldap']['hostspec'] = 'localhost';) . "\n";
$OUT .= qq(\$conf['ldap']['port'] = 389;) . "\n";
$OUT .= qq(\$conf['ldap']['tls'] = false;) . "\n";
$OUT .= qq(\$conf['ldap']['version'] = 3;) . "\n";
$OUT .= qq(// #May not need next two lines) . "\n";
$OUT .= qq(\$conf['ldap']['binddn'] = 'cn=root,$basedn';) . "\n";
$OUT .= qq(\$conf['ldap']['bindpw'] = '$ldapPW';) . "\n";
$OUT .= qq(\$conf['ldap']['bindas'] = 'anon';) . "\n";
$OUT .= qq(\$conf['ldap']['useldap'] = true;) . "\n";
} else {
$OUT .= qq(\$conf['ldap']['useldap'] = false;) . "\n";
}
}
{
my @HordeAdmins = split /[,:]/, $horde{Admins} || '';
$OUT .= "\$conf['auth']['admins'] = array(";
if (($horde{RemoveUsers} || 'disabled') eq 'enabled')
{
$OUT .= "'adminremoveuser'" . ", " ;
}
$OUT .= "'admin', ";
foreach my $HordeAdmins (sort @HordeAdmins)
{
$OUT .= "'$HordeAdmins'" . ", " ;
}
$OUT .= ");";
}
$conf['auth']['checkip'] = true;
$conf['auth']['checkbrowser'] = true;
$conf['auth']['resetpassword'] = false;
$conf['auth']['alternate_login'] = false;
$conf['auth']['redirect_on_logout'] = false;
$conf['auth']['list_users'] = 'list';
{
if (($ldap{'Authentication'} || 'disabled') eq 'enabled')
{
$OUT .= qq(\$conf['auth']['params']['basedn'] = 'ou=Users,$basedn';) . "\n";
$OUT .= qq(\$conf['auth']['params']['scope'] = 'sub';) . "\n";
$OUT .= qq(\$conf['auth']['params']['ad'] = false;) . "\n";
$OUT .= qq(\$conf['auth']['params']['uid'] = 'uid';) . "\n";
$OUT .= qq(\$conf['auth']['params']['encryption'] = 'ssha';) . "\n";
$OUT .= qq(\$conf['auth']['params']['newuser_objectclass'] = array('shadowAccount', 'inetOrgPerson');) . "\n";
$OUT .= qq(\$conf['auth']['params']['filter'] = '(objectclass=inetOrgPerson)';) . "\n";
$OUT .= qq(\$conf['auth']['params']['password_expiration'] = 'no';) . "\n";
$OUT .= qq(\$conf['auth']['params']['driverconfig'] = 'horde';) . "\n";
$OUT .= qq(\$conf['auth']['driver'] = 'ldap';) . "\n";
} else {
$OUT =<<'HERE';
$conf['auth']['params']['app'] = 'imp';
$conf['auth']['driver'] = 'application';
HERE
}
}
$conf['auth']['params']['count_bad_logins'] = true;
$conf['auth']['params']['login_block'] = true;
$conf['auth']['params']['login_block_count'] = 5;
$conf['auth']['params']['login_block_time'] = 5;
$conf['signup']['allow'] = false;
$conf['log']['priority'] = 'NOTICE';
$conf['log']['ident'] = 'HORDE';
$conf['log']['name'] = LOG_USER;
$conf['log']['type'] = 'syslog';
$conf['log']['enabled'] = true;
$conf['log_accesskeys'] = false;
$conf['prefs']['maxsize'] = 65535;
$conf['prefs']['params']['table'] = 'horde_prefs';
$conf['prefs']['params']['driverconfig'] = 'horde';
$conf['prefs']['driver'] = 'Sql';
$conf['alarms']['params']['table'] = 'horde_alarms';
$conf['alarms']['params']['driverconfig'] = 'horde';
$conf['alarms']['params']['ttl'] = 300;
$conf['alarms']['driver'] = 'Sql';
$conf['group']['params']['driverconfig'] = 'horde';
$conf['group']['driver'] = 'Sql';
$conf['perms']['driverconfig'] = 'horde';
$conf['perms']['driver'] = 'Sql';
$conf['share']['no_sharing'] = false;
$conf['share']['auto_create'] = true;
$conf['share']['world'] = true;
$conf['share']['any_group'] = true;
$conf['share']['hidden'] = false;
$conf['share']['cache'] = false;
$conf['share']['driver'] = 'Sql';
$conf['cache']['default_lifetime'] = 1800;
$conf['cache']['params']['dir'] = '/var/lib/php/horde/tmp/';
$conf['cache']['params']['sub'] = 0;
$conf['cache']['driver'] = 'File';
$conf['cache']['use_memorycache'] = '';
{
if (($horde{'cache'} || 'disabled') eq 'enabled')
{
$OUT =<<'HERE';
$conf['cachecssparams']['driver'] = 'filesystem';
$conf['cachecssparams']['filemtime'] = false;
$conf['cachecssparams']['lifetime'] = 86400;
$conf['cachecss'] = true;
$conf['cachejsparams']['driver'] = 'filesystem';
$conf['cachejsparams']['compress'] = 'php';
$conf['cachejsparams']['lifetime'] = 604800;
$conf['cachejs'] = true;
$conf['cachethemesparams']['check'] = 'appversion';
$conf['cachethemesparams']['lifetime'] = 604800;
$conf['cachethemes'] = true;
HERE
} else {
$OUT =<<'HERE';
$conf['cachecssparams']['url_version_param'] = true;
$conf['cachecss'] = false;
$conf['cachejsparams']['url_version_param'] = true;
$conf['cachejs'] = false;
$conf['cachethemes'] = false;
HERE
}
}
$conf['lock']['driver'] = 'Null';
$conf['token']['driver'] = 'Null';
$conf['history']['params']['driverconfig'] = 'horde';
$conf['history']['driver'] = 'Sql';
$conf['davstorage']['params']['driverconfig'] = 'horde';
$conf['davstorage']['driver'] = 'Sql';
$conf['mailer']['params']['secure'] = 'tls';
$conf['mailer']['params']['auth'] = false;
$conf['mailer']['params']['lmtp'] = false;
$conf['mailer']['type'] = 'smtp';
$conf['vfs']['params']['vfsroot'] = '/var/lib/php/horde/tmp';
$conf['vfs']['type'] = 'File';
$conf['sessionhandler']['type'] = 'Builtin';
$conf['sessionhandler']['hashtable'] = false;
$conf['spell']['params']['path'] = '/usr/bin/hunspell';
$conf['spell']['driver'] = 'aspell';
$conf['gnupg']['path'] = '/usr/bin/gpg';
$conf['gnupg']['keyserver'] = array('pool.sks-keyservers.net', 'subkeys.pgp.net', 'pgp.mit.edu');
$conf['gnupg']['timeout'] = 10;
$conf['openssl']['cafile'] = '/home/e-smith/ssl.crt/{ $SystemName }.{ $DomainName }.crt';
$conf['openssl']['path'] = '/usr/bin/openssl';
$conf['nobase64_img'] = false;
$conf['image']['convert'] = '/usr/bin/convert';
$conf['image']['identify'] = '/usr/bin/identify';
$conf['image']['driver'] = 'Im';
$conf['exif']['driver'] = 'Bundled';
$conf['mime']['magic_db'] = '/usr/share/magic';
$conf['timezone']['location'] = 'ftp://ftp.iana.org/tz/tzdata-latest.tar.gz';
$conf['problems']['email'] = 'admin@{ $DomainName }';
$conf['problems']['maildomain'] = '{ $DomainName }';
$conf['problems']['tickets'] = false;
$conf['problems']['attachments'] = false;
$conf['menu']['links']['help'] = 'authenticated';
$conf['menu']['links']['prefs'] = 'authenticated';
$conf['menu']['links']['problem'] = 'never';
$conf['menu']['links']['login'] = 'all';
$conf['menu']['links']['logout'] = 'authenticated';
$conf['portal']['fixed_blocks'] = array();
$conf['accounts']['params']['quota_path'] = '/usr/bin/quota';
$conf['accounts']['params']['grep_path'] = '/bin/grep';
$conf['accounts']['params']['translateMountPoint'] = false;
$conf['accounts']['params']['translationTable'] = '/etc/mtab';
$conf['accounts']['driver'] = 'localhost';
$conf['user']['verify_from_addr'] = true;
$conf['user']['select_view'] = true;
$conf['facebook']['enabled'] = false;
$conf['twitter']['enabled'] = false;
$conf['urlshortener'] = false;
$conf['weather']['provider'] = false;
$conf['imap']['enabled'] = false;
$conf['imsp']['enabled'] = false;
$conf['kolab']['enabled'] = false;
$conf['hashtable']['driver'] = 'none';
{
if (($horde{'ActiveSync'} || 'disabled') eq 'enabled')
{
$OUT =<<'HERE';
$conf['activesync']['params']['driverconfig'] = 'horde';
$conf['activesync']['storage'] = 'Sql';
$conf['activesync']['emailsync'] = true;
$conf['activesync']['version'] = '14.1';
$conf['activesync']['auth']['type'] = 'basic';
$conf['activesync']['autodiscovery'] = 'user';
$conf['activesync']['outlookdiscovery'] = false;
$conf['activesync']['ping']['heartbeatmin'] = 60;
$conf['activesync']['ping']['heartbeatmax'] = 2700;
$conf['activesync']['ping']['heartbeatdefault'] = 480;
$conf['activesync']['ping']['deviceping'] = true;
$conf['activesync']['ping']['waitinterval'] = 5;
$conf['activesync']['enabled'] = true;
HERE
} else {
$OUT =<<'HERE';
$conf['activesync']['enabled'] = false;
HERE
}
}
{
if (($horde{'DeviceLog'} || 'disabled') eq 'enabled')
{
$OUT =<<'HERE';
$conf['activesync']['logging']['path'] = '/var/lib/php/horde/tmp';
$conf['activesync']['logging']['level'] = '1';
$conf['activesync']['logging']['type'] = 'perdevice';
HERE
} else {
$OUT =<<'HERE';
$conf['activesync']['logging']['type'] = false;
HERE
}
}

View File

@@ -0,0 +1,2 @@
//999Footer
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

View File

@@ -0,0 +1,3 @@
class Horde_Hooks
\{

View File

@@ -0,0 +1,12 @@
public function preauthenticate($userId, $credentials)
\{
# here we filter out @domain.com from login, this will allow someone to still login if they use their full email
# this would be a good place to add an array pseudonyms => user to convert the userID from a list of pseudo:
# $translate = array("jenifer@domain1.net" => "jenny" , "jd"=> "johndavros")
# $userId = ( $translate[$userId] ? translate[$userId] : $userId);
$userId = (strpos($userId, '@')? substr($userId, 0, strpos($userId, '@')) : $userId );
return array(
'userId' => Horde_String::lower($userId),
'credentials' => $credentials);
\}

View File

@@ -0,0 +1,7 @@
public function authusername($userId, $toHorde)
\{
# we only want a userid as login for horde and smeserver imap
$userId = (strpos($userId, '@')? substr($userId, 0, strpos($userId, '@')) : $userId );
return ltrim(rtrim(Horde_String::lower($userId))) ;
\}

View File

@@ -0,0 +1,65 @@
public function prefs_init($pref, $value, $username, $scope_ob)
\{
if (is_null($username)) \{ // not logged in
return $value;
\}
# get the virtualhost
$vdomain = getenv('HTTP_HOST');
# if it is an ip, let's use the Primary domain
if (filter_var($vdomain, FILTER_VALIDATE_IP)) \{
$vdomain = "{$DomainName}";
\} else\{ # else filter the virtual domain to remove unwanted parts
{
my @filtered = split /[;,: ]/, $horde{SubdomainFilter} || "www,mail,webmail";
$OUT .= " \$patterns = array();\n";
foreach my $filter (sort @filtered)
{
$OUT .= " array_push(\$patterns,'|^$filter\\.|i');\n";
}
}
$vdomain = preg_replace($patterns, '', $vdomain);
\}
$vdomain = Horde_String::lower($vdomain);
{ # override to Primary Domain
my $UsePrimary = $horde{ForcePrimaryDomain} || "disabled";
$OUT .= ($UsePrimary eq "enabled") ? " \$vdomain = '$DomainName';\n" : " # ForcePrimaryDomain disabled\n # \$vdomain = '$DomainName';\n" ;
my $basedn = esmith::util::ldapBase ($DomainName);
$OUT .= " \$ldapServer = 'localhost';
\$ldapPort = '389';
\$searchBase = 'ou=Users,$basedn';
\$ds = \@ldap_connect(\$ldapServer, \$ldapPort);
if (\@ldap_bind(\$ds )) {
\$searchResult = \@ldap_search(\$ds, \$searchBase, 'uid=' . \$username);
}
\$information = \@ldap_get_entries(\$ds, \$searchResult);";
}
switch ($pref) \{
case 'default_share' :
if (is_null($username)) \{
return $value;
\}
return $username;
case 'from_addr':
if($value == '') \{
$value = "$username@$vdomain";
\}
return $value;
case 'fullname':
if($value == '') \{
$value = "$username";
\}
if (($information['count'] > 0) && ($information[0]['displayname'][0] != '') ) \{
$value = $information[0]['displayname'][0];
\} else \{
$value = "$username";
\}
return $value;
\}
\}

View File

@@ -0,0 +1,102 @@
$mime_drivers = array(
/* MS Word display.
* This driver requires AbiWord to be installed.
* AbiWord homepage: http://www.abisource.com/ */
'msword' => array(
// Disabled by default
{
if (($horde{inlineMSWord} || "false") eq "true") {
$OUT .=" 'disable' => false,";
} else {
$OUT .=" 'disable' => true,";
}
}
'handles' => array(
'application/msword',
'application/vnd.ms-word'
),
'icons' => array(
'default' => 'msword.png'
),
// REQUIRED: Location of the AbiWord binary
'location' => '/usr/bin/abiword'
),
/* MS Excel display.
* This driver requires Gnumeric to be installed.
* Gnumeric homepage: http://projects.gnome.org/gnumeric/ */
'msexcel' => array(
// Disabled by default
{
if (($horde{inlineMSExcel} || "false") eq "true") {
$OUT .=" 'disable' => false,";
} else {
$OUT .=" 'disable' => true,";
}
}
'handles' => array(
'application/msexcel',
'application/x-msexcel',
'application/vnd.ms-excel'
),
'icons' => array(
'default' => 'msexcel.png'
),
// REQUIRED: Location of the ssconvert binary
'location' => '/usr/bin/ssconvert'
),
/* MS Powerpoint display.
* This driver requires ppthtml, included with xlhtml, to be installed.
* xlhtml homepage: http://chicago.sourceforge.net/xlhtml/ */
'mspowerpoint' => array(
// Disabled by default
{
if (($horde{inlineMSPowerpoint} || "false") eq "true") {
$OUT .=" 'disable' => false,";
} else {
$OUT .=" 'disable' => true,";
}
}
'handles' => array(
'application/mspowerpoint',
'application/vnd.ms-powerpoint'
),
'icons' => array(
'default' => 'mspowerpoint.png'
),
// REQUIRED: Location of the ppthtml binary
'location' => '/usr/bin/ppthtml'
),
/* WordPerfect document display.
* This driver requires wpd2html to be installed.
* libwpd homepage: http://libwpd.sourceforge.net/ */
'wordperfect' => array(
// Disabled by default
{
if (($horde{inlineWordperfect} || "false") eq "true") {
$OUT .=" 'disable' => false,";
} else {
$OUT .=" 'disable' => true,";
}
}
'handles' => array(
'application/vnd.wordperfect',
'application/wordperf',
'application/wordperfect',
'application/wpd',
'application/x-wpwin'
),
'icons' => array(
'default' => 'wordperfect.png'
),
// REQUIRED: location of the wpd2html binary
'location' => '/usr/bin/wpd2html'
),
);

View File

@@ -0,0 +1,4 @@
$_prefs['initial_application']['value'] = 'imp';
$_prefs['sidebar_width']['value'] = 225;

View File

@@ -0,0 +1,4 @@
$_prefs['id']['value'] = 'Default Identity';
$_prefs['fullname']['hook'] = true;
$_prefs['from_addr']['hook'] = true;

View File

@@ -0,0 +1,3 @@
// 100webRoot
$app_webroot = '/horde';

View File

@@ -0,0 +1,3 @@
$this->applications['ingo']['menu_parent'] = '';

View File

@@ -0,0 +1,3 @@
//100Overrides
$servers['imap']['disabled'] = true;

View File

@@ -0,0 +1,59 @@
//120IMAPServers
{
use esmith::DomainsDB;
my $db = esmith::DomainsDB->open_ro;
my @domains = ($DomainName,
map { $_->key }
grep { my $p = $_->prop('SystemPrimaryDomain') || ''; $p ne 'yes' }
$db->get_all());
foreach my $domain (@domains)
{
$OUT .= "\$servers['$domain'] = array(\n";
$OUT .= " 'disabled' => false,\n";
$OUT .= " 'name' => 'IMAP Server',\n";
$OUT .= " 'hostspec' => 'localhost',\n";
$OUT .= " 'hordeauth' => true,\n";
$OUT .= " 'protocol' => 'imap',\n";
$OUT .= " 'port' => '143',\n";
$OUT .= " 'secure' => 'notls',\n";
$OUT .= " 'maildomain' => '$domain',\n";
$OUT .= " 'smtphost' => 'localhost',\n";
if (defined($smtpd))
{
$OUT .= " 'smtpport' => '$smtpd{TCPPort}',\n";
} else {
$OUT .= " 'smtpport' => '$qpsmtpd{TCPPort}',\n";
}
$OUT .= " 'cache' => false,\n";
if (($dovecot{'SharedMailbox'} || 'disabled') eq 'enabled')
{
$OUT .= " 'acl' => true, \n";
}
if (($horde{'quota'} || 'disabled') eq 'enabled')
{
$OUT .= " 'quota' => array(\n";
$OUT .= " 'driver' => 'imap',\n";
$OUT .= " 'params' => array(\n";
$OUT .= " 'hide_when_unlimited' => true,\n";
$OUT .= " 'unit' => 'GB',\n";
$OUT .= " 'interval' => 0,\n";
$OUT .= " )\n";
$OUT .= " ),\n";
}
if (($spamassassin{'UseBayes'} || '0') eq '1' and (($spamassassin{'SpamLearning'} || 'disabled') eq 'enabled'))
{
$OUT .= " 'spam' => array(\n";
$OUT .= " 'innocent' => array(\n";
$OUT .= " 'display' => true,\n";
$OUT .= " 'program' => '/usr/bin/spamc -C revoke -u %l',\n";
$OUT .= " ),\n";
$OUT .= " 'spam' => array(\n";
$OUT .= " 'display' => false,\n";
$OUT .= " 'program' => '/usr/bin/spamc -C report -u %l',\n";
$OUT .= " )\n";
$OUT .= " ),\n";
}
$OUT .= ");\n";
}
}

View File

@@ -0,0 +1,30 @@
// 100ConfImpPHP
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: 48bf0b4cc99e7941b4432a29e70e145b8d654cc7 $
$conf['user']['allow_view_source'] = true;
$conf['server']['server_list'] = 'none';
$conf['compose']['use_vfs'] = false;
$conf['compose']['link_attachments'] = false;
$conf['compose']['attach_size_limit'] = 0;
$conf['compose']['attach_count_limit'] = 0;
$conf['compose']['reply_limit'] = 0;
$conf['compose']['ac_threshold'] = 3;
$conf['compose']['htmlsig_img_size'] = 30000;
$conf['pgp']['keylength'] = 2048;
$conf['maillog']['driver'] = 'history';
{
if (($horde{'LogMessages'} || 'disabled') eq 'enabled')
{
$OUT .="\$conf['sentmail']['params']['threshold'] = 60;" . "\n";
$OUT .="\$conf['sentmail']['params']['limit_period'] = 24;" . "\n";
$OUT .="\$conf['sentmail']['params']['table'] = 'imp_sentmail';" . "\n";
$OUT .="\$conf['sentmail']['params']['driverconfig'] = 'horde';" . "\n";
$OUT .="\$conf['sentmail']['driver'] = 'Sql';"
} else {
$OUT .="\$conf['sentmail']['driver'] = 'Null';";
}
}
$conf['contactsimage']['backends'] = array('IMP_Contacts_Avatar_Addressbook');
$conf['tasklist']['use_tasklist'] = true;
$conf['notepad']['use_notepad'] = true;

View File

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

View File

@@ -0,0 +1,14 @@
//10mime_drivers.local.php
{
$Inline = (defined $horde{Limitinlinesize})
? $horde{Limitinlinesize}
: 1048576;
$OUT = qq(\$mime_drivers['plain']['limit_inline_size'] = $Inline;);
}
$mime_drivers['plain']['pgp_inline'] = true;
$mime_drivers['html']['inline'] = { $horde{inlineHTML} || 'true' };
$mime_drivers['images']['inline'] = { $horde{inlineImages} || 'true' };

View File

@@ -0,0 +1,6 @@
$_prefs['atc_flag']['value'] = 1;
$_prefs['ckeditor_buttons'] = array(
'value' => "[['Source','Maximize','-','Templates'],['Cut','Copy','Paste'],['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],'/',['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],['Link','Unlink'],['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar'],'/',['Styles','Format','Font','FontSize'],['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],['TextColor','BGColor']]",);
$_prefs['subscribe']['value'] = 0;

View File

@@ -0,0 +1,22 @@
{
my $SievePort = $sieve{TCPPort} || '4190';
my @SieveHosts = split /[,: ]/, $sieve{Listen} || 'localhost';
if (($sieve{'status'} || 'disabled') eq 'enabled')
{
$OUT .= "\$backends['imap']['disabled'] = true;\n";
$OUT .= "\$backends['sieve']['disabled'] = false;\n";
$OUT .= "\$backends['sieve']['transport'][Ingo::RULE_ALL]['params']['hostspec'] = ";
foreach my $SieveHosts (sort @SieveHosts)
{
$OUT .= "'$SieveHosts' ";
}
$OUT .= ";\n";
$OUT .= "\$backends['sieve']['transport'][Ingo::RULE_ALL]['params']['logintype'] = 'PLAIN';\n";
$OUT .= "\$backends['sieve']['transport'][Ingo::RULE_ALL]['params']['port'] = '$SievePort';\n";
$OUT .= "\$backends['sieve']['transport'][Ingo::RULE_ALL]['params']['usetls'] = false;\n";
$OUT .= "\$backends['sieve']['script'][Ingo::RULE_ALL]['params']['utf8'] = true;\n";
} else {
$OUT = "\$backends['imap']['preferred'] = '$DomainName';";
}
}

View File

@@ -0,0 +1,15 @@
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: 48142d13ef06c07f56427fe5b43981631bdbfdb0 $
$conf['storage']['params']['driverconfig'] = 'horde';
{
if (($horde{'IngoSqlPrefs'} || 'disabled') eq 'enabled')
{
$OUT .="\$conf['storage']['driver'] = 'sql';";
} else {
$OUT .="\$conf['storage']['driver'] = 'prefs';"; }
}
$conf['rules']['userheader'] = true;
$conf['spam']['header'] = 'X-Spam-Level';
$conf['spam']['char'] = '*';
$conf['spam']['compare'] = 'string';

View File

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

View File

@@ -0,0 +1,26 @@
//100KronolithConfPHP
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: 380230c774efc2661b03a58bd71824d28cdc6040 $
$conf['calendar']['params']['table'] = 'kronolith_events';
$conf['calendar']['params']['driverconfig'] = 'horde';
$conf['calendar']['params']['utc'] = true;
$conf['calendar']['driver'] = 'sql';
$conf['storage']['default_domain'] = '{$DomainName}';
$conf['storage']['params']['table'] = 'kronolith_storage';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['calendars']['driver'] = 'default';
$conf['resource']['params']['table'] = 'kronolith_resources';
$conf['resource']['params']['driverconfig'] = 'horde';
$conf['resource']['params']['utc'] = true;
$conf['resource']['driver'] = 'sql';
$conf['reminder']['server_name'] = 'www.{$DomainName}';
$conf['reminder']['from_addr'] = 'reminders@{$DomainName}';
$conf['autoshare']['shareperms'] = 'read';
$conf['share']['notify'] = true;
$conf['holidays']['enable'] = true;
$conf['menu']['import_export'] = true;
$conf['maps']['providers'] = array('Google');
$conf['maps']['geocoder'] = 'Google';
$conf['maps']['geodriver'] = false;
$conf['maps']['driver'] = 'Horde';

View File

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

View File

@@ -0,0 +1,8 @@
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: d97e56b407852ff0a86c7d88c9a57c8f3089e82f $
$conf['storage']['params']['table'] = 'mnemo_memos';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['notepads']['driver'] = 'default';
$conf['menu']['import_export'] = true;

View File

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

View File

@@ -0,0 +1,8 @@
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: 7a2eb8e9002cee73d99d618dfb6509a56ab639ec $
$conf['storage']['params']['table'] = 'nag_tasks';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['tasklists']['driver'] = 'default';
$conf['menu']['import_export'] = true;

View File

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

View File

@@ -0,0 +1,11 @@
CONNECT mysql;
REPLACE INTO user (host, user, password)
VALUES (
'localhost',
'horde',
password('{$horde{DbPassword}}')
);
FLUSH PRIVILEGES;

View File

@@ -0,0 +1,19 @@
$attributes['fax'] = array(
'label' => _("Work Fax"),
'type' => 'phone',
'required' => false,
'params' => array('size' => 15)
);
$attributes['homePhone2'] = array(
'label' => _("Alt Home Phone"),
'type' => 'phone',
'required' => false,
'params' => array('size' => 15)
);
$attributes['workPhone2'] = array(
'label' => _("Alt Work Phone"),
'type' => 'phone',
'required' => false,
'params' => array('size' => 15)
);

View File

@@ -0,0 +1,27 @@
//100SMEAttributes
/* SME Server attributes */
$attributes['displayName'] = array(
'label' => _("Display Name"),
'type' => 'text',
'required' => false
);
$attributes['groupdescription'] = array(
'label' => _("Group Description"),
'type' => 'text',
'required' => false
);
$attributes['groupmembers'] = array(
'label' => _("Group Members"),
'type' => 'text',
'required' => false
);
//Turba override allow multiple email addresses per contact
/* Communication. */
$attributes['emails'] = array(
'label' => _("Email Address"),
'type' => 'email',
'required' => false,
'params' => array('allow_multi' => true, 'strip_domain' => false, 'link_compose' => true, 'link_name' => null, 'delimiters' => ',', 'size' => null)
);

View File

@@ -0,0 +1,6 @@
{
use esmith::util;
$basedn = esmith::util::ldapBase ($DomainName);
$OUT = '';
}

View File

@@ -0,0 +1,36 @@
//40LocalSQL
{
my $sab = ($horde{SharedAddressBooks} || 'enabled') eq 'disabled' ? 'false' : 'true';
$OUT = "\$cfgSources['localsql']['use_shares'] = $sab;"
}
$cfgSources['localsql']['map']['children'] = 'object_children';
$cfgSources['localsql']['map']['emails'] = 'object_email';
$cfgSources['localsql']['map']['homeEmail'] = 'object_homeemail';
$cfgSources['localsql']['map']['workEmail'] = 'object_workemail';
$cfgSources['localsql']['tabs'] = array(
_("Personal") => array('firstname', 'lastname', 'middlenames',
'namePrefix', 'nameSuffix', 'name', 'alias',
'birthday', 'spouse', 'anniversary', 'children',
'yomifirstname', 'yomilastname', 'photo'),
_("Location") => array('homeStreet', 'homePOBox', 'homeCity',
'homeProvince', 'homePostalCode', 'homeCountry',
'homeAddress', 'workStreet', 'workPOBox',
'workCity', 'workProvince', 'workPostalCode',
'workCountry', 'workAddress', 'otherStreet',
'otherPOBox', 'otherCity', 'otherProvince',
'otherPostalCode', 'otherCountry',
'otherAddress','timezone'),
_("Communications") => array('emails', 'homeEmail', 'workEmail',
'homePhone', 'homePhone2',
'workPhone', 'workPhone2', 'carPhone',
'radioPhone', 'companyPhone',
'assistPhone', 'homeFax',
'cellPhone', 'fax', 'pager', 'imaddress',
'imaddress2', 'imaddress3'),
_("Organization") => array('title', 'role', 'company', 'department', 'logo', 'assistant', 'manager'),
_("Other") => array('notes', 'website', 'freebusyUrl',
'pgpPublicKey', 'smimePublicKey'),
);

View File

@@ -0,0 +1,137 @@
//50LocalLDAP
/**
* A local address book in an LDAP directory. This implements a public
* (shared) address book.
*
* To store distribution lists in the LDAP directory, you'll need to include
* horde.schema from Horde in your LDAP configuration.
*
* To store freebusy information in the LDAP directory, you'll need to include
* rfc2739.schema from Horde in your LDAP configuration.
*/
$cfgSources['localldap'] = array(
// Disabled by default
'disabled' => false,
'title' => _("Local LDAP Users Address Book"),
'type' => 'ldap',
'params' => array(
'server' => 'localhost',
'port' => 389,
'tls' => false,
{
$OUT .= qq( 'root' => '$basedn',);
}
// 'bind_dn' => 'cn=admin,ou=users,dc=example,dc=com',
// // For Active Directory:
// // 'bind_dn' => 'username@example.com',
// 'bind_password' => '********',
'sizelimit' => 200,
// // For Active Directory:
// // 'sizelimit' => 0,
'dn' => array('cn'),
'objectclass' => array('top',
'person',
'organizationalPerson',
{
if (($horde{freebusy} || "disabled") eq "enabled") {
$OUT =<<HERE;
'inetOrgPerson',
'calEntry'),
HERE
} else {
$OUT =<<HERE;
'inetOrgPerson'),
HERE
}
}
// Add 'turbaContact' to this array if using
// 'turbaType' attribute below, and 'calEntry'
// if using 'freebusyUrl'.
// For Active Directory:
// 'objectclass' => array('organizationalPerson',
// 'user',
// 'group',
// 'contact'),
'scope' => 'sub',
// For Active Directory:
// 'scope' => 'sub',
'charset' => 'UTF-8',
// Consult the LDAP schema to verify that all required attributes for
// an entry are set and add them if needed.
'checkrequired' => false,
// Value used to fill in missing required attributes.
'checkrequired_string' => ' ',
// Check LDAP schema for valid syntax. If this is false an address
// field is assumed to have postalAddress syntax; otherwise the schema
// is consulted for the syntax to use.
'checksyntax' => false,
'version' => 3,
'filter' => '&(objectClass=inetOrgPerson)(!(mail=admin@{$DomainName}))',
// For Active Directory you probably want to also set the following
// parameters:
// 'deref' => LDAP_DEREF_ALWAYS,
// 'filter' => '&(SAMAccountName=*)(mail=*)',
// 'referrals' => 0,
),
'map' => array(
'__key' => 'dn',
// Remove this mapping if using Active Directory server:
'__uid' => 'uid',
// From horde.schema. Make sure you have 'turbaContact' objectClass
// included above:
'__type' => 'turbaType',
'__members' => 'turbaMembers',
'name' => 'cn',
'email' => 'mail',
'homePhone' => 'homephone',
'workPhone' => 'telephonenumber',
'cellPhone' => 'mobiletelephonenumber',
// 'homeAddress' => 'street', <-- this is what was used for sme7 before horde 4
'homeAddress' => 'homepostaladdress',
// From rfc2739.schema:
{
if (($horde{freebusy} || "disabled") eq "enabled") {
$OUT =<<HERE;
'freebusyUrl\' => 'calFBURL',
HERE
} else {
$OUT =<<HERE;
#freebusy is currently not enabled. To enable - config setprop horde freebusy enabled
HERE
}
}
// For Active Directory servers:
// 'name' => 'displayname',
// 'title' => 'title',
// 'cellPhone' => 'mobile',
// 'department' => 'department',
// 'company' => 'company',
),
'search' => array(
'name',
'email',
'homePhone',
'workPhone',
'cellPhone',
'homeAddress'
),
'strict' => array(
'dn',
),
'approximate' => array(
'cn',
),
// // For Active Directory servers:
// // 'approximate' => array(
// // 'displayname',
// // 'samaccountname',
// // ),
'export' => true,
'browse' => true,
);

View File

@@ -0,0 +1,55 @@
//60LocalLDAPGroups
/**
* A local address book in an LDAP directory. This implements a public
* (shared) address book.
*
* To store distribution lists in the LDAP directory, you'll need to include
* horde/scripts/ldap/horde.schema in your LDAP configuration.
*
* To store freebusy information in the LDAP directory, you'll need to include
* turba/scripts/ldap/rfc2739.schema in your LDAP configuration.
*/
$cfgSources['localldapgroups'] = array(
'disabled' => false,
'title' => _("Local LDAP Groups Address Book"),
'type' => 'ldap',
'params' => array(
'server' => 'localhost',
'port' => 389,
'tls' => false,
{
$OUT .= qq( 'root' => '$basedn',);
}
'sizelimit' => 200,
'dn' => array('cn'),
'objectclass' => array('posixGroup'),
'scope' => 'sub',
'charset' => 'UTF-8',
'checkrequired' => false,
'checkrequired_string' => ' ',
'version' => 3,
),
'map' => array(
'__key' => 'dn',
'__uid' => 'uid',
'name' => 'cn',
'email' => 'mail',
'groupdescription' => 'description',
'groupmembers' => 'memberUid',
),
'search' => array(
'name',
'email',
'groupdescription',
'groupmembers',
),
'strict' => array(
'dn',
),
'approximate' => array(
'cn',
),
'export' => true,
'browse' => true,
);

View File

@@ -0,0 +1,3 @@
//90 Favourites
$cfgSources['favourites']['disabled'] = true;

View File

@@ -0,0 +1,10 @@
// 100TurbaConfPHP
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: 4cd616848fb2e5c81200bf7c65930e9086ec2dcd $
$conf['menu']['import_export'] = true;
$conf['gal']['addressbook'] = 'localldap';
$conf['shares']['source'] = 'localsql';
$conf['comments']['allow'] = true;
$conf['documents']['type'] = 'horde';
$conf['tags']['enabled'] = true;

View File

@@ -0,0 +1,2 @@
// 999Footer
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */