def before_request(): g.db = database.db g.db.get_conn().set_client_encoding('UTF8') if not user.is_logged_in(): token = user.auto_log_in() if token: after_this_request( lambda r: r.set_cookie('persist_token',token) )
def display_threads(page): if user.is_logged_in(): lim = (-config.PAGE + page * config.PAGE, page * config.PAGE) result = database.get_posts(limit=lim, parent=None) posts = [dict(id=row[0], title=row[1], content=row[2], author=row[3], posted=format_dt(row[4]), pinned=row[5]) for row in result] return render_user_page('forum.html', posts=posts, pg=page, num_threads=database.get_num_posts()) else: return redirect(url_for('display_news'))
def add_reply(parent_id): error = None if user.is_logged_in(): if request.method == 'POST': result = database.insert_post(request.form['title'], request.form['content'], request.form['author'], 0, parent_id, 0) if result[0]: flash('Post created.') redir = request.args.get('redirect', parent_id) return redirect(url_for('display_post', post_id=redir)) else: error = result[1] return render_user_page('edit_post.html', error=error, parent=parent_id) else: return redirect(url_for('display_news'))
def add_post(): error = None if user.is_logged_in(): if request.method == 'POST': if user.is_admin(): pinned = request.form.get('pinned', 0) else: pinned = 0 result = database.insert_post(request.form['title'], request.form['content'], request.form['author'], 0, None, pinned) if result[0]: flash('Post created.') return redirect(url_for('display_threads')) else: error = result[1] return render_user_page('edit_post.html', error=error) else: return redirect(url_for('display_news'))
def edit_post(post_id): if user.is_logged_in(): result = database.get_post(post_id) if not result[0]: return render_user_page('edit_post.html', error=result[1]) post = dict(id=result[1][0], title=result[1][1], content=result[1][2], author=result[1][3], posted=format_dt(result[1][4]), locked=result[1][6], pinned=result[1][7]) if post['locked'] and not user.is_admin(): return redirect(url_for('display_news')) if (user.get_name() == post['author'] or user.is_admin()): if request.method == 'POST': if user.is_admin(): locked = request.form.get('locked', 0) pinned = request.form.get('pinned', 0) else: locked = 0 pinned = 0 result = database.update_post(post_id, request.form['title'], request.form['content'], locked, pinned) if result[0]: flash('Post Updated.') redir = request.args.get('redirect', post_id) return redirect(url_for('display_post', post_id=redir)) else: return render_user_page('edit_post.html', error=result[1]) else: return render_user_page('edit_post.html', post=post) else: return redirect(url_for('display_news'))