Skip to content

Commit 9893e01

Browse files
author
Marius Cramer
committed
Merge remote-tracking branch 'origin/stable-3.0.5'
Conflicts: interface/lib/classes/remoting.inc.php server/cron_daily.php
2 parents bca1af5 + e20f18f commit 9893e01

File tree

12 files changed

+99
-20
lines changed

12 files changed

+99
-20
lines changed

install/dist/lib/fedora.lib.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ function configure_postfix($options = '')
226226
if(is_file('/var/lib/mailman/data/aliases')) unlink('/var/lib/mailman/data/aliases');
227227
if(!is_link('/var/lib/mailman/data/aliases')) symlink('/etc/mailman/aliases', '/var/lib/mailman/data/aliases');
228228
exec('postalias /var/lib/mailman/data/aliases');
229-
if(!is_file('/var/lib/mailman/data/virtual-mailman')) touch('/var/lib/mailman/data/virtual-mailman');
230-
exec('postmap /var/lib/mailman/data/virtual-mailman');
229+
if(!is_file('/etc/mailman/virtual-mailman')) touch('/etc/mailman/virtual-mailman');
230+
exec('postmap /etc/mailman/virtual-mailman');
231231
if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
232232
exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
233233

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TABLE `sys_config` DROP `config_id`,
2+
ADD PRIMARY KEY (`group`, `name`);

install/sql/ispconfig3.sql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1486,10 +1486,10 @@ CREATE TABLE `support_message` (
14861486
--
14871487

14881488
CREATE TABLE `sys_config` (
1489-
`config_id` int(11) unsigned NOT NULL,
14901489
`group` varchar(64) NOT NULL,
14911490
`name` varchar(64) NOT NULL,
1492-
`value` varchar(255) NOT NULL
1491+
`value` varchar(255) NOT NULL,
1492+
PRIMARY KEY (`group`, `name`)
14931493
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
14941494

14951495

@@ -2280,7 +2280,7 @@ INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`,
22802280
-- Dumping data for table `sys_config`
22812281
--
22822282

2283-
INSERT INTO sys_config VALUES ('1','db','db_version','3.0.5.3');
2284-
INSERT INTO sys_config VALUES ('2','interface','session_timeout','0');
2283+
INSERT INTO sys_config VALUES ('db','db_version','3.0.5.3');
2284+
INSERT INTO sys_config VALUES ('interface','session_timeout','0');
22852285

22862286
SET FOREIGN_KEY_CHECKS = 1;

install/tpl/fedora_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
virtual_alias_domains =
2-
virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
2+
virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf, hash:/etc/mailman/virtual-mailman
33
virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf
44
virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf
55
virtual_mailbox_base = {vmail_mailbox_base}

interface/lib/app.inc.php

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,16 @@ class app {
4848
private $_wb;
4949
private $_loaded_classes = array();
5050
private $_conf;
51+
52+
public $loaded_plugins = array();
5153

5254
public function __construct() {
5355
global $conf;
5456

5557
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS']) || isset($_REQUEST['s']) || isset($_REQUEST['s_old']) || isset($_REQUEST['conf'])) {
5658
die('Internal Error: var override attempt detected');
5759
}
58-
60+
5961
$this->_conf = $conf;
6062
if($this->_conf['start_db'] == true) {
6163
$this->load('db_'.$this->_conf['db_type']);
@@ -66,26 +68,26 @@ public function __construct() {
6668
if($this->_conf['start_session'] == true) {
6769

6870
$this->uses('session');
69-
$tmp = $this->db->queryOneRecord("SELECT `value` FROM sys_config WHERE `config_id` = 2 AND `group` = 'interface' AND `name` = 'session_timeout'");
70-
if($tmp && $tmp['value'] > 0) {
71+
$sess_timeout = $this->conf('interface', 'session_timeout');
72+
if($sess_timeout) {
7173
/* check if user wants to stay logged in */
7274
if(isset($_POST['s_mod']) && isset($_POST['s_pg']) && $_POST['s_mod'] == 'login' && $_POST['s_pg'] == 'index' && isset($_POST['stay']) && $_POST['stay'] == '1') {
7375
/* check if staying logged in is allowed */
7476
$this->uses('ini_parser');
7577
$tmp = $this->db->queryOneRecord('SELECT config FROM sys_ini WHERE sysini_id = 1');
7678
$tmp = $this->ini_parser->parse_ini_string(stripslashes($tmp['config']));
7779
if(!isset($tmp['misc']['session_allow_endless']) || $tmp['misc']['session_allow_endless'] != 'y') {
78-
$this->session->set_timeout($tmp['value']);
79-
session_set_cookie_params(($tmp['value'] * 60) + 300); // make the cookie live 5 minutes longer
80+
$this->session->set_timeout($sess_timeout);
81+
session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer
8082
} else {
8183
// we are doing login here, so we need to set the session data
8284
$this->session->set_permanent(true);
8385
$this->session->set_timeout(365 * 24 * 3600); // one year
8486
session_set_cookie_params(365 * 24 * 3600); // make the cookie live 5 minutes longer
8587
}
8688
} else {
87-
$this->session->set_timeout($tmp['value']);
88-
session_set_cookie_params(($tmp['value'] * 60) + 300); // make the cookie live 5 minutes longer
89+
$this->session->set_timeout($sess_timeout);
90+
session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer
8991
}
9092
} else {
9193
session_set_cookie_params(0); // until browser is closed
@@ -110,6 +112,14 @@ public function __construct() {
110112
$this->uses('auth,plugin');
111113
}
112114

115+
public function __get($prop) {
116+
if(property_exists($this, $prop)) return $this->{$prop};
117+
118+
$this->uses($prop);
119+
if(property_exists($this, $prop)) return $this->{$prop};
120+
else return null;
121+
}
122+
113123
public function __destruct() {
114124
session_write_close();
115125
}
@@ -120,7 +130,7 @@ public function uses($classes) {
120130
foreach($cl as $classname) {
121131
$classname = trim($classname);
122132
//* Class is not loaded so load it
123-
if(!array_key_exists($classname, $this->_loaded_classes)) {
133+
if(!array_key_exists($classname, $this->_loaded_classes) && is_file(ISPC_CLASS_PATH."/$classname.inc.php")) {
124134
include_once ISPC_CLASS_PATH."/$classname.inc.php";
125135
$this->$classname = new $classname();
126136
$this->_loaded_classes[$classname] = true;
@@ -138,6 +148,22 @@ public function load($files) {
138148
}
139149
}
140150
}
151+
152+
public function conf($plugin, $key, $value = null) {
153+
if(is_null($value)) {
154+
$tmpconf = $this->db->queryOneRecord("SELECT `value` FROM `sys_config` WHERE `group` = '" . $this->db->quote($plugin) . "' AND `name` = '" . $this->db->quote($key) . "'");
155+
if($tmpconf) return $tmpconf['value'];
156+
else return null;
157+
} else {
158+
if($value === false) {
159+
$this->db->query("DELETE FROM `sys_config` WHERE `group` = '" . $this->db->quote($plugin) . "' AND `name` = '" . $this->db->quote($key) . "'");
160+
return null;
161+
} else {
162+
$this->db->query("REPLACE INTO `sys_config` (`group`, `name`, `value`) VALUES ('" . $this->db->quote($plugin) . "', '" . $this->db->quote($key) . "', '" . $this->db->quote($value) . "')");
163+
return $value;
164+
}
165+
}
166+
}
141167

142168
/** Priority values are: 0 = DEBUG, 1 = WARNING, 2 = ERROR */
143169

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
$function_list['server_get,get_function_list,client_templates_get_all,server_get_serverid_by_ip,server_ip_add,server_ip_update,server_ip_delete'] = 'Server functions';
3+
$function_list['server_get,get_function_list,client_templates_get_all,server_get_serverid_by_ip,server_ip_get,server_ip_add,server_ip_update,server_ip_delete'] = 'Server functions';
44
$function_list['admin_record_permissions'] = 'Record permission changes';
55

66
?>

interface/web/admin/system_config_edit.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,7 @@ function onUpdateSave($sql) {
156156
} elseif($section == 'mail') {
157157
if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['mail']['smtp_pass'];
158158
} elseif($section == 'misc' && $new_config['session_timeout'] != $server_config_array['misc']['session_timeout']) {
159-
$app->db->query("DELETE FROM sys_config WHERE `config_id` = 2 AND `group` = 'interface' AND `name` = 'session_timeout'");
160-
$app->db->query("INSERT INTO sys_config (`config_id`, `group`, `name`, `value`) VALUES (2, 'interface', 'session_timeout', '" . intval($new_config['session_timeout']) . "')");
159+
$app->conf('interface', 'session_timeout', intval($new_config['session_timeout']));
161160
}
162161
$server_config_array[$section] = $new_config;
163162
$server_config_str = $app->ini_parser->get_ini_string($server_config_array);

interface/web/tools/lib/lang/en_resync.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ $wb['resync_db_txt'] = 'Resync clientdb config';
99
$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
1010
$wb['resync_dkim_txt'] = 'Resync DKIM-Keys';
1111
$wb['resync_dns_txt'] = 'Resync DNS records';
12+
$wb['resync_client_txt'] = 'Resync Client records';
1213
$wb['btn_start_txt'] = 'Start';
1314
$wb['btn_cancel_txt'] = 'Cancel';
1415
?>

interface/web/tools/resync.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,16 @@
106106

107107
//* Resyncing Databases
108108
if(isset($_POST['resync_db']) && $_POST['resync_db'] == 1) {
109+
$db_table = 'web_database_user';
110+
$index_field = 'database_user_id';
111+
$sql = "SELECT * FROM ".$db_table." WHERE 1";
112+
$records = $app->db->queryAllRecords($sql);
113+
if(is_array($records)) {
114+
foreach($records as $rec) {
115+
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
116+
$msg .= "Resynced Database user: ".$rec['database_user'].'<br />';
117+
}
118+
}
109119
$db_table = 'web_database';
110120
$index_field = 'database_id';
111121
$sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
@@ -144,6 +154,16 @@
144154
$msg .= "Resynced Mailbox: ".$rec['email'].'<br />';
145155
}
146156
}
157+
$db_table = 'mail_forwarding';
158+
$index_field = 'forwarding_id';
159+
$sql = "SELECT * FROM ".$db_table;
160+
$records = $app->db->queryAllRecords($sql);
161+
if(is_array($records)) {
162+
foreach($records as $rec) {
163+
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
164+
$msg .= "Resynced Alias: ".$rec['source'].'<br />';
165+
}
166+
}
147167
}
148168

149169
//* Resyncing DKIM-Keys
@@ -183,6 +203,31 @@
183203

184204
}
185205

206+
//* Resyncing Clients
207+
if(isset($_POST['resync_client']) && $_POST['resync_client'] == 1) {
208+
$tform_def_file = "form/client.tform.php";
209+
$app->uses('tpl,tform,tform_actions');
210+
$app->load('tform_actions');
211+
212+
$db_table = 'client';
213+
$index_field = 'client_id';
214+
$sql = "SELECT * FROM ".$db_table;
215+
$records = $app->db->queryAllRecords($sql);
216+
if(is_array($records)) {
217+
foreach($records as $rec) {
218+
$app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
219+
$tmp = new tform_actions;
220+
$tmp->id = $rec[$index_field];
221+
$tmp->dataRecord = $rec;
222+
$tmp->oldDataRecord = $rec;
223+
$app->plugin->raiseEvent('client:client:on_after_update', $tmp);
224+
$msg .= "Resynced Client: ".$rec['contact_name'].'<br />';
225+
unset($tmp);
226+
}
227+
}
228+
}
229+
230+
186231
$app->tpl->setVar('msg', $msg);
187232
$app->tpl->setVar('error', $error);
188233

interface/web/tools/templates/resync.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ <h2><tmpl_var name="head_txt"></h2>
5252
<div class="multiField">
5353
<input id="resync_dns" type="checkbox" value="1" name="resync_dns" />
5454
</div>
55+
</div>
56+
<div class="ctrlHolder">
57+
<p class="label">{tmpl_var name="resync_client_txt"}</p>
58+
<div class="multiField">
59+
<input id="resync_client" type="checkbox" value="1" name="resync_client" />
60+
</div>
5561
</div>
5662
</fieldset>
5763

0 commit comments

Comments
 (0)