From 820e150708f8301e37398e2b6e5550125d6e8642 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Mon, 25 Jul 2016 01:00:35 -0600 Subject: [PATCH] Properly filter out private mail by user ID --- core/message_area.js | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/core/message_area.js b/core/message_area.js index 74fbb8db..1e0a4d1a 100644 --- a/core/message_area.js +++ b/core/message_area.js @@ -372,7 +372,7 @@ function getNewMessageDataInAreaForUserSql(userId, areaTag, lastMessageId, what) FROM message WHERE area_tag = "${areaTag}" AND message_id > ${lastMessageId}`; - if(Message.WellKnownAreaTags.Private === areaTag) { + if(Message.isPrivateAreaTag(areaTag)) { sql += ` AND message_id in ( SELECT message_id @@ -426,21 +426,6 @@ function getNewMessagesInAreaForUser(userId, areaTag, cb) { }); }, function getMessages(lastMessageId, callback) { - /* - let sql = - `SELECT message_id, message_uuid, reply_to_message_id, to_user_name, from_user_name, subject, modified_timestamp, view_count - FROM message - WHERE area_tag = "${areaTag}" AND message_id > ${lastMessageId}`; - - if(Message.WellKnownAreaTags.Private === areaTag) { - sql += - ` AND message_id in ( - SELECT message_id from message_meta where meta_category ="System" - AND meta_name = "${Message.SystemMetaNames.LocalToUserID}" AND meta_value = ${userId})`; - } - - sql += ' ORDER BY message_id;'; - */ const sql = getNewMessageDataInAreaForUserSql(userId, areaTag, lastMessageId, 'messages'); msgDb.each(sql, function msgRow(err, row) { @@ -480,11 +465,24 @@ function getMessageListForArea(options, areaTag, cb) { async.series( [ function fetchMessages(callback) { - msgDb.each( + let sql = `SELECT message_id, message_uuid, reply_to_message_id, to_user_name, from_user_name, subject, modified_timestamp, view_count FROM message - WHERE area_tag = ? - ORDER BY message_id;`, + WHERE area_tag = ?`; + + if(Message.isPrivateAreaTag(areaTag)) { + sql += + ` AND message_id IN ( + SELECT message_id + FROM message_meta + WHERE meta_category = "System" AND meta_name = "${Message.SystemMetaNames.LocalToUserID}" AND meta_value = ${options.client.user.userId} + )`; + } + + sql += ' ORDER BY message_id;'; + + msgDb.each( + sql, [ areaTag.toLowerCase() ], (err, row) => { if(!err) {