From a892b8c8007f87c39497dd98aa268d35428416a8 Mon Sep 17 00:00:00 2001
From: vogelor <vogelor@ispconfig3>
Date: Tue, 08 Jun 2010 08:09:49 -0400
Subject: [PATCH] ISPConfig can now handle webdav - user (only at the interface, server to come ;-)
---
install/tpl/config.inc.php.master | 9
interface/web/client/client_template_list.php | 27 +
install/tpl/system.ini.master | 1
interface/web/sites/lib/lang/de_webdav_user_list.lng | 8
interface/web/sites/lib/module.conf.php | 91 ++-
interface/web/sites/lib/lang/de_webdav_user.lng | 16
interface/web/sites/webdav_user_del.php | 50 ++
interface/web/client/lib/lang/en_client.lng | 2
interface/web/sites/lib/lang/en_webdav_user_list.lng | 8
install/sql/ispconfig3.sql | 25 +
interface/web/sites/webdav_user_edit.php | 201 ++++++++
interface/web/sites/list/webdav_user.list.php | 99 ++++
interface/web/client/lib/lang/en_client_template.lng | 2
interface/web/sites/lib/lang/de.lng | 2
interface/web/admin/templates/system_config_sites_edit.htm | 4
interface/web/client/templates/client_template_edit_limits.htm | 188 ++++---
interface/web/sites/webdav_user_list.php | 51 ++
interface/web/admin/lib/lang/en_system_config.lng | 2
interface/web/client/templates/client_edit_limits.htm | 288 ++++++-----
interface/web/sites/templates/webdav_user_list.htm | 59 ++
interface/web/client/form/client.tform.php | 14
interface/web/client/client_template_del.php | 2
interface/web/admin/lib/lang/de_system_config.lng | 2
interface/web/sites/form/webdav_user.tform.php | 128 +++++
interface/web/client/lib/lang/de_client.lng | 2
interface/web/client/client_template_edit.php | 2
interface/web/admin/form/system_config.tform.php | 12
interface/web/client/lib/lang/de_client_template.lng | 4
interface/web/sites/lib/lang/en.lng | 2
interface/web/client/form/client_template.tform.php | 14
interface/web/sites/lib/lang/en_webdav_user.lng | 16
interface/web/admin/system_config_edit.php | 2
interface/web/sites/templates/webdav_user_edit.htm | 58 ++
33 files changed, 1,114 insertions(+), 277 deletions(-)
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index e0a3a92..062bea7 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -89,6 +89,7 @@
`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 @@
`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',
@@ -1127,6 +1129,29 @@
-- --------------------------------------------------------
--
+-- 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
+
+
+-- --------------------------------------------------------
+
+--
-- Table structure for table `attempts_login`
--
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index c5a2d52..63d95fb 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -1,7 +1,6 @@
<?php
-
/*
-Copyright (c) 2007 - 2009, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007 - 2010, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -151,4 +150,10 @@
define("LOGLEVEL_WARN",1);
define("LOGLEVEL_ERROR",2);
+//** include a local config-file if there is one
+//** IMPORTANT!!!
+//** DO NOT MAKE A COPY OF THIS FILE AS LOCAL CONFIG-FILE
+//** USE A EMPTY FILE AND ONLY COPY THE SETTINGS IN IT, YOU NEED TO OVERRIDE
+if (is_file('config.inc.local.php')) include_once 'config.inc.local.php';
+
?>
diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master
index 4459ca2..bf85ec5 100644
--- a/install/tpl/system.ini.master
+++ b/install/tpl/system.ini.master
@@ -17,6 +17,7 @@
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 db0d353..b776400 100644
--- a/interface/web/admin/form/system_config.tform.php
+++ b/interface/web/admin/form/system_config.tform.php
@@ -106,6 +106,18 @@
'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 a4e6182..d3d907e 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['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 3cb319c..69957ce 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['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 f6a4c05..70f26be 100644
--- a/interface/web/admin/system_config_edit.php
+++ b/interface/web/admin/system_config_edit.php
@@ -1,6 +1,6 @@
<?php
/*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2008-2010, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm
index 996a941..9dc8d1b 100644
--- a/interface/web/admin/templates/system_config_sites_edit.htm
+++ b/interface/web/admin/templates/system_config_sites_edit.htm
@@ -22,6 +22,10 @@
<input name="shelluser_prefix" id="shelluser_prefix" value="{tmpl_var name='shelluser_prefix'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" />
</div>
<div class="ctrlHolder">
+ <label for="webdavuser_prefix">{tmpl_var name='webdavuser_prefix_txt'}</label>
+ <input name="webdavuser_prefix" id="webdavuser_prefix" value="{tmpl_var name='webdavuser_prefix'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" />
+ </div>
+ <div class="ctrlHolder">
<p class="label">{tmpl_var name='dblist_phpmyadmin_link_txt'}</p>
<div class="multiField">
{tmpl_var name='dblist_phpmyadmin_link'}
diff --git a/interface/web/client/client_template_del.php b/interface/web/client/client_template_del.php
index 1dcdbac..dbe8639 100644
--- a/interface/web/client/client_template_del.php
+++ b/interface/web/client/client_template_del.php
@@ -1,6 +1,6 @@
<?php
/*
-Copyright (c) 2007-2008, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/client/client_template_edit.php b/interface/web/client/client_template_edit.php
index bf27959..d3f5c65 100644
--- a/interface/web/client/client_template_edit.php
+++ b/interface/web/client/client_template_edit.php
@@ -1,6 +1,6 @@
<?php
/*
-Copyright (c) 2007-2008, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/client/client_template_list.php b/interface/web/client/client_template_list.php
index 093de6e..da316a7 100644
--- a/interface/web/client/client_template_list.php
+++ b/interface/web/client/client_template_list.php
@@ -1,4 +1,31 @@
<?php
+/*
+Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+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');
diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php
index a229262..b38fdb9 100644
--- a/interface/web/client/form/client.tform.php
+++ b/interface/web/client/form/client.tform.php
@@ -626,6 +626,20 @@
'valuelimit' => '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 1b7ed25..9b9a3a5 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -367,6 +367,20 @@
'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 6237798..1e45f85 100644
--- a/interface/web/client/lib/lang/de_client.lng
+++ b/interface/web/client/lib/lang/de_client.lng
@@ -55,6 +55,7 @@
$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_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 c2b0f03..8d43fbf 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_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_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 e87ba45..9c028f3 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -56,6 +56,7 @@
$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_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 3972663..ca8d4f7 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_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_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 ba18508..aa35ded 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -3,188 +3,192 @@
<div class="panel panel_client">
-<tmpl_if name="is_admin">
- <div class="pnl_toolsarea">
- <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
- <div class="buttons">
- <button class="positive iconstxt icoAdd" type="button" value="Add additional template" onClick="addAdditionalTemplate();"><span>Add additional template</span></button>
- <button class="negative iconstxt icoDelete" type="button" value="Delete additional template" onClick="delAdditionalTemplate();"><span>Delete additional template</span></button>
- </div>
- </fieldset>
- </div>
-</tmpl_if>
-
- <div class="pnl_formsarea">
- <fieldset class="inlineLabels"><legend>Limits</legend>
-<tmpl_if name="is_admin">
- <div class="ctrlHolder">
- <label for="template_master">{tmpl_var name='template_master_txt'}</label>
- <select name="template_master" id="template_master" class="selectInput">
+ <tmpl_if name="is_admin">
+ <div class="pnl_toolsarea">
+ <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
+ <div class="buttons">
+ <button class="positive iconstxt icoAdd" type="button" value="Add additional template" onClick="addAdditionalTemplate();"><span>Add additional template</span></button>
+ <button class="negative iconstxt icoDelete" type="button" value="Delete additional template" onClick="delAdditionalTemplate();"><span>Delete additional template</span></button>
+ </div>
+ </fieldset>
+ </div>
+ </tmpl_if>
+
+ <div class="pnl_formsarea">
+ <fieldset class="inlineLabels"><legend>Limits</legend>
+ <tmpl_if name="is_admin">
+ <div class="ctrlHolder">
+ <label for="template_master">{tmpl_var name='template_master_txt'}</label>
+ <select name="template_master" id="template_master" class="selectInput">
{tmpl_var name='template_master'}
- </select>
- </div>
- <div class="ctrlHolder">
- <label for="template_additional">{tmpl_var name='template_additional_txt'}</label>
- <select name="tpl_add_select" id="tpl_add_select" class="selectInput">
+ </select>
+ </div>
+ <div class="ctrlHolder">
+ <label for="template_additional">{tmpl_var name='template_additional_txt'}</label>
+ <select name="tpl_add_select" id="tpl_add_select" class="selectInput">
{tmpl_var name='tpl_add_select'}
- </select>
- <div id="template_additional_list"><br /><br />{tmpl_var name='template_additional_list'}</div>
- <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}">
- </div>
- <div class="ctrlHolder">
-
- </div>
-</tmpl_if>
- <div class="ctrlHolder">
- <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label>
- <select name="default_mailserver" id="default_mailserver" class="selectInput">
+ </select>
+ <div id="template_additional_list"><br /><br />{tmpl_var name='template_additional_list'}</div>
+ <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}">
+ </div>
+ <div class="ctrlHolder">
+
+ </div>
+ </tmpl_if>
+ <div class="ctrlHolder">
+ <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label>
+ <select name="default_mailserver" id="default_mailserver" class="selectInput">
{tmpl_var name='default_mailserver'}
</select>
- </div>
- <div class="ctrlHolder">
- <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label>
- <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label>
- <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label>
+ <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label>
- <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label>
+ <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label>
- <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label>
+ <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label>
- <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label>
+ <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label>
- <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label>
+ <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label>
- <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label>
+ <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label>
- <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label>
+ <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label>
- <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label>
+ <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label>
- <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
+ <div class="ctrlHolder">
+ <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label>
+ <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label>
- <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label>
+ <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
</div>
- <div class="ctrlHolder">
- <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label>
- <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label>
+ <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label>
- <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label>
+ <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label>
- <select name="default_webserver" id="default_webserver" class="selectInput">
+ <div class="ctrlHolder">
+ <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label>
+ <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label>
+ <select name="default_webserver" id="default_webserver" class="selectInput">
{tmpl_var name='default_webserver'}
</select>
- </div>
- <div class="ctrlHolder">
- <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label>
- <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label>
- <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
- </div>
- <div class="ctrlHolder">
+ <div class="ctrlHolder">
+ <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label>
+ <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label>
+ <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
+ </div>
+ <div class="ctrlHolder">
<p class="label">{tmpl_var name='web_php_options_txt'}</p>
- <div class="multiField">
+ <div class="multiField">
{tmpl_var name='web_php_options'}
- </div>
+ </div>
</div>
- <div class="ctrlHolder">
- <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label>
- <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label>
+ <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label>
- <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label>
+ <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label>
- <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label>
+ <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label>
- <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label>
+ <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
+ <div class="ctrlHolder">
<p class="label">{tmpl_var name='ssh_chroot_txt'}</p>
- <div class="multiField">
+ <div class="multiField">
{tmpl_var name='ssh_chroot'}
- </div>
+ </div>
</div>
- <div class="ctrlHolder">
- <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label>
- <select name="default_dnsserver" id="default_dnsserver" class="selectInput">
+ <div class="ctrlHolder">
+ <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label>
+ <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label>
+ <select name="default_dnsserver" id="default_dnsserver" class="selectInput">
{tmpl_var name='default_dnsserver'}
</select>
- </div>
- <div class="ctrlHolder">
- <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label>
- <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label>
- <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label>
+ <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label>
- <select name="default_dbserver" id="default_dbserver" class="selectInput">
+ <div class="ctrlHolder">
+ <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label>
+ <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label>
+ <select name="default_dbserver" id="default_dbserver" class="selectInput">
{tmpl_var name='default_dbserver'}
</select>
- </div>
- <div class="ctrlHolder">
- <label for="limit_database">{tmpl_var name='limit_database_txt'}</label>
- <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label>
- <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_database">{tmpl_var name='limit_database_txt'}</label>
+ <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label>
+ <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label>
- <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf">
- {tmpl_var name='limit_cron_type'}
- </select>
+ <div class="ctrlHolder">
+ <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label>
+ <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf">
+ {tmpl_var name='limit_cron_type'}
+ </select>
</div>
- <div class="ctrlHolder">
- <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label>
- <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label>
+ <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label>
- <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
- </div>
- </fieldset>
+ <div class="ctrlHolder">
+ <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label>
+ <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
+ </div>
+ </fieldset>
- <input type="hidden" name="id" value="{tmpl_var name='id'}">
+ <input type="hidden" name="id" value="{tmpl_var name='id'}">
- <div class="buttonHolder buttons">
- <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
- <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
- </div>
- </div>
-
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
+ </div>
+ </div>
+
</div>
diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm
index 6509329..43cdda3 100644
--- a/interface/web/client/templates/client_template_edit_limits.htm
+++ b/interface/web/client/templates/client_template_edit_limits.htm
@@ -3,122 +3,126 @@
<div class="panel panel_client_template">
- <div class="pnl_formsarea">
- <fieldset class="inlineLabels"><legend>Limits</legend>
- <div class="ctrlHolder">
- <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label>
- <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="pnl_formsarea">
+ <fieldset class="inlineLabels"><legend>Limits</legend>
+ <div class="ctrlHolder">
+ <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label>
+ <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label>
- <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label>
+ <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label>
- <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label>
+ <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label>
- <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label>
+ <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label>
- <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label>
+ <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label>
- <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label>
+ <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label>
- <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label>
+ <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label>
- <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label>
+ <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label>
- <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label>
+ <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label>
- <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label>
+ <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label>
- <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label>
+ <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label>
- <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label>
+ <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label>
- <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label>
+ <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label>
- <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label>
+ <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label>
- <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
- </div>
- <div class="ctrlHolder">
- <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label>
- <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label>
+ <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
</div>
- <div class="ctrlHolder">
- <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label>
- <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label>
+ <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label>
- <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label>
+ <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label>
- <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label>
+ <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label>
- <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label>
+ <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label>
- <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label>
+ <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_database">{tmpl_var name='limit_database_txt'}</label>
- <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label>
+ <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label>
- <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label>
+ <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="limit_database">{tmpl_var name='limit_database_txt'}</label>
+ <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label>
+ <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label>
- <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf">
- {tmpl_var name='limit_cron_type'}
- </select>
+ <div class="ctrlHolder">
+ <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label>
+ <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf">
+ {tmpl_var name='limit_cron_type'}
+ </select>
</div>
- <div class="ctrlHolder">
- <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label>
- <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ <div class="ctrlHolder">
+ <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label>
+ <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
- <div class="ctrlHolder">
- <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label>
- <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
- </div>
- </fieldset>
+ <div class="ctrlHolder">
+ <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label>
+ <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB
+ </div>
+ </fieldset>
- <input type="hidden" name="id" value="{tmpl_var name='id'}">
+ <input type="hidden" name="id" value="{tmpl_var name='id'}">
- <div class="buttonHolder buttons">
- <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
- <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
- </div>
- </div>
-
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
+ </div>
+ </div>
+
</div>
diff --git a/interface/web/sites/form/webdav_user.tform.php b/interface/web/sites/form/webdav_user.tform.php
new file mode 100644
index 0000000..35132fe
--- /dev/null
+++ b/interface/web/sites/form/webdav_user.tform.php
@@ -0,0 +1,128 @@
+<?php
+
+/*
+ Form Definition
+
+ Tabledefinition
+
+ Datatypes:
+ - INTEGER (Forces the input to Int)
+ - DOUBLE
+ - CURRENCY (Formats the values to currency notation)
+ - VARCHAR (no format check, maxlength: 255)
+ - TEXT (no format check)
+ - DATE (Dateformat, automatic conversion to timestamps)
+
+ Formtype:
+ - TEXT (Textfield)
+ - TEXTAREA (Textarea)
+ - PASSWORD (Password textfield, input is not shown when edited)
+ - SELECT (Select option field)
+ - RADIO
+ - CHECKBOX
+ - CHECKBOXARRAY
+ - FILE
+
+ VALUE:
+ - Wert oder Array
+
+ Hint:
+ The ID field of the database table is not part of the datafield definition.
+ The ID field must be always auto incement (int or bigint).
+
+
+*/
+
+$form["title"] = "Webdav-User";
+$form["description"] = "";
+$form["name"] = "webdav_user";
+$form["action"] = "webdav_user_edit.php";
+$form["db_table"] = "webdav_user";
+$form["db_table_idx"] = "webdav_user_id";
+$form["db_history"] = "yes";
+$form["tab_default"] = "webdav";
+$form["list_default"] = "webdav_user_list.php";
+$form["auth"] = 'yes'; // yes / no
+
+$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+$form["tabs"]['webdav'] = array (
+ 'title' => "Webdav User",
+ 'width' => 100,
+ 'template' => "templates/webdav_user_edit.htm",
+ 'fields' => array (
+ ##################################
+ # Begin Datatable fields
+ ##################################
+ 'server_id' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
+ 'keyfield'=> 'server_id',
+ 'valuefield'=> 'server_name'
+ ),
+ 'value' => ''
+ ),
+ 'parent_domain_id' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain",
+ 'keyfield'=> 'domain_id',
+ 'valuefield'=> 'domain'
+ ),
+ 'value' => ''
+ ),
+ 'username' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'UNIQUE',
+ 'errmsg'=> 'username_error_unique'),
+ 1 => array ( 'type' => 'REGEX',
+ 'regex' => '/^[\w\.\-]{0,64}$/',
+ 'errmsg'=> 'username_error_regex'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'password' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'PASSWORD',
+ 'encryption' => 'CRYPT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'active' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'y',
+ 'value' => array(0 => 'n',1 => 'y')
+ ),
+ 'dir' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
+ 'errmsg'=> 'directory_error_empty'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ ##################################
+ # ENDE Datatable fields
+ ##################################
+ )
+);
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/de.lng b/interface/web/sites/lib/lang/de.lng
index d921ad4..54231a4 100644
--- a/interface/web/sites/lib/lang/de.lng
+++ b/interface/web/sites/lib/lang/de.lng
@@ -11,6 +11,8 @@
$wb['FTP-User'] = 'FTP Benutzer';
$wb['FTP'] = 'FTP';
$wb['Shell-User'] = 'Shell Benutzer';
+$wb['Webdav-User'] = 'Webdav Benutzer';
+$wb['Webdav'] = 'Webdav';
$wb['Shell'] = 'Shell';
$wb['Websites'] = 'Websites';
$wb['Stats'] = 'Statistiken';
diff --git a/interface/web/sites/lib/lang/de_webdav_user.lng b/interface/web/sites/lib/lang/de_webdav_user.lng
new file mode 100644
index 0000000..8b14415
--- /dev/null
+++ b/interface/web/sites/lib/lang/de_webdav_user.lng
@@ -0,0 +1,16 @@
+<?php
+$wb["dir_txt"] = 'Verzeichnis';
+$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'] = 'Aktiv';
+$wb["limit_webdav_user_txt"] = 'Die maximale Anzahl an Webdav Benutzer für ihr Konto wurde erreicht.';
+$wb['username_error_empty'] = 'Benutzername ist leer.';
+$wb['username_error_unique'] = 'Der Benutzername muss einzigartig sein.';
+$wb['username_error_regex'] = 'Der Benutzername enthält nicht erlaubte Zeichen.';
+$wb['directory_error_empty'] = 'Verzeichnis ist leer.';
+$wb['password_strength_txt'] = 'Passwortkomplexität';
+$wb['parent_domain_id_error_empty'] = 'Keine Website ausgewählt.';
+?>
diff --git a/interface/web/sites/lib/lang/de_webdav_user_list.lng b/interface/web/sites/lib/lang/de_webdav_user_list.lng
new file mode 100644
index 0000000..a9ae0c9
--- /dev/null
+++ b/interface/web/sites/lib/lang/de_webdav_user_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb["list_head_txt"] = 'Webdav-Benutzer';
+$wb["active_txt"] = 'Aktiv';
+$wb["server_id_txt"] = 'Server';
+$wb["parent_domain_id_txt"] = 'Website';
+$wb["username_txt"] = 'Benutzername';
+$wb["add_new_record_txt"] = 'Neuen Webdavbenutzer hinzufügen';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en.lng b/interface/web/sites/lib/lang/en.lng
index 36c63bc..669a971 100644
--- a/interface/web/sites/lib/lang/en.lng
+++ b/interface/web/sites/lib/lang/en.lng
@@ -13,6 +13,8 @@
$wb['FTP'] = 'FTP';
$wb['Shell-User'] = 'Shell-User';
$wb['Shell'] = 'Shell';
+$wb['Webdav-User'] = 'Webdav Benutzer';
+$wb['Webdav'] = 'Webdav';
$wb['Websites'] = 'Websites';
$wb["Stats"] = 'Statistics';
$wb["Cron"] = 'Cron';
diff --git a/interface/web/sites/lib/lang/en_webdav_user.lng b/interface/web/sites/lib/lang/en_webdav_user.lng
new file mode 100644
index 0000000..09cf6ff
--- /dev/null
+++ b/interface/web/sites/lib/lang/en_webdav_user.lng
@@ -0,0 +1,16 @@
+<?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';
+?>
diff --git a/interface/web/sites/lib/lang/en_webdav_user_list.lng b/interface/web/sites/lib/lang/en_webdav_user_list.lng
new file mode 100644
index 0000000..072e3ea
--- /dev/null
+++ b/interface/web/sites/lib/lang/en_webdav_user_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb["list_head_txt"] = 'Webdav-User';
+$wb["active_txt"] = 'Active';
+$wb["server_id_txt"] = 'Server';
+$wb["parent_domain_id_txt"] = 'Website';
+$wb["username_txt"] = 'Username';
+$wb["add_new_record_txt"] = 'Add new Webdav-User';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php
index 09fdfe8..3b727ee 100644
--- a/interface/web/sites/lib/module.conf.php
+++ b/interface/web/sites/lib/module.conf.php
@@ -11,25 +11,25 @@
*/
$items[] = array( 'title' => "Website",
- 'target' => 'content',
- 'link' => 'sites/web_domain_list.php',
- 'html_id' => 'domain_list');
+ 'target' => 'content',
+ 'link' => 'sites/web_domain_list.php',
+ 'html_id' => 'domain_list');
$items[] = array( 'title' => "Subdomain",
- 'target' => 'content',
- 'link' => 'sites/web_subdomain_list.php',
- 'html_id' => 'subdomain_list');
+ 'target' => 'content',
+ 'link' => 'sites/web_subdomain_list.php',
+ 'html_id' => 'subdomain_list');
$items[] = array( 'title' => "Aliasdomain",
- 'target' => 'content',
- 'link' => 'sites/web_aliasdomain_list.php',
- 'html_id' => 'aliasdomain_list');
+ 'target' => 'content',
+ 'link' => 'sites/web_aliasdomain_list.php',
+ 'html_id' => 'aliasdomain_list');
$module["nav"][] = array( 'title' => 'Websites',
- 'open' => 1,
- 'items' => $items);
+ 'open' => 1,
+ 'items' => $items);
// clean up
unset($items);
@@ -39,48 +39,65 @@
*/
$items[] = array( 'title' => "FTP-User",
- 'target' => 'content',
- 'link' => 'sites/ftp_user_list.php',
- 'html_id' => 'ftp_user_list');
+ 'target' => 'content',
+ 'link' => 'sites/ftp_user_list.php',
+ 'html_id' => 'ftp_user_list');
$module["nav"][] = array( 'title' => 'FTP',
- 'open' => 1,
- 'items' => $items);
+ 'open' => 1,
+ 'items' => $items);
// clean up
unset($items);
/*
- FTP User menu
+ Shell User menu
*/
$items[] = array( 'title' => "Shell-User",
- 'target' => 'content',
- 'link' => 'sites/shell_user_list.php',
- 'html_id' => 'shell_user_list');
+ 'target' => 'content',
+ 'link' => 'sites/shell_user_list.php',
+ 'html_id' => 'shell_user_list');
$module["nav"][] = array( 'title' => 'Shell',
- 'open' => 1,
- 'items' => $items);
+ 'open' => 1,
+ 'items' => $items);
// clean up
unset($items);
+
+/*
+ * Webdav User menu
+ */
+$items[] = array( 'title' => "Webdav-User",
+ 'target' => 'content',
+ 'link' => 'sites/webdav_user_list.php',
+ 'html_id' => 'webdav_user_list');
+
+
+$module["nav"][] = array( 'title' => 'Webdav',
+ 'open' => 1,
+ 'items' => $items);
+
+// clean up
+unset($items);
+
/*
Databases menu
*/
$items[] = array( 'title' => "Database",
- 'target' => 'content',
- 'link' => 'sites/database_list.php',
- 'html_id' => 'database_list');
+ 'target' => 'content',
+ 'link' => 'sites/database_list.php',
+ 'html_id' => 'database_list');
$module["nav"][] = array( 'title' => 'Database',
- 'open' => 1,
- 'items' => $items);
+ 'open' => 1,
+ 'items' => $items);
/*
@@ -89,28 +106,28 @@
$items = array();
$items[] = array( 'title' => "Cron Jobs",
- 'target' => 'content',
- 'link' => 'sites/cron_list.php',
- 'html_id' => 'cron_list');
+ 'target' => 'content',
+ 'link' => 'sites/cron_list.php',
+ 'html_id' => 'cron_list');
$module["nav"][] = array( 'title' => 'Cron',
- 'open' => 1,
- 'items' => $items);
+ 'open' => 1,
+ 'items' => $items);
//**** Statistics menu
$items = array();
$items[] = array( 'title' => 'Web traffic',
- 'target' => 'content',
- 'link' => 'sites/web_sites_stats.php',
- 'html_id' => 'websites_stats');
+ 'target' => 'content',
+ 'link' => 'sites/web_sites_stats.php',
+ 'html_id' => 'websites_stats');
$module['nav'][] = array( 'title' => 'Statistics',
- 'open' => 1,
- 'items' => $items);
+ 'open' => 1,
+ 'items' => $items);
diff --git a/interface/web/sites/list/webdav_user.list.php b/interface/web/sites/list/webdav_user.list.php
new file mode 100644
index 0000000..fc3ed0c
--- /dev/null
+++ b/interface/web/sites/list/webdav_user.list.php
@@ -0,0 +1,99 @@
+<?php
+
+/*
+ Datatypes:
+ - INTEGER
+ - DOUBLE
+ - CURRENCY
+ - VARCHAR
+ - TEXT
+ - DATE
+*/
+
+
+
+// Name of the list
+$liste["name"] = "webdav_user";
+
+// Database table
+$liste["table"] = "webdav_user";
+
+// Index index field of the database table
+$liste["table_idx"] = "webdav_user_id";
+
+// Search Field Prefix
+$liste["search_prefix"] = "search_";
+
+// Records per page
+$liste["records_per_page"] = 15;
+
+// Script File of the list
+$liste["file"] = "webdav_user_list.php";
+
+// Script file of the edit form
+$liste["edit_file"] = "webdav_user_edit.php";
+
+// Script File of the delete script
+$liste["delete_file"] = "webdav_user_del.php";
+
+// Paging Template
+$liste["paging_tpl"] = "templates/paging.tpl.htm";
+
+// Enable auth
+$liste["auth"] = "yes";
+
+
+/*****************************************************
+* Suchfelder
+*****************************************************/
+
+
+$liste["item"][] = array( 'field' => "active",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "SELECT",
+ 'op' => "=",
+ 'prefix' => "",
+ 'suffix' => "",
+ 'width' => "",
+ 'value' => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>",'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+
+
+$liste["item"][] = array( 'field' => "server_id",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "SELECT",
+ 'op' => "like",
+ 'prefix' => "%",
+ 'suffix' => "%",
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
+ 'keyfield'=> 'server_id',
+ 'valuefield'=> 'server_name'
+ ),
+ 'width' => "",
+ 'value' => "");
+
+$liste["item"][] = array( 'field' => "parent_domain_id",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "SELECT",
+ 'op' => "=",
+ 'prefix' => "",
+ 'suffix' => "",
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain",
+ 'keyfield'=> 'domain_id',
+ 'valuefield'=> 'domain'
+ ),
+ 'width' => "",
+ 'value' => "");
+
+$liste["item"][] = array( 'field' => "username",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "TEXT",
+ 'op' => "like",
+ 'prefix' => "%",
+ 'suffix' => "%",
+ 'width' => "",
+ 'value' => "");
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/templates/webdav_user_edit.htm b/interface/web/sites/templates/webdav_user_edit.htm
new file mode 100644
index 0000000..4b5063f
--- /dev/null
+++ b/interface/web/sites/templates/webdav_user_edit.htm
@@ -0,0 +1,58 @@
+<h2><tmpl_var name="list_head_txt"></h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_webdav_user">
+
+ <div class="pnl_formsarea">
+ <fieldset class="inlineLabels">
+ <div class="ctrlHolder">
+ <tmpl_if name="edit_disabled">
+ <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label>
+ <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled">
+ {tmpl_var name='parent_domain_id'}
+ </select>
+ <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" />
+ <tmpl_else>
+ <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label>
+ <select name="parent_domain_id" id="parent_domain_id" class="selectInput">
+ {tmpl_var name='parent_domain_id'}
+ </select>
+ </tmpl_if>
+ </div>
+ <div class="ctrlHolder">
+ <label for="username">{tmpl_var name='username_txt'}</label>
+ <div style="float: left;">{tmpl_var name='username_prefix'} </div>
+ <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput formLengthFourth"/>
+ </div>
+ <div class="ctrlHolder">
+ <label for="password">{tmpl_var name='password_txt'}</label>
+ <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)"/>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name='password_strength_txt'}</p>
+ <div id="passBar"></div>
+ <p class="formHint"><span id="passText"> </span></p>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name='active_txt'}</p>
+ <div class="multiField">
+ {tmpl_var name='active'}
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <label for="dir">{tmpl_var name='dir_txt'}</label>
+ <div style="float: left;">webdav/</div>
+ <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" />
+ </div>
+
+ </fieldset>
+
+ <input type="hidden" name="id" value="{tmpl_var name='id'}">
+
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/webdav_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/webdav_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
+ </div>
+ </div>
+
+</div>
diff --git a/interface/web/sites/templates/webdav_user_list.htm b/interface/web/sites/templates/webdav_user_list.htm
new file mode 100644
index 0000000..2f6d69c
--- /dev/null
+++ b/interface/web/sites/templates/webdav_user_list.htm
@@ -0,0 +1,59 @@
+<h2><tmpl_var name="list_head_txt"></h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_list_webdav_user">
+
+ <div class="pnl_toolsarea">
+ <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
+ <div class="buttons">
+ <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/webdav_user_edit.php');">
+ <span>{tmpl_var name="add_new_record_txt"}</span>
+ </button>
+ </div>
+ </fieldset>
+ </div>
+
+ <div class="pnl_listarea">
+ <fieldset><legend><tmpl_var name="list_head_txt"></legend>
+ <table class="list">
+ <thead>
+ <tr>
+ <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th>
+ <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th>
+ <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th>
+ <th class="tbl_col_username" scope="col"><tmpl_var name="username_txt"></th>
+ <th class="tbl_col_buttons" scope="col"> </th>
+ </tr>
+ <tr>
+ <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','sites/webdav_user_list.php');">{tmpl_var name='search_active'}</select></td>
+ <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','sites/webdav_user_list.php');">{tmpl_var name='search_server_id'}</select></td>
+ <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id" onChange="submitForm('pageForm','sites/webdav_user_list.php');">{tmpl_var name='search_parent_domain_id'}</select></td>
+ <td class="tbl_col_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" /></td>
+ <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/shell_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td>
+ </tr>
+ </thead>
+ <tbody>
+ <tmpl_loop name="records">
+ <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
+ <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td>
+ <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td>
+ <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td>
+ <td class="tbl_col_username"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="username"}</a></td>
+ <td class="tbl_col_buttons">
+ <div class="buttons icons16">
+ <a class="icons16 icoDelete" href="javascript: del_record('sites/webdav_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a>
+ </div>
+ </td>
+ </tr>
+ </tmpl_loop>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td>
+ </tr>
+ </tfoot>
+ </table>
+ </fieldset>
+ </div>
+
+</div>
diff --git a/interface/web/sites/webdav_user_del.php b/interface/web/sites/webdav_user_del.php
new file mode 100644
index 0000000..ca92412
--- /dev/null
+++ b/interface/web/sites/webdav_user_del.php
@@ -0,0 +1,50 @@
+<?php
+/*
+Copyright (c) 2010 Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+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.
+*/
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/webdav_user.list.php";
+$tform_def_file = "form/webdav_user.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('sites');
+
+$app->uses("tform_actions");
+$app->tform_actions->onDelete();
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/webdav_user_edit.php b/interface/web/sites/webdav_user_edit.php
new file mode 100644
index 0000000..19a0f78
--- /dev/null
+++ b/interface/web/sites/webdav_user_edit.php
@@ -0,0 +1,201 @@
+<?php
+/*
+Copyright (c) 2010 Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+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.
+*/
+
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$tform_def_file = "form/webdav_user.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+require_once('tools.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('sites');
+
+// Loading classes
+$app->uses('tpl,tform,tform_actions');
+$app->load('tform_actions');
+
+class page_action extends tform_actions {
+
+ function onShowNew() {
+ global $app, $conf;
+
+ // we will check only users, not admins
+ if($_SESSION["s"]["user"]["typ"] == 'user') {
+ if(!$app->tform->checkClientLimit('limit_webdav_user')) {
+ $app->error($app->tform->wordbook["limit_webdav_user_txt"]);
+ }
+ if(!$app->tform->checkResellerLimit('limit_webdav_user')) {
+ $app->error('Reseller: '.$app->tform->wordbook["limit_webdav_user_txt"]);
+ }
+ }
+
+ parent::onShowNew();
+ }
+
+ function onShowEnd() {
+ global $app, $conf, $interfaceConf;
+ /*
+ * If the names are restricted -> remove the restriction, so that the
+ * data can be edited
+ */
+
+ $app->uses('getconf');
+ $global_config = $app->getconf->get_global_config('sites');
+ $webdavuser_prefix = replacePrefix($global_config['webdavuser_prefix'], $this->dataRecord);
+
+ if ($this->dataRecord['username'] != ""){
+ /* REMOVE the restriction */
+ $app->tpl->setVar("username", str_replace($webdavuser_prefix , '', $this->dataRecord['username']));
+ }
+ if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
+ $app->tpl->setVar("username_prefix", $global_config['webdavuser_prefix']);
+ } else {
+ $app->tpl->setVar("username_prefix", $webdavuser_prefix);
+ }
+
+ if($this->id > 0) {
+ //* we are editing a existing record
+ $app->tpl->setVar("edit_disabled", 1);
+ $app->tpl->setVar("parent_domain_id_value", $this->dataRecord["parent_domain_id"]);
+ } else {
+ $app->tpl->setVar("edit_disabled", 0);
+ }
+
+ parent::onShowEnd();
+ }
+
+ function onSubmit() {
+ global $app, $conf;
+
+ // Get the record of the parent domain
+ $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"]));
+
+ // Set a few fixed values
+ $this->dataRecord["server_id"] = $parent_domain["server_id"];
+
+ if(isset($this->dataRecord['username']) && trim($this->dataRecord['username']) == '') $app->tform->errorMessage .= $app->tform->lng('username_error_empty').'<br />';
+ if(isset($this->dataRecord['username']) && empty($this->dataRecord['parent_domain_id'])) $app->tform->errorMessage .= $app->tform->lng('parent_domain_id_error_empty').'<br />';
+
+ parent::onSubmit();
+ }
+
+ function onBeforeInsert() {
+ global $app, $conf, $interfaceConf;
+
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($app->tform->errorMessage == ''){
+
+ $app->uses('getconf');
+ $global_config = $app->getconf->get_global_config('sites');
+ $webdavuser_prefix = replacePrefix($global_config['webdavuser_prefix'], $this->dataRecord);
+
+ /* restrict the names */
+ $this->dataRecord['username'] = $webdavuser_prefix . $this->dataRecord['username'];
+ }
+ parent::onBeforeInsert();
+ }
+
+ function onAfterInsert() {
+ global $app, $conf;
+
+ $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $server_id = $web["server_id"];
+ $dir = $web["document_root"];
+
+ // The Webdav user shall be owned by the same group then the website
+ $sys_groupid = $web['sys_groupid'];
+
+ $sql = "UPDATE webdav_user SET server_id = $server_id, dir = '$dir', sys_groupid = '$sys_groupid' WHERE shell_user_id = ".$this->id;
+ $app->db->query($sql);
+
+ }
+
+ function onBeforeUpdate() {
+ global $app, $conf, $interfaceConf;
+
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($app->tform->errorMessage == '') {
+ /*
+ * If the names should be restricted -> do it!
+ */
+ $app->uses('getconf');
+ $global_config = $app->getconf->get_global_config('sites');
+ $webdavuser_prefix = replacePrefix($global_config['webdavuser_prefix'], $this->dataRecord);
+
+ /* restrict the names */
+ $this->dataRecord['username'] = $webdavuser_prefix . $this->dataRecord['username'];
+ }
+ }
+
+ function onAfterUpdate() {
+ global $app, $conf;
+
+
+ }
+
+ function getClientName() {
+ global $app, $conf;
+
+ 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 {
+ // Get the group-id from the data itself
+ $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord['parent_domain_id']));
+ $client_group_id = $web['sys_groupid'];
+ }
+ /* get the name of the client */
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+ $clientName = $tmp['name'];
+ if ($clientName == "") $clientName = 'default';
+ $clientName = convertClientName($clientName);
+
+ return $clientName;
+
+ }
+
+}
+
+$page = new page_action;
+$page->onLoad();
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/webdav_user_list.php b/interface/web/sites/webdav_user_list.php
new file mode 100644
index 0000000..bac3de9
--- /dev/null
+++ b/interface/web/sites/webdav_user_list.php
@@ -0,0 +1,51 @@
+<?php
+/*
+Copyright (c) 2010 Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+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');
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/webdav_user.list.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+//* Check permissions for module
+$app->auth->check_module_permissions('sites');
+
+$app->uses('listform_actions');
+
+$app->listform_actions->onLoad();
+
+
+?>
\ No newline at end of file
--
Gitblit v1.9.1