Skip to content

Commit 1e121ab

Browse files
author
Marius Cramer
committed
Merge branch 'Cambra/ispconfig3-favourite_servers'
2 parents cbdc7ac + adb0e74 commit 1e121ab

24 files changed

+277
-21
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
ALTER TABLE `mail_user`
22
CHANGE `uid` `uid` int(11) NOT NULL DEFAULT '5000',
33
CHANGE `gid` `gid` int(11) NOT NULL DEFAULT '5000';
4+
5+
ALTER TABLE `client_template` ADD `default_mailserver` INT(11) NOT NULL DEFAULT 1;
6+
ALTER TABLE `client_template` ADD `default_webserver` INT(11) NOT NULL DEFAULT 1;
7+
ALTER TABLE `client_template` ADD `default_dnsserver` INT(11) NOT NULL DEFAULT 1;
8+
ALTER TABLE `client_template` ADD `default_slave_dnsserver` INT(11) NOT NULL DEFAULT 1;
9+
ALTER TABLE `client_template` ADD `default_dbserver` INT(11) NOT NULL DEFAULT 1;

interface/lib/classes/client_templates.inc.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ function apply_client_templates($clientId) {
146146
if (is_array($addLimits)){
147147
foreach($addLimits as $k => $v){
148148
/* we can remove this condition, but it is easier to debug with it (don't add ids and other non-limit values) */
149-
if (strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec'){
149+
if (strpos($k, 'limit') !== false or strpos($k, 'default') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec'){
150150
$app->log('Template processing key ' . $k . ' for client ' . $clientId, LOGLEVEL_DEBUG);
151151

152152
/* process the numerical limits */
@@ -160,6 +160,15 @@ function apply_client_templates($clientId) {
160160
if ($limits[$k] < 1) $limits[$k] = 1;
161161
break;
162162

163+
case 'default_mailserver':
164+
case 'default_webserver':
165+
case 'default_dnsserver':
166+
case 'default_slave_dnsserver':
167+
case 'default_dbserver':
168+
/* additional templates don't override default server from main template */
169+
if ($limits[$k] == 0) $limits[$k] = $v;
170+
break;
171+
163172
default:
164173
if ($limits[$k] > -1){
165174
if ($v == -1){
@@ -225,7 +234,10 @@ function apply_client_templates($clientId) {
225234
$update = '';
226235
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.
227236
foreach($limits as $k => $v){
228-
if ((strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec') && !is_array($v)){
237+
if (strpos($k, 'default') !== false and $v == 0) {
238+
continue; // template doesn't define default server, client's default musn't be changed
239+
}
240+
if ((strpos($k, 'limit') !== false or strpos($k, 'default') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec') && !is_array($v)){
229241
if ($update != '') $update .= ', ';
230242
$update .= '`' . $k . "`='" . $v . "'";
231243
}

interface/web/admin/form/system_config.tform.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,28 @@
172172
'default' => 'n',
173173
'value' => array(0 => 'n', 1 => 'y')
174174
),
175+
'default_webserver' => array (
176+
'datatype' => 'INTEGER',
177+
'formtype' => 'SELECT',
178+
'default' => '1',
179+
'datasource' => array ( 'type' => 'CUSTOM',
180+
'class'=> 'custom_datasource',
181+
'function'=> 'client_servers'
182+
),
183+
'value' => '',
184+
'name' => 'default_webserver'
185+
),
186+
'default_dbserver' => array (
187+
'datatype' => 'INTEGER',
188+
'formtype' => 'SELECT',
189+
'default' => '1',
190+
'datasource' => array ( 'type' => 'CUSTOM',
191+
'class'=> 'custom_datasource',
192+
'function'=> 'client_servers'
193+
),
194+
'value' => '',
195+
'name' => 'default_dbserver'
196+
),
175197
//#################################
176198
// ENDE Datatable fields
177199
//#################################
@@ -321,6 +343,53 @@
321343
'default' => '',
322344
'value' => array('' => 'No', 'ssl' => 'SSL', 'tls' => 'STARTTLS')
323345
),
346+
'default_mailserver' => array (
347+
'datatype' => 'INTEGER',
348+
'formtype' => 'SELECT',
349+
'default' => '1',
350+
'datasource' => array ( 'type' => 'CUSTOM',
351+
'class'=> 'custom_datasource',
352+
'function'=> 'client_servers'
353+
),
354+
'value' => '',
355+
'name' => 'default_mailserver'
356+
),
357+
//#################################
358+
// ENDE Datatable fields
359+
//#################################
360+
)
361+
);
362+
363+
$form["tabs"]['dns'] = array (
364+
'title' => "DNS",
365+
'width' => 70,
366+
'template' => "templates/system_config_dns_edit.htm",
367+
'fields' => array (
368+
//#################################
369+
// Begin Datatable fields
370+
//#################################
371+
'default_dnsserver' => array (
372+
'datatype' => 'INTEGER',
373+
'formtype' => 'SELECT',
374+
'default' => '1',
375+
'datasource' => array ( 'type' => 'CUSTOM',
376+
'class'=> 'custom_datasource',
377+
'function'=> 'client_servers'
378+
),
379+
'value' => '',
380+
'name' => 'default_dnsserver'
381+
),
382+
'default_slave_dnsserver' => array (
383+
'datatype' => 'INTEGER',
384+
'formtype' => 'SELECT',
385+
'default' => '1',
386+
'datasource' => array ( 'type' => 'CUSTOM',
387+
'class'=> 'custom_datasource',
388+
'function'=> 'client_servers'
389+
),
390+
'value' => '',
391+
'name' => 'default_slave_dnsserver'
392+
),
324393
//#################################
325394
// ENDE Datatable fields
326395
//#################################

interface/web/admin/lib/lang/en.lng

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ $wb['Firewall'] = 'Firewall';
4141

4242
$wb['Interface'] = 'Interface';
4343
$wb['Interface Config'] = 'Main Config';
44+
$wb['Sites'] = 'Sites';
45+
$wb['DNS'] = 'DNS';
4446
$wb['Domains'] = 'Domains';
4547
$wb['Misc'] = 'Misc';
4648

@@ -59,4 +61,4 @@ $wb['Import'] = 'Import';
5961
$wb['Remote Actions'] = 'Remote Actions';
6062
$wb['Do OS-Update'] = 'Do OS-Update';
6163
$wb['Do ISPConfig-Update'] = 'Do ISPConfig-Update';
62-
?>
64+
?>

interface/web/admin/lib/lang/en_system_config.lng

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,9 @@ $wb['session_allow_endless_txt'] = 'Enable "stay logged in"';
7373
$wb['No'] = 'No';
7474
$wb['min_password_length_txt'] = 'Minimum password length';
7575
$wb['min_password_strength_txt'] = 'Minimum password strength';
76+
$wb["default_mailserver_txt"] = 'Default Mailserver';
77+
$wb["default_webserver_txt"] = 'Default Webserver';
78+
$wb["default_dnsserver_txt"] = 'Default DNS Server';
79+
$wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server';
80+
$wb["default_dbserver_txt"] = 'Default Database Server';
7681
?>

interface/web/admin/lib/lang/es.lng

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,6 @@ $wb['Directive Snippets'] = 'Fragmentos de Directivas';
4747
$wb['Interface'] = 'Interfaz';
4848
$wb['Domains'] = 'Dominios';
4949
$wb['Misc'] = 'Misc';
50+
$wb['Sites'] = 'Sitios';
51+
$wb['DNS'] = 'DNS';
5052
?>

interface/web/admin/lib/lang/es_system_config.lng

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,9 @@ $wb['min_password_length_txt'] = 'Longitud de contraseña mínima';
7070
$wb['min_password_strength_txt'] = 'Fortaleza de contraseña mínima';
7171
$wb['Sites'] = 'Sitios';
7272
$wb['System Config'] = 'Configuración de sistema';
73+
$wb['default_mailserver_txt'] = 'Servidor de correo por defecto';
74+
$wb['default_webserver_txt'] = 'Servidor web por defecto';
75+
$wb['default_dnsserver_txt'] = 'Servidor DNS por defecto';
76+
$wb['default_slave_dnsserver_txt'] = 'Servidor DNS secundario por defecto';
77+
$wb['default_dbserver_txt'] = 'Servidor de bases de datos por defecto';
7378
?>

interface/web/admin/list/server.list.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- DOUBLE
66
- CURRENCY
77
- VARCHAR
8-
- TEXT
8+
- SELECT
99
- DATE
1010
*/
1111

@@ -58,7 +58,7 @@
5858

5959
$liste['item'][] = array( 'field' => 'mail_server',
6060
'datatype' => 'VARCHAR',
61-
'formtype' => 'TEXT',
61+
'formtype' => 'SELECT',
6262
'op' => 'like',
6363
'prefix' => '%',
6464
'suffix' => '%',
@@ -67,7 +67,7 @@
6767

6868
$liste['item'][] = array( 'field' => 'web_server',
6969
'datatype' => 'VARCHAR',
70-
'formtype' => 'TEXT',
70+
'formtype' => 'SELECT',
7171
'op' => 'like',
7272
'prefix' => '%',
7373
'suffix' => '%',
@@ -76,7 +76,7 @@
7676

7777
$liste['item'][] = array( 'field' => 'dns_server',
7878
'datatype' => 'VARCHAR',
79-
'formtype' => 'TEXT',
79+
'formtype' => 'SELECT',
8080
'op' => 'like',
8181
'prefix' => '%',
8282
'suffix' => '%',
@@ -85,7 +85,7 @@
8585

8686
$liste['item'][] = array( 'field' => 'file_server',
8787
'datatype' => 'VARCHAR',
88-
'formtype' => 'TEXT',
88+
'formtype' => 'SELECT',
8989
'op' => 'like',
9090
'prefix' => '%',
9191
'suffix' => '%',
@@ -94,7 +94,7 @@
9494

9595
$liste['item'][] = array( 'field' => 'db_server',
9696
'datatype' => 'VARCHAR',
97-
'formtype' => 'TEXT',
97+
'formtype' => 'SELECT',
9898
'op' => 'like',
9999
'prefix' => '%',
100100
'suffix' => '%',
@@ -103,7 +103,7 @@
103103

104104
$liste['item'][] = array( 'field' => 'vserver_server',
105105
'datatype' => 'VARCHAR',
106-
'formtype' => 'TEXT',
106+
'formtype' => 'SELECT',
107107
'op' => 'like',
108108
'prefix' => '%',
109109
'suffix' => '%',

interface/web/admin/system_config_edit.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ function onShowEdit() {
6464
$server_id = $this->id;
6565

6666
$this->dataRecord = $app->getconf->get_global_config($section);
67+
if (is_null($this->dataRecord)) {
68+
$this->dataRecord = array();
69+
}
6770
if ($section == 'domains'){
6871
if (isset($this->dataRecord['use_domain_module'])){
6972
$_SESSION['use_domain_module_old_value'] = $this->dataRecord['use_domain_module'];

interface/web/admin/templates/system_config_mail_edit.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ <h2><tmpl_var name="list_head_txt"></h2>
8585
{tmpl_var name='smtp_crypt'}
8686
</select>
8787
</div>
88+
<div class="ctrlHolder">
89+
<label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label>
90+
<select name="default_mailserver" id="default_mailserver" class="selectInput">
91+
{tmpl_var name='default_mailserver'}
92+
</select>
93+
</div>
8894
</fieldset>
8995

9096
<input type="hidden" name="id" value="{tmpl_var name='id'}">

0 commit comments

Comments
 (0)