mirror of
https://github.com/zulip/zulip.git
synced 2025-11-07 07:23:22 +00:00
Add blueslip warnings to stream_data functions.
Warn inside these functions when you get data on streams that you are not subscribed to: add_subscriber remove_subscriber user_is_subscribed The back end should be smart enough not to spam us with subscriber info that we don't care about. (imported from commit b27644be2abc37c11ddff884ef392ea208bd1bd3)
This commit is contained in:
@@ -113,6 +113,7 @@ exports.add_subscriber = function (stream_name, user_email) {
|
|||||||
// If we're not subscribed, we don't track this, and shouldn't
|
// If we're not subscribed, we don't track this, and shouldn't
|
||||||
// get these events. Likewise, if we don't know about the stream,
|
// get these events. Likewise, if we don't know about the stream,
|
||||||
// we don't want to track this.
|
// we don't want to track this.
|
||||||
|
blueslip.warning("We got an add_subscriber call for a non-existent or unsubscribed stream.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sub.subscribers.set(user_email, true);
|
sub.subscribers.set(user_email, true);
|
||||||
@@ -124,6 +125,7 @@ exports.remove_subscriber = function (stream_name, user_email) {
|
|||||||
// If we're not subscribed, we don't track this, and shouldn't
|
// If we're not subscribed, we don't track this, and shouldn't
|
||||||
// get these events. Likewise, if we don't know about the stream,
|
// get these events. Likewise, if we don't know about the stream,
|
||||||
// we don't want to track this.
|
// we don't want to track this.
|
||||||
|
blueslip.warning("We got a remove_subscriber call for a non-existent or unsubscribed stream.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sub.subscribers.del(user_email);
|
sub.subscribers.del(user_email);
|
||||||
@@ -135,6 +137,7 @@ exports.user_is_subscribed = function (stream_name, user_email) {
|
|||||||
// If we don't know about the stream, or we ourselves are not
|
// If we don't know about the stream, or we ourselves are not
|
||||||
// subscribed, we can't keep track of the subscriber list in general,
|
// subscribed, we can't keep track of the subscriber list in general,
|
||||||
// so we return undefined (treated as falsy if not explicitly handled).
|
// so we return undefined (treated as falsy if not explicitly handled).
|
||||||
|
blueslip.warning("We got a user_is_subscribed call for a non-existent or unsubscribed stream.");
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
return sub.subscribers.has(user_email);
|
return sub.subscribers.has(user_email);
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ add_dependencies({
|
|||||||
stream_color: 'js/stream_color.js'
|
stream_color: 'js/stream_color.js'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
set_global('blueslip', {});
|
||||||
|
|
||||||
var stream_data = require('js/stream_data.js');
|
var stream_data = require('js/stream_data.js');
|
||||||
|
|
||||||
(function test_basics() {
|
(function test_basics() {
|
||||||
@@ -102,6 +104,7 @@ var stream_data = require('js/stream_data.js');
|
|||||||
|
|
||||||
// Verify that we noop and don't crash when unsubsribed.
|
// Verify that we noop and don't crash when unsubsribed.
|
||||||
sub.subscribed = false;
|
sub.subscribed = false;
|
||||||
|
global.blueslip.warning = function () {};
|
||||||
stream_data.add_subscriber('Rome', email);
|
stream_data.add_subscriber('Rome', email);
|
||||||
assert.equal(stream_data.user_is_subscribed('Rome', email), undefined);
|
assert.equal(stream_data.user_is_subscribed('Rome', email), undefined);
|
||||||
stream_data.remove_subscriber('Rome', email);
|
stream_data.remove_subscriber('Rome', email);
|
||||||
|
|||||||
Reference in New Issue
Block a user