def edit_user(new=False): if not new: try: g.user.username except AttributeError: abort(401) if new: u = User(redis=g.r) else: u = g.user if request.method == "POST": u.update(request.form, new=new) try: avatar = request.files.get("avatar") if avatar: try: u.avatar = upload_avatar(avatar) flash("Upload successful.", "success") except UploadNotAllowed: flash("Upload not allowed.", "error") u.save() if new: flash( '"User "%s" created successfully. \ You may now log in.' % u.username, "success", ) return redirect(url_for("intro")) else: flash("Profile updated.", "success") return redirect(url_for("edit_user")) except UserValidationError: for error in u.validation_errors: flash(error, "error") return render_template("forms/user.html", new=new, user=u)