def update_info(): pulse_username = request.form['pulse-user'] new_password = request.form['new-password'] password_verification = request.form['new-password-verification'] try: pulse_user = PulseUser.query.filter( PulseUser.username == pulse_username).one() except sqlalchemy.orm.exc.NoResultFound: return profile(messages=["Invalid user."]) if pulse_user.owner != g.user: return profile(messages=["Invalid user."]) if not new_password: return profile(messages=["You didn't enter a new password."]) if new_password != password_verification: return profile(error="Password verification doesn't match the " "password.") if not PulseUser.strong_password(new_password): return profile(error="Your password must contain a mix of " "letters and numerical characters and be at " "least 6 characters long.") pulse_user.change_password(new_password, pulse_management) return profile(messages=["Password updated for user {0}.".format( pulse_username)])
def register_handler(): username = request.form['username'] password = request.form['password'] password_verification = request.form['password-verification'] email = session['email'] errors = [] if password != password_verification: errors.append("Password verification doesn't match the password.") elif not PulseUser.strong_password(password): errors.append("Your password must contain a mix of letters and " "numerical characters and be at least 6 characters long.") if not re.match('^[a-zA-Z][a-zA-Z0-9._-]*$', username): errors.append("The submitted username must start with an " "alphabetical character and contain only alphanumeric " "characters, periods, underscores, and hyphens.") # Checking if a user exists in RabbitMQ OR in our db try: user_response = pulse_management.user(username=username) in_rabbitmq = True except PulseManagementException: in_rabbitmq = False else: if 'error' in user_response: in_rabbitmq = False if (in_rabbitmq or PulseUser.query.filter(PulseUser.username == username).first()): errors.append("A user with the same username already exists.") if errors: return render_template('register.html', email=email, signup_errors=errors) PulseUser.new_user(username, password, g.user, pulse_management) return redirect('/profile')