compose_fade: Change would_receive_message to use user_id.

This commit changes the would_receive_message to use user_id
instead of emails.

This change is done because user_ids are immutable and using
user_ids is the correct way of uniquely identifying user.

The change in 'would_receive_message' also leads to change
in util.is_pm_recipient to use a string of user_ids instead
of emails.

We also know that user_ids passed to 'would_receive_message'
are active user_ids, since we get them from buddy_list.
So we don't need to check whether the user is active, which
was previously being checked by get_active_user_for_email.
This commit is contained in:
sahil839
2020-06-05 23:19:16 +05:30
committed by Tim Abbott
parent 25aed90da1
commit 40475a41b0
4 changed files with 16 additions and 19 deletions

View File

@@ -55,10 +55,9 @@ run_test('set_focused_recipient', () => {
compose_fade.set_focused_recipient('stream');
assert.equal(compose_fade.would_receive_message('me@example.com'), true);
assert.equal(compose_fade.would_receive_message('alice@example.com'), true);
assert.equal(compose_fade.would_receive_message('bob@example.com'), false);
assert.equal(compose_fade.would_receive_message('nonrealmuser@example.com'), true);
assert.equal(compose_fade.would_receive_message(me.user_id), true);
assert.equal(compose_fade.would_receive_message(alice.user_id), true);
assert.equal(compose_fade.would_receive_message(bob.user_id), false);
const good_msg = {
type: 'stream',

View File

@@ -34,10 +34,10 @@ run_test('extract_pm_recipients', () => {
});
run_test('is_pm_recipient', () => {
const message = { reply_to: 'alice@example.com,bOb@exaMple.com,fred@example.com' };
assert(util.is_pm_recipient('alice@example.com', message));
assert(util.is_pm_recipient('bob@example.com', message));
assert(!util.is_pm_recipient('unknown@example.com', message));
const message = { to_user_ids: '31,32,33' };
assert(util.is_pm_recipient(31, message));
assert(util.is_pm_recipient(32, message));
assert(!util.is_pm_recipient(34, message));
});
run_test('lower_bound', () => {

View File

@@ -92,22 +92,21 @@ function fade_messages() {
}, 0, current_msg_list, compose_state.private_message_recipient());
}
exports.would_receive_message = function (email) {
exports.would_receive_message = function (user_id) {
if (focused_recipient.type === 'stream') {
const user = people.get_active_user_for_email(email);
const sub = stream_data.get_sub(focused_recipient.stream);
if (!sub || !user) {
// If the stream or user isn't valid, there is no risk of a mix
if (!sub) {
// If the stream isn't valid, there is no risk of a mix
// yet, so we sort of "lie" and say they would receive a
// message.
return true;
}
return stream_data.is_user_subscribed(focused_recipient.stream, user.user_id);
return stream_data.is_user_subscribed(focused_recipient.stream, user_id);
}
// PM, so check if the given email is in the recipients list.
return util.is_pm_recipient(email, focused_recipient);
return util.is_pm_recipient(user_id, focused_recipient);
};
const user_fade_config = {
@@ -124,8 +123,7 @@ const user_fade_config = {
function update_user_row_when_fading(li, conf) {
const user_id = conf.get_user_id(li);
const email = people.get_by_user_id(user_id).email;
const would_receive = exports.would_receive_message(email);
const would_receive = exports.would_receive_message(user_id);
if (would_receive || people.is_my_user_id(user_id)) {
conf.unfade(li);

View File

@@ -62,9 +62,9 @@ exports.same_stream_and_topic = function util_same_stream_and_topic(a, b) {
lower_same(a.topic, b.topic);
};
exports.is_pm_recipient = function (email, message) {
const recipients = message.reply_to.toLowerCase().split(',');
return recipients.includes(email.toLowerCase());
exports.is_pm_recipient = function (user_id, message) {
const recipients = message.to_user_ids.split(',');
return recipients.includes(user_id.toString());
};
exports.extract_pm_recipients = function (recipients) {