def signup(): ''' This creates an account for the user. This is used in adjunction with javascript to create an ajax signup form ''' form = Signup_Form(csrf_enabled=False) if request.method == 'POST' and form.validate_on_submit(): username = request.form.get('username', None) email = request.form.get('email', None) password = request.form.get('password', None) password_hash = User.gen_hash(password) new_user = User(name=username, email=email, password_hash=password_hash) new_user.save() login_user(new_user) return jsonify(status="success", redirect=request.referrer) else: #we assume that there at most 1 error for any field errors = {} if len(form.email.errors) > 0: errors["email_error"] = form.email.errors[0] if len(form.username.errors) > 0: errors["username_error"] = form.username.errors[0] if len(form.password.errors) > 0: errors["password_error"] = form.password.errors[0] if errors: errors["status"] = "error" return jsonify(errors)