mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 21:13:36 +00:00
Change stream_data.remove_subscriber() to accept user ids.
This commit is contained in:
@@ -639,7 +639,7 @@ run(function (override, capture, args) {
|
||||
// user_ids more directly in some of subscriptions code.
|
||||
override('people', 'get_person_from_user_id', function (user_id) {
|
||||
assert_same(user_id, 555);
|
||||
return {email: 'bob@example.com'};
|
||||
return {email: 'this-is-not-really-used-in-the-test'};
|
||||
});
|
||||
|
||||
var event = event_fixtures.subscription__add;
|
||||
@@ -655,10 +655,10 @@ run(function (override, capture, args) {
|
||||
assert_same(args.user_id, 555);
|
||||
|
||||
event = event_fixtures.subscription__peer_remove;
|
||||
override('stream_data', 'remove_subscriber', capture(['sub', 'email']));
|
||||
override('stream_data', 'remove_subscriber', capture(['sub', 'user_id']));
|
||||
dispatch(event);
|
||||
assert_same(args.sub, event.subscriptions[0]);
|
||||
assert_same(args.email, 'bob@example.com');
|
||||
assert_same(args.user_id, 555);
|
||||
|
||||
event = event_fixtures.subscription__remove;
|
||||
var stream_id_looked_up;
|
||||
|
||||
@@ -180,14 +180,18 @@ var people = global.people;
|
||||
assert.equal(sub.subscriber_count, 1);
|
||||
|
||||
// remove
|
||||
stream_data.remove_subscriber('Rome', email);
|
||||
stream_data.remove_subscriber('Rome', brutus.user_id);
|
||||
assert(!stream_data.user_is_subscribed('Rome', email));
|
||||
sub = stream_data.get_sub('Rome');
|
||||
stream_data.update_subscribers_count(sub);
|
||||
assert.equal(sub.subscriber_count, 0);
|
||||
|
||||
// Defensive code will give warnings, which we ignore for the
|
||||
// tests, but the defensive code needs to not actually blow up.
|
||||
global.blueslip.warn = function () {};
|
||||
|
||||
// verify that removing an already-removed subscriber is a noop
|
||||
stream_data.remove_subscriber('Rome', email);
|
||||
stream_data.remove_subscriber('Rome', brutus.user_id);
|
||||
assert(!stream_data.user_is_subscribed('Rome', email));
|
||||
sub = stream_data.get_sub('Rome');
|
||||
stream_data.update_subscribers_count(sub);
|
||||
@@ -203,10 +207,9 @@ var people = global.people;
|
||||
|
||||
// Verify that we noop and don't crash when unsubscribed.
|
||||
sub.subscribed = false;
|
||||
global.blueslip.warn = function () {};
|
||||
stream_data.add_subscriber('Rome', brutus.user_id);
|
||||
assert.equal(stream_data.user_is_subscribed('Rome', email), undefined);
|
||||
stream_data.remove_subscriber('Rome', email);
|
||||
stream_data.remove_subscriber('Rome', brutus.user_id);
|
||||
assert.equal(stream_data.user_is_subscribed('Rome', email), undefined);
|
||||
|
||||
}());
|
||||
|
||||
@@ -143,7 +143,7 @@ function dispatch_normal_event(event) {
|
||||
person = people.get_person_from_user_id(event.user_id);
|
||||
email = person.email;
|
||||
_.each(event.subscriptions, function (sub) {
|
||||
stream_data.remove_subscriber(sub, email);
|
||||
stream_data.remove_subscriber(sub, event.user_id);
|
||||
$(document).trigger('peer_unsubscribe.zulip',
|
||||
{stream_name: sub, user_email: email});
|
||||
});
|
||||
|
||||
@@ -32,7 +32,8 @@ exports.rename_sub = function (stream_id, new_name) {
|
||||
|
||||
exports.unsubscribe_myself = function (sub) {
|
||||
// Remove user from subscriber's list
|
||||
exports.remove_subscriber(sub.name, page_params.email);
|
||||
var user_id = people.get_user_id(page_params.email);
|
||||
exports.remove_subscriber(sub.name, user_id);
|
||||
sub.subscribed = false;
|
||||
};
|
||||
|
||||
@@ -166,15 +167,14 @@ exports.add_subscriber = function (stream_name, user_id) {
|
||||
sub.subscribers.set(user_id, true);
|
||||
};
|
||||
|
||||
exports.remove_subscriber = function (stream_name, user_email) {
|
||||
exports.remove_subscriber = function (stream_name, user_id) {
|
||||
var sub = exports.get_sub(stream_name);
|
||||
if (typeof sub === 'undefined') {
|
||||
blueslip.warn("We got a remove_subscriber call for a non-existent stream " + stream_name);
|
||||
return;
|
||||
}
|
||||
var user_id = people.get_user_id(user_email);
|
||||
if (!user_id) {
|
||||
blueslip.error("We tried to remove invalid subscriber: " + user_email);
|
||||
if (!sub.subscribers.has(user_id)) {
|
||||
blueslip.warn("We tried to remove invalid subscriber: " + user_id);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user