示例#1
0
def delete_message(message_id, thread_id):
    if request.method == 'POST':
        t = Thread(redis=g.r, user=g.user)
        t.load(thread_id)
        m = Message(redis=g.r, user=g.user, key=message_id)
        m.load()
        if g.r.get('username:%s' % m.sender.username) != g.user.key:
            abort(401)
        t.delete_message(m)
        flash(u'Message deleted', 'success')
        return redirect(url_for('frontend.view_thread', thread_id=thread_id))
    else:
        return render_template('confirm.html',
            _message='Are you sure you want to delete this message?',
            _ok=url_for('frontend.delete_message', thread_id=thread_id,
                message_id=message_id),
            _cancel=url_for('frontend.view_thread', thread_id=thread_id)
        )
示例#2
0
def delete_message(message_id, thread_id):
    if request.method == 'POST':
        t = Thread(redis=g.r, user=g.user)
        t.load(thread_id)
        m = Message(redis=g.r, user=g.user, key=message_id)
        m.load()
        if g.r.get('username:%s' % m.sender.username) != g.user.key:
            abort(401)
        t.delete_message(m)
        flash(u'Message deleted', 'success')
        return redirect(url_for('frontend.view_thread', thread_id=thread_id))
    else:
        return render_template(
            'confirm.html',
            _message='Are you sure you want to delete this message?',
            _ok=url_for('frontend.delete_message',
                        thread_id=thread_id,
                        message_id=message_id),
            _cancel=url_for('frontend.view_thread', thread_id=thread_id))
示例#3
0
def view_thread(thread_id):
    if str(thread_id) not in g.user.get_threads():
        abort(401)

    t = Thread(redis=g.r, user=g.user)
    try:
        t.load(thread_id)
        if request.method == "POST":
            if request.form['action'] == 'reply':
                m = Message(redis=g.r, key=False, user=g.user)
                m.update(request.form)
                t.save()
                t.add_message(m)
                m.send()
                t.load(thread_id)
                flash("Reply has been sent.", 'success')
                return redirect(url_for('frontend.view_thread', thread_id=t.key))
        return render_template('thread.html',
            messages=t.messages,
            thread=t,
            subject=t.subject)
    except ThreadError:
        abort(404)
示例#4
0
def send_message(recipient=False):
    try:
        g.user.username
    except AttributeError:
        abort(401)

    t = Thread(redis=g.r, user=g.user)
    m = Message(redis=g.r, key=False, user=g.user)
    if(recipient):
        try:
            t.parse_recipients(recipient)
        except InvalidRecipients:
            pass

    if request.method == 'POST':
        try:
            t.subject = request.form['subject']
            m.update(request.form)
            t.parse_recipients(request.form['recipients'])
            t.encryption = request.form['encryption']
            t.save()
            t.add_message(m)
            m.send()
            flash('Your message has been successfully wired, \
                    and should arrive shortly.', 'success')
            return redirect(url_for('frontend.view_thread', thread_id=t.key))
        except MessageValidationError:
            for error in m.validation_errors:
                flash(error, 'error')
        except InvalidRecipients:
            for recipient in t.invalid_recipients:
                flash('%s is not a valid recipient' % recipient, 'error')
    return render_template('forms/message.html',
        new=True,
        message=m,
        thread=t,
        recipients=t.get_form_recipients())
示例#5
0
def send_message(recipient=False):
    try:
        g.user.username
    except AttributeError:
        abort(401)

    t = Thread(redis=g.r, user=g.user)
    m = Message(redis=g.r, key=False, user=g.user)
    if (recipient):
        try:
            t.parse_recipients(recipient)
        except InvalidRecipients:
            pass

    if request.method == 'POST':
        try:
            t.subject = request.form['subject']
            m.update(request.form)
            t.parse_recipients(request.form['recipients'])
            t.encryption = request.form['encryption']
            t.save()
            t.add_message(m)
            m.send()
            flash(
                'Your message has been successfully wired, \
                    and should arrive shortly.', 'success')
            return redirect(url_for('frontend.view_thread', thread_id=t.key))
        except MessageValidationError:
            for error in m.validation_errors:
                flash(error, 'error')
        except InvalidRecipients:
            for recipient in t.invalid_recipients:
                flash('%s is not a valid recipient' % recipient, 'error')
    return render_template('forms/message.html',
                           new=True,
                           message=m,
                           thread=t,
                           recipients=t.get_form_recipients())
示例#6
0
def view_thread(thread_id):
    if str(thread_id) not in g.user.get_threads():
        abort(401)

    t = Thread(redis=g.r, user=g.user)
    try:
        t.load(thread_id)
        if request.method == "POST":
            if request.form['action'] == 'reply':
                m = Message(redis=g.r, key=False, user=g.user)
                m.update(request.form)
                t.save()
                t.add_message(m)
                m.send()
                t.load(thread_id)
                flash("Reply has been sent.", 'success')
                return redirect(
                    url_for('frontend.view_thread', thread_id=t.key))
        return render_template('thread.html',
                               messages=t.messages,
                               thread=t,
                               subject=t.subject)
    except ThreadError:
        abort(404)