def signup(): errors = None if request.method == "POST": current_app.logger.debug(request.method + " Signup") form = SignupForm(request.form) if form.validate(): current_app.logger.debug("login validation successful") email = form.email.data password = form.password.data username = form.username.data users = User.get_users_by_email(email) if len(users) <= 0: user = User.add_user(username, email, password) if login_user(user, True): msg = u"Account created for " + username current_app.logger.debug(msg) helpers.get_flashed_messages() # to clean the flash cache return redirect(url_for("index")) else: errors = [] msg = u"Sorry, but you could not sign up." current_app.logger.debug(msg) errors.append(msg) else: errors = [] msg = u"This email already registered. Please login or use another email." current_app.logger.debug(msg) errors.append(msg) elif form.errors: current_app.logger.debug("login validation failed") errors = [] for field, err in form.errors.items(): for error in err: errors.append(getattr(form, field).label.text + " : " + error) else: form = SignupForm() return render_template("signup.html", form = form, errors = errors)
def login(): errors = None if request.method == "POST": current_app.logger.debug(request.method + " login ") form = LoginForm(request.form) if form.validate(): current_app.logger.debug("login validation successful") email = form.email.data.decode("UTF-8") password = form.password.data.decode("UTF-8") remember = form.remember.data users = User.get_users_by_email(email) if (len(users) > 0) and users[0].checkPassword(password): user = users[0] current_app.logger.debug("login and passwords are OK for user: "******"Logged in!") current_app.logger.debug(request.args.get("next") or url_for("index")) helpers.get_flashed_messages() # to clean the flash cache return redirect(request.args.get("next") or url_for("index")) else: error = u"could not log in for some reason" errors = [error] current_app.logger.debug(user.name + " " + error) else: error = u"Invalid email or password" errors = [error] current_app.logger.debug(error) else: error = u"Invalid email or password" errors = [error] current_app.logger.debug(error) else: form = LoginForm() current_app.logger.debug("Returning the form") return render_template("login.html", errors = errors, form = form)