From 554c40358642b1dfe1a3ccf7b66a172ef849c9e9 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 11 Jan 2014 05:15:19 -0500
Subject: [PATCH] - Added option to allow resellers to add domains in the domain limits (domain module). - Added section toggle for client limits
---
interface/web/client/lib/module.conf.php | 18 ++------
interface/web/client/templates/client_edit_limits.htm | 2
interface/web/client/lib/lang/en_reseller.lng | 4 ++
interface/web/client/client_template_edit.php | 3 +
interface/web/client/domain_edit.php | 9 ++++
interface/web/client/templates/domain_list.htm | 6 ---
install/sql/ispconfig3.sql | 2 +
install/sql/incremental/upd_0063.sql | 2 +
interface/web/client/templates/reseller_edit_limits.htm | 17 ++++++--
interface/web/client/lib/lang/en_client_template.lng | 2 +
interface/web/client/lib/lang/en_client_template_list.lng | 2
interface/web/client/form/reseller.tform.php | 14 +++++++
interface/web/client/templates/client_template_edit_limits.htm | 19 ++++++---
13 files changed, 67 insertions(+), 33 deletions(-)
diff --git a/install/sql/incremental/upd_0063.sql b/install/sql/incremental/upd_0063.sql
new file mode 100644
index 0000000..6c09466
--- /dev/null
+++ b/install/sql/incremental/upd_0063.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `client` ADD `limit_domainmodule` INT NOT NULL DEFAULT '0';
+ALTER TABLE `client_template` ADD `limit_domainmodule` INT NOT NULL DEFAULT '0';
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 783a5cd..600b853 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -215,6 +215,7 @@
`limit_cron_frequency` int(11) NOT NULL DEFAULT '5',
`limit_traffic_quota` int(11) NOT NULL DEFAULT '-1',
`limit_client` int(11) NOT NULL DEFAULT '0',
+ `limit_domainmodule` int(11) NOT NULL DEFAULT '0',
`limit_mailmailinglist` int(11) NOT NULL DEFAULT '-1',
`limit_openvz_vm` int(11) NOT NULL DEFAULT '0',
`limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0',
@@ -317,6 +318,7 @@
`limit_cron_frequency` int(11) NOT NULL default '5',
`limit_traffic_quota` int(11) NOT NULL default '-1',
`limit_client` int(11) NOT NULL default '0',
+ `limit_domainmodule` int(11) NOT NULL DEFAULT '0',
`limit_mailmailinglist` int(11) NOT NULL default '-1',
`limit_openvz_vm` int(11) NOT NULL DEFAULT '0',
`limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0',
diff --git a/interface/web/client/client_template_edit.php b/interface/web/client/client_template_edit.php
index 5a379ee..bc5c6d2 100644
--- a/interface/web/client/client_template_edit.php
+++ b/interface/web/client/client_template_edit.php
@@ -55,9 +55,10 @@
function onSubmit() {
global $app;
- //* Resellers shall not be able to create another reseller
+ //* Resellers shall not be able to create another reseller or set reseller specific settings
if($_SESSION["s"]["user"]["typ"] == 'user') {
$this->dataRecord['limit_client'] = 0;
+ $this->dataRecord['limit_domainmodule'] = 0;
}
parent::onSubmit();
diff --git a/interface/web/client/domain_edit.php b/interface/web/client/domain_edit.php
index 24a4c81..07929f9 100644
--- a/interface/web/client/domain_edit.php
+++ b/interface/web/client/domain_edit.php
@@ -52,6 +52,15 @@
$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'.lng';
include $lng_file;
+if(!$app->tform->checkClientLimit('limit_domainmodule')) {
+ $app->uses('ini_parser,getconf');
+ $settings = $app->getconf->get_global_config('domains');
+ if ($settings['use_domain_module'] == 'y') {
+ $app->error($settings['new_domain_html']);
+ }
+}
+
+
class page_action extends tform_actions {
function onShowNew() {
diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index 77e1f63..a372109 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -1130,6 +1130,20 @@
'width' => '30',
'maxlength' => '255'
),
+ 'limit_domainmodule' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'ISINT',
+ 'errmsg'=> 'limit_domainmodule_error_notint'),
+ ),
+ 'default' => '0',
+ 'value' => '',
+ 'separator' => '',
+ 'width' => '10',
+ 'maxlength' => '10',
+ 'rows' => '',
+ 'cols' => ''
+ ),
//#################################
// END Datatable fields
//#################################
diff --git a/interface/web/client/lib/lang/en_client_template.lng b/interface/web/client/lib/lang/en_client_template.lng
index e7c06a8..0eef470 100644
--- a/interface/web/client/lib/lang/en_client_template.lng
+++ b/interface/web/client/lib/lang/en_client_template.lng
@@ -88,4 +88,6 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
+$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
+$wb['client_limits_txt'] = 'Client Limits'
?>
\ No newline at end of file
diff --git a/interface/web/client/lib/lang/en_client_template_list.lng b/interface/web/client/lib/lang/en_client_template_list.lng
index ce1f9bd..1906cef 100644
--- a/interface/web/client/lib/lang/en_client_template_list.lng
+++ b/interface/web/client/lib/lang/en_client_template_list.lng
@@ -1,5 +1,5 @@
<?php
-$wb["list_head_txt"] = 'Client-Templates';
+$wb["list_head_txt"] = 'Client and Reseller Templates';
$wb["template_type_txt"] = 'Type';
$wb["template_name_txt"] = 'Template name';
$wb['template_id_txt'] = 'Template ID';
diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng
index e58d4e3..956768f 100644
--- a/interface/web/client/lib/lang/en_reseller.lng
+++ b/interface/web/client/lib/lang/en_reseller.lng
@@ -156,4 +156,8 @@
$wb['customer_no_counter_txt'] = 'Customer No. counter';
$wb['added_by_txt'] = 'Added by';
$wb['added_date_txt'] = 'Added date';
+$wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.';
+$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
+$wb['client_limits_txt'] = 'Client Limits';
+$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than "custom" is selected.';
?>
diff --git a/interface/web/client/lib/module.conf.php b/interface/web/client/lib/module.conf.php
index 92775ea..8b97848 100644
--- a/interface/web/client/lib/module.conf.php
+++ b/interface/web/client/lib/module.conf.php
@@ -17,13 +17,6 @@
'link' => 'client/client_edit.php',
'html_id' => 'client_add');
-if($_SESSION["s"]["user"]["typ"] == 'admin'){
- $items[] = array( 'title' => "Edit Client-Templates",
- 'target' => 'content',
- 'link' => 'client/client_template_list.php',
- 'html_id' => 'client_template_list');
-}
-
$module["nav"][] = array( 'title' => 'Clients',
'open' => 1,
'items' => $items);
@@ -66,11 +59,11 @@
unset($items);
-//if($_SESSION["s"]["user"]["typ"] == 'admin'){
- $items[] = array( 'title' => "Limit-Templates",
- 'target' => 'content',
- 'link' => 'client/client_template_list.php',
- 'html_id' => 'client_template_list');
+
+$items[] = array( 'title' => "Limit-Templates",
+ 'target' => 'content',
+ 'link' => 'client/client_template_list.php',
+ 'html_id' => 'client_template_list');
$module["nav"][] = array( 'title' => 'Templates',
@@ -78,7 +71,6 @@
'items' => $items);
unset($items);
-//}
$app->uses('ini_parser,getconf');
diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index 49be46b..fa2bbb7 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -313,7 +313,7 @@
.find('div.pnl_formsarea')
.find('fieldset')
.find('input,select,button')
- .not('#template_master,#template_additional,#default_mailserver,#default_webserver,#default_dbserver,#default_dnsserver,#default_slave_dnsserver')
+ .not('#template_master,#template_additional,#default_mailserver,#default_webserver,#default_dbserver,#default_dnsserver,#default_slave_dnsserver,#customer_no_template,#customer_no_start,#customer_no_counter')
.click(function(e) {
if(custom_template_selected()) return true;
e.preventDefault();
diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm
index 5f1e37b..1eea399 100644
--- a/interface/web/client/templates/client_template_edit_limits.htm
+++ b/interface/web/client/templates/client_template_edit_limits.htm
@@ -5,12 +5,6 @@
<div class="pnl_formsarea">
<fieldset class="inlineLabels"><legend>Limits</legend>
- <tmpl_if name="is_admin">
- <div class="ctrlHolder">
- <label for="limit_client">{tmpl_var name='limit_client_txt'}</label>
- <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
- </div>
- </tmpl_if>
<div class="subsectiontoggle"><span class="showing"></span>{tmpl_var name='web_limits_txt'}<em class="showing"></em></div>
<div>
<div class="ctrlHolder">
@@ -230,6 +224,19 @@
<input name="limit_aps" id="limit_aps" value="{tmpl_var name='limit_aps'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
</div>
+ <tmpl_if name="is_admin">
+ <div class="subsectiontoggle"><span></span>{tmpl_var name='client_limits_txt'}<em></em></div>
+ <div style="display:none;">
+ <div class="ctrlHolder">
+ <label for="limit_client">{tmpl_var name='limit_client_txt'}</label>
+ <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="limit_domainmodule">{tmpl_var name='limit_domainmodule_txt'}</label>
+ <input name="limit_domainmodule" id="limit_domainmodule" value="{tmpl_var name='limit_domainmodule'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ </div>
+ </tmpl_if>
</fieldset>
<input type="hidden" name="id" value="{tmpl_var name='id'}">
diff --git a/interface/web/client/templates/domain_list.htm b/interface/web/client/templates/domain_list.htm
index bd8f8be..3100660 100644
--- a/interface/web/client/templates/domain_list.htm
+++ b/interface/web/client/templates/domain_list.htm
@@ -6,15 +6,9 @@
<div class="pnl_toolsarea">
<fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
<div class="buttons">
- <tmpl_if name="is_admin">
<button class="button iconstxt icoAdd" type="button" onclick="loadContent('client/domain_edit.php');">
<span>{tmpl_var name="add_new_record_txt"}</span>
</button>
- <tmpl_else>
- <button class="button iconstxt icoAdd" type="button" onclick="loadContent('client/domain_new_client.php');">
- <span>{tmpl_var name="add_new_record_txt"}</span>
- </button>
- </tmpl_if>
</div>
</fieldset>
</div>
diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm
index 0d3cb19..42b4559 100644
--- a/interface/web/client/templates/reseller_edit_limits.htm
+++ b/interface/web/client/templates/reseller_edit_limits.htm
@@ -41,10 +41,6 @@
</div>
</tmpl_if>
- <div class="ctrlHolder">
- <label for="limit_client">{tmpl_var name='limit_client_txt'}</label>
- <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
- </div>
<div class="ctrlHolder">
<label for="customer_no_template">{tmpl_var name='customer_no_template_txt'}</label>
<input name="customer_no_template" id="customer_no_template" value="{tmpl_var name='customer_no_template'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" />
@@ -306,6 +302,17 @@
<input name="limit_aps" id="limit_aps" value="{tmpl_var name='limit_aps'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
</div>
</div>
+ <div class="subsectiontoggle"><span></span>{tmpl_var name='client_limits_txt'}<em></em></div>
+ <div style="display:none;">
+ <div class="ctrlHolder">
+ <label for="limit_client">{tmpl_var name='limit_client_txt'}</label>
+ <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="limit_domainmodule">{tmpl_var name='limit_domainmodule_txt'}</label>
+ <input name="limit_domainmodule" id="limit_domainmodule" value="{tmpl_var name='limit_domainmodule'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" />
+ </div>
+ </div>
</fieldset>
<input type="hidden" name="id" value="{tmpl_var name='id'}">
@@ -333,7 +340,7 @@
.find('div.pnl_formsarea')
.find('fieldset')
.find('input,select,button')
- .not('#template_master,#template_additional,#default_mailserver,#default_webserver,#default_dbserver,#default_dnsserver,#default_slave_dnsserver')
+ .not('#template_master,#template_additional,#default_mailserver,#default_webserver,#default_dbserver,#default_dnsserver,#default_slave_dnsserver,#customer_no_template,#customer_no_start,#customer_no_counter')
.click(function(e) {
if(custom_template_selected()) return true;
e.preventDefault();
--
Gitblit v1.9.1