From dd0130670fe3cab4c7e2c1ab4f3bf0d2b2d512b0 Mon Sep 17 00:00:00 2001
From: Denny Bortfeldt <denny@bortfeldt.net>
Date: Mon, 27 Jun 2016 18:02:16 -0400
Subject: [PATCH] When uploading a logo which is smaller than the current ispconfig one, then the logo will be on the left side of the header. In my opinion it will look better when it's centered. You could vote about it ;)
---
interface/web/tools/import_ispconfig.php | 174 ++++++++++++++++++++++++++++++++-------------------------
1 files changed, 98 insertions(+), 76 deletions(-)
diff --git a/interface/web/tools/import_ispconfig.php b/interface/web/tools/import_ispconfig.php
index eb0a2f3..efcf022 100644
--- a/interface/web/tools/import_ispconfig.php
+++ b/interface/web/tools/import_ispconfig.php
@@ -27,8 +27,8 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-require_once('../../lib/config.inc.php');
-require_once('../../lib/app.inc.php');
+require_once '../../lib/config.inc.php';
+require_once '../../lib/app.inc.php';
//* Check permissions for module
$app->auth->check_module_permissions('admin');
@@ -45,11 +45,15 @@
//* load language file
$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_import_ispconfig.lng';
-include($lng_file);
+include $lng_file;
$app->tpl->setVar($wb);
if(isset($_POST['connected'])) {
- $connected = intval($_POST['connected']);
+
+ //* CSRF Check
+ $app->auth->csrf_token_check();
+
+ $connected = $app->functions->intval($_POST['connected']);
if($connected == 0) {
//* Try to connect to remote server
@@ -60,11 +64,11 @@
if($error == '') {
try {
$client = new SoapClient(null, array('location' => $_POST['remote_server'],
- 'uri' => $_POST['remote_server'].'/index.php',
- 'trace' => 1,
- 'exceptions' => 1));
-
- if($remote_session_id = $client->login($_POST['remote_user'],$_POST['remote_password'])) {
+ 'uri' => $_POST['remote_server'].'/index.php',
+ 'trace' => 1,
+ 'exceptions' => 1));
+
+ if($remote_session_id = $client->login($_POST['remote_user'], $_POST['remote_password'])) {
$connected = 1;
$msg .= 'Successfully connected to remote server.';
}
@@ -75,9 +79,9 @@
}
}
}
-
+
if($connected == 1) {
-
+
//* Fill the client select field
$sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name";
$clients = $app->db->queryAllRecords($sql);
@@ -88,80 +92,92 @@
$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
}
}
- $app->tpl->setVar("client_group_id",$client_select);
-
-
+ $app->tpl->setVar("client_group_id", $client_select);
+
+
try {
$client = new SoapClient(null, array('location' => $_POST['remote_server'],
- 'uri' => $_POST['remote_server'].'/index.php',
- 'trace' => 1,
- 'exceptions' => 1));
-
- if(!isset($remote_session_id)) $remote_session_id = $_POST['remote_session_id'];
-
- //* Get all email domains
- $mail_domains = $client->mail_domain_get($remote_session_id, array('active' => 'y'));
- $mail_domain_select = '<option value="">-- select domain --</option>';
- if(is_array($mail_domains)) {
- foreach( $mail_domains as $mail_domain) {
- $selected = @($mail_domain['domain'] == $_POST['mail_domain'])?'SELECTED':'';
- $mail_domain_select .= "<option value='$mail_domain[domain]' $selected>$mail_domain[domain]</option>\r\n";
+ 'uri' => $_POST['remote_server'].'/index.php',
+ 'trace' => 1,
+ 'exceptions' => 1));
+
+ if(!isset($remote_session_id)) $remote_session_id = $_POST['remote_session_id'];
+
+ //* Get all email domains
+ $mail_domains = $client->mail_domain_get($remote_session_id, array('active' => 'y'));
+ $mail_domain_select = '<option value="">-- select domain --</option>';
+ if(is_array($mail_domains)) {
+ foreach( $mail_domains as $mail_domain) {
+ $selected = @($mail_domain['domain'] == $_POST['mail_domain'])?'SELECTED':'';
+ $mail_domain_select .= "<option value='$mail_domain[domain]' $selected>$mail_domain[domain]</option>\r\n";
+ }
}
- }
- $app->tpl->setVar("mail_domain",$mail_domain_select);
-
- //* Do the import
- if($_POST['mail_domain'] != '') start_domain_import($_POST['mail_domain']);
-
-
-
+ $app->tpl->setVar("mail_domain", $mail_domain_select);
+
+ //* Do the import
+ if($_POST['mail_domain'] != '') start_domain_import($_POST['mail_domain']);
+
+
+
} catch (SoapFault $e) {
//echo $client->__getLastResponse();
$error .= $e->getMessage();
$connected = 0;
}
-
+
}
-
+
}
-$app->tpl->setVar('remote_server',$_POST['remote_server']);
-$app->tpl->setVar('remote_user',$_POST['remote_user']);
-$app->tpl->setVar('remote_password',$_POST['remote_password']);
-$app->tpl->setVar('connected',$connected);
-$app->tpl->setVar('remote_session_id',$remote_session_id);
-$app->tpl->setVar('msg',$msg);
-$app->tpl->setVar('error',$error);
+$app->tpl->setVar('remote_server', $_POST['remote_server']);
+$app->tpl->setVar('remote_user', $_POST['remote_user']);
+$app->tpl->setVar('remote_password', $_POST['remote_password']);
+$app->tpl->setVar('connected', $connected);
+$app->tpl->setVar('remote_session_id', $remote_session_id);
+$app->tpl->setVar('msg', $msg);
+$app->tpl->setVar('error', $error);
+
+//* SET csrf token
+$csrf_token = $app->auth->csrf_token_get('ispconfig_import');
+$app->tpl->setVar('_csrf_id',$csrf_token['csrf_id']);
+$app->tpl->setVar('_csrf_key',$csrf_token['csrf_key']);
$app->tpl_defaults();
$app->tpl->pparse();
-###########################################################
+//##########################################################
function start_domain_import($mail_domain) {
global $app, $conf, $client, $msg, $error, $remote_session_id;
-
+
//* Get the user and groupid for the new records
- $sys_groupid = intval($_POST['client_group_id']);
- $tmp = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE default_group = $sys_groupid");
- $sys_userid = intval($tmp['userid']);
+ $sys_groupid = $app->functions->intval($_POST['client_group_id']);
+ $tmp = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE default_group = ?", $sys_groupid);
+ $sys_userid = $app->functions->intval($tmp['userid']);
unset($tmp);
if($sys_groupid == 0) $error .= 'Inavlid groupid<br />';
if($sys_userid == 0) $error .= 'Inavlid Userid<br />';
-
+
+ //* Get the mail server ID
+ $tmp = $app->db->queryOneRecord("SELECT server_id FROM server WHERE mail_server = 1 and mirror_server_id = 0 LIMIT 0,1");
+ $server_id = intval($tmp['server_id']);
+ unset($tmp);
+ if($server_id == 0) $server_id = 1;
+
//* get the mail domain record
$mail_domain_rec = $client->mail_domain_get($remote_session_id, array('domain' => $mail_domain));
if(is_array($mail_domain_rec)) {
$mail_domain_rec = $mail_domain_rec[0];
- $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM mail_domain WHERE domain = '".$app->db->quote($mail_domain)."'");
+ $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM mail_domain WHERE domain = ?", $mail_domain);
if($tmp['number'] > 0) $error .= 'Domain '.$mail_domain.' exists already in local database.<br />';
unset($tmp);
-
+
//* Change the record owner and remove the index field
$mail_domain_rec['sys_userid'] = $sys_userid;
$mail_domain_rec['sys_groupid'] = $sys_groupid;
+ $mail_domain_rec['server_id'] = $server_id;
unset($mail_domain_rec['domain_id']);
-
+
//* Insert domain if no error occurred
if($error == '') {
$app->db->datalogInsert('mail_domain', $mail_domain_rec, 'domain_id');
@@ -169,38 +185,40 @@
} else {
return false;
}
-
+
//* Import mailboxes
if(isset($_POST['import_mailbox']) && $_POST['import_mailbox'] == 1) {
$mail_users = $client->mail_user_get($remote_session_id, array('email' => '%@'.$mail_domain));
if(is_array($mail_users)) {
foreach($mail_users as $mail_user) {
- $tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE email = '".$app->db->quote($mail_user['email'])."'");
+ $tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE email = ?", $mail_user['email']);
if($tmp['number'] == 0) {
-
+
//* Prepare record
$mail_user['sys_userid'] = $sys_userid;
$mail_user['sys_groupid'] = $sys_groupid;
+ $mail_user['server_id'] = $server_id;
$remote_mailuser_id = $mail_user['mailuser_id'];
unset($mail_user['mailuser_id']);
if(!isset($_POST['import_user_filter'])) $mail_user['custom_mailfilter'] = '';
-
+
//* Insert record in DB
$local_mailuser_id = $app->db->datalogInsert('mail_user', $mail_user, 'mailuser_id');
$msg .= "Imported mailbox ".$mail_user['email']."<br />";
-
+
//* Import mail user filters
if(isset($_POST['import_user_filter']) && $_POST['import_user_filter'] == 1 && $local_mailuser_id > 0) {
-
+
$mail_user_filters = $client->mail_user_filter_get($remote_session_id, array('mailuser_id' => $remote_mailuser_id));
-
+
if(is_array($mail_user_filters)) {
foreach($mail_user_filters as $mail_user_filter) {
$mail_user_filter['sys_userid'] = $sys_userid;
$mail_user_filter['sys_groupid'] = $sys_groupid;
$mail_user_filter['mailuser_id'] = $local_mailuser_id;
+ $mail_user_filter['server_id'] = $server_id;
unset($mail_user_filter['filter_id']);
-
+
//* Insert record in DB
$app->db->datalogInsert('mail_user_filter', $mail_user_filter, 'filter_id');
$msg .= "Imported mailbox filter ".$mail_user['email'].": ".$mail_user_filter['rulename']."<br />";
@@ -210,94 +228,98 @@
} else {
$error .= "Mailbox ".$mail_user['email']." exists in local database. Skipped import of mailbox<br />";
}
-
+
}
}
}
-
+
//* Import email aliases
if(isset($_POST['import_alias']) && $_POST['import_alias'] == 1) {
$mail_aliases = $client->mail_alias_get($remote_session_id, array('type' => 'alias', 'destination' => '%@'.$mail_domain));
if(is_array($mail_aliases)) {
foreach($mail_aliases as $mail_alias) {
- $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'alias' AND source = '".$app->db->quote($mail_alias['source'])."' AND destination = '".$app->db->quote($mail_alias['destination'])."'");
+ $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'alias' AND source = ? AND destination = ?", $mail_alias['source'], $mail_alias['destination']);
if($tmp['number'] == 0) {
$mail_alias['sys_userid'] = $sys_userid;
$mail_alias['sys_groupid'] = $sys_groupid;
+ $mail_alias['server_id'] = $server_id;
unset($mail_alias['forwarding_id']);
$app->db->datalogInsert('mail_forwarding', $mail_alias, 'forwarding_id');
$msg .= "Imported email alias ".$mail_alias['source']."<br />";
} else {
$error .= "Email alias ".$mail_alias['source']." exists in local database. Skipped import.<br />";
}
-
+
}
}
}
-
+
//* Import domain aliases
if(isset($_POST['import_aliasdomain']) && $_POST['import_aliasdomain'] == 1) {
$mail_aliases = $client->mail_alias_get($remote_session_id, array('type' => 'aliasdomain', 'destination' => '@'.$mail_domain));
if(is_array($mail_aliases)) {
foreach($mail_aliases as $mail_alias) {
- $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'aliasdomain' AND source = '".$app->db->quote($mail_alias['source'])."' AND destination = '".$app->db->quote($mail_alias['destination'])."'");
+ $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'aliasdomain' AND source = ? AND destination = ?", $mail_alias['source'], $mail_alias['destination']);
if($tmp['number'] == 0) {
$mail_alias['sys_userid'] = $sys_userid;
$mail_alias['sys_groupid'] = $sys_groupid;
+ $mail_alias['server_id'] = $server_id;
unset($mail_alias['forwarding_id']);
$app->db->datalogInsert('mail_forwarding', $mail_alias, 'forwarding_id');
$msg .= "Imported email aliasdomain ".$mail_alias['source']."<br />";
} else {
$error .= "Email aliasdomain ".$mail_alias['source']." exists in local database. Skipped import.<br />";
}
-
+
}
}
}
-
+
//* Import email forward
if(isset($_POST['import_forward']) && $_POST['import_forward'] == 1) {
$mail_forwards = $client->mail_forward_get($remote_session_id, array('type' => 'forward', 'source' => '%@'.$mail_domain));
if(is_array($mail_forwards)) {
foreach($mail_forwards as $mail_forward) {
- $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'forward' AND source = '".$app->db->quote($mail_forward['source'])."' AND destination = '".$app->db->quote($mail_forward['destination'])."'");
+ $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'forward' AND source = ? AND destination = ?", $mail_forward['source'], $mail_forward['destination']);
if($tmp['number'] == 0) {
$mail_forward['sys_userid'] = $sys_userid;
$mail_forward['sys_groupid'] = $sys_groupid;
+ $mail_forward['server_id'] = $server_id;
unset($mail_forward['forwarding_id']);
$app->db->datalogInsert('mail_forwarding', $mail_forward, 'forwarding_id');
$msg .= "Imported email forward ".$mail_forward['source']."<br />";
} else {
$error .= "Email forward ".$mail_forward['source']." exists in local database. Skipped import.<br />";
}
-
+
}
}
}
-
+
//* Import spamfilter
if(isset($_POST['import_spamfilter']) && $_POST['import_spamfilter'] == 1) {
$mail_spamfilters = $client->mail_spamfilter_user_get($remote_session_id, array('email' => '%@'.$mail_domain));
if(is_array($mail_spamfilters)) {
foreach($mail_spamfilters as $mail_spamfilter) {
- $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM spamfilter_users WHERE email = '".$app->db->quote($mail_spamfilter['email'])."'");
+ $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM spamfilter_users WHERE email = ?", $mail_spamfilter['email']);
if($tmp['number'] == 0) {
$mail_spamfilter['sys_userid'] = $sys_userid;
$mail_spamfilter['sys_groupid'] = $sys_groupid;
+ $mail_spamfilter['server_id'] = $server_id;
unset($mail_spamfilter['id']);
$app->db->datalogInsert('spamfilter_users', $mail_spamfilter, 'id');
$msg .= "Imported spamfilter user ".$mail_spamfilter['email']."<br />";
} else {
$error .= "Spamfilter user ".$mail_spamfilter['email']." exists in local database. Skipped import.<br />";
}
-
+
}
}
}
}
-
+
}
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1