diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index e0a3a925b23c68f6a404539281308bb2b4d314c5..062bea78a605121bf99a3f0031409e02bb46b829 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -89,6 +89,7 @@ CREATE TABLE `client` (
`limit_ftp_user` int(11) NOT NULL default '-1',
`limit_shell_user` int(11) NOT NULL default '0',
`ssh_chroot` varchar(255) NOT NULL DEFAULT 'no,jailkit,ssh-chroot',
+ `limit_webdav_user` int(11) NOT NULL default '0',
`default_dnsserver` int(11) unsigned NOT NULL default '1',
`limit_dns_zone` int(11) NOT NULL default '-1',
`limit_dns_record` int(11) NOT NULL default '-1',
@@ -145,6 +146,7 @@ CREATE TABLE `client_template` (
`limit_web_aliasdomain` int(11) NOT NULL default '-1',
`limit_ftp_user` int(11) NOT NULL default '-1',
`limit_shell_user` int(11) NOT NULL default '0',
+ `limit_webdav_user` int(11) NOT NULL default '0',
`limit_dns_zone` int(11) NOT NULL default '-1',
`limit_dns_record` int(11) NOT NULL default '-1',
`limit_database` int(11) NOT NULL default '-1',
@@ -1124,6 +1126,29 @@ CREATE TABLE `web_traffic` (
) ENGINE=MyISAM;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `webdav_user`
+--
+
+CREATE TABLE `webdav_user` (
+ `webdav_user_id` int(11) unsigned NOT NULL auto_increment,
+ `sys_userid` int(11) unsigned NOT NULL default '0',
+ `sys_groupid` int(11) unsigned NOT NULL default '0',
+ `sys_perm_user` varchar(5) default NULL,
+ `sys_perm_group` varchar(5) default NULL,
+ `sys_perm_other` varchar(5) default NULL,
+ `server_id` int(11) unsigned NOT NULL default '0',
+ `parent_domain_id` int(11) unsigned NOT NULL default '0',
+ `username` varchar(64) default NULL,
+ `password` varchar(64) default NULL,
+ `active` enum('n','y') NOT NULL default 'y',
+ `dir` varchar(255) default NULL,
+ PRIMARY KEY (`webdav_user_id`)
+) ENGINE=MyISAM
+
+
-- --------------------------------------------------------
--
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index c5a2d52ae3cc49a837c8a00271f7221b0a14a822..63d95fb8d5ce1d36e05a21484eb0e36c35de5157 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -1,7 +1,6 @@
diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master
index 4459ca2b9c6b5b74902099ce135be55ed3794f52..bf85ec5145c2a8f4812c6a75463102bfdd7436b8 100644
--- a/install/tpl/system.ini.master
+++ b/install/tpl/system.ini.master
@@ -17,6 +17,7 @@ dbname_prefix=c[CLIENTID]
dbuser_prefix=c[CLIENTID]
ftpuser_prefix=[CLIENTNAME]
shelluser_prefix=[CLIENTNAME]
+webdavuser_prefix=[CLIENTNAME]
dblist_phpmyadmin_link=y
phpmyadmin_url=
diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php
index db0d35383350bdc9672b2a2523ef4f09ff333add..b7764006441f1a88e4c707d8b50fc09848a80498 100644
--- a/interface/web/admin/form/system_config.tform.php
+++ b/interface/web/admin/form/system_config.tform.php
@@ -106,6 +106,18 @@ $form["tabs"]['sites'] = array (
'width' => '30',
'maxlength' => '255'
),
+ 'webdavuser_prefix' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'REGEX',
+ 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/',
+ 'errmsg'=> 'webdavuser_prefix_error_regex'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
'dblist_phpmyadmin_link' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng
index a4e618217b828e5b957345297c72e3acac76ea53..d3d907eaef53e178f85543b8d6b86aa672d0b240 100644
--- a/interface/web/admin/lib/lang/de_system_config.lng
+++ b/interface/web/admin/lib/lang/de_system_config.lng
@@ -3,11 +3,13 @@ $wb['warning'] = 'Bearbeiten Sie diese Werte sorgfältig! Entfernen Sie die Pref
$wb['dbname_prefix_txt'] = 'Datenbanknamen Prefix';
$wb['dbuser_prefix_txt'] = 'Datenbankbenutzer Prefix';
$wb['shelluser_prefix_txt'] = 'Shellbenutzer Prefix';
+$wb['webdavuser_prefix_txt'] = 'Webdavbenutzer Prefix';
$wb['ftpuser_prefix_txt'] = 'FTP Benutzer Prefix';
$wb['dbname_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbanknamen Prefix.';
$wb['dbuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbankbenutzer Prefix.';
$wb['ftpuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in FTP Benutzer Prefix.';
$wb['shelluser_prefix_error_regex'] = 'Zeichen nicht erlaubt in Shellbenutzer Prefix.';
+$wb['webdavuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in Webdavbenutzer Prefix.';
$wb['dblist_phpmyadmin_link_txt'] = 'Link zu phpMyAdmin in der Datenbankliste';
$wb['mailboxlist_webmail_link_txt'] = 'Link zu Webmail in der Mailboxliste';
$wb['webmail_url_txt'] = 'Webmail URL';
diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng
index 3cb319cb299b8e531684802a8ad276564c6cfdb9..69957ce7b75918bff68914024ea0fe7acb1d44fd 100644
--- a/interface/web/admin/lib/lang/en_system_config.lng
+++ b/interface/web/admin/lib/lang/en_system_config.lng
@@ -4,11 +4,13 @@ $wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a s
$wb['dbname_prefix_txt'] = 'Database name prefix';
$wb['dbuser_prefix_txt'] = 'Database user prefix';
$wb['shelluser_prefix_txt'] = 'Shell user prefix';
+$wb['webdavuser_prefix_txt'] = 'Webdav user prefix';
$wb['ftpuser_prefix_txt'] = 'FTP user prefix';
$wb['dbname_prefix_error_regex'] = 'Char not allowed in database name prefix.';
$wb['dbuser_prefix_error_regex'] = 'Char not allowed in database user prefix.';
$wb['ftpuser_prefix_error_regex'] = 'Char not allowed in ftp user prefix.';
$wb['shelluser_prefix_error_regex'] = 'Char not allowed in shell user prefix.';
+$wb['webdavuser_prefix_error_regex'] = 'Char not allowed in webdav user prefix.';
$wb['dblist_phpmyadmin_link_txt'] = 'Link to phpmyadmin in DB list';
$wb['mailboxlist_webmail_link_txt'] = 'Link to webmail in Mailbox list';
$wb['webmail_url_txt'] = 'Webmail URL';
diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php
index f6a4c05d05ba943c780f8c01d7ba564a057c076a..70f26befb4aa485ac8501003f039367a1594b288 100644
--- a/interface/web/admin/system_config_edit.php
+++ b/interface/web/admin/system_config_edit.php
@@ -1,6 +1,6 @@
{tmpl_var name='shelluser_prefix_txt'}
+
+
+
+
{tmpl_var name='dblist_phpmyadmin_link_txt'}
diff --git a/interface/web/client/client_template_del.php b/interface/web/client/client_template_del.php
index 1dcdbac3470833c5c68a07f020e70c7175884091..dbe8639c077f9729afbd069144383a4821cb98a9 100644
--- a/interface/web/client/client_template_del.php
+++ b/interface/web/client/client_template_del.php
@@ -1,6 +1,6 @@
'client:ssh_chroot',
'value' => array('no' => 'None', 'jailkit' => 'Jailkit')
),
+ 'limit_webdav_user' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'ISINT',
+ 'errmsg'=> 'limit_webdav_user_error_notint'),
+ ),
+ 'default' => '-1',
+ 'value' => '',
+ 'separator' => '',
+ 'width' => '10',
+ 'maxlength' => '10',
+ 'rows' => '',
+ 'cols' => ''
+ ),
'default_dnsserver' => array (
'datatype' => 'INTEGER',
'formtype' => 'SELECT',
diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index 1b7ed25a9560f9714dd0d945fb55712d40769a5e..9b9a3a5b92300faf969ed9eb4eab2e408b700314 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -367,6 +367,20 @@ $form["tabs"]['limits'] = array (
'rows' => '',
'cols' => ''
),
+ 'limit_webdav_user' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'ISINT',
+ 'errmsg'=> 'limit_webdav_user_error_notint'),
+ ),
+ 'default' => '0',
+ 'value' => '',
+ 'separator' => '',
+ 'width' => '10',
+ 'maxlength' => '10',
+ 'rows' => '',
+ 'cols' => ''
+ ),
'limit_dns_zone' => array (
'datatype' => 'INTEGER',
'formtype' => 'TEXT',
diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng
index 6237798fb449de6005d1e356a0db93fec5e19b06..1e45f854fe80645a03305b3eb28da4ebaca0e2d4 100644
--- a/interface/web/client/lib/lang/de_client.lng
+++ b/interface/web/client/lib/lang/de_client.lng
@@ -55,6 +55,7 @@ $wb['default_dnsserver_txt'] = 'Standard DNS Server';
$wb['limit_dns_zone_txt'] = 'Max. Anzahl an DNS Zonen';
$wb['limit_dns_record_txt'] = 'Max. Anzahl an DNS Einträge';
$wb['limit_shell_user_txt'] = 'Max. Anzahl an Shell Benutzer';
+$wb['limit_webdav_user_txt'] = 'Max. Anzahl an Webdav Benutzer';
$wb['username_error_empty'] = 'Benutzername ist leer.';
$wb['username_error_unique'] = 'Der Benutzername muss einzigartig sein.';
$wb['limit_maildomain_error_notint'] = 'Das Email Domain Limit muss eine Nummer sein.';
@@ -74,6 +75,7 @@ $wb['limit_web_aliasdomain_error_notint'] = 'Das Webseite Aliasdomain Limit muss
$wb['limit_web_subdomain_error_notint'] = 'Das Webseite Subdomain Limit muss eine Nummer sein.';
$wb['limit_ftp_user_error_notint'] = 'Das FTP Benutzer Limit muss eine Nummer sein.';
$wb['limit_shell_user_error_notint'] = 'Das Shell Benutzer Limit muss eine Nummer sein.';
+$wb['limit_webdav_user_error_notint'] = 'Das Webdav Benutzer Limit muss eine Nummer sein.';
$wb['limit_dns_zone_error_notint'] = 'Das DNS Einträge Limit muss eine Nummer sein.';
$wb['default_dbserver_txt'] = 'Standarddatenbankserver';
$wb['limit_database_error_notint'] = 'Das Datenbank Limit muss eine Nummer sein.';
diff --git a/interface/web/client/lib/lang/de_client_template.lng b/interface/web/client/lib/lang/de_client_template.lng
index c2b0f03324eedded59d2a9265f8488e61357895a..8d43fbf9da35088f50b00932412e0d0e9a487f11 100644
--- a/interface/web/client/lib/lang/de_client_template.lng
+++ b/interface/web/client/lib/lang/de_client_template.lng
@@ -26,7 +26,8 @@ $wb['limit_web_subdomain_txt'] = 'Max. Anzahl an Web Subdomains';
$wb['limit_ftp_user_txt'] = 'Max. Anzahl an FTP Benutzer';
$wb['limit_dns_zone_txt'] = 'Max. Anzahl an DNS Zonen';
$wb['limit_dns_record_txt'] = 'Max. Anzahl an DNS Einträgen';
-$wb['limit_shell_user_txt'] = 'Max. Anzahl an Shellbenutzer';
+$wb['limit_shell_user_txt'] = 'Max. Anzahl an Shell Benutzer';
+$wb["limit_webdav_user_txt"] = 'Max. Anzahl an Webdav Benutzer';
$wb['limit_maildomain_error_notint'] = 'Das Emaildomain Limit muss eine Nummer sein.';
$wb['limit_mailbox_error_notint'] = 'Das Mailbox Limit muss eine Nummer sein.';
$wb['limit_mailalias_error_notint'] = 'Das Emailalias Limit muss eine Nummer sein.';
@@ -44,6 +45,7 @@ $wb['limit_web_aliasdomain_error_notint'] = 'Das Webseiten Aliasdomain Limit mus
$wb['limit_web_subdomain_error_notint'] = 'Das Webseiten Subdomain Limit muss eine Nummer sein.';
$wb['limit_ftp_user_error_notint'] = 'Das FTP Benutzer Limit muss eine Nummer sein.';
$wb['limit_shell_user_error_notint'] = 'Das Shell Benutzer Limit muss eine Nummer sein.';
+$wb["limit_webdav_user_error_notint"] = 'Das Webdav Benutzer Limit muss eine Nummer sein.';
$wb['limit_dns_zone_error_notint'] = 'Das DNS Einträge Limit muss eine Nummer sein.';
$wb['limit_database_error_notint'] = 'Das Datenbanken Limit muss eine Nummer sein.';
$wb['limit_cron_error_notint'] = 'Das Cron Job Limit muss eine Nummer sein.';
diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index e87ba45e073c66489d2e0bdcb5adf9e307bf44f8..9c028f3905efa028d14e24f9a53710102766355f 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -56,6 +56,7 @@ $wb["default_dnsserver_txt"] = 'Default DNS Server';
$wb["limit_dns_zone_txt"] = 'Max. number of DNS zones';
$wb["limit_dns_record_txt"] = 'Max. number DNS records';
$wb["limit_shell_user_txt"] = 'Max. number of Shell users';
+$wb["limit_webdav_user_txt"] = 'Max. number of Webdav users';
$wb["limit_client_txt"] = 'Max. number of Clients';
$wb["username_error_empty"] = 'Username is empty.';
$wb["username_error_unique"] = 'The username must be unique.';
@@ -77,6 +78,7 @@ $wb["limit_web_aliasdomain_error_notint"] = 'The website alias domain limit must
$wb["limit_web_subdomain_error_notint"] = 'The website subdomain limit must be a number.';
$wb["limit_ftp_user_error_notint"] = 'The ftp user limit must be a number.';
$wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.';
+$wb["limit_webdav_user_error_notint"] = 'The webdav user limit must be a number.';
$wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.';
$wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.';
$wb["limit_client_error_notint"] = 'The sub client limit must be a number.';
diff --git a/interface/web/client/lib/lang/en_client_template.lng b/interface/web/client/lib/lang/en_client_template.lng
index 39726634eec45ab87035b9ddf7a988a392bb18fd..ca8d4f794d7a60ddca0338305655320f1c8819b1 100644
--- a/interface/web/client/lib/lang/en_client_template.lng
+++ b/interface/web/client/lib/lang/en_client_template.lng
@@ -28,6 +28,7 @@ $wb["limit_ftp_user_txt"] = 'Max. number of FTP users';
$wb["limit_dns_zone_txt"] = 'Max. number of DNS zones';
$wb["limit_dns_record_txt"] = 'Max. number DNS records';
$wb["limit_shell_user_txt"] = 'Max. number of Shell users';
+$wb["limit_webdav_user_txt"] = 'Max. number of Webdav users';
$wb["limit_client_txt"] = 'Max. number of Clients';
$wb["limit_maildomain_error_notint"] = 'The email domain limit must be a number.';
$wb["limit_mailbox_error_notint"] = 'The mailbox limit must be a number.';
@@ -47,6 +48,7 @@ $wb["limit_web_aliasdomain_error_notint"] = 'The website alias domain limit must
$wb["limit_web_subdomain_error_notint"] = 'The website subdomain limit must be a number.';
$wb["limit_ftp_user_error_notint"] = 'The ftp user limit must be a number.';
$wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.';
+$wb["limit_webdav_user_error_notint"] = 'The webdav user limit must be a number.';
$wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.';
$wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.';
$wb["limit_database_txt"] = 'Max. number of Databases';
diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index ba1850870918be03975d0ed442a013cf8ccfd203..aa35ded38e9a5fb075f75d44d45d845163665730 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -3,188 +3,192 @@