From b283f9c3b2d16e6c29eaf5240607f21c580ce8d2 Mon Sep 17 00:00:00 2001
From: Falko Timme <ft@falkotimme.com>
Date: Wed, 30 Apr 2014 04:26:25 -0400
Subject: [PATCH] - Re-enabled "Remember Password"- function on login screen.

---
 interface/web/client/client_edit.php |   86 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 76 insertions(+), 10 deletions(-)

diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index 33408d2..66a20c8 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -223,7 +223,7 @@
 		
 		if($app->auth->is_admin()) {
 			// Fill the client select field
-			$sql = "SELECT client.client_id, sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 AND client.limit_client > 0 ORDER BY sys_group.name";
+			$sql = "SELECT client.client_id, sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 AND client.limit_client > 0 ORDER BY client.company_name, client.contact_name, sys_group.name";
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = "<option value='0'>- ".$app->tform->lng('none_txt')." -</option>";
 			//$tmp_data_record = $app->tform->getDataRecord($this->id);
@@ -334,6 +334,48 @@
 				}
 			}
 		}
+		
+		//* Send welcome email
+		$client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
+		$sql = "SELECT * FROM client_message_template WHERE template_type = 'welcome' AND sys_groupid = ".$client_group_id;
+		$email_template = $app->db->queryOneRecord($sql);
+		$client = $app->tform->getDataRecord($this->id);
+
+		if(is_array($email_template) && $client['email'] != '') {
+			//* Parse client details into message
+			$message = $email_template['message'];
+			$subject = $email_template['subject'];
+			foreach($client as $key => $val) {
+				switch ($key) {
+				case 'password':
+					$message = str_replace('{password}', $this->dataRecord['password'], $message);
+					$subject = str_replace('{password}', $this->dataRecord['password'], $subject);
+					break;
+				case 'gender':
+					$message = str_replace('{salutation}', $app->tform->lng('gender_'.$val.'_txt'), $message);
+					$subject = str_replace('{salutation}', $app->tform->lng('gender_'.$val.'_txt'), $subject);
+					break;
+				default:
+					$message = str_replace('{'.$key.'}', $val, $message);
+					$subject = str_replace('{'.$key.'}', $val, $subject);
+				}
+			}
+			
+			//* Get sender address
+			if($app->auth->is_admin()) {
+				$app->uses('getconf');
+				$system_config = $app->getconf->get_global_config('mail');
+				$from = $system_config['admin_mail'];
+			} else {
+				$client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
+				$reseller = $app->db->queryOneRecord("SELECT client.email FROM sys_group,client WHERE client.client_id = sys_group.client_id and sys_group.groupid = ".$client_group_id);
+				$from = $reseller["email"];
+			}
+
+			//* Send the email
+			$app->functions->mail($client['email'], $subject, $message, $from);
+		}
+		
 
 		parent::onAfterInsert();
 	}
@@ -389,6 +431,8 @@
 			$to_disable = array('cron' => 'id',
 				'ftp_user' => 'ftp_user_id',
 				'mail_domain' => 'domain_id',
+				'mail_user' => 'mailuser_id',
+				'mail_user_smtp' => 'mailuser_id',
 				'mail_forwarding' => 'forwarding_id',
 				'mail_get' => 'mailget_id',
 				'openvz_vm' => 'vm_id',
@@ -410,17 +454,28 @@
 				$prev_active = array();
 				$prev_sysuser = array();
 				foreach($to_disable as $current => $keycolumn) {
-					$prev_active[$current] = array();
-					$prev_sysuser[$current] = array();
+					$active_col = 'active';
+					$reverse = false;
+					if($current == 'mail_user') {
+						$active_col = 'postfix';
+					} elseif($current == 'mail_user_smtp') {
+						$current = 'mail_user';
+						$active_col = 'disablesmtp';
+						$reverse = true;
+					}
+					
+					if(!isset($prev_active[$current])) $prev_active[$current] = array();
+					if(!isset($prev_sysuser[$current])) $prev_sysuser[$current] = array();
 
-					$entries = $app->db->queryAllRecords('SELECT `' . $keycolumn . '` as `id`, `sys_userid`, `active` FROM `' . $current . '` WHERE `sys_groupid` = ' . $sys_groupid);
+					$entries = $app->db->queryAllRecords('SELECT `' . $keycolumn . '` as `id`, `sys_userid`, `' . $active_col . '` FROM `' . $current . '` WHERE `sys_groupid` = ' . $sys_groupid);
 					foreach($entries as $item) {
 
-						if($item['active'] != 'y') $prev_active[$current][$item['id']]['active'] = 'n';
-						if($item['sys_userid'] != $sys_userid) $prev_sysuser[$current][$item['id']]['active'] = $item['sys_userid'];
+						if($item[$active_col] != 'y' && $reverse == false) $prev_active[$current][$item['id']][$active_col] = 'n';
+						elseif($item[$active_col] == 'y' && $reverse == true) $prev_active[$current][$item['id']][$active_col] = 'y';
+						if($item['sys_userid'] != $sys_userid) $prev_sysuser[$current][$item['id']] = $item['sys_userid'];
 						// we don't have to store these if y, as everything without previous state gets enabled later
 
-						$app->db->datalogUpdate($current, array('active' => 'n', 'sys_userid' => $_SESSION["s"]["user"]["userid"]), $keycolumn, $item['id']);
+						$app->db->datalogUpdate($current, array($active_col => ($reverse == true ? 'y' : 'n'), 'sys_userid' => $_SESSION["s"]["user"]["userid"]), $keycolumn, $item['id']);
 					}
 				}
 
@@ -431,20 +486,31 @@
 				unset($prev_sysuser);
 			} elseif($this->dataRecord['locked'] == 'n') {
 				foreach($to_disable as $current => $keycolumn) {
+					$active_col = 'active';
+					$reverse = false;
+					if($current == 'mail_user') {
+						$active_col = 'postfix';
+					} elseif($current == 'mail_user_smtp') {
+						$current = 'mail_user';
+						$active_col = 'disablesmtp';
+						$reverse = true;
+					}
+					
 					$entries = $app->db->queryAllRecords('SELECT `' . $keycolumn . '` as `id` FROM `' . $current . '` WHERE `sys_groupid` = ' . $sys_groupid);
 					foreach($entries as $item) {
-						$set_active = 'y';
+						$set_active = ($reverse == true ? 'n' : 'y');
+						$set_inactive = ($reverse == true ? 'y' : 'n');
 						$set_sysuser = $sys_userid;
 						if(array_key_exists('prev_active', $tmp_data) == true
 							&& array_key_exists($current, $tmp_data['prev_active']) == true
 							&& array_key_exists($item['id'], $tmp_data['prev_active'][$current]) == true
-							&& $tmp_data['prev_active'][$current][$item['id']] == 'n') $set_active = 'n';
+							&& $tmp_data['prev_active'][$current][$item['id']][$active_col] == $set_inactive) $set_active = $set_inactive;
 						if(array_key_exists('prev_sysuser', $tmp_data) == true
 							&& array_key_exists($current, $tmp_data['prev_sysuser']) == true
 							&& array_key_exists($item['id'], $tmp_data['prev_sysuser'][$current]) == true
 							&& $tmp_data['prev_sysuser'][$current][$item['id']] != $sys_userid) $set_sysuser = $tmp_data['prev_sysuser'][$current][$item['id']];
 
-						$app->db->datalogUpdate($current, array('active' => $set_active, 'sys_userid' => $set_sysuser), $keycolumn, $item['id']);
+						$app->db->datalogUpdate($current, array($active_col => $set_active, 'sys_userid' => $set_sysuser), $keycolumn, $item['id']);
 					}
 				}
 				if(array_key_exists('prev_active', $tmp_data)) unset($tmp_data['prev_active']);

--
Gitblit v1.9.1