From aa78fde6a92f66b84d626e114d8b54a5fb6ece0c Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Wed, 14 Nov 2012 07:19:43 -0500
Subject: [PATCH] - Added function for IPv6 prefixes in multiserver mirror setups to nginx plugin.

---
 interface/web/client/client_message.php |   43 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/interface/web/client/client_message.php b/interface/web/client/client_message.php
index f9dd60e..fc9de0b 100644
--- a/interface/web/client/client_message.php
+++ b/interface/web/client/client_message.php
@@ -36,7 +36,7 @@
 //* This function is not available in demo mode
 if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
 
-$app->uses('tpl');
+$app->uses('tpl,tform');
 
 $app->tpl->newTemplate('form.tpl.htm');
 $app->tpl->setInclude('content_tpl', 'templates/client_message.htm');
@@ -59,8 +59,8 @@
 	
 	//* Send message
 	if($error == '') {
-		if(intval($_POST['recipient']) > 0){
-			$circle = $app->db->queryOneRecord("SELECT client_ids FROM client_circle WHERE active = 'y' AND circle_id = ".intval($_POST['recipient']));
+		if($app->functions->intval($_POST['recipient']) > 0){
+			$circle = $app->db->queryOneRecord("SELECT client_ids FROM client_circle WHERE active = 'y' AND circle_id = ".$app->functions->intval($_POST['recipient'])." AND ".$app->tform->getAuthSQL('r'));
 			if(isset($circle['client_ids']) && $circle['client_ids'] != ''){
 				$tmp_client_ids = explode(',',$circle['client_ids']);
 				$where = array();
@@ -77,7 +77,7 @@
 			if($_SESSION["s"]["user"]["typ"] == 'admin'){
 				$sql = "SELECT * FROM client WHERE email != ''";
 			} else {
-				$client_id = intval($_SESSION['s']['user']['client_id']);
+				$client_id = $app->functions->intval($_SESSION['s']['user']['client_id']);
 				if($client_id == 0) die('Invalid Client ID.');
 				$sql = "SELECT * FROM client WHERE email != '' AND parent_client_id = '$client_id'";
 			}
@@ -88,10 +88,14 @@
 		if(is_array($clients)) {
 			$msg = $wb['email_sent_to_txt'].' ';
 			foreach($clients as $client) {
-				//* Parse cleint details into message
+				//* Parse client details into message
 				$message = $_POST['message'];
 				foreach($client as $key => $val) {
-					$message = str_replace('{'.$key.'}', $val, $message);
+					if($key != 'password'){
+						$message = str_replace('{'.$key.'}', $val, $message);
+					} else {
+						$message = str_replace('{'.$key.'}', '---', $message);
+					}
 				}
 				
 				//* Send the email
@@ -106,15 +110,25 @@
 		$app->tpl->setVar('subject',$_POST['subject']);
 		$app->tpl->setVar('message',$_POST['message']);
 	}
+} else {
+	// pre-fill Sender field with reseller's email address
+	if($_SESSION["s"]["user"]["typ"] != 'admin'){
+		$client_id = $app->functions->intval($_SESSION['s']['user']['client_id']);
+		if($client_id > 0){
+			$sql = "SELECT email FROM client WHERE client_id = ".$client_id;
+			$client = $app->db->queryOneRecord($sql);
+			if($client['email'] != '') $app->tpl->setVar('sender',$client['email']);
+		}
+	}
 }
 
 // Recipient Drop-Down
-$recipient = '<option value="0">'.$wb['all_clients_resellers_txt'].'</option>';
-$sql = "SELECT * FROM client_circle WHERE active = 'y'";
+$recipient = '<option value="0"'.($app->functions->intval($_POST['recipient']) == 0 ? ' selected="selected"' : '').'>'.($_SESSION["s"]["user"]["typ"] == 'admin'? $wb['all_clients_resellers_txt'] : $wb['all_clients_txt']).'</option>';
+$sql = "SELECT * FROM client_circle WHERE active = 'y' AND ".$app->tform->getAuthSQL('r');
 $circles = $app->db->queryAllRecords($sql);
 if(is_array($circles) && !empty($circles)){
 	foreach($circles as $circle){
-		$recipient .= '<option value="'.$circle['circle_id'].'">'.$circle['circle_name'].'</option>';
+		$recipient .= '<option value="'.$circle['circle_id'].'"'.($app->functions->intval($_POST['recipient']) == $circle['circle_id'] ? ' selected="selected"' : '').'>'.$circle['circle_name'].'</option>';
 	}
 }
 $app->tpl->setVar('recipient',$recipient);
@@ -125,6 +139,17 @@
 	$app->tpl->setVar('form_legend_txt',$wb['form_legend_client_txt']);
 }
 
+//message variables
+$message_variables = '';
+$sql = "SHOW COLUMNS FROM client WHERE Field NOT IN ('client_id', 'sys_userid', 'sys_groupid', 'sys_perm_user', 'sys_perm_group', 'sys_perm_other', 'password', 'parent_client_id', 'id_rsa', 'ssh_rsa', 'created_at', 'default_mailserver', 'default_webserver', 'web_php_options', 'ssh_chroot', 'default_dnsserver', 'default_dbserver', 'template_master', 'template_additional') AND Field NOT LIKE 'limit_%'";
+$field_names = $app->db->queryAllRecords($sql);
+if(!empty($field_names) && is_array($field_names)){
+	foreach($field_names as $field_name){
+		if($field_name['Field'] != '') $message_variables .= '<a href="javascript:void(0);" class="addPlaceholder">{'.$field_name['Field'].'}</a> ';
+	}
+}
+$app->tpl->setVar('message_variables',trim($message_variables));
+
 $app->tpl->setVar('okmsg',$msg);
 $app->tpl->setVar('error',$error);
 

--
Gitblit v1.9.1