예제 #1
0
def view_edit_post_form(post_id, topic_id):
    post = Post.query.get(post_id)

    if post is None:
        return redirect(url_for("view_topic", topic_id=topic_id))

    if UserService.user_not_admin_nor_editing_own_content(post.author_id):
        return redirect(url_for("view_topic", topic_id=topic_id))

    form = PostForm()
    form.body.data = post.body
    return render_template("posts/edit_post.html", post=post, form=form)
예제 #2
0
def view_edit_profile(user_id):
    user = User.query.filter_by(id=user_id).first()
    if not user:
        redirect(url_for("topics_index"))

    if UserService.user_not_admin_nor_editing_own_content(user_id):
        redirect(url_for("topics_index"))

    form = EditProfileForm()
    form.description.data = user.description

    return render_template("auth/edit_profile.html", form=form)
예제 #3
0
def rename_topic(topic_id):
    topic = Topic.query.get(topic_id)

    if UserService.user_not_admin_nor_editing_own_content(topic.author_id):
        return redirect(url_for("topics_index"))

    if topic is None:
        return redirect(url_for("topics_index"))

    json = request.get_json()
    topic.subject = json["Subject"]
    db.session().commit()

    resp = jsonify(success=True)
    return resp
예제 #4
0
def delete_topic(topic_id):
    topic = Topic.query.get(topic_id)

    if UserService.user_not_admin_nor_editing_own_content(topic.author_id):
        return redirect(url_for("topics_index"))

    if topic is None:
        return redirect(url_for("topics_index"))

    for post in topic.posts:
        db.session().delete(post)

    db.session().delete(topic)
    db.session().commit()

    resp = jsonify(success=True)
    return resp
예제 #5
0
def edit_profile(user_id):
    form = EditProfileForm(request.form)

    if not form.validate():
        return render_template("auth/edit_profile.html", form=form)

    if UserService.user_not_admin_nor_editing_own_content(user_id):
        redirect(url_for("topics_index"))

    user = User.query.filter_by(id=user_id).first()

    if not user:
        redirect(url_for("topics_index"))

    user.description = form.description.data
    db.session().commit()

    return redirect(url_for("view_user_page", user_id=user_id))
예제 #6
0
def delete_post(post_id, topic_id):
    post = Post.query.get(post_id)
    topic = Topic.query.get(topic_id)

    if post is None or Topic is None:
        return redirect(url_for("view_topic", topic_id=topic_id))

    if UserService.user_not_admin_nor_editing_own_content(post.author_id):
        return redirect(url_for("view_topic", topic_id=topic_id))

    db.session().delete(post)

    if not topic.posts:
        db.session().delete(topic)

    db.session.commit()

    resp = jsonify(success=True)
    return resp
예제 #7
0
def edit_post(post_id, topic_id):
    post_in_db = Post.query.get(post_id)

    if post_in_db is None:
        return redirect(url_for("view_topic", topic_id=topic_id))

    if UserService.user_not_admin_nor_editing_own_content(
            post_in_db.author_id):
        return redirect(url_for("view_topic", topic_id=topic_id))

    form = PostForm(request.form)
    if not form.validate():
        return render_template("posts/edit_post.html",
                               post=post_in_db,
                               form=form)

    post_in_db.body = form.body.data
    db.session.commit()

    return redirect(url_for("view_topic", topic_id=topic_id))