Esempio n. 1
0
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)
            )
Esempio n. 2
0
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'))
Esempio n. 3
0
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'))
Esempio n. 4
0
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'))
Esempio n. 5
0
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'))