From 26c0fc98b880cf148ab348aefef85ac9b087597c Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 07 Jun 2012 06:02:10 -0400
Subject: [PATCH] Merged revisions 3100-3175 from stable branch.

---
 install/tpl/config.inc.php.master                         |    2 
 interface/web/sites/lib/lang/ar_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/se_webdav_user.lng           |   30 
 install/update.php                                        |    2 
 interface/web/sites/lib/lang/se_ftp_user.lng              |   56 +-
 interface/web/sites/lib/lang/es_webdav_user.lng           |   30 
 server/conf/vhost.conf.master                             |    1 
 install/lib/installer_base.lib.php                        |   19 
 interface/web/vm/ajax_get_ip.php                          |   55 ++
 install/sql/ispconfig3.sql                                |    2 
 interface/web/sites/lib/lang/br_webdav_user.lng           |   30 
 server/plugins-available/apache2_plugin.inc.php           |   25 +
 interface/lib/classes/remoting.inc.php                    |    1 
 interface/lib/classes/remoting_lib.inc.php                |   16 
 interface/web/sites/lib/lang/pt_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/sk_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/en_shell_user.lng            |   47 +-
 install/tpl/sasl_smtpd2.conf.master                       |   10 
 interface/web/tools/resync.php                            |   17 
 interface/web/vm/form/openvz_vm.tform.php                 |    5 
 interface/web/admin/form/system_config.tform.php          |    2 
 interface/web/sites/lib/lang/tr_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/en_webdav_user.lng           |   31 
 interface/lib/classes/functions.inc.php                   |    2 
 interface/web/sites/lib/lang/it_ftp_user.lng              |   56 +-
 interface/web/vm/templates/openvz_vm_edit.htm             |    2 
 interface/web/sites/lib/lang/ar_shell_user.lng            |   46 +-
 server/conf/sieve_filter.master                           |    1 
 server/plugins-available/mailman_plugin.inc.php           |   12 
 install/tpl/server.ini.master                             |    2 
 interface/web/sites/lib/lang/fi_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/cz_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/ro_webdav_user.lng           |   30 
 server/plugins-available/mail_plugin.inc.php              |   10 
 install/tpl/apache_ispconfig.conf.master                  |    2 
 interface/lib/classes/listform.inc.php                    |    6 
 server/cron_daily.php                                     |   38 +
 interface/web/sites/lib/lang/ar_ftp_user.lng              |   56 +-
 interface/web/sites/lib/lang/hu_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/ru_webdav_user.lng           |   30 
 server/conf/apache_ispconfig.conf.master                  |    2 
 server/plugins-available/shelluser_jailkit_plugin.inc.php |    4 
 interface/web/vm/openvz_vm_edit.php                       |   21 +
 interface/lib/classes/tform.inc.php                       |    4 
 install/dist/lib/opensuse.lib.php                         |    4 
 interface/web/sites/lib/lang/it_shell_user.lng            |   46 +-
 install/install.php                                       |    4 
 interface/web/sites/tools.inc.php                         |    6 
 interface/web/sites/lib/lang/se_shell_user.lng            |   46 +-
 interface/web/sites/lib/lang/ja_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/bg_webdav_user.lng           |   30 
 interface/web/sites/lib/lang/it_webdav_user.lng           |   30 
 52 files changed, 643 insertions(+), 468 deletions(-)

diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 2dfcd70..248cf61 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -542,6 +542,10 @@
 		replaceLine('/etc/suphp.conf','umask=0077','umask=0022',0);
 		//}
 		
+		if(!file_exists('/srv/www/cgi-bin/php5') && file_exists('/srv/www/cgi-bin/php')) {
+			symlink('/srv/www/cgi-bin/php','/srv/www/cgi-bin/php5');
+		}
+		
 		// Sites enabled and available dirs
 		exec('mkdir -p '.$conf['apache']['vhost_conf_enabled_dir']);
 		exec('mkdir -p '.$conf['apache']['vhost_conf_dir']);
diff --git a/install/install.php b/install/install.php
index 3f86370..c9f3794 100644
--- a/install/install.php
+++ b/install/install.php
@@ -315,7 +315,7 @@
 	if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) 				system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
 	if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) 		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
 	if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart');
-	if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart');
+	if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) 		system('nohup '.$conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart >/dev/null 2>&1 &');
 	if($conf['apache']['installed'] == true && $conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) 				system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
 	//* Reload is enough for nginx
 	if($conf['nginx']['installed'] == true){
@@ -453,7 +453,7 @@
 		if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) 				system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
 		if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) 		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
 		if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart');
-		if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart');
+		if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) 		system('nohup '.$conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart >/dev/null 2>&1 &');
 	}
 	
 	//** Configure Jailkit
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index e105def..16b64c3 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -775,9 +775,22 @@
 
 	public function configure_saslauthd() {
 		global $conf;
+		
+		//* Get saslsauthd version
+		exec('saslauthd -v 2>&1',$out);
+		$parts = explode(' ',$out[0]);
+		$saslversion = $parts[1];
+		unset($parts);
+		unset($out);
 
-
-		$configfile = 'sasl_smtpd.conf';
+		if(version_compare($saslversion , '2.1.23') > 0) {
+			//* Configfile for saslauthd versions 2.1.24 and newer
+			$configfile = 'sasl_smtpd2.conf';
+		} else {
+			//* Configfile for saslauthd versions up to 2.1.23
+			$configfile = 'sasl_smtpd.conf';
+		}
+		
 		if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf')) copy($conf['postfix']['config_dir'].'/sasl/smtpd.conf',$conf['postfix']['config_dir'].'/sasl/smtpd.conf~');
 		if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf~')) chmod($conf['postfix']['config_dir'].'/sasl/smtpd.conf~', 0400);
 		$content = rf('tpl/'.$configfile.'.master');
@@ -1417,7 +1430,7 @@
 			$content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
 			$content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
 			$content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
-			$content = str_replace('{mysql_server_ip}',$conf['mysql']['host'],$content);
+			$content = str_replace('{mysql_server_ip}',$conf['mysql']['ip'],$content);
 		}
 		wf($conf['vlogger']['config_dir'].'/'.$configfile,$content);
 		chmod($conf['vlogger']['config_dir'].'/'.$configfile, 0600);
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 91a5212..f4e3f28 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -2065,6 +2065,6 @@
 -- Dumping data for table `sys_config`
 --
 
-INSERT INTO sys_config VALUES ('1','db','db_version','3.0.4.4');
+INSERT INTO sys_config VALUES ('1','db','db_version','3.0.4.5');
 
 SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file
diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master
index fe9e54a..aaa9e0d 100644
--- a/install/tpl/apache_ispconfig.conf.master
+++ b/install/tpl/apache_ispconfig.conf.master
@@ -5,7 +5,7 @@
 ################################################
 
 LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig
-CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" -d \"/etc/vlogger-dbi.conf\" /var/log/ispconfig/httpd" combined_ispconfig
+CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig
 
 <Directory /var/www/clients>
     AllowOverride None
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index 7fa30bf..cc6933f 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -56,7 +56,7 @@
 
 //** Application
 define('ISPC_APP_TITLE', 'ISPConfig');
-define('ISPC_APP_VERSION', '3.0.4.4');
+define('ISPC_APP_VERSION', '3.0.4.5');
 define('DEVSYSTEM', 0);
 
 
diff --git a/install/tpl/sasl_smtpd2.conf.master b/install/tpl/sasl_smtpd2.conf.master
new file mode 100644
index 0000000..f24b998
--- /dev/null
+++ b/install/tpl/sasl_smtpd2.conf.master
@@ -0,0 +1,10 @@
+pwcheck_method: saslauthd
+mech_list: plain login
+allow_plaintext: true
+auxprop_plugin: sql
+sql_engine: mysql
+sql_hostnames: {mysql_server_ip}
+sql_user: {mysql_server_ispconfig_user}
+sql_passwd: {mysql_server_ispconfig_password}
+sql_database: {mysql_server_database}
+sql_select: select password from mail_user where login = '%u@%r' and postfix = 'y'
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index ac4d1a0..008cfc9 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -54,7 +54,7 @@
 apps_vhost_port=8081
 apps_vhost_ip=_default_
 apps_vhost_servername=
-php_open_basedir=[website_path]/web:[website_path]/tmp:/var/www/[website_domain]/web:/srv/www/[website_domain]/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin
+php_open_basedir=[website_path]/web:[website_path]/tmp:/var/www/[website_domain]/web:/srv/www/[website_domain]/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/usr/share/php
 htaccess_allow_override=All
 awstats_conf_dir=/etc/awstats
 awstats_data_dir=/var/lib/awstats
diff --git a/install/update.php b/install/update.php
index 32b1ae5..aa750ad 100644
--- a/install/update.php
+++ b/install/update.php
@@ -402,7 +402,7 @@
 		if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) 				system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
 		if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) 		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
 		if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart');
-		if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart');
+		if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) 		system('nohup '.$conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart >/dev/null 2>&1 &');
 	}
 	if($conf['services']['web']) {
 		if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) 				system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php
index dc21608..0f29003 100644
--- a/interface/lib/classes/functions.inc.php
+++ b/interface/lib/classes/functions.inc.php
@@ -101,7 +101,7 @@
 	}
 	
 	public function get_ispconfig_url() {
-		$url = (stristr($_SERVER['SERVER_PROTOCOL'],'HTTPS'))?'https':'http';
+		$url = (stristr($_SERVER['SERVER_PROTOCOL'],'HTTPS') || stristr($_SERVER['HTTPS'],'on'))?'https':'http';
 		$url .= '://'.$_SERVER['SERVER_NAME'];
 		if($_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) {
 			$url .= ':'.$_SERVER['SERVER_PORT'];
diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php
index 4d836f3..96c39f1 100644
--- a/interface/lib/classes/listform.inc.php
+++ b/interface/lib/classes/listform.inc.php
@@ -195,13 +195,13 @@
         
         //* Add Global Limit from selectbox
         if(!empty($_POST['search_limit']) AND intval($_POST['search_limit'])){
-	  $_SESSION['search']['limit'] = $_POST['search_limit'];
-	}
+			$_SESSION['search']['limit'] = intval($_POST['search_limit']);
+		}
 
         //* Get Config variables
         $list_name          = $this->listDef['name'];
         $search_prefix      = $this->listDef['search_prefix'];
-        $records_per_page   = (empty($_SESSION['search']['limit']) ? $this->listDef['records_per_page'] : $_SESSION['search']['limit']) ;
+        $records_per_page   = (empty($_SESSION['search']['limit']) ? intval($this->listDef['records_per_page']) : intval($_SESSION['search']['limit'])) ;
         $table              = $this->listDef['table'];
 
         //* set PAGE to zero, if in session not set
diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index ca1e001..743b763 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -2462,6 +2462,7 @@
 		
 		//* Get the SQL query
 		$sql = $app->remoting_lib->getSQL($params,'UPDATE',$primary_id);
+		// $this->server->fault('debug', $sql);
 		if($app->remoting_lib->errorMessage != '') {
 			$this->server->fault('data_processing_error', $app->remoting_lib->errorMessage);
 			return false;
diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index 9e19548..7a70632 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -630,17 +630,19 @@
                                                         $sql_insert_val .= "'".$record[$key]."', ";
                                                 }
                                         } else {
+										
                                                 if($field['formtype'] == 'PASSWORD') {
-														if($field['encryption'] == 'CRYPT') {
+														if(isset($field['encryption']) && $field['encryption'] == 'CRYPT') {
                                                                 $record[$key] = $app->auth->crypt_password(stripslashes($record[$key]));
-                                                        } elseif ($field['encryption'] == 'MYSQL') {
-																$sql_insert_val .= "PASSWORD('".$app->db->quote($record[$key])."'), ";
-														} elseif ($field['encryption'] == 'CLEARTEXT') {
-																$sql_insert_val .= "'".$app->db->quote($record[$key])."', ";
+																$sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
+														} elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') {
+																$sql_update .= "`$key` = PASSWORD('".$app->db->quote($record[$key])."'), ";
+														} elseif (isset($field['encryption']) && $field['encryption'] == 'CLEARTEXT') {
+																$sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
                                                         } else {
-                                                                $record[$key] = md5($record[$key]);
+                                                                $record[$key] = md5(stripslashes($record[$key]));
+																$sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
                                                         }
-                                                        $sql_update .= "`$key` = '".$record[$key]."', ";
                                                 } elseif ($field['formtype'] == 'CHECKBOX') {
 														if($record[$key] == '') {
 															// if a checkbox is not set, we set it to the unchecked value
diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index b469e2e..dde9052 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -918,7 +918,7 @@
                 $this->action = $action;
                 $this->primary_id = $primary_id;
 
-                $record = $this->encode($record,$tab);
+                $record = $this->encode($record,$tab,true);
                 $sql_insert_key = '';
                 $sql_insert_val = '';
                 $sql_update = '';
@@ -1041,7 +1041,7 @@
 					//* return a empty string if there is nothing to update
 					if(trim($sql_update) == '') $sql = '';
                 }
-                
+
                 return $sql;
         }
 
diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php
index 121bca6..ef9603b 100644
--- a/interface/web/admin/form/system_config.tform.php
+++ b/interface/web/admin/form/system_config.tform.php
@@ -128,7 +128,7 @@
 			'datatype'	=> 'VARCHAR',
 			'formtype'	=> 'TEXT',
 			'validators'	=> array ( 	0 => array (	'type'	=> 'REGEX',
-														'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/',
+														'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/',
 														'errmsg'=> 'phpmyadmin_url_error_regex'),
 										),
 			'default'	=> '',
diff --git a/interface/web/sites/lib/lang/ar_ftp_user.lng b/interface/web/sites/lib/lang/ar_ftp_user.lng
index f0f2a6e..08a7519 100644
--- a/interface/web/sites/lib/lang/ar_ftp_user.lng
+++ b/interface/web/sites/lib/lang/ar_ftp_user.lng
@@ -1,30 +1,30 @@
 <?php
-$wb['uid_txt'] = 'UID';
-$wb['gid_txt'] = 'GID';
-$wb['dir_txt'] = 'Directory';
-$wb['quota_files_txt'] = 'Filequota';
-$wb['quota_files_unity_txt'] = 'Files';
-$wb['ul_ratio_txt'] = 'Uploadratio';
-$wb['dl_ratio_txt'] = 'Downloadratio';
-$wb['ul_bandwidth_txt'] = 'Uploadbandwidth';
-$wb['dl_bandwidth_txt'] = 'Downloadbandwidth';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['quota_size_txt'] = 'Harddisk-Quota';
-$wb['active_txt'] = 'Active';
-$wb['limit_ftp_user_txt'] = 'The max. number of FTP users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['quota_size_error_empty'] = 'Quota is empty.';
-$wb['uid_error_empty'] = 'GID empty.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['directory_error_notinweb'] = 'Directory not inside of web root directory.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['quota_size_error_regex'] = 'Quota: enter a -1 for unlimited or a number > 0';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['uid_txt'] = "UID";
+$wb['gid_txt'] = "GID";
+$wb['dir_txt'] = "Directory";
+$wb['quota_files_txt'] = "Filequota";
+$wb['quota_files_unity_txt'] = "Files";
+$wb['ul_ratio_txt'] = "Uploadratio";
+$wb['dl_ratio_txt'] = "Downloadratio";
+$wb['ul_bandwidth_txt'] = "Uploadbandwidth";
+$wb['dl_bandwidth_txt'] = "Downloadbandwidth";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['quota_size_txt'] = "Harddisk-Quota";
+$wb['active_txt'] = "Active";
+$wb['limit_ftp_user_txt'] = "The max. number of FTP users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['quota_size_error_empty'] = "Quota is empty.";
+$wb['uid_error_empty'] = "GID empty.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['directory_error_notinweb'] = "Directory not inside of web root directory.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['quota_size_error_regex'] = "Quota: enter a -1 for unlimited or a number > 0";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/ar_shell_user.lng b/interface/web/sites/lib/lang/ar_shell_user.lng
index 825de79..0546262 100644
--- a/interface/web/sites/lib/lang/ar_shell_user.lng
+++ b/interface/web/sites/lib/lang/ar_shell_user.lng
@@ -1,25 +1,25 @@
 <?php
-$wb['shell_txt'] = 'Shell';
-$wb['dir_txt'] = 'Dir';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Site';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['chroot_txt'] = 'Chroot Shell';
-$wb['quota_size_txt'] = 'Quota';
-$wb['active_txt'] = 'Active';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['quota_size_error_empty'] = 'Quota is empty.';
-$wb['uid_error_empty'] = 'GID empty.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['limit_shell_user_txt'] = 'The max number of shell users is reached.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['puser_txt'] = 'Web Username';
-$wb['pgroup_txt'] = 'Web Group';
-$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['shell_txt'] = "Shell";
+$wb['dir_txt'] = "Dir";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Site";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['chroot_txt'] = "Chroot Shell";
+$wb['quota_size_txt'] = "Quota";
+$wb['active_txt'] = "Active";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['quota_size_error_empty'] = "Quota is empty.";
+$wb['uid_error_empty'] = "GID empty.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['limit_shell_user_txt'] = "The max number of shell users is reached.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['puser_txt'] = "Web Username";
+$wb['pgroup_txt'] = "Web Group";
+$wb['ssh_rsa_txt'] = "SSH-RSA Public Key (for key-based logins)";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/ar_webdav_user.lng b/interface/web/sites/lib/lang/ar_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/ar_webdav_user.lng
+++ b/interface/web/sites/lib/lang/ar_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/bg_webdav_user.lng b/interface/web/sites/lib/lang/bg_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/bg_webdav_user.lng
+++ b/interface/web/sites/lib/lang/bg_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/br_webdav_user.lng b/interface/web/sites/lib/lang/br_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/br_webdav_user.lng
+++ b/interface/web/sites/lib/lang/br_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/cz_webdav_user.lng b/interface/web/sites/lib/lang/cz_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/en_shell_user.lng b/interface/web/sites/lib/lang/en_shell_user.lng
index 296019a..ef0aba0 100644
--- a/interface/web/sites/lib/lang/en_shell_user.lng
+++ b/interface/web/sites/lib/lang/en_shell_user.lng
@@ -1,28 +1,27 @@
 <?php
-$wb["puser_txt"] = 'Web Username';
-$wb["pgroup_txt"] = 'Web Group';
-$wb["shell_txt"] = 'Shell';
-$wb["dir_txt"] = 'Dir';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Site';
-$wb["username_txt"] = 'Username';
-$wb["password_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["chroot_txt"] = 'Chroot Shell';
-$wb["quota_size_txt"] = 'Quota';
-$wb["active_txt"] = 'Active';
-$wb["username_error_empty"] = 'Username is empty.';
-$wb["username_error_unique"] = 'The username must be unique.';
-$wb["username_error_regex"] = 'The username contains charachters that are not allowed.';
-$wb["quota_size_error_empty"] = 'Quota is empty.';
-$wb["uid_error_empty"] = 'UID empty.';
-$wb["uid_error_empty"] = 'GID empty.';
-$wb["directory_error_empty"] = 'Directory empty.';
-$wb["limit_shell_user_txt"] = 'The max number of shell users is reached.';
-$wb["parent_domain_id_error_empty"] = 'No website selected.';
-$wb["ssh_rsa_txt"] = 'SSH-RSA Public Key (for key-based logins)';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['puser_txt'] = "Web Username";
+$wb['pgroup_txt'] = "Web Group";
+$wb['shell_txt'] = "Shell";
+$wb['dir_txt'] = "Dir";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Site";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['chroot_txt'] = "Chroot Shell";
+$wb['quota_size_txt'] = "Quota";
+$wb['active_txt'] = "Active";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['quota_size_error_empty'] = "Quota is empty.";
+$wb['uid_error_empty'] = "GID empty.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['limit_shell_user_txt'] = "The max number of shell users is reached.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['ssh_rsa_txt'] = "SSH-RSA Public Key (for key-based logins)";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
diff --git a/interface/web/sites/lib/lang/en_webdav_user.lng b/interface/web/sites/lib/lang/en_webdav_user.lng
index 099226c..3987b0b 100644
--- a/interface/web/sites/lib/lang/en_webdav_user.lng
+++ b/interface/web/sites/lib/lang/en_webdav_user.lng
@@ -1,20 +1,19 @@
 <?php
-$wb["dir_txt"] = 'Directory';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Website';
-$wb["username_txt"] = 'Username';
-$wb["password_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["active_txt"] = 'Active';
-$wb["limit_webdav_user_txt"] = 'The max. number of webdav users for your account is reached.';
-$wb["username_error_empty"] = 'Username is empty.';
-$wb["username_error_unique"] = 'The username must be unique.';
-$wb["username_error_regex"] = 'The username contains charachters that are not allowed.';
-$wb["directory_error_empty"] = 'Directory empty.';
-$wb["parent_domain_id_error_empty"] = 'No website selected.';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
diff --git a/interface/web/sites/lib/lang/es_webdav_user.lng b/interface/web/sites/lib/lang/es_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/es_webdav_user.lng
+++ b/interface/web/sites/lib/lang/es_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/fi_webdav_user.lng b/interface/web/sites/lib/lang/fi_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/fi_webdav_user.lng
+++ b/interface/web/sites/lib/lang/fi_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/hu_webdav_user.lng b/interface/web/sites/lib/lang/hu_webdav_user.lng
index f1538a1..218f9c7 100644
--- a/interface/web/sites/lib/lang/hu_webdav_user.lng
+++ b/interface/web/sites/lib/lang/hu_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Könyvtár';
-$wb['server_id_txt'] = 'Szerver';
-$wb['parent_domain_id_txt'] = 'Webhely';
-$wb['username_txt'] = 'Felhasználónév';
-$wb['password_txt'] = 'Jelszó';
-$wb['password_strength_txt'] = 'Jelszó erősségee';
-$wb['active_txt'] = 'Aktív';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'A Felhasználónév üres.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Könyvtár";
+$wb['server_id_txt'] = "Szerver";
+$wb['parent_domain_id_txt'] = "Webhely";
+$wb['username_txt'] = "Felhasználónév";
+$wb['password_txt'] = "Jelszó";
+$wb['password_strength_txt'] = "Jelszó erősségee";
+$wb['active_txt'] = "Aktív";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "A Felhasználónév üres.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/it_ftp_user.lng b/interface/web/sites/lib/lang/it_ftp_user.lng
index 9ef19c7..97036ea 100644
--- a/interface/web/sites/lib/lang/it_ftp_user.lng
+++ b/interface/web/sites/lib/lang/it_ftp_user.lng
@@ -1,30 +1,30 @@
 <?php
-$wb['uid_txt'] = 'UID';
-$wb['gid_txt'] = 'GID';
-$wb['dir_txt'] = 'Cartella';
-$wb['quota_files_txt'] = 'Filequota';
-$wb['ul_ratio_txt'] = 'Uploadratio';
-$wb['dl_ratio_txt'] = 'Downloadratio';
-$wb['ul_bandwidth_txt'] = 'Banda Upload';
-$wb['dl_bandwidth_txt'] = 'Banda Download';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Sito';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['quota_size_txt'] = 'Harddisk-Quota';
-$wb['active_txt'] = 'Attivo';
-$wb['limit_ftp_user_txt'] = 'The max. number of FTP users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['quota_size_error_empty'] = 'Quota is empty.';
-$wb['uid_error_empty'] = 'GID empty.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['quota_files_unity_txt'] = 'Files';
-$wb['directory_error_notinweb'] = 'Directory not inside of web root directory.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['quota_size_error_regex'] = 'Quota: enter a -1 for unlimited or a number > 0';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['uid_txt'] = "UID";
+$wb['gid_txt'] = "GID";
+$wb['dir_txt'] = "Cartella";
+$wb['quota_files_txt'] = "Filequota";
+$wb['ul_ratio_txt'] = "Uploadratio";
+$wb['dl_ratio_txt'] = "Downloadratio";
+$wb['ul_bandwidth_txt'] = "Banda Upload";
+$wb['dl_bandwidth_txt'] = "Banda Download";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Sito";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['quota_size_txt'] = "Harddisk-Quota";
+$wb['active_txt'] = "Attivo";
+$wb['limit_ftp_user_txt'] = "The max. number of FTP users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['quota_size_error_empty'] = "Quota is empty.";
+$wb['uid_error_empty'] = "GID empty.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['quota_files_unity_txt'] = "Files";
+$wb['directory_error_notinweb'] = "Directory not inside of web root directory.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['quota_size_error_regex'] = "Quota: enter a -1 for unlimited or a number > 0";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/it_shell_user.lng b/interface/web/sites/lib/lang/it_shell_user.lng
index 825de79..0546262 100644
--- a/interface/web/sites/lib/lang/it_shell_user.lng
+++ b/interface/web/sites/lib/lang/it_shell_user.lng
@@ -1,25 +1,25 @@
 <?php
-$wb['shell_txt'] = 'Shell';
-$wb['dir_txt'] = 'Dir';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Site';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['chroot_txt'] = 'Chroot Shell';
-$wb['quota_size_txt'] = 'Quota';
-$wb['active_txt'] = 'Active';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['quota_size_error_empty'] = 'Quota is empty.';
-$wb['uid_error_empty'] = 'GID empty.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['limit_shell_user_txt'] = 'The max number of shell users is reached.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['puser_txt'] = 'Web Username';
-$wb['pgroup_txt'] = 'Web Group';
-$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['shell_txt'] = "Shell";
+$wb['dir_txt'] = "Dir";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Site";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['chroot_txt'] = "Chroot Shell";
+$wb['quota_size_txt'] = "Quota";
+$wb['active_txt'] = "Active";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['quota_size_error_empty'] = "Quota is empty.";
+$wb['uid_error_empty'] = "GID empty.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['limit_shell_user_txt'] = "The max number of shell users is reached.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['puser_txt'] = "Web Username";
+$wb['pgroup_txt'] = "Web Group";
+$wb['ssh_rsa_txt'] = "SSH-RSA Public Key (for key-based logins)";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/it_webdav_user.lng b/interface/web/sites/lib/lang/it_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/it_webdav_user.lng
+++ b/interface/web/sites/lib/lang/it_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/ja_webdav_user.lng b/interface/web/sites/lib/lang/ja_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/ja_webdav_user.lng
+++ b/interface/web/sites/lib/lang/ja_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/pt_webdav_user.lng b/interface/web/sites/lib/lang/pt_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/pt_webdav_user.lng
+++ b/interface/web/sites/lib/lang/pt_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/ro_webdav_user.lng b/interface/web/sites/lib/lang/ro_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/ro_webdav_user.lng
+++ b/interface/web/sites/lib/lang/ro_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/ru_webdav_user.lng b/interface/web/sites/lib/lang/ru_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/ru_webdav_user.lng
+++ b/interface/web/sites/lib/lang/ru_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/se_ftp_user.lng b/interface/web/sites/lib/lang/se_ftp_user.lng
index 2d56398..fb183e8 100644
--- a/interface/web/sites/lib/lang/se_ftp_user.lng
+++ b/interface/web/sites/lib/lang/se_ftp_user.lng
@@ -1,30 +1,30 @@
 <?php
-$wb['uid_txt'] = 'UID';
-$wb['gid_txt'] = 'GID';
-$wb['dir_txt'] = 'Directory';
-$wb['quota_files_txt'] = 'Filequota';
-$wb['ul_ratio_txt'] = 'Uploadratio';
-$wb['dl_ratio_txt'] = 'Downloadratio';
-$wb['ul_bandwidth_txt'] = 'Uploadbandwidth';
-$wb['dl_bandwidth_txt'] = 'Downloadbandwidth';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['quota_size_txt'] = 'Harddisk-Quota';
-$wb['active_txt'] = 'Active';
-$wb['limit_ftp_user_txt'] = 'The max. number of FTP users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['quota_size_error_empty'] = 'Quota is empty.';
-$wb['uid_error_empty'] = 'GID empty.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['quota_files_unity_txt'] = 'Files';
-$wb['directory_error_notinweb'] = 'Directory not inside of web root directory.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['quota_size_error_regex'] = 'Quota: enter a -1 for unlimited or a number > 0';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['uid_txt'] = "UID";
+$wb['gid_txt'] = "GID";
+$wb['dir_txt'] = "Directory";
+$wb['quota_files_txt'] = "Filequota";
+$wb['ul_ratio_txt'] = "Uploadratio";
+$wb['dl_ratio_txt'] = "Downloadratio";
+$wb['ul_bandwidth_txt'] = "Uploadbandwidth";
+$wb['dl_bandwidth_txt'] = "Downloadbandwidth";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['quota_size_txt'] = "Harddisk-Quota";
+$wb['active_txt'] = "Active";
+$wb['limit_ftp_user_txt'] = "The max. number of FTP users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['quota_size_error_empty'] = "Quota is empty.";
+$wb['uid_error_empty'] = "GID empty.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['quota_files_unity_txt'] = "Files";
+$wb['directory_error_notinweb'] = "Directory not inside of web root directory.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['quota_size_error_regex'] = "Quota: enter a -1 for unlimited or a number > 0";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/se_shell_user.lng b/interface/web/sites/lib/lang/se_shell_user.lng
index 825de79..0546262 100644
--- a/interface/web/sites/lib/lang/se_shell_user.lng
+++ b/interface/web/sites/lib/lang/se_shell_user.lng
@@ -1,25 +1,25 @@
 <?php
-$wb['shell_txt'] = 'Shell';
-$wb['dir_txt'] = 'Dir';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Site';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['chroot_txt'] = 'Chroot Shell';
-$wb['quota_size_txt'] = 'Quota';
-$wb['active_txt'] = 'Active';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['quota_size_error_empty'] = 'Quota is empty.';
-$wb['uid_error_empty'] = 'GID empty.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['limit_shell_user_txt'] = 'The max number of shell users is reached.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['puser_txt'] = 'Web Username';
-$wb['pgroup_txt'] = 'Web Group';
-$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['shell_txt'] = "Shell";
+$wb['dir_txt'] = "Dir";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Site";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['chroot_txt'] = "Chroot Shell";
+$wb['quota_size_txt'] = "Quota";
+$wb['active_txt'] = "Active";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['quota_size_error_empty'] = "Quota is empty.";
+$wb['uid_error_empty'] = "GID empty.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['limit_shell_user_txt'] = "The max number of shell users is reached.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['puser_txt'] = "Web Username";
+$wb['pgroup_txt'] = "Web Group";
+$wb['ssh_rsa_txt'] = "SSH-RSA Public Key (for key-based logins)";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/se_webdav_user.lng b/interface/web/sites/lib/lang/se_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/se_webdav_user.lng
+++ b/interface/web/sites/lib/lang/se_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/sk_webdav_user.lng b/interface/web/sites/lib/lang/sk_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/sk_webdav_user.lng
+++ b/interface/web/sites/lib/lang/sk_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/lib/lang/tr_webdav_user.lng b/interface/web/sites/lib/lang/tr_webdav_user.lng
index 137c388..fab407a 100644
--- a/interface/web/sites/lib/lang/tr_webdav_user.lng
+++ b/interface/web/sites/lib/lang/tr_webdav_user.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains charachters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
+$wb['dir_txt'] = "Directory";
+$wb['server_id_txt'] = "Server";
+$wb['parent_domain_id_txt'] = "Website";
+$wb['username_txt'] = "Username";
+$wb['password_txt'] = "Password";
+$wb['password_strength_txt'] = "Password strength";
+$wb['active_txt'] = "Active";
+$wb['limit_webdav_user_txt'] = "The max. number of webdav users for your account is reached.";
+$wb['username_error_empty'] = "Username is empty.";
+$wb['username_error_unique'] = "The username must be unique.";
+$wb['username_error_regex'] = "The username contains characters that are not allowed.";
+$wb['directory_error_empty'] = "Directory empty.";
+$wb['parent_domain_id_error_empty'] = "No website selected.";
+$wb['dir_dot_error'] = "No .. in path allowed.";
+$wb['dir_slashdot_error'] = "No ./ in path allowed.";
 ?>
diff --git a/interface/web/sites/tools.inc.php b/interface/web/sites/tools.inc.php
index a4314f0..262e278 100644
--- a/interface/web/sites/tools.inc.php
+++ b/interface/web/sites/tools.inc.php
@@ -55,8 +55,8 @@
 
 function getClientName($dataRecord) {
     global $app, $conf;
-    if($_SESSION["s"]["user"]["typ"] != 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
-    	// Get the group-id of the user
+    if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) {
+    	// Get the group-id of the user if the logged in user is neither admin nor reseller
     	$client_group_id = $_SESSION["s"]["user"]["default_group"];
     } else {
     	// Get the group-id from the data itself
@@ -83,7 +83,7 @@
 function getClientID($dataRecord) {
     global $app, $conf;
 
-    if($_SESSION["s"]["user"]["typ"] != 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
+    if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) {
     	// Get the group-id of the user
     	$client_group_id = $_SESSION["s"]["user"]["default_group"];
     } else {
diff --git a/interface/web/tools/resync.php b/interface/web/tools/resync.php
index 86ba27d..5f6bd88 100644
--- a/interface/web/tools/resync.php
+++ b/interface/web/tools/resync.php
@@ -118,11 +118,25 @@
 	}
 }
 
+//* Resyncing Mailbox Domains 
+if(isset($_POST['resync_mailbox']) && $_POST['resync_mailbox'] == 1) { 
+    $db_table = 'mail_domain'; 
+    $index_field = 'domain_id'; 
+    $sql = "SELECT * FROM ".$db_table." WHERE active = 'y'"; 
+    $records = $app->db->queryAllRecords($sql); 
+    if(is_array($records)) { 
+        foreach($records as $rec) { 
+            $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true); 
+            $msg .= "Resynced Mail Domain: ".$rec['domain'].'<br />'; 
+        } 
+    } 
+}
+
 //* Resyncing Mailboxes
 if(isset($_POST['resync_mailbox']) && $_POST['resync_mailbox'] == 1) {
 	$db_table = 'mail_user';
 	$index_field = 'mailuser_id';
-	$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
+	$sql = "SELECT * FROM ".$db_table;
 	$records = $app->db->queryAllRecords($sql);
 	if(is_array($records)) {
 		foreach($records as $rec) {
@@ -131,7 +145,6 @@
 		}
 	}
 }
-
 
 //* Resyncing dns zones
 if(isset($_POST['resync_dns']) && $_POST['resync_dns'] == 1) {
diff --git a/interface/web/vm/ajax_get_ip.php b/interface/web/vm/ajax_get_ip.php
new file mode 100644
index 0000000..b6963ad
--- /dev/null
+++ b/interface/web/vm/ajax_get_ip.php
@@ -0,0 +1,55 @@
+<?php
+
+/*
+Copyright (c) 2012, Till Brehm, ISPConfig UG
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('vm');
+
+$server_id = intval($_GET["server_id"]);
+
+if($_SESSION["s"]["user"]["typ"] == 'admin' or $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
+
+	$sql = "SELECT ip_address FROM openvz_ip WHERE reserved = 'n' AND server_id = $server_id";
+	$ips = $app->db->queryAllRecords($sql);
+		$ip_select = "";
+	if(is_array($ips)) {
+		foreach( $ips as $ip) {
+			//$selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':'';
+			$ip_select .= "$ip[ip_address]#";
+		}
+	}
+	unset($tmp);
+	unset($ips);
+}
+$ip_select = substr($ip_select,0,-1);
+echo $ip_select;
+?>
\ No newline at end of file
diff --git a/interface/web/vm/form/openvz_vm.tform.php b/interface/web/vm/form/openvz_vm.tform.php
index ac7e8ef..229d9df 100644
--- a/interface/web/vm/form/openvz_vm.tform.php
+++ b/interface/web/vm/form/openvz_vm.tform.php
@@ -105,13 +105,14 @@
 														'errmsg'=> 'ip_address_error_empty'),
 									),
 			'default'	=> '',
+			/*
 			'datasource'	=> array ( 	'type'	=> 'SQL',
 										'querystring' => "SELECT ip_address FROM openvz_ip WHERE reserved = 'n' AND (vm_id = 0 or vm_id = '{RECORDID}') ORDER BY ip_address",
 										'keyfield'=> 'ip_address',
 										'valuefield'=> 'ip_address'
 									 ),
-			'value'		=> '',
-			'searchable' => 2
+			*/
+			'value'		=> ''
 		),
 		'hostname' => array (
 			'datatype'	=> 'VARCHAR',
diff --git a/interface/web/vm/openvz_vm_edit.php b/interface/web/vm/openvz_vm_edit.php
index 118d5d4..de2f51f 100644
--- a/interface/web/vm/openvz_vm_edit.php
+++ b/interface/web/vm/openvz_vm_edit.php
@@ -158,6 +158,27 @@
 
 		}
 		
+		//* Fill the IPv4 select field with the IP addresses that are allowed for this client
+		//$sql = "SELECT ip_address FROM server_ip WHERE server_id = ".$client['default_webserver']." AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")";
+		if(isset($this->dataRecord["server_id"])) {
+			$vm_server_id = intval($this->dataRecord["server_id"]);
+		} else {
+			$tmp = $app->db->queryOneRecord('SELECT server_id FROM server WHERE vserver_server = 1 AND mirror_server_id = 0 ORDER BY server_name LIMIT 0,1');
+			$vm_server_id = $tmp['server_id'];
+		}
+		$sql = "SELECT ip_address FROM openvz_ip WHERE reserved = 'n' AND (vm_id = 0 or vm_id = '".$this->id."') AND server_id = ".$vm_server_id." ORDER BY ip_address";
+		$ips = $app->db->queryAllRecords($sql);
+		$ip_select = "";
+		if(is_array($ips)) {
+			foreach( $ips as $ip) {
+				$selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':'';
+				$ip_select .= "<option value='$ip[ip_address]' $selected>$ip[ip_address]</option>\r\n";
+			}
+		}
+		$app->tpl->setVar("ip_address",$ip_select);
+		unset($tmp);
+		unset($ips);
+		
 		if($this->id > 0) {
 			//* we are editing a existing record
 			$app->tpl->setVar("edit_disabled", 1);
diff --git a/interface/web/vm/templates/openvz_vm_edit.htm b/interface/web/vm/templates/openvz_vm_edit.htm
index c661570..9ffea3e 100644
--- a/interface/web/vm/templates/openvz_vm_edit.htm
+++ b/interface/web/vm/templates/openvz_vm_edit.htm
@@ -15,7 +15,7 @@
 		<input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
 		<tmpl_else>
 		<label for="server_id">{tmpl_var name='server_id_txt'}</label>
-        <select name="server_id" id="server_id" class="selectInput" onChange="loadOptionInto('ip_address','sites/ajax_get_ip.php?server_id='+document.getElementById('server_id').value)">
+        <select name="server_id" id="server_id" class="selectInput" onChange="loadOptionInto('ip_address','vm/ajax_get_ip.php?server_id='+document.getElementById('server_id').value)">
 		  {tmpl_var name='server_id'}
 		</select>
 		</tmpl_if>
diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master
index 1c0d367..b6ac8c3 100644
--- a/server/conf/apache_ispconfig.conf.master
+++ b/server/conf/apache_ispconfig.conf.master
@@ -4,7 +4,7 @@
 ################################################
 
 LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig
-CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" -d \"/etc/vlogger-dbi.conf\" /var/log/ispconfig/httpd" combined_ispconfig
+CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig
 
 <Directory /var/www/clients>
     AllowOverride None
diff --git a/server/conf/sieve_filter.master b/server/conf/sieve_filter.master
index 33ddc37..09d7fa9 100644
--- a/server/conf/sieve_filter.master
+++ b/server/conf/sieve_filter.master
@@ -32,5 +32,6 @@
 vacation  :days 1
   :subject "Out of office reply"
   # :addresses ["test@test.int", "till@test.int"]
+  <tmpl_var name='addresses'>
   "<tmpl_var name='autoresponder_text'>";
 </tmpl_if>
\ No newline at end of file
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index d65ea85..4300660 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -240,6 +240,7 @@
 </tmpl_if>
 <tmpl_loop name="redirects">
     RewriteCond %{HTTP_HOST}   <tmpl_var name='rewrite_domain'>$ [NC]
+	RewriteCond %{REQUEST_URI} !^/webdav/
     RewriteRule   ^/(.*)$ <tmpl_var name='rewrite_target'>$1  <tmpl_var name='rewrite_type'>
 </tmpl_loop>
 </tmpl_if>
diff --git a/server/cron_daily.php b/server/cron_daily.php
index c6a9e00..d02daf8 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -260,14 +260,46 @@
 exec('chmod +r /var/log/ispconfig/httpd/*');
 
 #######################################################################################################
-// Manage and compress web logfiles
+// Manage and compress web logfiles and create traffic statistics
 #######################################################################################################
 
 $sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE server_id = ".$conf['server_id'];
 $records = $app->db->queryAllRecords($sql);
 foreach($records as $rec) {
-	$yesterday = date('Ymd',time() - 86400*2);
-	$logfile = escapeshellcmd($rec['document_root'].'/log/'.$yesterday.'-access.log');
+	
+	//* create traffic statistics based on yesterdays access log file
+	$yesterday = date('Ymd',time() - 86400);
+	$logfile = $rec['document_root'].'/log/'.$yesterday.'-access.log';
+	$total_bytes = 0;
+	
+	$handle = @fopen($logfile, "r");
+	if ($handle) {
+		while (($line = fgets($handle, 4096)) !== false) {
+			if (preg_match('/^\S+ \S+ \S+ \[.*?\] "\S+.*?" \d+ (\d+) ".*?" ".*?"/', $line, $m)) {
+				$total_bytes += intval($m[1]);
+			}
+		}
+		
+		//* Insert / update traffic in master database
+		$traffic_date = date('Y-m-d',time() - 86400);
+		$tmp = $app->dbmaster->queryOneRecord("select hostname from web_traffic where hostname='".$rec['domain']."' and traffic_date='".$traffic_date."'");
+		if(is_array($tmp) && count($tmp) > 0) {
+			$sql = "update web_traffic set traffic_bytes=traffic_bytes+"
+                  . $total_bytes
+                  . " where hostname='" . $rec['domain']
+                  . "' and traffic_date='" . $traffic_date . "'";
+		} else {
+			$sql = "insert into web_traffic (hostname, traffic_date, traffic_bytes) values ('".$rec['domain']."', '".$traffic_date."', '".$total_bytes."')";
+		}
+		$app->dbmaster->query($sql);
+		
+		fclose($handle);
+	}
+	
+	$yesterday2 = date('Ymd',time() - 86400*2);
+	$logfile = escapeshellcmd($rec['document_root'].'/log/'.$yesterday2.'-access.log');
+	
+	//* Compress logfile
 	if(@is_file($logfile)) {
 		// Compress yesterdays logfile
 		exec("gzip -c $logfile > $logfile.gz");
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index bb9e245..a6157ad 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -85,6 +85,8 @@
 		$app->plugins->registerEvent('web_folder_update',$this->plugin_name,'web_folder_update');
 		$app->plugins->registerEvent('web_folder_delete',$this->plugin_name,'web_folder_delete');
 		
+		$app->plugins->registerEvent('ftp_user_delete',$this->plugin_name,'ftp_user_delete');
+		
 	}
 
 	// Handle the creation of SSL certificates
@@ -642,9 +644,10 @@
 				* website root has to be owned by the root user and we have to chmod it to 755 then
 				*/
 
-				//* Check if there is a jailkit user for this site
+				//* Check if there is a jailkit user or cronjob for this site
 				$tmp = $app->db->queryOneRecord('SELECT count(shell_user_id) as number FROM shell_user WHERE parent_domain_id = '.$data['new']['domain_id']." AND chroot = 'jailkit'");
-				if($tmp['number'] > 0) {
+				$tmp2 = $app->db->queryOneRecord('SELECT count(id) as number FROM cron WHERE parent_domain_id = '.$data['new']['domain_id']." AND `type` = 'chrooted'");
+				if($tmp['number'] > 0 || $tmp2['number'] > 0) {
 					$this->_exec('chmod 755 '.escapeshellcmd($data['new']['document_root']));
 					$this->_exec('chown root:root '.escapeshellcmd($data['new']['document_root']));
 				}
@@ -676,9 +679,15 @@
 		$this->_exec('chown '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/log/error.log');
 
 
-		//* Write the custom php.ini file, if custom_php_ini filed is not empty
+		//* Write the custom php.ini file, if custom_php_ini fieled is not empty
 		$custom_php_ini_dir = $web_config['website_basedir'].'/conf/'.$data['new']['system_user'];
 		if(!is_dir($web_config['website_basedir'].'/conf')) mkdir($web_config['website_basedir'].'/conf');
+		
+		//* add open_basedir restriction to custom php.ini content, required for suphp only
+		if(!stristr($data['new']['custom_php_ini'],'open_basedir') && $data['new']['php'] == 'suphp') {
+			$data['new']['custom_php_ini'] .= "\nopen_basedir = '".$data['new']['php_open_basedir']."'\n";
+		}
+		//* Create custom php.ini
 		if(trim($data['new']['custom_php_ini']) != '') {
 			$has_custom_php_ini = true;
 			if(!is_dir($custom_php_ini_dir)) mkdir($custom_php_ini_dir);
@@ -1644,6 +1653,16 @@
 		
 		
 	}
+	
+	public function ftp_user_delete($event_name,$data) {
+		global $app, $conf;
+		
+		$ftpquota_file = $data['old']['dir'].'/.ftpquota';
+		if(file_exists($ftpquota_file)) unlink($ftpquota_file);
+		
+	}
+	
+	
 
 	/**
 	 * This function is called when a Webdav-User is inserted, updated or deleted.
diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php
index 4c6912f..0437d6a 100644
--- a/server/plugins-available/mail_plugin.inc.php
+++ b/server/plugins-available/mail_plugin.inc.php
@@ -312,8 +312,12 @@
 	function user_delete($event_name,$data) {
 		global $app, $conf;
 		
+		// get the config
+		$app->uses("getconf");
+		$mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail');
+		
 		$old_maildir_path = escapeshellcmd($data['old']['maildir']);
-		if(!stristr($old_maildir_path,'..') && !stristr($old_maildir_path,'*') && strlen($old_maildir_path) >= 10) {
+		if($old_maildir_path != $mail_config['homedir_path'] && strlen($old_maildir_path) > strlen($mail_config['homedir_path']) && !stristr($old_maildir_path,'..') && !stristr($old_maildir_path,'*') && strlen($old_maildir_path) >= 10) {
 			exec('rm -rf '.escapeshellcmd($old_maildir_path));
 			$app->log('Deleted the Maildir: '.$data['old']['maildir'],LOGLEVEL_DEBUG);
 		} else {
@@ -330,7 +334,7 @@
 		
 		//* Delete maildomain path
 		$old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/'.$data['old']['domain']);
-		if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) {
+		if($old_maildomain_path != $mail_config['homedir_path'] && !stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) {
 			exec('rm -rf '.escapeshellcmd($old_maildomain_path));
 			$app->log('Deleted the mail domain directory: '.$old_maildomain_path,LOGLEVEL_DEBUG);
 		} else {
@@ -339,7 +343,7 @@
 		
 		//* Delete mailfilter path
 		$old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']);
-		if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) {
+		if($old_maildomain_path != $mail_config['homedir_path'].'/mailfilters/' && !stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) {
 			exec('rm -rf '.escapeshellcmd($old_maildomain_path));
 			$app->log('Deleted the mail domain mailfilter directory: '.$old_maildomain_path,LOGLEVEL_DEBUG);
 		} else {
diff --git a/server/plugins-available/mailman_plugin.inc.php b/server/plugins-available/mailman_plugin.inc.php
index 5a4593a..7e6eaf2 100644
--- a/server/plugins-available/mailman_plugin.inc.php
+++ b/server/plugins-available/mailman_plugin.inc.php
@@ -73,9 +73,9 @@
 		
 		$this->update_config();
 		
-		exec("/usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])."");
+		exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &");
 		
-		exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null');
+		exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &');
 		
 		$app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$app->db->quote($data["new"]['mailinglist_id']));
 		
@@ -86,8 +86,8 @@
 		global $app, $conf;
 		
 		if($data["new"]["password"] != $data["old"]["password"] && $data["new"]["password"] != '') {
-			exec("/usr/lib/mailman/bin/change_pw -l ".escapeshellcmd($data["new"]["listname"])." -p ".escapeshellcmd($data["new"]["password"])."");
-			exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null');
+			exec("nohup /usr/lib/mailman/bin/change_pw -l ".escapeshellcmd($data["new"]["listname"])." -p ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &");
+			exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &');
 			$app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$app->db->quote($data["new"]['mailinglist_id']));
 		}
 	}
@@ -97,9 +97,9 @@
 		
 		$this->update_config();
 		
-		exec("/usr/lib/mailman/bin/rmlist -a ".escapeshellcmd($data["old"]["listname"]));
+		exec("nohup /usr/lib/mailman/bin/rmlist -a ".escapeshellcmd($data["old"]["listname"])." >/dev/null 2>&1 &");
 		
-		exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null');
+		exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &');
 		
 	}
 	
diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index 86e92f6..671ae62 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -376,9 +376,9 @@
 			if(is_file('/root/.ssh/authorized_keys')) file_put_contents($sshkeys, file_get_contents('/root/.ssh/authorized_keys'));
 		
 			// Remove duplicate keys
-			$existing_keys = file($sshkeys);
+			$existing_keys = @file($sshkeys);
 			$new_keys = explode("\n", $userkey);
-			$final_keys_arr = array_merge($existing_keys, $new_keys);
+			$final_keys_arr = @array_merge($existing_keys, $new_keys);
 			$new_final_keys_arr = array();
 			if(is_array($final_keys_arr) && !empty($final_keys_arr)){
 				foreach($final_keys_arr as $key => $val){

--
Gitblit v1.9.1