From 419403a8957857d5a438860624bf71deed471a58 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Thu, 21 Feb 2013 11:24:39 -0500 Subject: [PATCH] - Fixed FS#2617 - Limit for APS packages missing in client limits. --- install/sql/incremental/upd_0048.sql | 1 interface/web/client/templates/client_edit_limits.htm | 7 +++ interface/web/client/form/client.tform.php | 14 +++++++ interface/web/sites/lib/module.conf.php | 4 + interface/web/client/lib/lang/de_reseller.lng | 3 + interface/web/client/lib/lang/en_reseller.lng | 3 + interface/web/client/lib/lang/de_client.lng | 3 + interface/web/sites/aps_install_package.php | 15 +++++++ interface/web/sites/lib/lang/en_aps.lng | 1 interface/web/client/lib/lang/en_client.lng | 3 + interface/web/sites/lib/lang/de_aps.lng | 1 install/sql/ispconfig3.sql | 2 interface/web/client/lib/lang/de_client_template.lng | 3 + interface/web/client/templates/reseller_edit_limits.htm | 7 +++ interface/web/client/lib/lang/en_client_template.lng | 3 + interface/web/client/form/client_template.tform.php | 14 +++++++ interface/web/client/form/reseller.tform.php | 14 +++++++ interface/web/client/templates/client_template_edit_limits.htm | 7 +++ 18 files changed, 102 insertions(+), 3 deletions(-) diff --git a/install/sql/incremental/upd_0048.sql b/install/sql/incremental/upd_0048.sql new file mode 100644 index 0000000..a3cbba6 --- /dev/null +++ b/install/sql/incremental/upd_0048.sql @@ -0,0 +1 @@ +ALTER TABLE `client` CHANGE `limit_aps` `limit_aps` INT( 11 ) NOT NULL DEFAULT '-1'; \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 921c768..828fcf3 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -201,7 +201,7 @@ `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', - `limit_aps` int(11) NOT NULL DEFAULT '0', + `limit_aps` int(11) NOT NULL DEFAULT '-1', `default_dnsserver` int(11) unsigned NOT NULL DEFAULT '1', `limit_dns_zone` int(11) NOT NULL DEFAULT '-1', `limit_dns_slave_zone` int(11) NOT NULL DEFAULT '-1', diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php index 25623f4..7d7bf45 100644 --- a/interface/web/client/form/client.tform.php +++ b/interface/web/client/form/client.tform.php @@ -1039,6 +1039,20 @@ ), 'value' => array(0 => ' ') ), + 'limit_aps' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_aps_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), ################################## # END Datatable fields ################################## diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php index bd98e23..917266e 100644 --- a/interface/web/client/form/client_template.tform.php +++ b/interface/web/client/form/client_template.tform.php @@ -616,6 +616,20 @@ ), 'value' => array(0 => ' ') ), + 'limit_aps' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_aps_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), ################################## # END Datatable fields ################################## diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php index b6bbe1c..df240e5 100644 --- a/interface/web/client/form/reseller.tform.php +++ b/interface/web/client/form/reseller.tform.php @@ -1037,6 +1037,20 @@ ), 'value' => array(0 => ' ') ), + 'limit_aps' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_aps_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), ################################## # END Datatable fields ################################## diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng index 6d4cb7d..40d907a 100644 --- a/interface/web/client/lib/lang/de_client.lng +++ b/interface/web/client/lib/lang/de_client.lng @@ -140,4 +140,7 @@ $wb['paypal_email_error_isemail'] = 'Bitte geben Sie eine gültige PayPal E-Mail Adresse an.'; $wb['paypal_email_txt'] = 'PayPal E-Mail'; $wb['err_msg_master_tpl_set'] = 'Die hier eingestellten Werte werden ignoriert, wenn als Mastervorlage nicht \'Custon\' ausgewählt ist!'; +$wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; +$wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; +$wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; ?> diff --git a/interface/web/client/lib/lang/de_client_template.lng b/interface/web/client/lib/lang/de_client_template.lng index 9188c48..506c61e 100644 --- a/interface/web/client/lib/lang/de_client_template.lng +++ b/interface/web/client/lib/lang/de_client_template.lng @@ -84,4 +84,7 @@ $wb['cron_job_limits_txt'] = 'Cronjob Limits'; $wb['dns_limits_txt'] = 'DNS Limits'; $wb['virtualization_limits_txt'] = 'Virtualisierungs Limits'; +$wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; +$wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; +$wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; ?> diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng index fefb54c..14cd58a 100644 --- a/interface/web/client/lib/lang/de_reseller.lng +++ b/interface/web/client/lib/lang/de_reseller.lng @@ -139,4 +139,7 @@ $wb['bank_name_txt'] = 'Bank'; $wb['bank_account_iban_txt'] = 'IBAN'; $wb['bank_account_swift_txt'] = 'BIC'; +$wb['aps_limits_txt'] = 'APS Installationsassistent Limits'; +$wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen'; +$wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.'; ?> diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng index 62ad841..61a719b 100644 --- a/interface/web/client/lib/lang/en_client.lng +++ b/interface/web/client/lib/lang/en_client.lng @@ -143,4 +143,7 @@ $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than "custom" is selected.'; +$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.'; ?> diff --git a/interface/web/client/lib/lang/en_client_template.lng b/interface/web/client/lib/lang/en_client_template.lng index 434f94e..e7c06a8 100644 --- a/interface/web/client/lib/lang/en_client_template.lng +++ b/interface/web/client/lib/lang/en_client_template.lng @@ -85,4 +85,7 @@ $wb["cron_job_limits_txt"] = 'Cron Job Limits'; $wb["dns_limits_txt"] = 'DNS Limits'; $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.'; ?> \ No newline at end of file diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng index 3d78e3c..711c414 100644 --- a/interface/web/client/lib/lang/en_reseller.lng +++ b/interface/web/client/lib/lang/en_reseller.lng @@ -141,4 +141,7 @@ $wb["bank_name_txt"] = 'Bank name'; $wb["bank_account_iban_txt"] = 'IBAN'; $wb["bank_account_swift_txt"] = 'BIC / Swift'; +$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.'; ?> diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index c05d6bb..c17d778 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -278,6 +278,13 @@ </select> </div> </div> + <div class="subsectiontoggle"><span></span>{tmpl_var name='aps_limits_txt'}<em></em></div> + <div style="display:none;"> + <div class="ctrlHolder"> + <label for="limit_aps">{tmpl_var name='limit_aps_txt'}</label> + <input name="limit_aps" id="limit_aps" value="{tmpl_var name='limit_aps'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + </div> </fieldset> <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm index e7b28f1..18abc9b 100644 --- a/interface/web/client/templates/client_template_edit_limits.htm +++ b/interface/web/client/templates/client_template_edit_limits.htm @@ -217,6 +217,13 @@ </select> </div> </div> + <div class="subsectiontoggle"><span></span>{tmpl_var name='aps_limits_txt'}<em></em></div> + <div style="display:none;"> + <div class="ctrlHolder"> + <label for="limit_aps">{tmpl_var name='limit_aps_txt'}</label> + <input name="limit_aps" id="limit_aps" value="{tmpl_var name='limit_aps'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + </div> </fieldset> <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm index 4c4b06f..468a680 100644 --- a/interface/web/client/templates/reseller_edit_limits.htm +++ b/interface/web/client/templates/reseller_edit_limits.htm @@ -266,6 +266,13 @@ </select> </div> </div> + <div class="subsectiontoggle"><span></span>{tmpl_var name='aps_limits_txt'}<em></em></div> + <div style="display:none;"> + <div class="ctrlHolder"> + <label for="limit_aps">{tmpl_var name='limit_aps_txt'}</label> + <input name="limit_aps" id="limit_aps" value="{tmpl_var name='limit_aps'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + </div> </fieldset> <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/sites/aps_install_package.php b/interface/web/sites/aps_install_package.php index be60121..b10c686 100644 --- a/interface/web/sites/aps_install_package.php +++ b/interface/web/sites/aps_install_package.php @@ -37,7 +37,7 @@ $app->auth->check_module_permissions('sites'); // Load needed classes -$app->uses('tpl'); +$app->uses('tpl,tform'); $app->tpl->newTemplate("form.tpl.htm"); $app->tpl->setInclude('content_tpl', 'templates/aps_install_package.htm'); @@ -47,6 +47,19 @@ $app->tpl->setVar($wb); $app->load_language_file('web/sites/'.$lngfile); +// we will check only users, not admins +if($_SESSION["s"]["user"]["typ"] == 'user') { + $app->tform->formDef['db_table_idx'] = 'client_id'; + $app->tform->formDef['db_table'] = 'client'; + if(!$app->tform->checkClientLimit('limit_aps')) { + $app->error($app->lng("limit_aps_txt")); + } + if(!$app->tform->checkResellerLimit('limit_aps')) { + $app->error('Reseller: '.$wb["limit_aps_txt"]); + } +} + + $adminflag = ($_SESSION['s']['user']['typ'] == 'admin') ? true : false; $gui = new ApsGUIController($app); $pkg_id = (isset($_GET['id'])) ? $app->db->quote($_GET['id']) : ''; diff --git a/interface/web/sites/lib/lang/de_aps.lng b/interface/web/sites/lib/lang/de_aps.lng index 76bd17f..ff8df35 100644 --- a/interface/web/sites/lib/lang/de_aps.lng +++ b/interface/web/sites/lib/lang/de_aps.lng @@ -54,4 +54,5 @@ $wb['installation_success_txt'] = 'Installiert'; $wb['installation_remove_txt'] = 'Deinstallation vorgemerkt'; $wb['packagelist_update_finished_txt'] = 'APS Paketlistenupdate beendet.'; +$wb["limit_aps_txt"] = 'Die maximale Anzahl an APS-Instanzen für Ihr Konto wurde erreicht.'; ?> diff --git a/interface/web/sites/lib/lang/en_aps.lng b/interface/web/sites/lib/lang/en_aps.lng index 2ab5402..e240d57 100644 --- a/interface/web/sites/lib/lang/en_aps.lng +++ b/interface/web/sites/lib/lang/en_aps.lng @@ -54,4 +54,5 @@ $wb['installation_success_txt'] = 'Installed'; $wb['installation_remove_txt'] = 'Removal planned'; $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; +$wb["limit_aps_txt"] = 'The max. number of APS instances for your account is reached.'; ?> \ 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 81d627e..1f7067e 100644 --- a/interface/web/sites/lib/module.conf.php +++ b/interface/web/sites/lib/module.conf.php @@ -132,6 +132,8 @@ } // APS menu +if($app->auth->get_client_limit($userid,'aps') != 0) +{ $items = array(); $items[] = array( 'title' => 'Available packages', @@ -157,7 +159,7 @@ $module['nav'][] = array( 'title' => 'APS Installer', 'open' => 1, 'items' => $items); - +} // Statistics menu $items = array(); -- Gitblit v1.9.1