def test_invite_user_signup_initial_history(self): """ Test that a new user invited to a stream receives some initial history but only from public streams. """ self.login("*****@*****.**") user_profile = get_user_profile_by_email("*****@*****.**") private_stream_name = "Secret" (stream, _) = create_stream_if_needed(user_profile.realm, private_stream_name, invite_only=True) do_add_subscription(user_profile, stream) public_msg_id = self.send_message("*****@*****.**", "Denmark", Recipient.STREAM, "Public topic", "Public message") secret_msg_id = self.send_message("*****@*****.**", private_stream_name, Recipient.STREAM, "Secret topic", "Secret message") invitee = "*****@*****.**" self.assert_json_success( self.invite(invitee, [private_stream_name, "Denmark"])) self.assertTrue(find_key_by_email(invitee)) self.submit_reg_form_for_user("alice-test", "password") invitee_profile = get_user_profile_by_email(invitee) invitee_msg_ids = [ um.message_id for um in UserMessage.objects.filter(user_profile=invitee_profile) ] self.assertTrue(public_msg_id in invitee_msg_ids) self.assertFalse(secret_msg_id in invitee_msg_ids)
def subscribe_to_stream(self, email, stream_name, realm=None): realm = get_realm(resolve_email_to_domain(email)) stream = get_stream(stream_name, realm) if stream is None: stream, _ = create_stream_if_needed(realm, stream_name) user_profile = get_user_profile_by_email(email) do_add_subscription(user_profile, stream, no_log=True)
def test_invite_user_signup_initial_history(self): # type: () -> None """ Test that a new user invited to a stream receives some initial history but only from public streams. """ self.login("*****@*****.**") user_profile = get_user_profile_by_email("*****@*****.**") private_stream_name = "Secret" (stream, _) = create_stream_if_needed(user_profile.realm, private_stream_name, invite_only=True) do_add_subscription(user_profile, stream) public_msg_id = self.send_message("*****@*****.**", "Denmark", Recipient.STREAM, "Public topic", "Public message") secret_msg_id = self.send_message("*****@*****.**", private_stream_name, Recipient.STREAM, "Secret topic", "Secret message") invitee = "*****@*****.**" self.assert_json_success(self.invite(invitee, [private_stream_name, "Denmark"])) self.assertTrue(find_key_by_email(invitee)) self.submit_reg_form_for_user("alice-test", "password") invitee_profile = get_user_profile_by_email(invitee) invitee_msg_ids = [um.message_id for um in UserMessage.objects.filter(user_profile=invitee_profile)] self.assertTrue(public_msg_id in invitee_msg_ids) self.assertFalse(secret_msg_id in invitee_msg_ids)
def handle(self, **options): if options["domain"] is None or options["streams"] is None or \ (options["users"] is None and options["all_users"] is None): self.print_help("python manage.py", "add_users_to_streams") exit(1) stream_names = set( [stream.strip() for stream in options["streams"].split(",")]) realm = get_realm(options["domain"]) if options["all_users"]: user_profiles = UserProfile.objects.filter(realm=realm) else: emails = set( [email.strip() for email in options["users"].split(",")]) user_profiles = [] for email in emails: user_profiles.append(get_user_profile_by_email(email)) for stream_name in set(stream_names): for user_profile in user_profiles: stream, _ = create_stream_if_needed(user_profile.realm, stream_name) did_subscribe = do_add_subscription(user_profile, stream) print("%s %s to %s" % ("Subscribed" if did_subscribe else "Already subscribed", user_profile.email, stream_name))
def handle(self, **options): # type: (**Any) -> None if options["domain"] is None or options["streams"] is None or \ (options["users"] is None and options["all_users"] is None): self.print_help("python manage.py", "add_users_to_streams") exit(1) stream_names = set([stream.strip() for stream in options["streams"].split(",")]) realm = get_realm(options["domain"]) if options["all_users"]: user_profiles = UserProfile.objects.filter(realm=realm) else: emails = set([email.strip() for email in options["users"].split(",")]) user_profiles = [] for email in emails: user_profiles.append(get_user_profile_by_email(email)) for stream_name in set(stream_names): for user_profile in user_profiles: stream, _ = create_stream_if_needed(user_profile.realm, stream_name) did_subscribe = do_add_subscription(user_profile, stream) print("%s %s to %s" % ( "Subscribed" if did_subscribe else "Already subscribed", user_profile.email, stream_name))
def test_invite_with_non_ascii_streams(self): """ Inviting someone to streams with non-ASCII characters succeeds. """ self.login("*****@*****.**") invitee = "*****@*****.**" stream_name = u"hümbüǵ" realm = get_realm("zulip.com") stream, _ = create_stream_if_needed(realm, stream_name) # Make sure we're subscribed before inviting someone. do_add_subscription(get_user_profile_by_email("*****@*****.**"), stream, no_log=True) self.assert_json_success(self.invite(invitee, [stream_name]))
def test_invite_with_non_ascii_streams(self): """ Inviting someone to streams with non-ASCII characters succeeds. """ self.login("*****@*****.**") invitee = "*****@*****.**" stream_name = u"hümbüǵ" realm = get_realm("zulip.com") stream, _ = create_stream_if_needed(realm, stream_name) # Make sure we're subscribed before inviting someone. do_add_subscription( get_user_profile_by_email("*****@*****.**"), stream, no_log=True) self.assert_json_success(self.invite(invitee, [stream_name]))
def subscribe_to_stream(self, email, stream_name, realm=None): realm = Realm.objects.get(domain=resolve_email_to_domain(email)) stream, _ = create_stream_if_needed(realm, stream_name) user_profile = get_user_profile_by_email(email) do_add_subscription(user_profile, stream, no_log=True)