Skip to content

Commit 94c9617

Browse files
author
Till Brehm
committed
- Added support for reseller templates.
- Resellers can use templates for their clients.
1 parent 23229cb commit 94c9617

32 files changed

+211
-50
lines changed

interface/lib/classes/client_templates.inc.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,10 @@ function apply_client_templates($clientId) {
106106
/*
107107
* Get the master-template for the client
108108
*/
109-
$sql = "SELECT template_master, template_additional FROM client WHERE client_id = " . $app->functions->intval($clientId);
109+
$sql = "SELECT template_master, template_additional,limit_client FROM client WHERE client_id = " . $app->functions->intval($clientId);
110110
$record = $app->db->queryOneRecord($sql);
111111
$masterTemplateId = $record['template_master'];
112+
$is_reseller = ($record['limit_client'] > 0)?true:false;
112113

113114
if($record['template_additional'] != '') {
114115
// we have to call the update_client_templates function
@@ -222,6 +223,7 @@ function apply_client_templates($clientId) {
222223
* Write all back to the database
223224
*/
224225
$update = '';
226+
if(!$is_reseller) unset($limits['limit_client']); // Only Resellers may have limit_client set in template to ensure that we do not convert a client to reseller accidently.
225227
foreach($limits as $k => $v){
226228
if ((strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec') && !is_array($v)){
227229
if ($update != '') $update .= ', ';

interface/lib/classes/custom_datasource.inc.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class custom_datasource {
3232

3333
function master_templates($field, $record) {
3434
global $app, $conf;
35-
$records = $app->db->queryAllRecords("SELECT template_id,template_name FROM client_template WHERE template_type ='m'");
35+
$records = $app->db->queryAllRecords("SELECT template_id,template_name FROM client_template WHERE template_type ='m' and ".$app->tform->getAuthSQL('r'));
3636
$records_new[0] = $app->lng('Custom');
3737
foreach($records as $rec) {
3838
$key = $rec['template_id'];

interface/web/client/client_edit.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@ function onSubmit() {
9292
}
9393
}
9494
}
95+
96+
//* Resellers shall not be able to create another reseller
97+
if($_SESSION["s"]["user"]["typ"] == 'user') {
98+
$this->dataRecord['limit_client'] = 0;
99+
}
95100

96101
if($this->id != 0) {
97102
$this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $this->id);

interface/web/client/client_template_edit.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@
5151

5252
class page_action extends tform_actions {
5353

54+
55+
function onSubmit() {
56+
global $app;
57+
58+
//* Resellers shall not be able to create another reseller
59+
if($_SESSION["s"]["user"]["typ"] == 'user') {
60+
$this->dataRecord['limit_client'] = 0;
61+
}
62+
63+
parent::onSubmit();
64+
}
65+
5466
function onBeforeUpdate() {
5567
global $app;
5668

interface/web/client/form/client_template.tform.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,20 @@
101101
//#################################
102102
// Begin Datatable fields
103103
//#################################
104+
'limit_client' => array (
105+
'datatype' => 'INTEGER',
106+
'formtype' => 'TEXT',
107+
'validators' => array ( 0 => array ( 'type' => 'ISINT',
108+
'errmsg'=> 'limit_client_error_notint'),
109+
),
110+
'default' => '1',
111+
'value' => '',
112+
'separator' => '',
113+
'width' => '10',
114+
'maxlength' => '10',
115+
'rows' => '',
116+
'cols' => ''
117+
),
104118
'limit_maildomain' => array (
105119
'datatype' => 'INTEGER',
106120
'formtype' => 'TEXT',

interface/web/client/lib/lang/ar.lng

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ $wb['Limits'] = 'Limits';
55
$wb['Add Client'] = 'Add Client';
66
$wb['Edit Client'] = 'Edit Client';
77
$wb['Clients'] = 'Clients';
8-
$wb['Edit Client-Templates'] = 'Edit Client-Templates';
8+
$wb['Templates'] = 'Templates';
9+
$wb['Limit-Templates'] = 'Limit-Templates';
910
$wb['Add Reseller'] = 'Add Reseller';
1011
$wb['Edit Reseller'] = 'Edit Reseller';
1112
$wb['Resellers'] = 'Resellers';

interface/web/client/lib/lang/bg.lng

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ $wb['Limits'] = 'Ограничения';
55
$wb['Add Client'] = 'Добавяне на клиент';
66
$wb['Edit Client'] = 'Редактиране на клиент';
77
$wb['Clients'] = 'Клиенти';
8-
$wb['Edit Client-Templates'] = 'Редактирай Клиентски-Шаблон';
8+
$wb['Templates'] = 'Templates';
9+
$wb['Limit-Templates'] = 'Limit-Templates';
910
$wb['Add Reseller'] = 'Добави дистрибутор';
1011
$wb['Edit Reseller'] = 'Редактирай дистрибутор';
1112
$wb['Resellers'] = 'Дистрибутори';

interface/web/client/lib/lang/br.lng

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ $wb['Limits'] = 'Limites';
55
$wb['Add Client'] = 'Adcionar Cliente';
66
$wb['Edit Client'] = 'Editar Cliente';
77
$wb['Clients'] = 'Clientes';
8-
$wb['Edit Client-Templates'] = 'Editar Gabaritos de Clientes';
8+
$wb['Templates'] = 'Templates';
9+
$wb['Limit-Templates'] = 'Limit-Templates';
910
$wb['Add Reseller'] = 'Adcionar Revendedor';
1011
$wb['Edit Reseller'] = 'Editar Revendedor';
1112
$wb['Resellers'] = 'Revendedores';

interface/web/client/lib/lang/cz.lng

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ $wb['Limits'] = 'Limity';
55
$wb['Add Client'] = 'Přidat klienta';
66
$wb['Edit Client'] = 'Upravit klienta';
77
$wb['Clients'] = 'Klienti';
8-
$wb['Edit Client-Templates'] = 'Upravit klientské šablony';
8+
$wb['Templates'] = 'Templates';
9+
$wb['Limit-Templates'] = 'Limit-Templates';
910
$wb['Add Reseller'] = 'Přidat distributora';
1011
$wb['Edit Reseller'] = 'Upravit distributora';
1112
$wb['Resellers'] = 'Distributoři (prodejci)';

interface/web/client/lib/lang/de.lng

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ $wb['Limits'] = 'Limits';
55
$wb['Add Client'] = 'Kunde hinzufügen';
66
$wb['Edit Client'] = 'Kunde bearbeiten';
77
$wb['Clients'] = 'Kunden';
8-
$wb['Edit Client-Templates'] = 'Kundenvorlagen';
8+
$wb['Templates'] = 'Vorlagen';
9+
$wb['Limit-Templates'] = 'Kundenvorlagen';
910
$wb['Add Reseller'] = 'Reseller hinzufügen';
1011
$wb['Edit Reseller'] = 'Reseller bearbeiten';
1112
$wb['Resellers'] = 'Reseller';

0 commit comments

Comments
 (0)