From 637eb0bfb495399502f3a8faf500572c143cdfc3 Mon Sep 17 00:00:00 2001
From: Michael <heluecht@pirati.ca>
Date: Fri, 8 Sep 2017 15:14:33 +0000
Subject: [PATCH] Bugfix: Mails weren't sent

---
 boot.php                |  2 ++
 include/dbstructure.php |  2 +-
 include/enotify.php     | 18 ++++++++++--------
 include/user.php        |  4 ++--
 mod/admin.php           |  2 +-
 mod/lostpass.php        |  4 ++--
 6 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/boot.php b/boot.php
index c3ad39cd57..b8be70229c 100644
--- a/boot.php
+++ b/boot.php
@@ -320,6 +320,8 @@ define ( 'NOTIFY_TAGSHARE', 0x0100 );
 define ( 'NOTIFY_POKE',     0x0200 );
 define ( 'NOTIFY_SHARE',    0x0400 );
 
+define ( 'SYSTEM_EMAIL',    0x4000 );
+
 define ( 'NOTIFY_SYSTEM',   0x8000 );
 /* @}*/
 
diff --git a/include/dbstructure.php b/include/dbstructure.php
index a2599fc392..d87f3948d2 100644
--- a/include/dbstructure.php
+++ b/include/dbstructure.php
@@ -74,7 +74,7 @@ function update_fail($update_id, $error_message) {
 		$body = sprintf($body, $error_message);
 
 		notification(array(
-			'type' => "SYSTEM_EMAIL",
+			'type' => SYSTEM_EMAIL,
 			'to_email' => $admin['email'],
 			'preamble' => $preamble,
 			'body' => $body,
diff --git a/include/enotify.php b/include/enotify.php
index 62328c01fd..10723fb418 100644
--- a/include/enotify.php
+++ b/include/enotify.php
@@ -46,12 +46,14 @@ function notification($params) {
 	if (empty($sender_email))
 		$sender_email = t('noreply').'@'.$hostname;
 
-	$user = dba::select('user', array('nickname', 'page-flags'),
+	if ($params['type'] != SYSTEM_EMAIL) {
+		$user = dba::select('user', array('nickname', 'page-flags'),
 			array('uid' => $params['uid']), array('limit' => 1));
 
-	// There is no need to create notifications for forum accounts
-	if (!dbm::is_result($user) || in_array($user["page-flags"], array(PAGE_COMMUNITY, PAGE_PRVGROUP))) {
-		return;
+		// There is no need to create notifications for forum accounts
+		if (!dbm::is_result($user) || in_array($user["page-flags"], array(PAGE_COMMUNITY, PAGE_PRVGROUP))) {
+			return;
+		}
 	}
 	$nickname = $user["nickname"];
 
@@ -366,7 +368,7 @@ function notification($params) {
 		}
 	}
 
-	if ($params['type'] == "SYSTEM_EMAIL") {
+	if ($params['type'] == SYSTEM_EMAIL) {
 		// not part of the notifications.
 		// it just send a mail to the user.
 		// It will be used by the system to send emails to users (like
@@ -517,7 +519,7 @@ function notification($params) {
 	// send email notification if notification preferences permit
 	if ((intval($params['notify_flags']) & intval($params['type']))
 		|| $params['type'] == NOTIFY_SYSTEM
-		|| $params['type'] == "SYSTEM_EMAIL") {
+		|| $params['type'] == SYSTEM_EMAIL) {
 
 		logger('sending notification email');
 
@@ -586,8 +588,8 @@ function notification($params) {
 		call_hooks('enotify_mail', $datarray);
 
 		// check whether sending post content in email notifications is allowed
-		// always true for "SYSTEM_EMAIL"
-		$content_allowed = ((!get_config('system', 'enotify_no_content')) || ($params['type'] == "SYSTEM_EMAIL"));
+		// always true for SYSTEM_EMAIL
+		$content_allowed = ((!get_config('system', 'enotify_no_content')) || ($params['type'] == SYSTEM_EMAIL));
 
 		// load the template for private message notifications
 		$tpl = get_markup_template('email_notify_html.tpl');
diff --git a/include/user.php b/include/user.php
index 4ed5e57f3d..a05bd831a8 100644
--- a/include/user.php
+++ b/include/user.php
@@ -404,7 +404,7 @@ function send_register_pending_eml($email, $sitename, $username) {
 	$body = sprintf($body, $username, $sitename);
 
 	return notification(array(
-		'type' => "SYSTEM_EMAIL",
+		'type' => SYSTEM_EMAIL,
 		'to_email' => $email,
 		'subject'=> sprintf( t('Registration at %s'), $sitename),
 		'body' => $body));
@@ -450,7 +450,7 @@ function send_register_open_eml($email, $sitename, $siteurl, $username, $passwor
 		$body = sprintf($body, $email, $sitename, $siteurl, $username, $password);
 
 		return notification(array(
-			'type' => "SYSTEM_EMAIL",
+			'type' => SYSTEM_EMAIL,
 			'to_email' => $email,
 			'subject'=> sprintf( t('Registration details for %s'), $sitename),
 			'preamble'=> $preamble,
diff --git a/mod/admin.php b/mod/admin.php
index c5043f2252..6d1adc7012 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -1395,7 +1395,7 @@ function admin_page_users_post(App $a) {
 		$body = sprintf($body, System::baseUrl(), $nu['email'], $result['password'], $a->config['sitename']);
 
 		notification(array(
-			'type' => "SYSTEM_EMAIL",
+			'type' => SYSTEM_EMAIL,
 			'to_email' => $nu['email'],
 			'subject'=> sprintf(t('Registration details for %s'), $a->config['sitename']),
 			'preamble'=> $preamble,
diff --git a/mod/lostpass.php b/mod/lostpass.php
index a2e69ffb09..e7e1a33bd0 100644
--- a/mod/lostpass.php
+++ b/mod/lostpass.php
@@ -69,7 +69,7 @@ function lostpass_post(App $a) {
 	$body = sprintf($body, $resetlink, System::baseUrl(), $email);
 
 	notification(array(
-		'type' => "SYSTEM_EMAIL",
+		'type' => SYSTEM_EMAIL,
 		'to_email' => $email,
 		'subject'=> sprintf( t('Password reset requested at %s'),$sitename),
 		'preamble'=> $preamble,
@@ -145,7 +145,7 @@ function lostpass_content(App $a) {
 			$body = sprintf($body, System::baseUrl(), $email, $new_password);
 
 			notification(array(
-				'type' => "SYSTEM_EMAIL",
+				'type' => SYSTEM_EMAIL,
 				'to_email' => $email,
 				'subject'=> sprintf( t('Your password has been changed at %s'),$sitename),
 				'preamble'=> $preamble,