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"))
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)
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)