Esempio n. 1
0
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)