From dba68fcdf2d3e25ad1f3301fcb128edfb3da745b Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 22 Sep 2011 12:14:04 +0000
Subject: [PATCH] Bugfixes in installer and apache plugin.

---
 install/lib/installer_base.lib.php            |  21 +-
 install/lib/update.lib.php                    |  21 +-
 server/conf/squidRewriteRules.py.master       | 196 ------------------
 .../plugins-available/apache2_plugin.inc.php  |  34 +--
 4 files changed, 39 insertions(+), 233 deletions(-)
 delete mode 100644 server/conf/squidRewriteRules.py.master

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index d1fee8a0ad..ef55210316 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -233,17 +233,18 @@ class installer_base {
 		$tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path'];
 		$tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path'];
 		
+		$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
+		$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
+		$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
+		$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
+		$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
+		$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
+		$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
+		$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
+		$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
+		$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
+		
 		if ($conf['nginx']['installed'] == true) {
-			$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
-			$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
-			$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
-			$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
-			$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
-			$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
-			$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
-			$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
-			$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
-			$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
 			$tpl_ini_array['web']['server_type'] = 'nginx';
 			$tpl_ini_array['global']['webserver'] = 'nginx';
 		}
diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index 3f969c3f76..7d2464b07e 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -260,17 +260,18 @@ function updateDbAndIni() {
 	$tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path'];
 	$tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path'];
 	
+	$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
+	$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
+	$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
+	$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
+	$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
+	$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
+	$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
+	$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
+	$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
+	$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
+		
 	if ($conf['nginx']['installed'] == true) {
-		$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
-		$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
-		$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
-		$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
-		$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
-		$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
-		$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
-		$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
-		$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
-		$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
 		$tpl_ini_array['web']['server_type'] = 'nginx';
 		$tpl_ini_array['global']['webserver'] = 'nginx';
 	}
diff --git a/server/conf/squidRewriteRules.py.master b/server/conf/squidRewriteRules.py.master
deleted file mode 100644
index a8a241b9b4..0000000000
--- a/server/conf/squidRewriteRules.py.master
+++ /dev/null
@@ -1,196 +0,0 @@
-"""
-/**********************************************************************
-FILE     : $RCSfile: squidRewriteRules.py,v $
-PURPOSE  : Rule set for icoya redirector
-NOTES    :
-AUTHOR   : Simon Eisenmann
-COPYRIGHT: (c) 2003,2004 by struktur AG
-DATE     : 28JAN2003
-REVISION : $Revision: 1.12 $
-VERSION  : $Id: squidRewriteRules.py,v 1.12 2004/08/06 08:16:19 longsleep Exp $ (Author: $Author: longsleep $)
-
-struktur AG            Phone: +49 711 8966560
-Junghansstr. 5         Fax:   +49 711 89665610
-70469 Stuttgart        email: info@struktur.de
-GERMANY
-
-http://www.struktur.de
-http://www.strukturag.com
-
-**********************************************************************/
-
- Reloadable module allows arbitrary url transformations.
-
-
- Automatic reload of the rules
- +++++++++++++++++++++++++++++++++++
-
- NOTE: use the reload after parameter to auto reload this module
-       after x requests. Use -1 to disable auto reload
-
-
- Logging
- +++++++++++++++++++++++++++++++++++
-
- NOTE: set debug to 1 to enable logging
-       define the logfile in the logfile variable (enter full path)
-
-
-"""
-import re, sys
-
-try:
-    import py
-except ImportError:
-    pass
-
-"""
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-begin of configuration
-"""
-
-# log mode (set to 1 to enable logging)
-debug = 0
-
-# logfile for debugging (only required when debug == 1)
-logfile = "/etc/squid/redirector_class.log"
-
-# set this to -1 to get best performance (no reload)
-reload_after = -1
-
-# define sitemap matching regex mapping
-
-# MODIFY THIS REWRITE RULE AS NEEDED FOR YOUR SITE
-
-rewrites = (
-  
-### HTTP SSL/encrypted webmail rewrite ### You can use this as an example for your ssl virtualhosted website
-
-<tmpl_loop name="squid_rewrite_rules">
-    (r'{tmpl_var name="rewrite_url_src"}', r'{tmpl_var name="rewrite_url_dest"}\1', 'P,L'),
-</tmpl_loop>
-
-  
-
-
-
-)
-
-
-
-"""
-end of configuration
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-"""
-
-compiled_rewrites = None
-
-def log(s):
-    """ Logging facility.
-    """
-    try:
-        f = open(logfile, "a")
-    except IOError:
-        print >> sys.stderr, s
-        return
-    f.write('%s\n' % s)
-    f.flush()
-    f.close()
-
-def init():
-    global compiled_rewrites
-
-    compiled_rewrites = []
-    for rewrite in rewrites:
-        regexp = re.compile(rewrite[0])
-        template = rewrite[1]
-        flags = {}
-        for flag in rewrite[2].split(','):
-            parts = flag.split('=')
-            flag = parts[0]
-            option = None
-            if flag == 'R':
-                if len(parts) > 1:
-                    option = "%s:" % parts[1]
-                else:
-                    option = '302:'
-            flags[flag] = option
-        compiled = (regexp, template, flags)
-        if debug:
-            log('compiled: %s' % str((regexp.pattern, template, flags)))
-        compiled_rewrites.append(compiled)
-    compiled_rewrites = tuple(compiled_rewrites)
-
-def rewrite(url, src_address=''):
-    """ just rewrites urls.
-    """
-
-    if debug:
-        log("args: %s" % str((url, src_address)))
-
-    newurl = None
-    for regexp, template, flags in compiled_rewrites:
-        m = regexp.match(url)
-        if m is not None and template != '-':
-            if debug:
-                log("match.groups ('%s'): %s" % (regexp.pattern, str(m.groups())))
-            url = newurl = "%s%s" % (flags.get('R', ''), m.expand(template))
-            if debug:
-                log('newurl: %s' % newurl)
-            if 'L' in flags:
-                break
-
-    if newurl is not None:
-        if debug:
-            log('finalurl: %s' % newurl)
-        return newurl
-
-    # redirect to something we can match by a squid acl
-    # this special non existing domain should be denied
-    # by squid with a http_reply_access line
-    return "http://denypool/denyme"
-
-def test_foobar_redirection():
-    assert rewrite('http://foobar.com/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://www.foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://www.foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://www.foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    # shouldn't redirect, just rewrite
-    assert not rewrite('http://www.foobar.com/foo/bar').startswith('302:')
-
-def test_foobarbacon_redirection():
-    assert rewrite('http://foobar-bacon.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    # shouldn't redirect, just rewrite
-    assert not rewrite('http://www.foobar-bacon.com/foo/bar').startswith('302:')
-
-def test_virtual_hosting():
-    assert rewrite('http://www.foobar.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/foobarportal/VirtualHostRoot/foo/bar'
-    assert rewrite('http://www.foobar.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/foobarportal/VirtualHostRoot/foo/bar'
-    assert rewrite('http://www.foobar-bacon.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com/foobarbacon/VirtualHostRoot/foo/bar'
-    assert rewrite('http://www.foobar-bacon.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com:8088/foobarbacon/VirtualHostRoot/foo/bar'
-
-def test_zmi():
-    assert rewrite('http://www.foobar.com/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/VirtualHostRoot/_vh_--zmi--/foo/bar'
-    assert rewrite('http://www.foobar.com:8088/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/VirtualHostRoot/_vh_--zmi--/foo/bar'
-
-def test_repos():
-    assert rewrite('http://www.foobar.com/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
-    assert rewrite('http://www.foobar.com:8088/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
-
-if debug:
-    log("reloading user redirector module")
-init()
-if debug:
-    log("reloaded user redirector module")
-
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 51c6a66c63..7a66b811cd 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -289,6 +289,23 @@ class apache2_plugin {
 			$app->log('Websites cannot be owned by the root user or group.',LOGLEVEL_WARN);
 			return 0;
 		}
+		
+		// Create group and user, if not exist
+		$app->uses('system');
+
+		$groupname = escapeshellcmd($data['new']['system_group']);
+		if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) {
+			exec('groupadd '.$groupname);
+			if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname);
+			$app->log('Adding the group: '.$groupname,LOGLEVEL_DEBUG);
+		}
+
+		$username = escapeshellcmd($data['new']['system_user']);
+		if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) {
+			exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
+			if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
+			$app->log('Adding the user: '.$username,LOGLEVEL_DEBUG);
+		}
 
 		//* If the client of the site has been changed, we have a change of the document root
 		if($this->action == 'update' && $data['new']['document_root'] != $data['old']['document_root']) {
@@ -511,23 +528,6 @@ class apache2_plugin {
 			exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path);
 		}  // end copy error docs
 
-		// Create group and user, if not exist
-		$app->uses('system');
-
-		$groupname = escapeshellcmd($data['new']['system_group']);
-		if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) {
-			exec('groupadd '.$groupname);
-			if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname);
-			$app->log('Adding the group: '.$groupname,LOGLEVEL_DEBUG);
-		}
-
-		$username = escapeshellcmd($data['new']['system_user']);
-		if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) {
-			exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
-			if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
-			$app->log('Adding the user: '.$username,LOGLEVEL_DEBUG);
-		}
-
 		// Set the quota for the user
 		if($username != '' && $app->system->is_user($username)) {
 			if($data['new']['hd_quota'] > 0) {
-- 
GitLab