Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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))
Ejemplo n.º 6
0
    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))
Ejemplo n.º 7
0
    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]))
Ejemplo n.º 8
0
    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]))
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)