topics: Fix get_topics_backend logic for zephyr realms.

This removes a check on invite_only, that should have been a check on
history_public_to_subscribers.  In addition to fixing a bug for zephyr
realms, it also makes "more topics" work correctly for realms using
the new settings for stream history being public to subscribers.
This commit is contained in:
Tim Abbott
2018-05-02 08:52:54 -07:00
parent 4df886f36f
commit a0e8a37e7f
2 changed files with 21 additions and 1 deletions

View File

@@ -88,6 +88,26 @@ from typing import Any, Dict, List, Optional, Set, Text
from collections import namedtuple
class TopicHistoryTest(ZulipTestCase):
def test_topics_history_zephyr_mirror(self) -> None:
user_profile = self.mit_user('sipbtest')
stream_name = 'new_stream'
# Send a message to this new stream from another user
self.subscribe(self.mit_user("starnine"), stream_name)
stream = get_stream(stream_name, user_profile.realm)
self.send_stream_message(self.mit_email("starnine"), stream_name,
topic_name="secret topic", sender_realm="zephyr")
# Now subscribe this MIT user to the new stream and verify
# that the new topic is not accessible
self.login(user_profile.email, realm=user_profile.realm)
self.subscribe(user_profile, stream_name)
endpoint = '/json/users/me/%d/topics' % (stream.id,)
result = self.client_get(endpoint, dict(), subdomain="zephyr")
self.assert_json_success(result)
history = result.json()['topics']
self.assertEqual(history, [])
def test_topics_history(self) -> None:
# verified: int(UserMessage.flags.read) == 1
user_profile = self.example_user('iago')

View File

@@ -444,7 +444,7 @@ def get_topics_backend(request: HttpRequest, user_profile: UserProfile,
result = get_topic_history_for_stream(
user_profile=user_profile,
recipient=recipient,
public_history=not stream.invite_only,
public_history=stream.is_history_public_to_subscribers(),
)
return json_success(dict(topics=result))