From 554c40358642b1dfe1a3ccf7b66a172ef849c9e9 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sat, 11 Jan 2014 11:15:19 +0100 Subject: [PATCH] - Added option to allow resellers to add domains in the domain limits (domain module). - Added section toggle for client limits --- install/sql/incremental/upd_0063.sql | 2 ++ install/sql/ispconfig3.sql | 2 ++ interface/web/client/client_template_edit.php | 3 ++- interface/web/client/domain_edit.php | 9 +++++++++ interface/web/client/form/reseller.tform.php | 14 ++++++++++++++ .../client/lib/lang/en_client_template.lng | 2 ++ .../lib/lang/en_client_template_list.lng | 2 +- interface/web/client/lib/lang/en_reseller.lng | 4 ++++ interface/web/client/lib/module.conf.php | 18 +++++------------- .../client/templates/client_edit_limits.htm | 2 +- .../templates/client_template_edit_limits.htm | 19 +++++++++++++------ .../web/client/templates/domain_list.htm | 6 ------ .../client/templates/reseller_edit_limits.htm | 17 ++++++++++++----- 13 files changed, 67 insertions(+), 33 deletions(-) create mode 100644 install/sql/incremental/upd_0063.sql diff --git a/install/sql/incremental/upd_0063.sql b/install/sql/incremental/upd_0063.sql new file mode 100644 index 0000000000..6c094662bd --- /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 783a5cdb87..600b853dcc 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -215,6 +215,7 @@ CREATE TABLE `client` ( `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 @@ CREATE TABLE `client_template` ( `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 5a379ee657..bc5c6d22cf 100644 --- a/interface/web/client/client_template_edit.php +++ b/interface/web/client/client_template_edit.php @@ -55,9 +55,10 @@ class page_action extends tform_actions { 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 24a4c81515..07929f901e 100644 --- a/interface/web/client/domain_edit.php +++ b/interface/web/client/domain_edit.php @@ -52,6 +52,15 @@ $app->load('tform_actions'); $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 77e1f63a6a..a372109906 100644 --- a/interface/web/client/form/reseller.tform.php +++ b/interface/web/client/form/reseller.tform.php @@ -1130,6 +1130,20 @@ $form["tabs"]['limits'] = array ( '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 e7c06a8b6f..0eef4700bf 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["virtualization_limits_txt"] = 'Virtualization Limits'; $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 ce1f9bd123..1906cefc46 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 e58d4e3fcd..956768fe17 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_start_txt'] = 'Customer No. start value'; $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 92775ea139..8b97848b3a 100644 --- a/interface/web/client/lib/module.conf.php +++ b/interface/web/client/lib/module.conf.php @@ -17,13 +17,6 @@ $items[] = array( 'title' => "Add Client", '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 @@ $module["nav"][] = array( 'title' => 'Messaging', 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 @@ $module["nav"][] = array( 'title' => 'Templates', '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 49be46bd00..fa2bbb7326 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -313,7 +313,7 @@ jQuery('div.panel_client') .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 5f1e37b2b1..1eea399004 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 bd8f8be413..3100660896 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 0d3cb19e42..42b4559901 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 @@ jQuery('div.panel_client') .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(); -- GitLab