mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 11:22:04 +00:00
email -> id: Make browser's filter for "sender" more robust.
This commit is contained in:
@@ -21,7 +21,21 @@ var me = {
|
|||||||
full_name: 'Me Myself',
|
full_name: 'Me Myself',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var joe = {
|
||||||
|
email: 'joe@example.com',
|
||||||
|
user_id: 31,
|
||||||
|
full_name: 'joe',
|
||||||
|
};
|
||||||
|
|
||||||
|
var steve = {
|
||||||
|
email: 'STEVE@foo.com',
|
||||||
|
user_id: 32,
|
||||||
|
full_name: 'steve',
|
||||||
|
};
|
||||||
|
|
||||||
people.add(me);
|
people.add(me);
|
||||||
|
people.add(joe);
|
||||||
|
people.add(steve);
|
||||||
people.initialize_current_user(me.user_id);
|
people.initialize_current_user(me.user_id);
|
||||||
|
|
||||||
function assert_same_operators(result, terms) {
|
function assert_same_operators(result, terms) {
|
||||||
@@ -259,8 +273,8 @@ function get_predicate(operators) {
|
|||||||
assert(!predicate({type: 'stream', id: 5, subject: 'dinner'}));
|
assert(!predicate({type: 'stream', id: 5, subject: 'dinner'}));
|
||||||
|
|
||||||
predicate = get_predicate([['sender', 'Joe@example.com']]);
|
predicate = get_predicate([['sender', 'Joe@example.com']]);
|
||||||
assert(predicate({sender_email: 'JOE@example.com'}));
|
assert(predicate({sender_id: joe.user_id}));
|
||||||
assert(!predicate({sender_email: 'steve@foo.com'}));
|
assert(!predicate({sender_email: steve.user_id}));
|
||||||
|
|
||||||
predicate = get_predicate([['pm-with', 'Joe@example.com']]);
|
predicate = get_predicate([['pm-with', 'Joe@example.com']]);
|
||||||
assert(predicate({type: 'private', reply_to: 'JOE@example.com'}));
|
assert(predicate({type: 'private', reply_to: 'JOE@example.com'}));
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ function message_matches_search_term(message, operator, operand) {
|
|||||||
|
|
||||||
|
|
||||||
case 'sender':
|
case 'sender':
|
||||||
return (message.sender_email.toLowerCase() === operand.toLowerCase());
|
return people.id_matches_email_operand(message.sender_id, operand);
|
||||||
|
|
||||||
case 'pm-with':
|
case 'pm-with':
|
||||||
// TODO: use user_ids, not emails here
|
// TODO: use user_ids, not emails here
|
||||||
|
|||||||
@@ -54,6 +54,19 @@ exports.get_by_email = function (email) {
|
|||||||
return person;
|
return person;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.id_matches_email_operand = function (user_id, email) {
|
||||||
|
var person = exports.get_by_email(email);
|
||||||
|
|
||||||
|
if (!person) {
|
||||||
|
// The user may type bad data into the search bar, so
|
||||||
|
// we don't complain too loud here.
|
||||||
|
blueslip.debug('User email operand unknown: ' + email);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (person.user_id === user_id);
|
||||||
|
};
|
||||||
|
|
||||||
exports.update_email = function (user_id, new_email) {
|
exports.update_email = function (user_id, new_email) {
|
||||||
var person = people_by_user_id_dict.get(user_id);
|
var person = people_by_user_id_dict.get(user_id);
|
||||||
person.email = new_email;
|
person.email = new_email;
|
||||||
|
|||||||
Reference in New Issue
Block a user