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)
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)
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
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
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))
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
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))