From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 10 Jul 2016 05:02:35 -0400
Subject: [PATCH] Merge branch 'stable-3.1'

---
 interface/web/mail/webmailer.php |   43 ++++++++++++++++++++++++++++---------------
 1 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/interface/web/mail/webmailer.php b/interface/web/mail/webmailer.php
index 5eb70ea..d6f73cc 100644
--- a/interface/web/mail/webmailer.php
+++ b/interface/web/mail/webmailer.php
@@ -28,35 +28,48 @@
 */
 
 
-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('sites');
+$app->auth->check_module_permissions('mail');
 
 /* get the id of the mail (must be int!) */
 if (!isset($_GET['id'])){
-    die ("No E-Mail selected!");
+	die ("No E-Mail selected!");
 }
-$emailId = intval($_GET['id']);
+$emailId = $app->functions->intval($_GET['id']);
 
 /*
  * Get the data to connect to the database
  */
-$dbData = $app->db->queryOneRecord("SELECT server_id FROM mail_user WHERE mailuser_id = " . $emailId);
-$serverId = intval($dbData['server_id']);
+$dbData = $app->db->queryOneRecord("SELECT server_id FROM mail_user WHERE mailuser_id = ?", $emailId);
+$serverId = $app->functions->intval($dbData['server_id']);
 if ($serverId == 0){
-    die ("No E-Mail - Server found!");
+	die ("No E-Mail - Server found!");
 }
 
-$serverData = $app->db->queryOneRecord(
-    "SELECT server_name FROM server WHERE server_id = " .
-    $serverId);
+$serverData = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $serverId);
 
-/*
+$app->uses('getconf');
+$global_config = $app->getconf->get_global_config('mail');
+
+if($global_config['webmail_url'] != '') {
+	$webmail_url = $global_config['webmail_url'];
+	$webmail_url = str_replace('[SERVERNAME]', $serverData['server_name'], $webmail_url);
+	header('Location:' . $webmail_url);
+} else {
+
+	/*
  * We only redirect to the login-form, so there is no need, to check any rights
  */
-isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http';
-header('location:' . $http . '://' . $serverData['server_name'] . '/webmail');
+	isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http';
+	if($web_config['server_type'] == 'nginx') {
+		header('Location: http://' . $serverData['server_name'] . ':8081/webmail');
+	} else {
+		header('Location: ' . $http . '://' . $serverData['server_name'] . '/webmail');
+	}
+	isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http';
+}
 exit;
-?>
\ No newline at end of file
+?>

--
Gitblit v1.9.1