From 79c225f27ced11e7c1932a1ea69c9cb145927ec2 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 04 May 2009 10:23:28 -0400
Subject: [PATCH] Fixed: FS#723 - Unable to create email catch-alls even when an account has permissions to do so.
---
install/lib/installer_base.lib.php | 38 ++++++++++++++++++++++++++------------
1 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 77d0c43..eb5705a 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -204,6 +204,7 @@
$tpl_ini_array['web']['vhost_conf_enabled_dir'] = $conf['apache']['vhost_conf_enabled_dir'];
$tpl_ini_array['jailkit']['jailkit_chroot_app_programs'] = $conf['jailkit']['jailkit_chroot_app_programs'];
$tpl_ini_array['fastcgi']['fastcgi_phpini_path'] = $conf['fastcgi']['fastcgi_phpini_path'];
+ $tpl_ini_array['fastcgi']['fastcgi_starter_path'] = $conf['fastcgi']['fastcgi_starter_path'];
$tpl_ini_array['server']['hostname'] = $conf['hostname'];
$tpl_ini_array['server']['ip_address'] = @gethostbyname($conf['hostname']);
$tpl_ini_array['web']['website_basedir'] = $conf['web']['website_basedir'];
@@ -246,10 +247,13 @@
$this->dbmaster->query("DELETE FROM mysql.db WHERE Db = '".$conf['mysql']['master_database']."' AND Host = '".$from_ip."';");
$this->dbmaster->query('FLUSH PRIVILEGES;');
- //* Create the ISPConfig database user in the local database
- /*$query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['master_database'].".* "
+ //* Create the ISPConfig database user in the remote database
+ $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['master_database'].".* "
."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$from_host."' "
- ."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";*/
+ ."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
+ if(!$this->dbmaster->query($query)) {
+ $this->error('Unable to create database user in master database: '.$conf['mysql']['master_ispconfig_user'].' Error: '.$this->dbmaster->errorMessage);
+ }
$query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['master_database'].".* "
."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$from_ip."' "
."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
@@ -362,7 +366,7 @@
$postconf_commands = array (
'myhostname = '.$conf['hostname'],
'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain',
- 'mynetworks = 127.0.0.0/8',
+ 'mynetworks = 127.0.0.0/8 [::1]/128',
'virtual_alias_domains =',
'virtual_alias_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_forwardings.cf, mysql:'.$config_dir.'/mysql-virtual_email2email.cf',
'virtual_mailbox_domains = proxy:mysql:'.$config_dir.'/mysql-virtual_domains.cf',
@@ -438,7 +442,7 @@
$configfile = $config_dir.'/master.cf';
$content = rf($configfile);
$content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}',
- 'flags=R user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d ${recipient} ${extension} ${recipient} ${user} ${nexthop} ${sender}',
+ 'flags=R user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}',
$content);
wf($configfile, $content);
@@ -1026,10 +1030,16 @@
}
- //* Install the SVN update script
- exec('cp ../helper_scripts/update_from_svn.sh /usr/local/bin/ispconfig_update_from_svn.sh');
- exec('chown root /usr/local/bin/ispconfig_update_from_svn.sh');
- exec('chmod 700 /usr/local/bin/ispconfig_update_from_svn.sh');
+ //* Install the update script
+ if(is_file('/usr/local/bin/ispconfig_update_from_svn.sh')) unlink('/usr/local/bin/ispconfig_update_from_svn.sh');
+ exec('chown root /usr/local/ispconfig/server/scripts/update_from_svn.sh');
+ exec('chmod 700 /usr/local/ispconfig/server/scripts/update_from_svn.sh');
+ exec('chown root /usr/local/ispconfig/server/scripts/update_from_tgz.sh');
+ exec('chmod 700 /usr/local/ispconfig/server/scripts/update_from_tgz.sh');
+ exec('chown root /usr/local/ispconfig/server/scripts/ispconfig_update.sh');
+ exec('chmod 700 /usr/local/ispconfig/server/scripts/ispconfig_update.sh');
+ if(!is_link('/usr/local/bin/ispconfig_update_from_svn.sh')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_update.sh /usr/local/bin/ispconfig_update_from_svn.sh');
+ if(!is_link('/usr/local/bin/ispconfig_update.sh')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_update.sh /usr/local/bin/ispconfig_update.sh');
//* Make the logs readable for the ispconfig user
if(@is_file('/var/log/mail.log')) exec('chmod +r /var/log/mail.log');
@@ -1042,6 +1052,10 @@
//* Create the ispconfig log directory
if(!is_dir('/var/log/ispconfig')) mkdir('/var/log/ispconfig');
if(!is_file('/var/log/ispconfig/ispconfig.log')) exec('touch /var/log/ispconfig/ispconfig.log');
+
+ exec('mv /usr/local/ispconfig/server/scripts/run-getmail.sh /usr/local/bin/run-getmail.sh');
+ exec('chown getmail /usr/local/bin/run-getmail.sh');
+ exec('chmod 744 /usr/local/bin/run-getmail.sh');
}
@@ -1103,12 +1117,12 @@
$existing_cron_jobs = file('crontab.txt');
$cron_jobs = array(
- '*/5 * * * * '.$cf['program'].' -n -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf > /dev/null 2>> /var/log/ispconfig/cron.log'
+ '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /var/log/ispconfig/cron.log'
);
// remove existing ispconfig cronjobs, in case the syntax has changed
- foreach($cron_jobs as $key => $val) {
- if(stristr($val,$cf['program'])) unset($existing_cron_jobs[$key]);
+ foreach($existing_cron_jobs as $key => $val) {
+ if(stristr($val,'getmail')) unset($existing_cron_jobs[$key]);
}
foreach($cron_jobs as $cron_job) {
--
Gitblit v1.9.1