Exemple #1
0
    def test_valid_email(self):
        from tornado_utils import valid_email
        self.assertTrue(valid_email('*****@*****.**'))
        self.assertTrue(valid_email("peter'*****@*****.**"))

        self.assertTrue(not valid_email('peterbe @gmail.com'))
        self.assertTrue(not valid_email("peter'be@gmai"))
Exemple #2
0
    def post(self):
        email = self.get_argument('email', u'').strip()
        first_name = self.get_argument('first_name', u'').strip()
        last_name = self.get_argument('last_name', u'').strip()
        newsletter_frequency = self.get_argument('newsletter_frequency', None)
        if newsletter_frequency:
            assert newsletter_frequency in self.NEWSLETTER_FREQUENCIES

        if email and not valid_email(email):
            raise HTTPError(400, "Not a valid email address")

        user = self.get_current_user()

        if email:
            existing_user = self.find_user_by_email(email)
            if existing_user and existing_user != user:
                raise HTTPError(400,
                                "Email address already used by someone else")

        _email_verification_sent = False
        if user.email != email and email:
            self.send_email_verification(user, email)
            _email_verification_sent = True

        user.email = email
        user.first_name = first_name
        user.last_name = last_name
        user.save()

        if newsletter_frequency:
            newsletter_settings = self.get_newsletter_settings(user)
            newsletter_settings.frequency = newsletter_frequency
            newsletter_settings.save()

        if _email_verification_sent:
            self.push_flash_message(
                "Settings saved",
                "An email has been sent for you to verify your email address")
        else:
            self.push_flash_message(
                "Settings saved", "Your changes have been successfully saved")

        url = self.get_argument('came_from', '/')
        assert url.startswith('/'), url
        if _email_verification_sent:
            p = '&' if '?' in url else '?'
            url += '%s=email-verification=sent' % p
        self.redirect(url)
Exemple #3
0
    def post(self):
        email = self.get_argument('email', u'').strip()
        first_name = self.get_argument('first_name', u'').strip()
        last_name = self.get_argument('last_name', u'').strip()
        newsletter_frequency = self.get_argument('newsletter_frequency', None)
        if newsletter_frequency:
            assert newsletter_frequency in self.NEWSLETTER_FREQUENCIES

        if email and not valid_email(email):
            raise HTTPError(400, "Not a valid email address")

        user = self.get_current_user()

        if email:
            existing_user = self.find_user_by_email(email)
            if existing_user and existing_user != user:
                raise HTTPError(400, "Email address already used by someone else")

        _email_verification_sent = False
        if user.email != email and email:
            self.send_email_verification(user, email)
            _email_verification_sent = True

        user.email = email
        user.first_name = first_name
        user.last_name = last_name
        user.save()

        if newsletter_frequency:
            newsletter_settings = self.get_newsletter_settings(user)
            newsletter_settings.frequency = newsletter_frequency
            newsletter_settings.save()

        if _email_verification_sent:
            self.push_flash_message("Settings saved",
              "An email has been sent for you to verify your email address")
        else:
            self.push_flash_message("Settings saved",
              "Your changes have been successfully saved")

        url = self.get_argument('came_from', '/')
        assert url.startswith('/'), url
        if _email_verification_sent:
            p = '&' if '?' in url else '?'
            url += '%s=email-verification=sent' % p
        self.redirect(url)